Какое значение Pseudo Header используется в UDP/TCP
Почему заголовок Pseudo добавлен к дейтаграмме UDP для вычисления контрольной суммы UDP? Что за это стоит?
Ответы
Ответ 1
С точки зрения TCP или UDP пакет не содержит IP-адресов. (IP - это слой под ними.)
Таким образом, для выполнения правильной контрольной суммы включен "псевдо-заголовок". Он "псевдо", потому что он не является действительной частью дейтаграммы UDP. Он содержит наиболее важные части заголовка IP, то есть адрес источника и получателя, номер протокола и длину данных.
Это делается для того, чтобы контрольная сумма UDP учитывала эти поля.
Ответ 2
Ближайший вы получите ответ "прямо из уст лошади", от Дэвида П. Рида по следующей ссылке.
http://www.postel.org/pipermail/end2end-interest/2005-February/004616.html
Короткий вариант ответа: "псевдо-заголовок существует по историческим причинам".
Первоначально TCP/IP был единственным монолитным протоколом (называемым только TCP). Когда они решили разделить его на TCP и IP (и другие), они не разделили все на все, что чисто: IP-адреса по-прежнему считались частью TCP, но они были просто "унаследованы" от уровня IP а не повторяется в заголовке TCP. Причина, по которой контрольная сумма TCP работает над частями заголовка IP (включая IP-адреса), заключается в том, что они предполагали использовать криптографию для шифрования и аутентификации полезной нагрузки TCP, и они хотели, чтобы IP-адреса и другие параметры TCP в псевдо-заголовке были защищенный кодом аутентификации. Это сделало бы недопустимым вмешательство человека в середине, чтобы изменить IP-адрес источника и адреса назначения: промежуточные маршрутизаторы не заметили бы фальсификации, но конечная точка TCP попыталась бы проверить подпись.
По разным причинам ни один из этого грандиозного криптографического плана не вышел, но контрольная сумма TCP, которая заняла свое место, по-прежнему работает над псевдо-заголовком, как если бы это было полезно. Да, это дает вам немного дополнительной защиты от случайных ошибок, но это не то, почему оно существует. Честно говоря, нам было бы лучше без него: связь между TCP и IP означает, что вам нужно переопределить TCP при изменении IP. Таким образом, определение IPv6 включает новое определение псевдо-заголовка TCP и UDP (см. RFC 2460, s8.1). Почему дизайнеры IPv6 решили увековечить эту связь, вместо того, чтобы воспользоваться возможностью, чтобы ее отменить, это вне меня.
Ответ 3
Когда эти протоколы разрабатывались, серьезная озабоченность их была хозяином, получающим пакет, который считал, что это было их, когда это было не так. Если несколько бит были перевернуты в заголовке IP во время транзита, а курс с измененным пакетом (но контрольная сумма IP была по-прежнему верна), стек TCP/UDP перенаправленного приемника все еще может знать, чтобы отклонить пакет.
Хотя псевдо-заголовок нарушил разделение идиомы слоев, он считался приемлемым для повышения надежности.
Ответ 4
"Цель использования псевдо-заголовка - проверить, что UDP датаграмма достигла своего правильного назначения. Ключ к понимание псевдо-заголовка заключается в понимании того, что правильное назначение состоит из конкретной машины и конкретного протокола порт внутри этой машины. Сам заголовок UDP указывает только номер порта протокола. Таким образом, для проверки адресата UDP на отправляющая машина вычисляет контрольную сумму, которая охватывает целевой IP-адрес адрес, а также датаграмму UDP. Псевдо-заголовок не передается с дейтаграммой UDP и не включается в длину.
Е. Comer - межсетевое взаимодействие с четвертым изданием TCP/IP.