Требуется разъяснение по фрагментации пакетов в сетевом уровне
Я понимаю цель фрагментации пакета. Из ответа единственное, что я не понимаю, это общая длина и смещение фрагмента. Я был бы очень признателен за любую помощь, которую вы можете оказать мне в решении этой проблемы.
Ниже приведен вопрос и ответ.
Предположим, что хост A подключен к маршрутизатору R 1, R 1 подключен к другому маршрутизатору, R 2, а R 2 подключен к хосту B. Предположим, что сообщение TCP, которое содержит 900 байтов данных и 20 байтов заголовка TCP, передается в IP-код на хосте A для доставки в B. Показывает поля смещения общей длины, идентификации, DF, MF и фрагмента заголовка IP в каждом пакете, передаваемом по трем каналам. Предположим, что канал A-R1 может поддерживать максимальный размер кадра 1024 байта, включая 14-байтовый заголовок кадра, канал R1-R2 может поддерживать максимальный размер кадра 512 байтов, включая 8-байтовый заголовок кадра, и канал R2-B может поддерживать максимальный размер кадра 512 байт, включая 12-байтовый заголовок кадра.
Ответ:
The initial IP datagram will be fragmented into two IP datagrams at I1. No other fragmentation will occur.
Link A-R1:
Length = 940; ID = x; DF = 0; MF = 0; Offset = 0
Link R1-R2:
(1) Length = 500; ID = x; DF = 0; MF = 1; Offset = 0
(2) Length = 460; ID = x; DF = 0; MF = 0; Offset = 60
Link R2-B:
(1) Length = 500; ID = x; DF = 0; MF = 1; Offset = 0
(2) Length = 460; ID = x; DF = 0; MF = 0; Offset = 60
1 ответ
Это, безусловно, упражнение в университете. Лучше, если вы попытаетесь решить это самостоятельно, а не спрашивать ответ.
Значения полей вы можете увидеть здесь: http://mars.netanya.ac.il/~unesco/cdrom/booklet/HTML/NETWORKING/node020.html
Пожалуйста, прочитайте это.
Я дам вам частичный ответ. Остальное вы должны решить самостоятельно, чтобы научиться. DF означает, что отправитель не хочет фрагментировать. Я полагаю, это будет всегда 0 в вашем упражнении.
MF равен 1, если имеется следующий фрагмент. Таким образом, если дейтаграмма фрагментирована на 2 дейтаграммы, то первая будет иметь 1, а вторая - 0, так как дополнительных фрагментов нет. Когда получатель получит фрагмент 1, он будет знать, что есть по крайней мере еще один фрагмент, ожидающий, потому что MF равен 1. Когда получатель получит фрагмент 2 до фрагмента 1, он будет знать, что он является частью более крупной фрагментированной дейтаграммы, потому что смещение не равно 0 (во фрагменте 2 MF равен 0).
Во всех дейтаграммах вы должны учитывать 20 байтов (в общем) для уровня TCP (если TCP) и 20 байтов для уровня IP. Обычно в Ethernetv2 (не GbE) значение MTU составляет 1500 октетов. Затем вы можете передать максимум 1480 октетов в полезной нагрузке IP (20 октетов для заголовка уровня IP) и максимум 1460 в полезной нагрузке TCP (минимум 20 октетов для заголовка IP и минимум 20 октетов для заголовка TCP).
Как подсказка, фрагментация будет происходить при любом переходе в IPv4. В IPv6 только исходный узел может фрагментировать. Таким образом, в A-R1 фрагментация не требуется.