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"|Опции | + | | 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 требуется программное преобразование, как при передаче, так и при приеме.
Рассмотрим структуру заголовка:
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 байтов. Рекоммендуется отправлять дейтаграммы большего размера, только если есть уверенность, что принимающая сторона сможет их обработать.