itmo_conspects

Лекция 6. Протокол IPv4

Протокол IPv4 является протоколом сетевого уровня, поэтому ее задача - доставка данных между узлами, не находящимися в одной подсети

Для этого у узла должен быть IP-адрес. Для протокола IP четвертой версии адрес состоит из 4 байт, например, 240.19.64.22

Далее при известных адресах получателя и отправителя для пакета формируется заголовок. Заголовок состоит из таких полей

Заголовок дополняется нулями в конце так, чтобы занимаемое число байт было кратно 4

IPv4-заголовок

При маршрутизации время жизни пакета меняется, что заставляет маршрутизатор заново вычислять контрольную сумму. Поэтому при прохождении в заголовке IP-пакета изменяются минимум эти 2 поля

Также маршрутизатор можно иметь разную максимальную длину пакета (MTU, Maximum transmission unit). Чтобы уметь передавать большие пакеты до 65000 байт, нужно их фрагментировать - разделить на маленькие, которые можно передать, а на приемнике их собрать. Для этого в заголовке используются:

Например, есть пакет длиной 5140 байт, тогда он разобьется на 4 фрагмента (пусть MTU = 1500):

Идентификатор Размер пакета Флаг DF Флаг MF Смещение пакета
345 1500 0 1 0
345 1500 0 1 185
345 1500 0 1 370
345 700 0 0 555

Суммарно пакет вырос на 60 байт - 3 размера IP-заголовков дополнительных фрагментов