Длина адреса ip: Что такое IP адрес?

Семейный | по протоколам IPv4 и IPv6

Адреса IPv4 — это 32-битные числа, которые обычно отображаются в пунктирной десятичной нотации и содержат две основные части: префикс сети и номер хоста. В следующих темах описывается классивная адресация IPv4, пунктиальная декабральная нотация IPv4, подсети IPv4 с переменной длиной, понимание типов адресов IP-версии 6, типы адресов IPv6 и их использование в шлюзе сервисов серии RX ос Junos, а также конфигурация протокола IPv6 Семейства протоколов IPv6.

Понимание адресации IPv4

Адреса IPv4 — это 32-битные числа, которые обычно отображаются в пунктирной десятичной нотации. 32-разрядный адрес содержит два основных элемента: префикс сети и номер хоста.

Все хосты в одной сети имеют одинаковый сетевой адрес. У каждого хоста также есть адрес, который уникально идентифицирует его. В зависимости от масштабов сети и типа устройства, адрес либо глобально, либо локально уникален. Устройства, видимые пользователям за пределами сети (например, веб-сервисеры), должны иметь глобальный уникальный IP-адрес. Устройства, видимые только в сети, должны иметь уникальные IP-адреса на локальной основе.

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

Эта тема содержит следующие разделы:

  • Классивная адресация по протоколу IPv4
  • Пунктирное десятичное обозначение IPv4
  • Подсети IPv4
  • Маски подсети IPv4 с переменной длиной

Классивная адресация по протоколу IPv4

Для обеспечения гибкости числа адресов, распределенных по сетям разных размеров, IP-адреса 4-окт (32 бита) первоначально были разделены на три разные категории или классы: класс А, класс B и класс C. В каждом классе адресов указывается разное количество битов для префикса сети и номера хоста:

  • Адреса класса А используют только первый байт (октябрь), чтобы указать префикс сети, оставив 3 байта для определения числа отдельных хостов.

  • Адреса класса B используют первые 2 байта для указания префикса сети, оставляя 2 байта для определения адресов хоста.

  • Адреса класса C используют первые 3 байта для указания префикса сети, оставляя для идентификации хостов только последний байт.

В бинарном формате, x который представляет каждый бит в номере хоста, три класса адресов могут быть представлены следующим образом:

00000000 xxxxxxxx xxxxxxxx xxxxxxxx (Class A)
00000000 00000000 xxxxxxxx xxxxxxxx (Class B)
00000000 00000000 00000000 xxxxxxxx (Class C)

Поскольку каждый бит (x) в номере хоста может иметь значение 0 или 1, каждый из них имеет силу 2. Например, если для указания номера хоста доступны только 3 бита, возможны только следующие номера хоста:

111 110 101 100 011 010 001 000

В каждом классе IP-адресов количество битов с номером хоста, поднятых на мощность 2, указывает, сколько номеров хоста может быть создано для определенного сетевого префикса. Адреса класса А имеют2 24 (или 16 777 216) возможных номеров хостов, адреса класса B имеют 216 (или 65 536) номеров хостов, а адреса класса C имеют 28 (или 256) возможных номеров хоста.

Пунктирное десятичное обозначение IPv4

32-разрядные адреса IPv4 чаще всего выражаются в пунктирной десятичной нотации, в которой каждый окт (или байт) рассматривается как отдельный номер. В октете самый правый бит представляет собой 2( или 1), увеличиваясь влево до тех пор, пока первый бит в октете не будет 27 (или 128). Ниже приведены IP-адреса в бинарном формате и их пунктирные десятичные эквиваленты:

11010000 01100010 11000000 10101010 = 208.98.192.170
01110110 00001111 11110000 01010101 = 118.15.240.85
00110011 11001100 00111100 00111011 = 51.204.60.59

Подсети IPv4

Из-за физических и архитектурных ограничений на размер сетей часто приходится разбивать крупные сети на небольшие подсети. В такой подсетеной сети каждому интерфейсу требуется собственный номер сети и идентификация подсетевого адреса.

Примечание:

Мир IP-маршрутизации перешел к бесклассовой междоменной маршрутизации (CIDR). Как следует из названия, CIDR устраняет понятие адресных классов и просто передает сетевой префикс вместе с маской. В маске указывается, какие биты в адресе идентифицируют сеть (префикс). В этом документе обсуждается подсеть в традиционном контексте классифицировать IP-адреса.

На рис. 1 показана сеть, состоящая из трех подсетей.

Рис. 1. Подсети в сети

На рисунке 1 показаны три устройства, подключенные к подсети Alpha слева, три устройства, подключенные к подсети Beta справа, и третья подсеть подсети под названием «Гамма» которая взаимодействует с левой и правой подсетями по каналу WAN. В совокупности шесть устройств и три подсети содержатся в префиксе более крупного класса B. В этом примере организации назначается сетевой префикс 172. 16/16, который является адресом класса B. Каждой подсети назначается IP-адрес, который подпадает под префикс сети класса B.

Помимо совместного использования сетевого префикса класса B (первые два октата), каждая подсеть разделяет третий восьмитет. Поскольку мы используем сетевую маску/24 в сочетании с адресом класса B, третий октет идентифицирует подсеть. Все устройства подсети должны иметь один и тот же подсеть. В этом случае альфа-подсеть имеет IP-адрес 172.16.1.0/24, бета-подсеть имеет IP-адрес 172.16.2.0/24, а подсеть «Гамма» назначается 172.16.10.10/24.

В качестве примера можно привести один из этих подсетей, адрес 172.16.2.0/24 подсети бета-версии представлен в бинарной нотации как следующий:

10101100 . 00010000 . 00000010 . xxxxxxxx

Поскольку первые 24 бита в 32-битном адресе идентифицируют подсеть, последние 8 битов доступны для назначения вложениям хостов в каждой подсети. Для ссылки на подсеть адрес написан как 172. 16.10.0/24 (или просто 172.16.10/24). Указывает /24 на длину подсети маски (иногда пишется как 255.255.255.0). Эта сетевая маска указывает на то, что первые 24 бита идентифицируют сеть и подсети, а последние 8 битов идентифицируют хосты в соответствующей подсети.

Маски подсети IPv4 с переменной длиной

Традиционно подсети распределялись по адресу. Подсети имели 8, 16 или 24 важных бита, соответствующие2 24, 216 или 28 возможных хостов. В результате для сети, которая требовала только 400 адресов, пришлось выделить целую подсеть /16, тратя 65 136 (216 –400 = 65 136) адресов.

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

Например, предположим, что сеть с префиксом 192.14.17/24 делится на две небольшие подсети, одна из 18 устройств, а другая из 46 устройств.

Для размещения 18 устройств первая подсеть должна иметь 2 номера хоста5 (32). При назначении 5 бит на номер хоста остается 27 бит 32-битного адреса для подсети. Таким образом 192.14.17.128/27, IP-адрес первой подсети или следующий в бинарной нотации:

 11000000 . 00001110 . 00010001 . 100xxxxx

Подсетевая маска включает в себя 27 значительных цифр.

Для создания второй подсети из 46 устройств сеть должна учитывать 26 (64) числа хостов. IP-адрес второй подсети или 192.14.17.64/26

 11000000 . 00001110 . 00010001 . 01xxxxxx

Назначая биты адресов в более крупной /24 подсетевой маске, вы создаете две небольшие подсети, которые более эффективно используют выделенное адресное пространство.

Понимание адресного пространства IPv6, адресов, формата адресов и типов адресов

  • Понимание IP-версии 6 (IPv6)
  • Понимание типов адресов IPv6 и использования ОС Junos для шлюзов сервисов серии SRX
  • Область адресов IPv6
  • Структура адресов IPv6
  • Понимание типов адресов, адресов, адресов и адресов IPv6
  • Понимание формата адресов IPv6

Понимание IP-версии 6 (IPv6)

Постоянный экспансивный рост Интернета и необходимость предоставления IP-адресов для его адаптации — для поддержки растущего числа новых пользователей, компьютерных сетей, устройств с поддержкой Интернета, а также новых и улучшенных приложений для сотрудничества и связи — все чаще используют новый протокол IP. IPv6 с надежной архитектурой был разработан для удовлетворения этих текущих и ожидаемых требований в ближайшем будущем.

IP-версия 4 (IPv4) широко используется во всем мире сегодня для Интернета, внутрисетей и частных сетей. IPv6 основывается на функциональности и структуре IPv4 следующим образом:

  • Обеспечивает упрощенный и расширенный заголовок пакетов, чтобы обеспечить более эффективную маршрутизацию.

  • Улучшение поддержки мобильных телефонов и других мобильных вычислительных устройств.

  • Обеспечение повышенной и обязательной безопасности данных с помощью IPsec (который первоначально был разработан для него).

  • Обеспечивает более расширенную поддержку качества обслуживания (QoS).

Адреса IPv6 состоят из 128 бит вместо 32 бит и включают в себя область применения, которая определяет тип приложения, подходящего для адреса. IPv6 не поддерживает адреса вещания, но вместо этого использует многоадресные адреса для вещания. Кроме того, IPv6 определяет новый тип адреса под названием anycast.

Понимание типов адресов IPv6 и использования ОС Junos для шлюзов сервисов серии SRX

IP-версия 6 (IPv6) включает следующие типы адресов:

  • Одноадресной рассылки

    Адрес одноадресной передачи указывает идентификатор для единого интерфейса, к которому доставляются пакеты. Согласно IPv6, подавляющее большинство интернет-трафика, как предполагается, будет одноадресной, и именно по этой причине самый большой выделенный блок адресного пространства IPv6 предназначен для одноадресной адресации. Адреса unicast включают в себя все адреса, кроме loopback, многоадресной передачи, локальной одноадресной передачи по ссылкам и неопределенной.

    Для устройств серии SRX модуль потока поддерживает следующие типы пакетов одноадресной передачи IPv6:

    • Сквозной одноадресный трафик, включая трафик от виртуальных маршрутизаторов и маршрутизаторов. Устройство передает сквозной трафик в соответствии со своей таблицей маршрутизации.

    • Трафик, поступающий от хостов и устройств, непосредственно подключенных к интерфейсам серии SRX. Например, входящий трафик хоста включает в себя регистрацию, протокол маршрутизации и типы управления трафиком. Модуль потока отправляет эти пакеты одноадресной передачи в модуль маршрутизации и получает их от него. Трафик обрабатывается двигателем маршрутизации вместо модуля потока на основе протоколов маршрутизации, определяемых для модуля маршрутизации.

      Модуль потока поддерживает все протоколы маршрутизации и управления, которые работают в двигателе маршрутизации. Некоторые примеры — OSPFv3, RIPng, TELNET и SSH.

  • Многоадресной рассылки

    В многоадресном адресе указывается идентификатор для набора интерфейсов, которые обычно принадлежат к разным узлам. Она определяется ценностью 0xFF. Многоадресные адреса IPv6 отличаются по адресам одноадресной передачи ценностью октета высокого порядка адресов.

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

  • Любой выпуск

    В адресе anycast указывается идентификатор для набора интерфейсов, которые обычно принадлежат разным узлам. В соответствии с правилами протокола маршрутизации пакет с адресом любой передачи доставляются на ближайший узел.

    Нет разницы между адресами передачи и одноадресными адресами, за исключением адреса подсетевого маршрутизатора. Для адреса подсетевого маршрутизатора с любымадресной передачей биты с низким заказом, как правило, 64 или более, равны нулю. Адреса любой трансляции взяты из адреса одноадресной передачи.

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

Область адресов IPv6

Одноадресная и многоадресная передача IPv6 предназначена для визуализации адресов поддержки, в которой определяется приложение, подходящее для адреса.

Одноадресная передача адресов поддерживает глобальную область адресов и два типа локальных адресов:

  • Локальные одноадресные адреса, используемые только на единой сетевой ссылке. Первые 10 битов префикса идентифицируют адрес как локальный адрес канала. Локальные адреса не могут использоваться за пределами канала.

  • Локальные одноадресные адреса, используемые только в объекте или внутрисете. Сайт состоит из нескольких сетевых каналов. Локальные адреса сайта выявляют узлы внутри внутрисетевого интернета и не могут использоваться за пределами сайта.

Многоадресные адреса поддерживают 16 различных типов адресов, в том числе узла, канала, сайта, организации и глобального масштаба. 4-битное поле в префиксе определяет область адресов.

Структура адресов IPv6

Адреса unicast определяют единый интерфейс. Каждый адрес одноадресной передачи состоит из n битов для префикса и 128 n битов для ИДЕНТ-интерфейса.

Многоадресные адреса определяют набор интерфейсов. Каждый адрес многоадресной передачи состоит из первых 8 битов всех 1s, 4-битного поля флагов, 4-битного поля области охвата и 112-битного группового Идент-адреса:

11111111 | flgs | scop | group ID

В первом восьмиэтапном из 1s адрес определяется как адрес многоадресной передачи. Поле флагов определяет, является ли адрес многоадресной передачи хорошо известным адресом или временным адресом многоадресной передачи. Область применения определяет масштаб адресов многоадресной передачи. Идентификатор группы 112 битов идентифицирует группу многоадресной передачи.

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

Понимание типов адресов, адресов, адресов и адресов IPv6

Адресация — это область, где существует большая часть различий между IP-версией 4 (IPv4) и IPv6, но в основном изменения касаются способов внедрения и использования адресов. У IPv6 гораздо больше площади адресов, чем в предстоящем исчерпанном адресном пространстве IPv4. IPv6 увеличивает размер IP-адреса с 32 битов, которые составляют адрес IPv4, до 128 битов. Каждый дополнительный бит, удаваемый адресу, удваивает размер адресного пространства.

IPv4 был расширен с использованием таких методов, как преобразование сетевых адресов (NAT), что позволяет представлять ряд частных адресов по одному публичному адресу и временному назначению адресов. Хотя эти методы не соответствуют новым приложениям и средам, таким как новые беспроводные технологии, постоянно работающие среды и потребительские устройства на основе Интернета, эти методы не соответствуют.

Помимо увеличения площади адресов, адреса IPv6 отличаются от адресов IPv4 следующими способами:

  • Область применения, которая определяет тип приложения, к которому относится адрес

  • Не поддерживает адреса широковещательных передач, но вместо этого использует многоадресные адреса для передачи пакета

  • Определение нового типа адреса, который называется anycast

Понимание формата адресов IPv6

Все адреса IPv6 составляют 128 бит, написанные в виде 8 разделов по 16 бит каждый. Они выражаются в гексадецимальном представительстве, поэтому разделы варьируются от 0 до FF. Разделы делимитируются толстой кишкой, и ведущие нули в каждом разделе могут быть опущены. Если два или более последовательных раздела имеют все нули, они могут быть свернуты до двойной толстой кишки.

Адреса IPv6 состоят из 8 групп по 16-битным гексадецимальным значениям, разделенным двоеточием (:). Адреса IPv6 имеют следующий формат:

 aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa

Каждый из них aaaa представляет собой 16-битное гексадечимальное значение, и каждый из них a является 4-битным гексадецимальным значением. Ниже приведен адрес IPv6:

 3FFE:0000:0000:0001:0200:F8FF:FE75:50DF

Вы можете опустить ведущие нули каждой 16-битной группы следующим образом:

 3FFE:0:0:1:200:F8FF:FE75:50DF

Вы можете сжимать 16-разрядные группы нулей до двух двоеточия (::) как показано в следующем примере, но только один раз на адрес:

3FFE::1:200:F8FF:FE75:50DF

Префикс адреса IPv6 представляет собой сочетание префикса IPv6 (адрес) и длины префикса. Префикс принимает форму ipv6-prefix/prefix-length и представляет собой блок адресного пространства (или сети). Переменная ipv6-prefix соответствует общим правилам адресации IPv6. Переменный prefix-length представляет собой десятичестное значение, которое указывает на количество однозначных битов адреса с более высоким заказом, которые составляют сетевую часть адреса. Например, 10FA:6604:8136:6502::/64 — это возможный префикс IPv6 с сжатыми нулями. Префикс сайта по адресу IPv6 10FA:6604:8136:6502:/64 содержится в левом большинстве 64 битов, 10FA:6604:8136:6502.

Для получения дополнительной информации о текстовом представлении адресов IPv6 и префиксов адресов см. архитектуру адресов RFC 4291, IP-версии 6.

Ограничения

Устройства SRX300, SRX320, SRX340, SRX345, SRX380 и SRX550HM имеют следующие ограничения:

  • Изменения в источнике AS и назначения AS не сразу отражаются в экспортных потоках.

  • Не поддерживается трафик IPv6, транзитный через IP-туннель на базе IPv4 (например, IPv6-over-IPv4 с помощью интерфейса IP-x/x/x).

Настройка семейства протоколов IPv6

В командах конфигурации названо inet6семейство протоколов для IPv6. В иерархии конфигурации экземпляры inet6 параллельны экземплярам семейства inetпротоколов для IPv4. В целом, вы настраиваете inet6 настройки и указываете адреса IPv6 параллельно inet настройкам и адресам IPv4.

Примечание:

На устройствах серии SRX при настройке идентичных токов ввода-вывода в одном интерфейсе вы не увидите предупреждающего сообщения; вместо этого вы увидите syslog-сообщение.

На следующем примере показаны команды командной строки, которые вы используете для настройки адреса IPv6 для интерфейса:

[edit] 
user@host# show interfaces 
ge-0/0/0 {
    unit 0 {
        family inet {
            address 10.100.37.178/24;
        }
    }
}
[edit] 
user@host# set interfaces ge-0/0/0 unit 0 family ?  
Possible completions:
+ apply-groups         Groups from which to inherit configuration data
+ apply-groups-except  Don't inherit configuration data from these groups
> ccc                  Circuit cross-connect parameters
> ethernet-switching   Ethernet switching parameters
> inet                 IPv4 parameters
> inet6                IPv6 protocol parameters
> iso                  OSI ISO protocol parameters
> mpls                 MPLS protocol parameters
> tcc                  Translational cross-connect parameters
> vpls                 Virtual private LAN service parameters
[edit] 
user@host# set interfaces ge-0/0/0 unit 0 family inet6 address 8d8d:8d01::1/64 
user@host# show interfaces 
ge-0/0/0 {
    unit 0 {
        family inet {
            address 10. 100.37.178/24;
        }
        family inet6 {
            address 8d8d:8d01::1/64;
        }
    }
}
  • Обеспечение возможностей обработки на основе потоков для трафика IPv6

IP — Internet Protocol

65

C# и .NET — Сетевое программирование — IP — Internet Protocol

Набор протоколов TCP/IP разделен на уровни гораздо проще, чем предусмотрено моделью OSI. TCP и UDP — это транспортные протоколы, соответствующие уровню 4 OSI. Они используют IP, протокол уровня 3 OSI (сетевого уровня). Кроме этих трех протоколов, в наборе протоколов TCP/IP есть еще два базовых протокола, расширяющих IP: ICMP и IGMP. Функциональные возможности этих протоколов должны быть реализованы в уровне, содержащем IP.

Internet Protocol соединяет два узла. Каждый узел идентифицируется 32-битным адресом, называемым IP-адресом. При отправке сообщения IP-протокол получает его от протоколов верхнего уровня, TCP или UDP, и добавляет IP-заголовок, содержащий информацию о хосте-адресате.

Чтобы понять протокол IP, самый лучший способ — детально исследовать IP-заголовок. Содержащаяся в нем информация приведена в таблице:
















Структура IP-заголовка
ПолеДлинаОписание
Версия IP4 битаВерсия протокола IP, создавшего заголовок. Текущая версия протокола IP — 4.
Длина IP-заголовка4 битаДлина заголовка. Минимальное значение — 5 в единицах по 32 бита, или 4 байта. Следовательно, минимальная длина заголовка равна 20 байтам.
Тип обслуживания1 байтПоле типа обслуживания позволяет отправлять сообщения с нормальной или высокой производительностью, нормальной или увеличенной задержкой, нормальной или высокой надежностью. Это поле полезно при отправке в сеть дейтаграмм. Несколько разновидностей сетей используют эту информацию, чтобы выделить приоритет определенного трафика. Кроме того, сообщения управления сетью по сравнению с обычными сообщениями имеют повышенные приоритет и надежность.
Общая длина2 байтаВ этих двух байтах задается общая длина сообщения — заголовка и данных— в октетах. Максимальный размер IP-пакета равен 65 535 байтов, но для большинства сетей такой размер непрактичен. Самый большой размер, который может быть принят всеми хостами, равен 576 байтам. Длинные сообщения могут разделяться на фрагменты — такой процесс называется фрагментацией.
Идентификация2 байтаЕсли сообщение разбито на фрагменты, поле идентификации помогает собрать фрагменты сообщения. Все фрагменты одного сообщения имеют один и тот же идентификационный номер.
Флаги3 битаЭти флаги указывают, фрагментировано ли сообщение и является ли текущий пакет последним фрагментом сообщения.
Смещение фрагмента13 битовВ этих 13 битах задается смещение фрагментированного сообщения. Фрагменты могут поступать не в том порядке, в каком они были отправлены, поэтому смещение необходимо, чтобы восстановить исходные данные. Первый фрагмент сообщения имеет длину О, а в остальных фрагментах дается смещение, по которому следует поместить фрагмент. Единица смещения равна 8 байтам, так что значение смещения 64 означает, что второй фрагмент нужно присоединить к сообщению после 512 байтов первого пакета.
Время жизни1 байтЗначение «время жизни» (TTL) задает число секунд, которое сообщение может существовать, прежде чем будет отброшено. В этом значении необязательно указывается число секунд, поскольку каждый маршрутизатор, пересекаемый сообщением, должен уменьшить значение TTL на 1, даже если он затратил на обработку сообщения меньше одной секунды. Поэтому на практике в этом значении задается число допустимых «прыжков».
Протокол1 байтВ этом байте указывается протокол, используемый на следующем уровне стека протоколов для этого сообщения. Номера протоколов определены в доступной оперативной базе данных Internet Assigned Number Authority (IANA).
Контрольная сумма заголовка2 байтаЭто контрольная сумма одного заголовка. Поскольку заголовок изменяется с каждым отправленным сообщением, контрольная сумма также изменяется.
Адрес источника4 байтаВ этом поле указывается 32-битный IP-адрес отправителя.
Адрес назначения4 байтаЭто 32-битный IP-адрес, по которому отправлено сообщение.
ОпциипеременнаяЗдесь могут появляться необязательные поля. Например, можно указать, что это сообщение секретно или совершенно секретно. Также предусмотрена возможность будущих расширений.
ДополнениепеременнаяЭто поле содержит переменное число нулей, такое, чтобы заголовок заканчивался на 32-битной границе.

Internet Protocol (IP) определен в RFC 791. Документы RFC (Request for Comments) содержат техническую информацию о многих важных интернет-технологиях.

IP-адрес

Каждый узел в сети TCP/IP может быть идентифицирован 32-битным IP-адресом. Обычно IP-адрес представляется четырьмя десятичными значениями в таком виде: 192.168.0.1. Каждое из этих чисел представляет собой один байт IP-адреса и может находиться в пределах от 0 до 255.

IP-адрес содержит две части: сетевую часть и часть хоста. В зависимости от класса сети сетевая часть состоит из одного, двух или трех байтов:





КлассБайт 1Байт 2Байт 3Байт 4
AСеть (1—126)Хост (0-255)Хост (0—255)Хост (0—255)
BСеть (128—191)Сеть (0—255)Хост (0—255)Хост (0—255)
CСеть (192—223)Сеть (0—255)Сеть (0—255)Хост (0—255)

Первый бит адреса сети класса А должен быть 0, поэтому первый байт для сети класса А имеет двоичные значения в пределах от 00000001 (1) до 01111110 (126). Остальные три байта служат для идентификации узлов в сети, позволяя соединить в сети класса А более 16 млн. устройств.

Заметим, что в приведенной таблице адреса с числом 127 в первом байте пропущены, поскольку это зарезервированный диапазон адресов. Адрес 127.0.0.1 — это всегда адрес локального хоста, а 127.0.0.0 — адрес локальной обратной связи. Обратная связь используется для тестирования стека сетевых протоколов на одной машине, без прохода через сетевую интерфейсную плату.

В IP-адресе для сети класса В первые два бита всегда имеют значение 10, что дает диапазон от 10000000 (128) до 10111111 (191). Второй байт продолжает идентификацию сети значением от 0 до 255, оставляя два последних байта для идентификации узлов сети, всего до 65 534 устройств.

Сети класса С отличаются IP-адресом, в котором в первых трех битах установлено значение 110, разрешая значения в диапазоне от 11000000 (192) до 11011111 (223). В сети этого типа лишь один байт оставлен для идентификации узлов, поэтому к ней можно подсоединить только 254 устройства.

Число устройств, которое можно подсоединить к сети каждого из этих классов с особыми IP-адресами, обратно пропорционально числу возможных сетей этого типа. Например, сеть класса А, допуская 16 млн. хостов, оставляет только часть первого байта для идентификации сети. В результате во всем мире может существовать лишь 126 сетей класса А. Только крупные компании, подобные
AT & Т, IBM, Xerox и HP, имеют такой сетевой адрес. Когда компания запрашивает IP-сеть в органе, ведающем сетями, обычно она получает сеть класса С.

Если компания пожелает, чтобы больше хостов напрямую были подключены к Интернету, можно найти еще одну сеть класса С. Если для каждого хоста в сети не требуется прямого доступа к Интернету, можно использовать частный IP-адрес, и тогда применяется другая опция.

Сетевые адреса классов А, В и С оставляют свободными адреса, имеющие в первом байте значения от 224 до 255.

Агентство IANA выделяет номера сетей и публикует их перечень на странице http://www. iana.org/assignments/ipv4-adclress-space. Почти во всех странах есть региональные регистрационные ведомства, выдающие по запросам номера сетей. Региональные ведомства получают диапазон сетей от IANA.

Чтобы избежать исчерпания IP-адресов, хосты, не соединенные напрямую с Интернетом, могут использовать адреса из диапазонов частных адресов. Частные адреса уникальны не глобально, а только локально, внутри сети. Во всех классах сетей резервируются определенные диапазоны, которые могут использоваться как частные адреса хостами, не требующими непосредственного двустороннего доступа к Интернету. Такие хосты вполне могут обращаться к Интернету через шлюз, который не посылает во внешнюю сеть частный IP-адрес.

Подсети

Для соединения двух узлов в разных сетях требуется маршрутизатор. Номер хоста определяется 24 битами IP-адреса класса А, в то время как для сети класса С доступно лишь 8 битов. Маршрутизатор разделяет номер хоста на номер подсети и номер хоста в подсети. Включение дополнительных маршрутизаторов сократит объемы широковещательной передачи в сети, а это может сократить нагрузку в сети.

Новые маршрутизаторы главным образом включаются, чтобы улучшить возможность соединения между группами компьютеров в разных зданиях, городах и т. д. Рассмотрим пример разделения сети класса С с адресом 194.180.44 на подсети.

Такая сеть может фильтровать адреса с помощью маски подсети (subnet mask) 255.255.255.224. Первые три байта (состоящие из всех единиц) представляют собой маску для сети класса С. Последний байт — это десятичное значение двоичного представления 11100000, в котором первые три бита адреса хоста указывают подсеть, а последние пять битов представляют адрес хоста в конкретной подсети. Три бита подсети представляют 128, 64 и 32, и, таким образом, поддерживаются адреса подсетей, показанные ниже:

IPv6

Протокол, предшествовавший Internet Protocol, был разработан Управлением перспективных исследовательских работ Министерства обороны США (DARPA) в 1960-х годах, а набор протоколов TCP/IP получил признание лишь в 1980 г. Поскольку IP базировался на существовавших сетевых протоколах DARPA, он получил номер версии 4 и теперь известен как IPv4. В те времена, когда человечество в большинстве своем представляло себе мобильный телефон как трубку, которую можно снимать со стены и переносить к дивану, число хостов, поддерживаемых IP, казалось более чем достаточным.

Однако сегодня все хотят подключить к Интернету холодильники и газонокосилки, и IETF разработало новую версию IP — IPv6. Наиболее важное изменение этой версии по сравнению с IPv4 заключается в использовании для адресации не 32, а 128 битов, что позволит всем Tablet PC, Pocket PC, мобильным телефонам, телевизорам, автомобилям, газонокосилкам, кофеваркам и мусорным контейнерам стать полноправными хостами Интернета. 🙂

Кроме возможности назначить адрес почти каждому атому в Солнечной системе, в IPv6 появляется еще несколько полезных изменений:

  • Возможности расширенной адресации. Чтобы определить диапазон адресов групповой рассылки, в адреса IPv6 может включаться маршрутная информация о группах. Кроме того, появляется альтернативный адрес для отправки сообщения любому хосту или любой группе хостов.

  • Упрощение формата заголовка. Некоторые поля заголовка IPv4 удаляются, другие становятся необязательными. Однако полная длина заголовка IPv6 больше, чем в IPv4 из-за 128-битных адресов источника и назначения.

  • Улучшенная поддержка расширяемости. В будущем добавлять расширения к протоколу IPv6 станет легче. Ограничения на длину для опций удалено.

  • Маркирование потока. Для конкретных потоков трафика добавляется новая возможность. Поток — это последовательность пакетов, перемещающаяся от источника к назначению. В новом протоколе приложения могут предлагать аудио- и видеовозможности в реальном времени по различным потокам. Каждый поток может запрашивать обработку в реальном времени или особо качественную обработку у маршрутизаторов, через которые он распространяется.

  • Аутентификация и секретность. Добавляются расширения IPv6, поддерживающие аутентификацию, секретность и конфиденциальность отправляемых данных.

Номера портов

Для идентификации узлов сети протокол IP использует IP-адреса, а транспортный уровень (уровень 4) использует конечные точки для идентификации приложения. Чтобы указать конечную точку приложения, протоколы TCP и UDP вместе с IP-адресом используют номер порта.

Сервер должен предоставить известную конечную точку, с которой мог бы соединиться клиент, хотя номер порта может создаваться для клиента динамически. Номера портов TCP и UDP имеют длину 16 битов, их можно подразделить на три категории:

  • Системные (известные) номера портов

  • Пользовательские (зарегистрированные) номера портов

  • Динамические, или частные, порты

Системные номера портов находятся в диапазоне от 0 до 1023. Эти номера должны использоваться только системными, привилегированными процессами. Широко известные протоколы пользуются номерами портов, установленными по умолчанию из этого диапазона.

Пользовательские номера портов находятся в диапазоне от 1024 до 49151. Ваше серверное приложение обычно будет занимать один из этих портов, и вы, если захотите сделать его известным сообществу пользователей Интернета, сможете зарегистрировать номер порта в IANA.

Динамические номера портов принимают значения из диапазона от 49 152 до 65 535. Если не требуется знать номер порта до запуска приложения, подойдет порт в этом диапазоне. Клиентские приложения, которые соединяются с серверами, могут использовать такой порт.

Запустив утилиту netstat с опцией -а, мы увидим перечень всех используемых в данный момент портов и указание о состоянии соединения — находится ли соединение в состоянии прослушивания или соединение уже было установлено:

В файле services из каталога <windir>\system32\drivers\etc перечислены многие предопределенные пользовательские и системные номера портов. Если порт содержится в перечне этого файла, то утилита netstat вместо номера порта отобразит имя протокола.

sql — максимальная длина IP-адреса клиента

спросил

Изменено
5 лет, 9 месяцев назад

Просмотрено
176 тысяч раз

Возможный дубликат:
Максимальная длина текстового представления адреса IPv6?

Какой максимальный размер столбца базы данных, в котором хранятся IP-адреса клиентов, вы бы порекомендовали? У меня сейчас установлено значение 16, но могу ли я получить более длинный IP-адрес, чем IPv6 и т. д.?

  • sql
  • база данных
  • дизайн базы данных

5

Существует предостережение относительно общей 39-символьной структуры IPv6. Для сопоставленных IPv4-адресов IPv6 строка может быть длиннее (более 39 символов).символы). Пример, чтобы показать это:

IPv6 (39 символов):

 ABCD:ABCD:ABCD:ABCD:ABCD:ABCD:ABCD:ABCD
 

IPv4-сопоставленный IPv6 (45 символов):

 ABCD:ABCD:ABCD:ABCD:ABCD:ABCD:192.168.158.190
 

Примечание: последние 32 бита (соответствующие адресу IPv4) могут содержать до 15 символов (поскольку IPv4 использует 4 группы по 1 байту и отформатирован как 4 десятичных числа в диапазоне 0-255, разделенных точками ( . символа), поэтому максимум ДДД.ДДД.ДДД.ДДД ).

Таким образом, правильная максимальная длина строки IPv6 равна 45.

На самом деле это был вопрос викторины на тренинге по IPv6, который я посещал. (Мы все ответили 39!)

4

Для IPv4 вы могли бы сохранить 4 необработанных байта IP-адреса (каждое из чисел между точками в IP-адресе равно 0-255, т. е. один байт). Но тогда вам придется переводить вход и выход из БД, а это грязно.

Адреса IPv6 имеют длину 128 бит (в отличие от 32-битных адресов IPv4). Обычно они записываются в виде 8 групп по 4 шестнадцатеричных цифры, разделенных двоеточиями: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 . 39 символов подходят для хранения адресов IPv6 в этом формате.

Редактировать: Однако есть предостережение, см. Ответ @Deepak для получения подробной информации об адресах IPv6, отображаемых в IPv4. (Правильная максимальная длина строки IPv6: 45 символов .)

12

Если вы хотите обрабатывать IPV6 в стандартной записи, есть 8 групп по 4 шестнадцатеричных цифры:

 2001:0dc5:72a3:0000:0000:802e:3370:73E4
 

32 шестнадцатеричных цифры + 7 разделителей = 39 символов.

ВНИМАНИЕ: Если вы также хотите, чтобы адреса IPV4 отображались как адреса IPV6, используйте символы 45 , как предлагает @Deepak.

1

Возьмите это у того, кто пробовал все три способа… просто используйте varchar(39)

Чуть менее эффективное хранилище намного перевешивает любые преимущества необходимости преобразовывать его при вставке/обновлении и форматировать при показе в любом месте.

1

Как описано в статье Википедии IPv6,

адреса IPv6 обычно записываются как
восемь групп по четыре шестнадцатеричных
цифры, где каждая группа отделена
через двоеточие (:)

Типичный адрес IPv6:

 2001:0db8:85a3:0000:0000:8a2e:0370:7334
 

Длина 39 символов. Адреса IPv6 имеют длину 128 бит, поэтому вы могли бы использовать двоичный (16) столбец, но я думаю, что я бы придерживался буквенно-цифрового представления.

1

Если вы просто сохраняете его для справки, вы можете сохранить его как строку, но если вы хотите выполнить поиск, например, чтобы увидеть, находится ли IP-адрес в какой-либо таблице, вам нужно «каноническое представление». Преобразование всего этого в (большое) число — это правильно. Адреса IPv4 можно хранить в виде длинного целого числа (32 бита), но для хранения адреса IPv6 вам потребуется 128-битное число.

Например, все эти строки на самом деле являются одним и тем же IP-адресом: 127.0.0.1, 127.000.000.001, ::1, 0:0:0:0:0:0:0:1

IPv4 использует 32 бита, в форма:

 255.255.255.255
 

Я полагаю, это зависит от вашего типа данных, храните ли вы просто строку с типом CHAR или используете числовой тип.

IPv6 использует 128 бит. У вас не будет более длинных IP-адресов, если вы не включите в них другую информацию.

IPv6 сгруппирован в наборы из 4 шестнадцатеричных цифр, разделенных двоеточиями, например (из Википедии):

 2001:0db8:85a3:0000:0000:8a2e:0370:7334
 

Вы можете безопасно хранить его как длинную строку из 39 символов, если захотите. Однако есть и другие сокращенные способы написания адресов. Наборы нулей могут быть усечены до одного 0, или наборы нулей могут быть полностью скрыты двойным двоеточием.

1

Люди говорят о символах, когда можно сжать IP-адрес в необработанные данные.

В принципе, поскольку мы используем только IPv4 (32-битный) или IPv6 (128-битный), это означает, что вам нужно не более 128 бит пространства, или 128/8 = 16 байт !

Что намного меньше, чем предлагаемые 39 байт (при условии, что кодировка — ascii).

Тем не менее, вам придется декодировать и кодировать IP-адрес в/из необработанных данных, что само по себе является тривиальной задачей (я делал это раньше, см. PHP ip2long() для 32-битных IP).

Редактировать: inet_pton (и его противоположность, inet_ntop() ) делает то, что вам нужно, и работает с обоими типами адресов. Но будьте осторожны, в Windows он доступен с версии PHP 5.3.

2

ip — Максимальная длина текстового представления адреса IPv6?

спросил

Изменено
6 месяцев назад

Просмотрено
194k раз

Я хочу сохранить данные, возвращенные $_SERVER["REMOTE_ADDR"] в PHP в поле БД, на самом деле довольно простая задача. Проблема в том, что я не могу найти надлежащей информации о максимальной длине текстового представления адреса IPv6, которое веб-сервер предоставляет через $_SERVER["REMOTE_ADDR"] .

Меня не интересует преобразование текстового представления в 128 бит, в которых обычно закодирован адрес, я просто хочу знать, сколько максимум символов необходимо для хранения любого IPv6-адреса, возвращаемого $_SERVER["REMOTE_ADDR"] .

  • ip
  • ip-адрес
  • ipv6

7

45 символов .

Вы можете ожидать, что адрес будет

 0000:0000:0000:0000:0000:0000:0000:0000
 

8 * 4 + 7 = 39

8 групп по 4 цифры, между которыми 7 : .

Но если у вас есть адрес IPv6, сопоставленный с IPv4, последние две группы могут быть записаны в базе 10, разделенной . , например. [::ffff:192.168.100.228] . Записано полностью:

 0000:0000:0000:0000:0000:ffff:192.168.100.228
 

(6 * 4 + 5) + 1 + (4 * 3 + 3) = 29 + 1 + 15 = 45

Обратите внимание, что это соглашение ввода/вывода — это по-прежнему 128-битный адрес, и для хранения, вероятно, лучше всего стандартизировать необработанный формат, разделенный двоеточием, т.е. [0000:0000:0000:0000:0000:ffff: c0a8:64e4] для указанного выше адреса.

12

В Linux см. константу INET6_ADDRSTRLEN (включите , см. man inet_ntop ). В моей системе (заголовок «in.h»):

 #define INET6_ADDRSTRLEN 46
 

Последний символ предназначен для завершения NULL, как я полагаю, поэтому максимальная длина составляет 45, как и другие ответы.

4

Ответил на мой вопрос:

IPv6-адреса обычно записываются в виде восьми групп из четырех шестнадцатеричных цифр, где каждая группа отделяется двоеточием (:).

Максимум 39 символов.

3

Как указано, стандартный адрес ipv6 состоит не более чем из 45 символов, но адрес ipv6 может также включать конечный %, за которым следует строка «область действия» или «зона», которая не имеет фиксированной длины, но обычно представляет собой небольшое положительное целое число или имя сетевого интерфейса, поэтому на самом деле оно может быть больше 45 символов.