2013-08-07 4 views
1

Предположим, у нас есть IP-пакет с общим размером 12000 байт, и мы отправляем этот пакет со станции A на станцию ​​B по уровню линии передачи данных. Один Ethernet-порт может переносить до 1500 байтов данных полезной нагрузки, поэтому в целом нам понадобится 8 кадров Ethernet для передачи IP-пакета с 12000 байтами, правильно?Как собираются пакеты IP

Предположим, что первый Ethernet-кадр (несущий IP-заголовок) получает искажение во время передачи, а поле TotalLength заголовка IP больше не содержит фактической длины, а только некоторого значения бессмысленности. Даже если станция B понимает, что контрольная сумма заголовка больше не действительна и отбрасывает кадр, как станция B может знать, где начинается следующий IP-пакет во входящем потоке данных? Он не знает, сколько байтов полезной нагрузки было первым IP-пакетом, верно?

Или размер пакета IP, ограниченный максимальной длиной полезной нагрузки, которую может обрабатывать базовый кадр передачи данных?

ответ

2

Хорошо, если вы проведете еще несколько исследований, действительно, максимальный размер IP-пакета определяется максимальным модулем передачи (MTU) линии передачи данных.

Для тех, кто заботится, этот сайт ломает это очень хорошо: http://aa.net.uk/kb-broadband-mtu.html

1

Размер фрагмента IP ограничен MTU, размер пакета IP ограничен по размеру поля заголовка IP. Приемник может понять общий размер и получить ли IP-фрагмент первым или нет, используя поля «Общая длина» и «Фрагмент смещения». Если сборка пошла не так, тогда вам скажет контрольная сумма следующего слоя, или вы начнете получать фрагменты, которые будут охватывать дублированные смещения. Его для IPv4. Для IPv6 он работает по-разному с обязательным обнаружением MTU и почти запрещенной фрагментацией IP-пакетов.

 Смежные вопросы

  • Нет связанных вопросов^_^