IPv4
| Название: |
Internet Protocol version 4 |
|---|---|
| Уровень (по модели OSI): |
Сетевой |
| Семейство: | |
| Назначение протокола: |
Адресация |
| Спецификация: | |
| Основные реализации (клиенты): | |
| Основные реализации (серверы): |
IPv4 (англ. Internet Protocol version 4) — четвёртая версия IP протокола, первая широко используемая версия.
IPv4 описан в RFC 791 (сентябрь 1981 года), заменившем RFC 760 (январь 1980 года).
Содержание |
[править] Адресация
IPv4 использует 32-битные (четырёхбайтные) адреса, ограничивающие адресное пространство 4 294 967 296 (232) возможными уникальными адресами.
Удобной формой записи IP-адреса (IPv4) является запись в виде четырёх десятичных чисел (от 0 до 255), разделённых точками, например, 192.168.0.1. (или 128.10.2.30 — традиционная десятичная форма представления адреса)
[править] Представление адреса
| Форма записи | Пример | Преобразование из десятичной нотации с точками |
|---|---|---|
| Десятичная с точками (англ.) | 192.0.2.235 | — |
| Шестнадцатеричная с точками | 0xC0.0x00.0x02.0xEB | Каждый октет преобразуется в шестнадцатеричную форму |
| Восьмеричная с точками | 0300.0000.0002.0353 | Каждый октет преобразуется в восьмеричную форму |
| Шестнадцатеричная | 0xC00002EB | Конкатенация октетов из шестнадцатеричной нотации с точками |
| Десятичная | 3221226219 | 32-битное число в десятичной форме |
| Восьмеричная | 030000001353 | 32-битное число в восьмеричной форме |
[править] Зарезервированные адреса
Некоторые адреса IPv4 зарезервированы для специальных целей и не должны быть глобально маршрутизируемыми.
| Подсеть | Назначение |
|---|---|
| 0.0.0.0/8[1] | Адрес источника пакета |
| 127.0.0.0/8[1] | Подсеть для коммуникаций внутри хоста (см. localhost) |
| 169.254.0.0/16[2] | Канальные (link-local) адреса |
| 192.0.2.0/24[3] | Для примеров и документации |
| 198.51.100.0/24[3] | Для примеров и документации |
| 203.0.113.0/24[3] | Для примеров и документации |
| 198.18.0.0/15[4] | Для стендов тестирования производительности |
| 10.0.0.0/8[5] | Для использования в частных сетях |
| 172.16.0.0/12[5] | Для использования в частных сетях |
| 192.168.0.0/16[5] | Для использования в частных сетях |
| 240.0.0.0/4[6] | Зарезервировано для использования в будущем |
| 255.255.255.255[7] | Широковещательный адрес |
Подсеть 224.0.0.0/4 зарезервирована для многоадресной рассылки.
[править] Структура пакета
Пакет IP содержит 14 полей, из которых 13 являются обязательными. Четырнадцатое поле предназначено для необязательных опций. Поля используют порядок байтов от старшего к младшему, старшие биты идут первыми. Первый бит имеет номер 0. Таким образом, например, поле с версией находится в четырех старших битах первого байта.
| Смещение в битах | 0–3 | 4–7 | 8–13 | 14-15 | 16–18 | 19–31 | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Версия | Размер заголовка | Differentiated Services Code Point | Explicit Congestion Notification | Размер пакета | |||||||||||||||||||||||||||
| 32 | Идентификатор | Флаги | Смещение фрагмента | |||||||||||||||||||||||||||||
| 64 | Время жизни | Протокол | Контрольная сумма заголовка | |||||||||||||||||||||||||||||
| 96 | Адрес источника | |||||||||||||||||||||||||||||||
| 128 | Адрес назначения | |||||||||||||||||||||||||||||||
| 160 | Опции ( если размер заголовка > 5 ) | |||||||||||||||||||||||||||||||
| 160 или 192+ |
Данные |
|||||||||||||||||||||||||||||||
- Версия
- Первым полем пакета является версия протокола размером в четыре бита. Для IPv4 это 4.
- Размер заголовка
- Следующие четыре бита содержат размер заголовка пакета в 32-х битных словах. Поскольку число опций не постоянно, указание размера важно для отделения заголовка от данных. Минимальное значения равно 5 (5×32=160 бит, 20 байт), максимальное — 15 (60 байт).
- Differentiated Services Code Point (DSCP)
- Изначально называлось «тип обслуживания» (Type of Service, ToS), в настоящее время определяется RFC2474 как «Differentiated Services». Используется для разделения трафика на классы обслуживания, например для установки чувствительному к задержкам трафику, такому как VoIP большего приоритета.
- Указатель перегрузки (Explicit Congestion Notification, ECN)
- Предупреждение о перегрузке сети без потери пакетов. Является необязательной функцией и используется только если оба хоста ее поддерживают.
- Размер пакета
- 16-битный полный размер пакета в байтах, включая заголовок и данные. Минимальный размер равен 20 байтам (заголовок без данных), максимальный — 65535 байт. Хосты обязаны поддерживать передачу пакетов размером не менее 576 байт, но современные реализации обычно поддерживают гораздо больший размер. Пакеты большего размера, чем поддерживает канал связи, фрагментируются.
- Идентификатор
- Преимущественно используется для идентификации фрагментов пакета если он был фрагментирован. Существуют эксперименты по его использованию для других целей, таких как добавление информации о трассировке пакета для упрощения отслеживания пути пакета с подделанным адресом источника.[8]
- Флаги
- Поле размером три бита содержащее флаги контроля над фрагментацией. Биты, от старшего к младшему, означают:
- 0: Зарезервирован, должен быть равен 0[9].
- 1: Не фрагментировать
- 2: У пакета еще есть фрагменты
- Если установлен флаг «не фрагментировать», то в случае необходимости фрагментации такой пакет будет уничтожен. Может использоваться для передачи данных хостам, не имеющим достаточных ресурсов для обработки фрагментированных пакетов.
- Флаг «есть фрагменты» должен быть установлен в 1 у всех фрагментов пакета, кроме последнего. У нефрагментированных устанавливается в 0 — такой пакет считается собственным последним фрагментом.
- Смещение фрагмента
- Поле размером в 13 бит, указывает смещение текущего фрагмента от начала передачи фрагментированного пакета в блоках по 8 байт. Позволяет (213-1)×8=65528 байт смещения, что превышает максимальный размер пакета. Первый фрагмент в последовательности имеет нулевое смещение.
- «Время жизни» (Time to Live, TTL) пакета.
- Позволяет предотвратить закольцовывание пакетов в сети путем уничтожения пакетов, превысивших время жизни. Указывается в секундах, интервалы менее секунды округляются до одной секунды. На практике каждый маршрутизатор уменьшает время жизни пакетов на единицу (что справедливо при существующих типичных задержках в сети). Пакеты, время жизни которых стало равно нулю уничтожаются, а отправившему посылается сообщение ICMP Time Exceeded. На отправке пакетов с разным временем жизни основана трассировка их пути прохождения (traceroute).
- Протокол
- Указывает, данные какого протокола содержит пакет (например, TCP или ICMP). Присвоенные номера протоколов можно найти на сайте IANA[10].
- Контрольная сумма заголовка
- 16-битная контрольная сумма, используемая для проверки целостности заголовка. Каждый хост или маршрутизатор сравнивает контрольную сумму заголовка со значением этого поля и отбрасывает пакет, если они не совпадают. Целостность данных IP не проверяет — она проверяется протоколами более высоких уровней (такими, как TCP или UDP), которые тоже используют контрольные суммы.
- Поскольку TTL уменьшается на каждом шаге прохождения пакета, сумма тоже должна вычисляться на каждом шаге. Метод пересчета контрольной суммы определен в RFC1071[11].
- Адрес источника
- 32-х битный адрес отправителя пакета. Может не совпадать с настоящим адресом отправителя из-за трансляции адресов.
- Адрес назначения
- 32-х битный адрес получателя пакета.
- Опции
- За адресом назначения может следовать поле дополнительных опций, но оно используется редко. Размер заголовка в этом случае должен быть достаточным чтобы вместить все опции (с учетом дополнения до целого числа 32-х битных слов).
- Если список опций не является концом заголовка, он должен оканчиваться опцией 0x00. Опции имеют следующий формат:
| Поле | Размер в битах | Описание |
|---|---|---|
| Копировать | 1 | Устанавливается в 1 если требуется копировать опции в заголовки всех фрагментов. |
| Класс опции | 2 | 0 для «управляющих» опций и 2 для опций «измерений и отладки». 1 и 3 зарезервированы. |
| Номер опции | 5 | Указывает опцию. |
| Размер опции | 8 | Указывает размер опции (с учетом этого поля). Может не указываться для опций без аргументов. |
| Аргументы опции | Переменный | Дополнительные данные, используемые опцией. |
- Замечание: Размер заголовка более 5 указывается на присутствие опций и необходимость их обработки.
- Замечание: Поля «копировать», «класс опции» и «номер опции» иногда называют одним восьмибитным полем «тип опции».
[править] Исчерпание адресного пространства
Уже в 80-х годах стало очевидно, что распределение адресного пространства происходит значительно более быстрыми темпами, чем было заложено в архитектуру IPv4. Это привело сначала к появлению классовой адресации, позднее бесклассовой адресации, и в конечном итоге к разработке нового протокола IPv6.
В феврале 2011 года IANA выделила 5 последних блоков адресов RIRам. По прогнозам у региональных регистраторов блоки начнут заканчиваться во второй половине 2011 года.[12]
[править] См. также
[править] Примечания
- ↑ 1 2 RFC1700: Assigned Numbers (англ.)
- ↑ [http://www.rfc-editor.org/rfc/rfc3927.txt RFC3927: Dynamic Configuration of IPv4 Link-Local Addresses ] (англ.)
- ↑ 1 2 3 RFC5737: IPv4 Address Blocks Reserved for Documentation (англ.)
- ↑ RFC2544: Benchmarking Methodology for Network Interconnect Devices (англ.)
- ↑ 1 2 3 RFC1918: Address Allocation for Private Internets (англ.)
- ↑ RFC3330: Special-Use IPv4 Addresses (англ.)
- ↑ BROADCASTING INTERNET DATAGRAMS (англ.)
- ↑ Savage, Stefan Practical network support for IP traceback. Проверено 6 сентября 2010.
- ↑ В качестве первоапрельской шутки предложен означать злонамеренность пакета («evil bit»)
- ↑ Assigned Internet Protocol Numbers (англ.)
- ↑ Computing the Internet Checksum (англ.)
- ↑ IPv4 Address Report
| Это заготовка статьи о компьютерных сетях. Вы можете помочь проекту, исправив и дополнив её. |
| В другом языковом разделе есть более полная статья IPv4 (англ.)
Вы можете помочь проекту, расширив текущую статью с помощью перевода.
|
| Основные протоколы TCP/IP по уровням модели OSI | |||||||
|---|---|---|---|---|---|---|---|
| Прикладной |
BGP • HTTP • HTTPS • DHCP • IRC • SNMP • DNS • DNSSEC • NNTP • XMPP • SIP • BitTorrent • IPP • NTP • SNTP
|
||||||
| Представления | XDR • SSL | ||||||
| Сеансовый | ADSP • H.245 • iSNS • NetBIOS • PAP • RPC • L2TP • PPTP • RTCP • SMPP • SCP • SSH • ZIP • SDP | ||||||
| Транспортный | TCP • UDP • SCTP • DCCP • RUDP • RTP | ||||||
| Сетевой | IPv4 • IPv6 • IPsec • ICMP • IGMP • ARP • RARP • RIP2 • OSPF | ||||||
| Канальный | Ethernet • PPPoE • PPP • L2F • 802.11 Wi-Fi • 802.16 WiMax • Token ring • ARCNET • FDDI • HDLC • SLIP • ATM • DTM • X.25 • Frame relay • SMDS • STP | ||||||
| Физический | Ethernet • RS-232 • EIA-422 • RS-449 • RS-485 | ||||||
| Список портов TCP и UDP | |||||||