Формат IP-пакета

Межсетевой уровень. Протокол IP, RFC 791

Уровень Internet является основным в архитектуре TCP/IP. На этом уровне работает протокол IP. Протокол IP специально создавался для передачи информации в распределенных сетях со сложной топологией. Протокол IP работает на конечных узлах-хостах и IP-маршрутизаторах.

В настоящее время применяется протокол IP версии 4 (IPv4), определенный в RFC 791. Существует стандарт IPv6, использующий иную структуру адреса и другой формат заголовка, но широкого распространения в действующих сетях пока шестая версия не нашла.

Протокол IP формирует блоки данных, которые называются IP-пакеты или дейтаграммы. Протокол работает без установления логического соединения. Это означает, что передача данных не требует предварительного обмена управляющей информацией («рукопожатия»), то есть источник не проверяет готовность удаленной системы принимать данные.

Протокол IP не исключает потерь дейтаграмм, доставки их с ошибками, дублирования и нарушения порядка следования. Протокол не гарантирует доставку пакета, но стремится к этому. Протокол отвечает за разбиение дейтаграммы большого размера на более мелкие фрагменты (если этого требует сеть) на передаче и сборку их на приеме. Дейтаграммы путешествуют по сети независимо друг от друга.

Кроме протокола IP, на межсетевом уровне работают протоколы маршрутизации RIP, OSPF, BGP и др, протокол передачи управляющих сообщений ICMP (управление потоком от источника, обнаружение недостижимых адресатов, перенаправление маршрутов, проверка работоспособности протокола IP удаленного узла), ARP (протокол преобразования адреса IP в аппаратный MAC-адрес), протокол обратного преобразования адреса RARP (Reverse ARP).

Протокол IP на данный момент является универсальным объединяющим протоколом для множества протоколов уровня сетевого интерфейса, так как различные технологии канального уровня организуют взаимодействие друг с другом на межсетевом уровне через протокол IP.

Формат IP-пакета

Заголовок IP-пакета представляет собой 5 обязательных 32-разрядныхслов (для версии протокола IPv4) и необязательную часть размером 0 или более слов.

32 бита
Version (0-3) IHL (4-7) Type of Service (8-15) Total Length (16-31)
ID Flags (2) Fragment Offset
TTL Protocol Header Checksum
Source Address
Destination Address
Options (+padding) – необязательная часть заголовка
DATA

Здесь:

Version (версия) – номер версии протокола (например, IPv4 или IPv6)

IHL – Internet Header Length (длина заголовка), указывает число 32-битных слов, использованных в заголовке.

Type of Service, ToS (тип сервиса) – поле предназначено для различения классов обслуживания, так как возможны разные комбинации требований по скорости доставки пакета и надежности доставки. Поле имеет сложную структуру и используется для механизма обеспечения качества обслуживания в IР сети с помощью протокола RSVP (Resource Reservation Protocol, протокол резервирования ресурсов, RFC 791) или с помощью технологии дифференцируемого обслуживания DSCP (Differentiated Services Code Point, значения кода дифференцированного обслуживания, RFC 2474). Вторая технология является более современной. Например, поле может содержать указание на возможность задержки пакета, на требование пересылки по каналам с максимальной пропускной способностью, на возможность сбрасывания пакета маршрутизатором в случае перегрузки и т.д.

Total Length (длина пакета, 16 бит) – информация о длине всего IP пакета в байтах. Максимальная длина IP-пакета составляет 216 байт=65535 байт.

ID (Identification) – идентификатор (целая переменная). Она позволяет хосту-получателю определить, какой исходной дейтаграмме принадлежат полученные им фрагменты. Все фрагменты одной дейтаграммы содержат одно и то же значение идентификатора. Исходная фрагментированная дейтаграмма собирается согласно смещению Offset.

Flags (флаги) – специальные два бита, указывающие, можно ли дробить данную дейтаграмму (DF – Don’t Fragment) и является ли данный фрагмент последним в дейтаграмме (MF – More Fragments, устанавливается во всех фрагментах кроме последнего).

Offset (смещение разбиения) – указатель того, какое смещение относительно начала исходной дейтаграммы имеет данная его часть (в байтах). Согласно смещению собирается исходная дейтаграмма и, если один из фрагментов не достиг назначения, отбрасывается весь пакет.

TTL (Time to Live, время жизни IP-пакета (в секундах)) – это счетчик, значение которого уменьшается на единицу и/или на время простоя в очереди маршрутизатора при прохождении дейтаграммы через него. Таким образом, определена максимальная длина пути, которую может пройти пакет от источника до получателя сообщения. Когда значение счетчика становится равным 0, дейтаграмма отбрасывается. Так реализуется защита от возможных петель маршрутизации.

Protocol (протокол) – указывает на протокол (процесс) верхнего уровня, которому следует передать полезную нагрузку IР пакета. Это может быть ТСР, UDP или что-нибудь еще. Нумерация процессов глобально стандартизирована по всему Интернету. Номера протоколов сведены в RFC 1700.

Header Checksum, – контрольная сумма, помогающая обнаружить ошибки в заголовке IP пакета при приеме. Значение контрольной суммы подсчитывается заново на каждом участке.

Source Address, Destination Address – IP-адрес источника и IP-адрес получателя сообщения.

Options + padding (опции + выравнивание размера пакета до 32-х битной границы) – для дополнительных сервисов. Например, для поддержки маршрутов с маршрутизацией от источника SR, доступа к оборудованию с ограниченным доступом.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: