Протокол ipv4¶
Определениe¶
Протокол ip является сетевым протоколом Layer 3 (Network) модели OSI. Единица измерения Layer 3 - это пакет (packet) По сути опираясь на этот протокол происходит маршрутизация пакетов в сети. Для маршрутизации пакетов используется статическая или динамическая маршрутизация.
В механизме работы протокала ip нет защиты от потери при передачи данных, реализация такой защиты осуществляется при необходимости на следующих уровнях, например в протоколе транспортного уровня TCP.
Структура заголовка ipv4¶
Рассмотрим пример заголовка ip пакета
1. "Version" - версия протокола, в данном случае версия 4.
2. "Header length" - размер заголовка - стандартный размер заголовка 20 byte
3. "Differentiated Services Code Point (DSCP)" - используется для разбиение трафика на классы обслуживания,
для приоритезации в обслуживании трафика более чувствительного к задержкам, например VoIP или видео потоков.
4. "Explicit Congestion Notification (ECN)" — «Явное Уведомление о Перегруженности» расширение протокола IP,
описанное в RFC 3168. ECN позволяет обеим сторонам в сети узнавать о возникновении затора на маршруте
к заданному хосту или сети без отбрасывания пакетов. Это дополнительная функция,
которая используется только в том случае, когда обе конечные точки обмена информацией сообщают,
что они хотят её использовать.
5. "Total length" - полный размер пакета в байтах, включая заголовок и данные.
Минимальный размер равен 20 байтам (заголовок без данных), максимальный — 65535 байт.
Хосты должны поддерживать передачу пакетов размером до 576 байт. Пакеты большего размера,
чем поддерживает канал связи (MTU), фрагментируются.
6. "Identification" - идентификатор, преимущественно используется для идентификации фрагментов пакета,
если он был фрагментирован. Существуют эксперименты по его использованию для других целей,
таких как добавление информации о трассировке пакета для упрощения отслеживания пути пакета
с подделанным адресом источника.
7. "Flags" - поле размером три бита содержащее флаги контроля над фрагментацией.
Биты, от старшего к младшему, означают:
- "Reserved bit" - Зарезервирован, должен быть равен всегда 0.
- "Don't fragment" - Не фрагментировать:
- "0"- если фрагментация пакета разрешена
- "1"- если фрагментация пакета запрещена
- "More fragments" - У пакета ещё есть фрагменты:
- "0"- если фрагментов нет
- "1"- если фрагменты еще есть
8. "Fragment Offset" - смещение фрагментации - указывает смещение поля данных текущего фрагмента
относительно начала поля данных первого фрагментированного пакета в блоках по 8 байт.
9. "Time To Live" - 'время жизни' пакета. Для защиты от петель на сетевом уровне используется поле TTL.
При передачи пакета от одного маршрутизатора к другому каждый следующий маршрутизатор
уменьшает текущий TTL на единицу. Если TTL становится равным 0, то такой пакет отбрасывается маршрутизатором
и в зависимости от настроеке может генерироваться icmp сообщение с типом 11 "Type 11 – Time Exceeded".
Максимальное значение TTL=255.
10. "Protocol" - протокол вышестоящего уровня, находящегося в payload пакета,
например TCP - 6, UDP - 17 или ICMP - 1.
11. "Header Checksum" - контрольная сумма, используемая для проверки целостности заголовка.
Каждый хост или маршрутизатор сравнивает контрольную сумму заголовка со значением этого поля
и отбрасывает пакет, если они не совпадают.
Так TTL каждый раз уменьшается, то каждый маршрутизатор вынужден пересчитывать контрольную сумму заголовка.
12. "Source Address" - (source ip address) - ip адрес источника пакета.
13. "Destination Address" - (destination ip address) - ip адрес назначения пакета.
14. "Options" - опции. За адресом назначения может следовать поле дополнительных опций,
но оно используется крайне редко, в основном для эксперементальных целей...
Номера протоколов можно посмотреть на сайте IANA Protocol Numbers
Номера ip опций можно посмотреть на сайте IANA Internet Protocol Version 4 IPv4 Parameters
Литература¶
Последнее обновление: 2023-05-29