Почему UDP имеет поле длины в заголовке, а TCP - нет?
Я предполагаю, что длина сегмента в TCP выводится из заголовка IP, но он должен быть способен сделать то же самое для дейтаграммы UDP
Почему UDP имеет поле длины в заголовке, а TCP - нет?
Я предполагаю, что длина сегмента в TCP выводится из заголовка IP, но он должен быть способен сделать то же самое для дейтаграммы UDP
В соответствии с TCP/IP Illustrated Volume 1 поле длины является избыточным. Все Стивенс говорит по этому поводу.
Я лично полагаю, что это должно было сделать длину заголовка UDP (в битах) делимой на 32:)
Существует 96-битный псевдо-заголовок, концептуально предваряемый заголовком TCP, который уже содержит информацию.
Описание поля контрольной суммы из этот источник дает ответ:
Контрольная сумма: 16 бит
Поле контрольной суммы является 16-битным дополнением к дополнять сумму всех 16-битных слов в заголовке и тексте. Если сегмент содержит нечетное число заголовков и текстовых октетов контрольная сумма, последний октет дополняется справа нулями сформировать 16-битное слово для целей контрольной суммы. Пэд не передается как часть сегмента. При вычислении контрольная сумма, само поле контрольной суммы заменяется нулями.
Контрольная сумма также покрывает 96-битный псевдо-заголовок концептуально префикс к заголовку TCP. Этот псевдо-заголовок содержит источник Адрес, адрес назначения, протокол и длину TCP. Это дает защиту TCP от непродуманных сегментов. Эта информация передается в Интернет-протоколе и передается через интерфейс TCP/Network в аргументах или результатах вызовы TCP на IP.
+--------+--------+--------+--------+ | Source Address | +--------+--------+--------+--------+ | Destination Address | +--------+--------+--------+--------+ | zero | PTCL | TCP Length | +--------+--------+--------+--------+
Информация не требуется на уровне TCP, поскольку TCP является потоковым протоколом.
Я думал: Так как TCP является потоковым протоколом, все в порядке, если его сегмент фрагментирован в. UDP ориентирован на транзакции, и если его сообщения фрагментированы на уровне IP, его длина должна быть восстановлена.
Извините за мой плохой английский.