IPv4

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 23 декабря 2021 года; проверки требуют23 правки.
Перейти к навигацииПерейти к поиску
IPv4
НазваниеInternet Protocol version 4
Уровень (помодели OSI)Сетевой
СемействоTCP/IP
Создан в1981
Назначение протоколаАдресация
СпецификацияRFC 791
Основные реализации (клиенты)реализации стека TCP/IP вWindows,Linux иBSD,Mac OS
Основные реализации (серверы)реализации стека TCP/IP вWindows,Linux иBSD
Логотип Викисклада Медиафайлы на Викискладе

IPv4 (англ. Internet Protocol version 4) — четвёртая версия интернет-протокола (IP). Первая широко используемая версия. Протокол описан вRFC 791 (сентябрь 1981 года), заменившемRFC 760 (январь 1980 года).

Содержание

Представление адреса

[править |править код]

IPv4 использует 32-битные (четырёхбайтные) адреса, ограничивающиеадресное пространство 4 294 967 296 (232) возможными уникальными адресами.

Традиционной формой записиIPv4-адреса является запись в виде четырёхдесятичных чисел (от 0 до 255), разделённых точками. Через дробь указывается длинамаски подсети.

Форма записиПримерПреобразование из десятичной нотации с точками
Десятичная с точками[англ.]192.0.2.235
Шестнадцатеричная с точками0xC0.0x00.0x02.0xEBКаждыйоктет преобразуется в шестнадцатеричную форму
Восьмеричная с точками0300.0000.0002.0353Каждый октет преобразуется в восьмеричную форму
Шестнадцатеричная0xC00002EBКонкатенация октетов из шестнадцатеричной нотации с точками
Десятичная322122621932-битное число в десятичной форме
Восьмеричная03000000135332-битное число в восьмеричной форме

Адресация: хосты и подсети

[править |править код]

Ранняя версия стандарта IP, согласноRFC 760 (англ.) (январь 1980), описывала жёсткое разделение адресного пространства на подсети и хосты. Первый октет обозначал адрес сети, за которым следовал локальный адрес хоста, занимавший оставшиеся три октета. Таким образом, стандарт допускал существование 28=256 сетей по 224=16 777 216 хостов в каждой.

Размер подсети фиксирован.

Классовая адресация

[править |править код]
Основная статья:Классовая адресация

Однако очень скоро выяснилось, что сетей слишком мало, они слишком большие, и адресация лишена гибкости. Поэтому уже в сентябре 1981 года вышелRFC 791 (англ.), который вводил так называемую классовую адресацию. Идея заключается в следующем: для гибкости в назначении адресов сетей и возможности использовать большое число малых и средних сетей адресное пространство было разделено на несколько логических групп и в каждой группе отводилось разное соотношение хостов и подсетей. Эти группы носят названия классов сетей и пронумерованы латинскими буквами: A, B, C, D и E. Деление основывается на старших битах адреса. Подробно адресация рассматривается вRFC 790 (англ.).

Класс А: 0.XXX.XXX.XXX — 127.XXX.XXX.XXX

Первый бит адреса равен нулю, таким образом, класс А занимает половину всего адресного пространства. Адрес сети занимает 7 бит, адрес узла — 24 бита, следовательно класс A содержит 128 подсетей по 16 777 216 адресов в каждой.

Например, подсеть 10.0.0.0 (класса А, содержит более 16,7 млн адресов от 10.0.0.0 по 10.255.255.255). По умолчанию зарезервирована, не маршрутизируется в интернете и используется для построения локальных и корпоративных сетей.

Класс B: 128.0.XXX.XXX — 191.255.XXX.XXX

Адрес начинается с битов 1,0, таким образом, класс B занимает четверть всего адресного пространства. Адрес сети занимает 14 бит, адрес узла — 16, следовательно класс B содержит 16 384 подсетей по 65 536 адресов в каждой

Например, сеть 169.254.X.X класса B с 65536 адресами. Зарезервирована для «канальных» адресов.

Класс C: 192.0.0.XXX — 223.255.255.XXX

Адрес начинается с битов 1,1,0, таким образом, класс C занимает 1/8 адресного пространства. Адрес сети занимает 21 бит, адрес узла — 8 бит, следовательно класс C содержит 2 097 152 сетей по 256 адресов в каждой.

Например, сеть 192.0.2.X имеет адреса с 192.0.2.0 по 192.0.2.255, зарезервирована для примеров в документации.

В 1990 году вRFC 1166 (англ.) описаны ещё два класса.

Класс D: 224.XXX.XXX.XXX — 239.XXX.XXX.XXX

Адрес начинается с битов 1,1,1,0. Класс D занимает 1/16 адресного пространства. Используется для многоадресной рассылки.

Класс Е: 240.XXX.XXX.XXX — 255.XXX.XXX.XXX.

Адрес начинается с битов 1,1,1,1. Такие адреса запрещены. Зарезервировано для использования в будущем.

Сравнительно размеры классов подсетей выглядят так:

классы:ABCDE

При классовой адресации размер подсети вычисляется из ip адреса.

Бесклассовая адресация

[править |править код]
Основная статья:Бесклассовая адресация

С ростом сети Интернет эта система оказалась неэффективной и была дополнена бесклассовой адресацией (CIDR). Была введена дополнительная метрика — маска подсети, определяющая, сколько бит адреса отводится на адрес сети, а сколько — на адрес узла.

Назначения подсетей

[править |править код]

Некоторые адреса IPv4 зарезервированы для специальных целей и не предназначены для глобальной маршрутизации[1]. Список подсетей специального назначения определёнRFC 6890. В таблице ниже приведены основные (список не полный).

ПодсетьНазначениеМаршрутизация
0.0.0.0/8[2]Адреса источников пакетов «этой» («своей») сети[1][3].Запрещена
0.0.0.0/32Всокетах с состоянием «listening» обозначает любые IP отправителя или любые сети получателя на текущем хосте. Может посылаться в сеть только в качестве адреса источника, если хосту ещё не назначен IP-адрес (обычно по протоколуDHCP). Не может быть использован как адрес назначения в сети.

В маршрутизаторах Cisco при попытке отправить пакет на адрес 0.0.0.0 он будет отправлен на широковещательный адрес наименьшей подсоединённой подсети (connected в таблице маршрутизации).

Запрещена
10.0.0.0/8[4]Для использования вчастных сетях.RFC 1918.Глобальная маршрутизация запрещена.
100.64.0.0/10Shared Address Space.RFC 6598. Для использования в сетях сервис-провайдера.Глобальная маршрутизация запрещена.
127.0.0.0/8[2]Подсеть для коммуникаций внутри хоста (см.localhost). Используется сетевая подсистема, но в действительности такие пакеты не проходят через сетевую карту. Если пакет с таким адресом назначения был получен из сети, то должен быть отброшен.Запрещена
169.254.0.0/16[5]Канальные адреса. Подсеть используется для автоматического назначения IP операционной системой в случае, если настроено получение адреса по DHCP, но ни один сервер не отвечает. Назначение осуществляется при помощи протокола APIPA (Automatic Private IP Addressing).только в частных сетях
172.16.0.0/12[4]Для использования вчастных сетях.RFC 1918.Глобальная маршрутизация запрещена.
192.0.0.0/24[6]IETF Protocol Assignments
192.0.0.0/29Dual-Stack Lite (DS-Lite).RFC 6333.IPv6 transition mechanisms[англ.]
192.0.0.170/32NAT64[англ.]
192.0.0.171/32DNS64
192.0.2.0/24[7]Для примеров в документации.Запрещена
192.88.99.0/24[1]Используются длярассылки ближайшему узлу.RFC 3068Глобальная маршрутизация запрещена.
192.88.99.1/32Применяется в качестве ретранслятора приинкапсуляцииIPv6 в IPv4 (6to4)[8]. Иными словами, этот IP не уникален. Его анонсируют многие компании. Пакет на этот адрес пойдёт до ближайшего хоста с этим IP, который распакует пакет и отправит его дальше по IPv6-маршрутизации.Глобальная маршрутизация запрещена.
192.168.0.0/16[4]Для использования в частных сетях.RFC 1918.Глобальная маршрутизация запрещена.
198.51.100.0/24[7]Для примеров в документации.Запрещена
198.18.0.0/15[9]Для стендов тестирования производительности.Только для тестов
203.0.113.0/24[7]Для примеров в документации.Запрещена
224.0.0.0/4[10]Используются длямногоадресной рассылки. Полный актуальный список зарезервированных блоков на сайтеIANA[1]. Разъяснения по зарезервированным мультикастовым подсетямRFC 5771.Глобально разрешена только для подсетей 233.0.0.0/8 и 234.0.0.0/8.
240.0.0.0/4[2]Зарезервировано для использования в будущем.Существует мнение, что эта подсеть больше никогда не будет использована, так как есть множество оборудования, не способного посылать пакеты в эту сеть.[источник не указан 796 дней]Запрещена
255.255.255.255/32[11]Ограниченныйшироковещательный адрес. Чаще всего используется как адрес назначения при поиске DHCP-серверов.Запрещена
все остальныеРаспределяютсярегиональными интернет-регистраторами. Могут бытьпровайдеро-независимыми.Глобально разрешена

Структура заголовка пакета

[править |править код]

Заголовок пакета IP содержит 14 полей, из которых 13 являются обязательными. Четырнадцатое поле предназначено для необязательных опций. Поля используютпорядок байтов от старшего к младшему, старшие биты идут первыми. Первый бит имеет номер 0. Таким образом, например, поле с версией находится в четырёх старших битах первого байта. При передаче многооктетных значений старший октет передаётся первым.

IPv4 Header Format
ОтступОктет0123
ОктетБит01234567012345670123456701234567
00ВерсияРазмер заголовкаDifferentiated Services Code PointExplicit Congestion NotificationРазмер пакета (полный)
432ИдентификаторФлагиСмещение фрагмента
864Время жизниПротоколКонтрольная сумма заголовка
1296IP-адрес источника
16128IP-адрес назначения
20160Опции (если размер заголовка > 5)
20 или 24+160 или 192+Данные
Версия
Первым полем заголовка пакета является версия протокола размером в четыре бита. Для IPv4 это 4.
Размер заголовка (Internet Header Length)
Следующие четыре бита содержат размер заголовка пакета в 32-битныхсловах. Поскольку число опций непостоянно, указание размера важно для отделения заголовка от данных. Минимальное значение равно 5 (5×32=160 бит, 20 байт), максимальное — 15 (60 байт).
Differentiated Services Code Point (DSCP)
Изначально называлось «тип обслуживания» (Type of Service, ToS), в настоящее время определяетсяRFC 2474 как «Differentiated Services». Используется для разделения трафика на классы обслуживания, например, для установки чувствительному к задержкам трафику, такому какVoIP, большего приоритета.
Указатель перегрузки (Explicit Congestion Notification, ECN)
Предупреждение о перегрузке сети без потери пакетов. Является необязательной функцией и используется, только если оба хоста её поддерживают.
Размер пакета
16-битный полный размер пакета в байтах, включая заголовок и данные. Минимальный размер равен 20 байтам (заголовок без данных), максимальный — 65535 байт. Хосты должны поддерживать передачу пакетов размером до 576 байт, но современные реализации обычно поддерживают гораздо больший размер. Пакеты большего размера, чем поддерживает канал связи, фрагментируются.
Идентификатор
Преимущественно используется для идентификации фрагментов пакета, если он был фрагментирован. Существуют эксперименты по его использованию для других целей, таких как добавление информации о трассировке пакета для упрощения отслеживания пути пакета с подделанным адресом источника[12].
Флаги
Поле размером три бита, содержащее флаги контроля над фрагментацией. Биты, от старшего к младшему, означают:
  • 0: Зарезервирован, должен быть равен 0[13].
  • 1: Не фрагментировать
  • 2: У пакета ещё есть фрагменты
Если установлен флаг «не фрагментировать», то в случае необходимости фрагментации такой пакет будет уничтожен. Может использоваться для передачи данных хостам, не имеющим достаточных ресурсов для обработки фрагментированных пакетов.
Флаг «есть фрагменты» должен быть установлен в 1 у всех фрагментов пакета, кроме последнего. У нефрагментированных устанавливается в 0 — такой пакет считается собственным последним фрагментом.
Смещение фрагмента
Поле размером в 13 бит, указывает смещение поля данных текущего фрагмента относительно начала поля данных первого фрагментированного пакета в блоках по 8 байт. Позволяет задать до (213−1)×8=65528 байт смещения. При учёте размера заголовка итоговое смещение может превысить максимальный размер пакета (65528 + 20 = 65548 байт). Первый фрагмент в последовательности имеет нулевое смещение.
«Время жизни» (Time to Live, TTL) пакета
Определяет максимальное количество маршрутизаторов на пути следования пакета. Наличие этого параметра не позволяет пакету бесконечно ходить по сети. Каждый маршрутизатор при обработке пакета должен уменьшить значение TTL на единицу. Пакеты, время жизни которых стало равно нулю, уничтожаются, а отправителю посылается сообщениеICMPTime Exceeded. На отправке пакетов с разным временем жизни основана трассировка их пути прохождения (traceroute). Максимальное значение TTL=255. Обычное начальное значение TTL=64 (зависит от ОС).
Протокол
Указывает, данные какогопротокола IP содержит пакет (например, TCP или ICMP). Присвоенные номера протоколов можно найти на сайтеIANA[14].
Контрольная сумма заголовка
16-битная контрольная сумма, используемая для проверки целостности заголовка. Каждый хост или маршрутизатор сравнивает контрольную сумму заголовка со значением этого поля и отбрасывает пакет, если они не совпадают. Целостность данных IP не проверяет — она проверяется протоколами более высоких уровней (такими, какTCP илиUDP), которые тоже используют контрольные суммы.
Поскольку TTL уменьшается на каждом шаге прохождения пакета, сумма тоже должна вычисляться на каждом шаге. Метод пересчёта контрольной суммы определён вRFC 1071[15].
Адрес источника
32-битный адрес отправителя пакета. Может не совпадать с настоящим адресом отправителя из-затрансляции адресов.
Адрес назначения
32-битный адрес получателя пакета. Также может меняться при трансляции адресов.
Опции
За адресом назначения может следовать поле дополнительных опций, но оно используется редко. Размер заголовка в этом случае должен быть достаточным, чтобы вместить все опции (с учётом дополнения до целого числа 32-битных слов). Присвоенные номера опций размещаются на сайте IANA.[16]
Если список опций не является концом заголовка, он должен оканчиваться опцией 0x00. Опции имеют следующий формат:
ПолеРазмер в битахОписание
Копировать1Устанавливается в 1, если требуется копировать опции в заголовки всех фрагментов.
Класс опции20 для «управляющих» опций и 2 для опций «измерений и отладки». 1 и 3 зарезервированы.
Номер опции5Указывает опцию.
Размер опции8Указывает размер опции (с учётом этого поля). Может не указываться для опций без аргументов.
Аргументы опцииПеременныйДополнительные данные, используемые опцией.
  • Замечание: Размер заголовка более 5слов указывает на присутствие опций и необходимость их обработки.
  • Замечание: Поля «копировать», «класс опции» и «номер опции» иногда называют одним восьмибитным полем «тип опции».
CopyClassNumberValueNameReference
0000EOOL — End of Options ListRFC791[17]
0011NOP — No OperationRFC791[17]
102130SEC — Security[RFC1108]
103131LSR — Loose Source RouteRFC791[17]
02468TS — Time StampRFC791[17]
105133E-SEC — Extended Security[RFC1108]
106134CIPSO — Commercial Security[draft-ietf-cipso-ipsecurity-01]
0077RR — Record RouteRFC791[17]
108136SID — Stream IDRFC791[17][RFC6814][1]
109137SSR — Strict Source RouteRFC791[17]
001010ZSU — Experimental Measurement[ZSu]
001111MTUP — MTU Probe[RFC1063][RFC1191][1]
001212MTUR — MTU Reply[RFC1063][RFC1191][1]
1213205FINN — Experimental Flow Control[Greg_Finn]
1014142VISA — Experimental Access Control[Deborah_Estrin][RFC6814][1]
001515ENCODE — ???[VerSteeg][RFC6814][1]
1016144IMITD — IMI Traffic Descriptor[Lee]
1017145EIP — Extended Internet Protocol[RFC1385][RFC6814][1]
021882TR — Traceroute[RFC1393][RFC6814][1]
1019147ADDEXT — Address Extension[Ullmann IPv7][RFC6814][1]
1020148RTRALT — Router Alert[RFC2113]
1021149SDB — Selective Directed Broadcast[Charles_Bud_Graff][RFC6814][1]
1022150В В В В В В В — Unassigned (Released 18 October 2005)
1023151DPS — Dynamic Packet State[Andy_Malis][RFC6814][1]
1024152UMP — Upstream Multicast Pkt.[Dino_Farinacci][RFC6814][1]
002525QS — Quick-Start[RFC4782]
003030EXP — RFC3692-style Experiment [2][RFC4727]
023094EXP — RFC3692-style Experiment [2][RFC4727]
1030158EXP — RFC3692-style Experiment [2][RFC4727]
1230222EXP — RFC3692-style Experiment [2][RFC4727]

Исчерпание адресного пространства

[править |править код]
Основная статья:Исчерпание IPv4-адресов

Уже в 1980-е годы стало очевидно, что распределение адресного пространства происходит значительно более быстрыми темпами, чем было заложено в архитектуру IPv4. Это привело сначала к появлениюклассовой адресации, позднеебесклассовой адресации, и в конечном итоге к разработке нового протоколаIPv6.

В феврале 2011 годаIANA выделила 5 последних блоков адресов дляRIR. Блоки свободных IP-адресов начали заканчиваться у региональных регистраторов с 2011 года[18].

25 ноября 2019 года были распределены последние свободные IPv4-адреса в Европе, странах бывшего СССР и на Ближнем Востоке[19]. Теперь получить IPv4-адрес можно будет, только если его освободит текущий владелец — например, закроется компания или какая-либо сеть освободит ненужный ей адресный ресурс.

См. также

[править |править код]

Примечания

[править |править код]
  1. 123RFC3330: Special-use IPv4 addressesАрхивная копия от 14 декабря 2011 наWayback Machine (англ.); заменёнRFC5735: Special-use IPv4 addressesАрхивная копия от 15 мая 2013 наWayback Machine (англ.)
  2. 123RFC1700: Assigned NumbersАрхивная копия от 1 января 2012 наWayback Machine (англ.)
  3. RFC1122: Requirements for Internet Hosts — Communication Layers [section-3.2.1.3]Архивная копия от 15 сентября 2008 наWayback Machine (англ.)
  4. 123RFC1918: Address allocation for private internetsАрхивная копия от 2 декабря 2011 наWayback Machine (англ.)
  5. RFC3927: Dynamic configuration of IPv4 link-local addressesАрхивная копия от 19 января 2012 наWayback Machine (англ.)
  6. RFC 6890: IANA IPv4 Special Purpose Address RegistryАрхивная копия от 17 октября 2012 наWayback Machine (англ.)
  7. 123RFC5737: IPv4 address blocks reserved for documentationАрхивная копия от 9 ноября 2011 наWayback Machine (англ.)
  8. RFC3068: An anycast prefix for 6to4 relay routersАрхивная копия от 21 января 2012 наWayback Machine (англ.)
  9. RFC2544: Benchmarking methodology for network interconnect devicesАрхивная копия от 9 ноября 2011 наWayback Machine (англ.)
  10. RFC3171: IANA guidelines for IPv4 multicast address assignmentsАрхивная копия от 15 мая 2012 наWayback Machine (англ.)
  11. RFC919: Broadcasting internet datagramsАрхивная копия от 26 ноября 2011 наWayback Machine (англ.)
  12. Stefan Savage. Practical network support for IP traceback . Дата обращения: 6 сентября 2010.
  13. В качествепервоапрельской шутки предложен означать злонамеренность пакета (evil bit)
  14. Assigned Internet Protocol NumbersАрхивная копия от 13 июня 2018 наWayback Machine (англ.)
  15. Computing the Internet ChecksumАрхивная копия от 9 июня 2011 наWayback Machine (англ.)
  16. IP OPTION NUMBERS . IANA. Дата обращения: 17 июня 2018. Архивировано 25 октября 2018 года.
  17. 1234567RFC791: Internet ProtocolАрхивная копия от 30 июля 2019 наWayback Machine (англ.)
  18. IPv4 Address Report . Дата обращения: 16 февраля 2011. Архивировано 1 апреля 2009 года.
  19. Publication date: 25 Nov 2019- news, ipv4, Ipv4 Depletion, ipv6, Press Release. The RIPE NCC has run out of IPv4 Addresses . RIPE Network Coordination Centre. Дата обращения: 27 ноября 2019. Архивировано 25 ноября 2019 года.
Перейти к шаблону «IPstack»
ОсновныепротоколыTCP/IP по уровняммодели OSI
Физический
Канальный
Сетевой
Транспортный
Сеансовый
Представления
Прикладной
Другие прикладные
Источник —https://ru.wikipedia.org/w/index.php?title=IPv4&oldid=149813594
Категории:
Скрытые категории: