Издержки на передачу пакетов данных iSCSI
По общему признанию, этот вопрос частично совпадает с заголовком пакета iSCSI, но я надеюсь получить более конкретный ответ, чем тот, который был дан для моего более конкретного вопроса.
Вопрос: Сколько накладных расходов вносят iSCSI и SCSI при передаче данных для чтения или записи?
Я понимаю, что это делается в транспортных пакетах Data-In и Data-Out, и я понимаю, что есть издержки от TCP/IP и Ethernet, но какие дополнительные издержки необходимы для iSCSI/SCSI? Я признаю, что блоки данных протокола SCSI (PDU) упакованы в дейтаграммы TCP по некоторому алгоритму, но я не уверен в этом алгоритме.
Я понимаю, что между инициатором и целью должен состояться полноценный разговор, и я проигнорирую эту часть. Итак, я хочу знать только о пакетах данных, отправленных после команды чтения или записи.
2 ответа
Для чтения ниже является правильным. Но для записи (если непосредственные данные не включены) необходимы дополнительные байты, необходимые для того, чтобы цель отправила другой PDU с именем R2T, который составляет 48 байтов. Дайджест используется редко, поскольку большинство подключений iSCSI являются локальными, а TCP/IP имеет CRC.
Вот что я собрал, просматривая iSCSI RFC 3720.
Блок данных протокола (PDU - "пакет" iSCSI) имеет следующие элементы:
- Базовый сегмент заголовка - 48 байт
- Дополнительные сегменты заголовка - необязательно - 0 байт (предположим, что они не нужны)
- Дайджест заголовка - 4 байта (необязательно, но хочу этого)
- Сегмент данных - 8192 байта (максимальная длина полученных данных согласовывается между инициатором и целью, по умолчанию используется 8192, поэтому будет использовать это)
- Дайджест данных - 4 байта (необязательно, но хочу этого)
Итак, я вижу накладные расходы в 56 байтов для передачи 8192 байтов фактических данных.