2015-02-20 2 views
1

Я новичок в Java и сети, при написании программы Java сокетов Я обнаружил, что, IPv4 адрес может иметь максимальное значение 255.255.255.255Почему адрес IPv4 находится в байтах и ​​не может находиться в целочисленном диапазоне?

Кроме того, 255 максимальное значение байта.

Мое сомнение почему, Целочисленный диапазон (не может быть) больше не используется (например, 23467.28321.1784.58256) IPv4 Адрес?

+3

Потому что так написано спецификацию. – SLaks

+3

Поскольку кодирование на 4 байта показалось достаточно в то время. –

+4

Адреса IPv4 состоят из октатов 4 '8 бит'. Так оно и было, и так оно и будет. – Richard

ответ

3

IPv4 использует 32-разрядные (четырехбайтовые) адреса, что ограничивает адресное пространство до 4228250626 (232) адресов.

4 байта означают 32 бита, поэтому каждый байт может иметь 8 бит, а максимальное значение 8 бит - 255. (11111111 в двоичном формате равно 255 в десятичной системе). Поэтому 255.255.255.255 - это максимальный диапазон IPv4.

И причина этого ограничения может быть, в то время не было много адресов IPv4, поэтому спецификации были спроектированы таким образом. :)

+2

фактическое максимальное количество перестановок - 4228250625 -> 255^4, 255 перестановок на сегмент, всего 4 сегмента и IPv4 - не «наследие». Его всемирный стандарт - который заменяется IPv6 в СЛЕДУЮЩИХ ДЕКАДЕЛЯХ ИЛИ СОСТОЯНИИ, потребуется много времени, чтобы заменить строго IPv4 - аппаратное обеспечение, никогда не моделирование в дата-центрах – specializt

+1

По существу я имел в виду, что он был разработан, когда не так много адресов было требуется, может быть, его передача неправильного значения. Я удалю его. :) – Batty

+1

благодарим вас за понимание. – specializt

3

Пунктирная нотация (abc.def.geh.ijk) - это просто читаемый человеком способ выразить значение четырех октетов (байтов). Все адреса IPv4 имеют длину четыре октета, как это определено в RFC 791:

Адреса имеют фиксированную длину в четыре октета (32 бита).

Каждой группа цифр содержит десятичное значение байта, ограничивая таким образом значения до 0 - 255. Значения больше 255 не может быть отображен на байты, и, таким образом, не является действительными для адреса IPv4.