IPv4 — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «'''IPv4''' (англ. ''Internet Protocol version 4'') — четвёртая версия интернет протокола (IP). Описан в IETF в ...»)
 
Строка 52: Строка 52:
 
|-
 
|-
 
| colspan="4"| Версия
 
| colspan="4"| Версия
| colspan="4"| Размер заголовка
+
| colspan="4"| IHL
 
| colspan="8"| Дифференциальное обслуживание (Тип службы)
 
| colspan="8"| Дифференциальное обслуживание (Тип службы)
| colspan="16"| Размер пакета (полный)
+
| colspan="16"| Полная длина
 
|-
 
|-
 
| colspan="16"| Идентификатор
 
| colspan="16"| Идентификатор
Строка 68: Строка 68:
 
| colspan="32"| IP-адрес назначения
 
| colspan="32"| IP-адрес назначения
 
|-
 
|-
| colspan="26"|Опции (если размер заголовка > 5)
+
| colspan="26"|Опции
 
| colspan="6"|Остаток
 
| colspan="6"|Остаток
 
|-
 
|-
 
|}
 
|}
 +
 +
* Версия: 4 бита
 +
** Поле ''Версия'' содержит версию протокола, к которому принадлежит пакет. В случае IPv4 это 4.
 +
* IHL: 4 бита
 +
** Поле ''IHL'' (англ. ''Internet Header Length'') содержит длину заголовка (в нем указано число 32-разрядных слов). Следовательно, оно указывает на начало данных. Минимальное значение длины равно 5. Максимальное {{---}} 15, что соответствует заголовку длиной 60 байт. Так, максимальный размер необязательного поля равен 40 байтам.
 +
* Дифференциальное обслуживание (Тип службы): 8 битов
 +
** Изначально это поле называлось ''Тип службы''. По спецификации оно предназначено для различения классов обслуживания. Но поскольку никто не знал, что с ним делать, оно много лет не использовалось. Теперь, когда появилось  дифференцированное обслуживание, ему нашли другое применение. Первые 6 бит задают класс обслуживания ([[DSCP]]), а в последние 2 помещаются явные уведомления о перегруженности ([[ECN]]).
 +
* Полная длина: 16 бит
 +
** Поле ''Полная длина'' содержит длину всей дейтаграммы, включая как заголовок, так и данные. Минимальная длина равна 20 байтам. Максимальное допустимое значение равно 65535 байт. Такие длинные дейтаграммы непрактичны для большинства хостов и сетей. Так, все хосты должны уметь принимать дейтаграммы до 576 байтов. Рекоммендуется отправлять дейтаграммы большего размера, только если есть уверенность, что принимающая сторона сможет их обработать.

Версия 21:01, 30 ноября 2016

IPv4 (англ. Internet Protocol version 4) — четвёртая версия интернет протокола (IP). Описан в IETF в статье RFC 791 (сентябрь 1981 года). Это один из самых используемых интернет протоколов. Был введен в использование в ARPANET в 1983 году.

Функция протокола — передавать дейтаграммы по множеству соединенных сетей.

Рассмотрим формат IPv4-дейтаграмм.

Дейтаграмма состоит из заголовка и основной части (данных). Биты передаются слева направо и сверху вниз (big-endian порядок). В настоящее время ясно, что лучше было бы использовать обратный (little-endian) порядок, но во время создания протокола это не было очевидно. Так на Intel x86 требуется программное преобразование, как при передаче, так и при приеме.

Рассмотрим структуру заголовка:

IPv4 Header Format
0 1 2 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Версия IHL Дифференциальное обслуживание (Тип службы) Полная длина
Идентификатор Флаги Смещение фрагмента
Время жизни Протокол Контрольная сумма заголовка
IP-адрес источника
IP-адрес назначения
Опции Остаток
  • Версия: 4 бита
    • Поле Версия содержит версию протокола, к которому принадлежит пакет. В случае IPv4 это 4.
  • IHL: 4 бита
    • Поле IHL (англ. Internet Header Length) содержит длину заголовка (в нем указано число 32-разрядных слов). Следовательно, оно указывает на начало данных. Минимальное значение длины равно 5. Максимальное — 15, что соответствует заголовку длиной 60 байт. Так, максимальный размер необязательного поля равен 40 байтам.
  • Дифференциальное обслуживание (Тип службы): 8 битов
    • Изначально это поле называлось Тип службы. По спецификации оно предназначено для различения классов обслуживания. Но поскольку никто не знал, что с ним делать, оно много лет не использовалось. Теперь, когда появилось дифференцированное обслуживание, ему нашли другое применение. Первые 6 бит задают класс обслуживания (DSCP), а в последние 2 помещаются явные уведомления о перегруженности (ECN).
  • Полная длина: 16 бит
    • Поле Полная длина содержит длину всей дейтаграммы, включая как заголовок, так и данные. Минимальная длина равна 20 байтам. Максимальное допустимое значение равно 65535 байт. Такие длинные дейтаграммы непрактичны для большинства хостов и сетей. Так, все хосты должны уметь принимать дейтаграммы до 576 байтов. Рекоммендуется отправлять дейтаграммы большего размера, только если есть уверенность, что принимающая сторона сможет их обработать.