Подтвердить что ты не робот

Почему UDP имеет поле длины в заголовке, а TCP - нет?

Почему UDP имеет поле длины в заголовке, а TCP - нет?

Я предполагаю, что длина сегмента в TCP выводится из заголовка IP, но он должен быть способен сделать то же самое для дейтаграммы UDP

4b9b3361

Ответ 1

В соответствии с TCP/IP Illustrated Volume 1 поле длины является избыточным. Все Стивенс говорит по этому поводу.

Я лично полагаю, что это должно было сделать длину заголовка UDP (в битах) делимой на 32:)

Ответ 2

Существует 96-битный псевдо-заголовок, концептуально предваряемый заголовком TCP, который уже содержит информацию.

Описание поля контрольной суммы из этот источник дает ответ:

Контрольная сумма: 16 бит

Поле контрольной суммы является 16-битным дополнением к дополнять сумму всех 16-битных слов в заголовке и тексте. Если сегмент содержит нечетное число заголовков и текстовых октетов контрольная сумма, последний октет дополняется справа нулями сформировать 16-битное слово для целей контрольной суммы. Пэд не передается как часть сегмента. При вычислении контрольная сумма, само поле контрольной суммы заменяется нулями.

Контрольная сумма также покрывает 96-битный псевдо-заголовок концептуально префикс к заголовку TCP. Этот псевдо-заголовок содержит источник Адрес, адрес назначения, протокол и длину TCP. Это дает защиту TCP от непродуманных сегментов. Эта информация передается в Интернет-протоколе и передается через интерфейс TCP/Network в аргументах или результатах вызовы TCP на IP.

      +--------+--------+--------+--------+
      |           Source Address          |
      +--------+--------+--------+--------+
      |         Destination Address       |
      +--------+--------+--------+--------+
      |  zero  |  PTCL  |    TCP Length   |
      +--------+--------+--------+--------+

Информация не требуется на уровне TCP, поскольку TCP является потоковым протоколом.

Ответ 3

Я думал: Так как TCP является потоковым протоколом, все в порядке, если его сегмент фрагментирован в. UDP ориентирован на транзакции, и если его сообщения фрагментированы на уровне IP, его длина должна быть восстановлена.

Извините за мой плохой английский.