Структура IPv4

IPv4 - это 32 разрядное число, записанное для удобства побайтно. Если рассмотреть данное число в его двоичном представлении, то 4 самых старших бита (0, 1, 2, 3) классифицируют все адреса на глобальные сети:

   0   1                         7 8                                  31
  +---+--- ... -------------------+--- ... -----------------------------+
A | 0 | Идентификатор сети (7bit) | Идентификатор хоста (24 bit)        |
  +---+--- ... -------------------+--- ... -----------------------------+
   0   1   2                         15 16                            31
  +---+---+--- ... --------------------+--- ... ------------------------+
B | 1 | 0 | Идентификатор сети (14bit) | Идентификатор хоста (16bit)    |
  +---+---+--- ... --------------------+--- ... ------------------------+
   0   1   2   3                         23 24                        31
  +---+---+---+--- ... --------------------+--- ... --------------------+
C | 1 | 1 | 0 | Идентификатор сети (21bit) | Идентификатор хоста (8bit) |
  +---+---+---+--- ... --------------------+--- ... --------------------+
   0   1   2   3   4                                                  31
  +---+---+---+---+--- ... ---------------------------------------------+
D | 1 | 1 | 1 | 0 | Для группового вещания (28 bit)                     |
  +---+---+---+---+--- ... ---------------------------------------------+
   0   1   2   3   4                                                  31
  +---+---+---+---+--- ... ---------------------------------------------+
E | 1 | 1 | 1 | 1 | Зарезирвировано (28bit)                             |
  +---+---+---+---+--- ... ---------------------------------------------+

например:

190.50.5.128 - 10111110 00110010 00000101 10000000 - хост из сети класса B,
с адресом 10111110 00110010 00000000 00000000 - 190.50.0.0

Между глобальными сетями создана маршрутизация. Такое представление имеет ряд недостатков, связанных с таблицами маршрутизации и фиксированным набором хостов для каждого класса сети, поэтому со временем данный подход был вытеснен более гибким - безклассовая междоменная маршрутизация (CIDR). IP адрес записывается с использованием маски. Маска определяет подсеть, которой принадлежит данный адрес. Принято, что некоторое число байт в начале - идентификатор сети, а остальное адрес. Таким образом часто встречаются записи IP адреса в виде 190.50.5.128/26. Это означает, что первые 26 бит адреса идентифицируют сеть, а остальное - хост. То есть

190.50.5.129/26 - адрес из сети 10111110 00110010 00000101 10 | 000000 (190.50.5.128)

Таким образом можно гарантированно сказать, что перед нами идентификатор сети, а не хоста (не имея маски) только для глобальных сетей, то есть

  • если первый и последние 24 бита нулевые, то перед нами идентификатор сети класса А
  • если первые два байта - это 10 соответственно, а последние 16 - нулевые, то перед нами идентификатор сети класса B
  • если первые три байта - это 110 соответственно, а последние 8 - нулевые, то перед нами идентификатор сети класса C
  • если первые 4 байта 1110, то перед нами адрес группового вещания
  • если первые 4 байта 1111, то перед нами зарезервированные адреса

Грубые оценки количества IP адресов

Исходя из описанной выше структуры IPv4 адреса можно сделать следующие оценки. Из 2^32 адресов выделяется

  • 2^28 адресов группового вещание
  • 2^28 зарезервированных адресов
  • 2^7 адресов сетей класса А, в каждой может быть до 2^24-2 адресов хостов
  • 2^14 адресов сетей класса B, в каждой может быть до 2^16-2 адресов хостов
  • 2^21 адресов сетей класса C, в каждой может быть до 2^8-2 адресов хостов

Итого, всего адресов хостов в сети Интернет не более 2^7*(2^24-2) + 2^16(2^16-2) + 2^21*(2^8-2) = 3 753 869 056.


Comments

comments powered by Disqus