Какова цель точечно-десятичной записи?
Если все адреса IPv4 всегда записывались как 12 цифр без точек, это делает любой IP-адрес однозначным и, следовательно, все еще работает.
Например, 127.0.0.1 можно записать как 127000000001
Я чувствую, что это облегчит разбор и работу с IP-адресом. Если это так, то какова была цель десятичной записи? В чем преимущество использования десятичной записи?
3 ответа
Исследования показали, что люди могут читать только до пяти цифр, не начиная делать ошибки в положении этих цифр. Вот почему люди начинают группировать числа в тысячи. Например, чтение:
1578124
трудно разобрать быстро. Однако если мы представим это как:
1 578 124
Это намного проще.
Особенно, если есть много цифр с таким же значением, как:
1000001101111000100001
легко сбиться со счета
Причина, по которой они, вероятно, не хотели использовать пробелы, заключается в том, что большинство терминалов интерпретируют пробел как новый аргумент. Так:
ping 127 0 0 1
connect: Invalid argument
Будет интерпретироваться как четыре разных аргумента (хосты). Использование точек облегчает работу как людям, так и машинам.
Но адрес IPv4 состоит из четырех байтов (четыре числа от 0
в 255
). Это сделано для того, чтобы он мог компактно храниться в четырех байтах в сетевом пакете. В настоящее время это имеет меньшее значение, потому что пропускная способность настолько велика, что четыре байта не занимают время вообще. Но в первые дни сжатие адресов могло сэкономить много времени.
То же самое происходит и для адресов IPv6. Длинные последовательности нулей могут быть сокращены до ::
,
IP-адреса хранятся таким образом: например, "127.0.0.1" на самом деле 0x7F000001; нет никакого смысла в третьем представлении.
127 000 000 001 (сто двадцать семь миллиардов и один) более читабельно, чем 127000000001.
"127.0.0.1" более читабельно, чем 0x7F000001.
"Привет, мир!" более читабелен, чем 0x48656C6C6F20576F726C642100.
Привет, мир!
более читабельно, чем<h1>Hello World!</h1>
,Представления более читабельны, чем модели, которые они представляют.
Наша основная задача как разработчиков программного обеспечения - брать смоделированные данные и представлять их как пользовательский контент (или принимать пользовательский ввод и моделировать его как данные): пожалуйста, не отнимайте это у нас.
Каждый набор чисел в десятичной записи представляет байт в двоичном формате. Например:
127 -> 0111 1111
0 -> 0000 0000
1 -> 0000 0001
Таким образом, 127.0.0.1 представляет 01111111 00000000 00000000 00000001, как его видит компьютер. Если бы вы рассматривали это двоичное число как одно большое число, его фактическое десятичное значение было бы 2130706433, которое затем стало бы вашим IP-адресом, если бы оно не было для десятичной записи. По понятным причинам люди могут легче запомнить 127.0.0.1. Кроме того, если не использовать десятичную запись, это означает, что вы не можете исключить те начальные нули, которые делают его 127.0.0.1, а не 127.000.000.001.