Почему IPv4-адреса 32-разрядные?

Многие луны назад, когда я был просто wee bairn , начиная свою карьеру, у меня было собеседование для разработчика на низком уровне роль. Имея в то время только что узнали, как CIDR был реализован, я очень хотел продемонстрировать свои знания.

К сожалению, эта тактика не сработала для меня слишком хорошо. Я помню, что был полностью покрыт первым вопросом, который был задан (и, затем взъерошен, все пошло вниз). Вопрос был:

  

Почему являются адресами IPv4 32-разрядными?

Я с готовностью признался, что не ответил know , но я сделал знал, что исходный дизайн протокола разделил адресное пространство на 8-битный номер сети и 24-битный идентификатор хоста », поэтому я попытался рационализировать его на том основании, что разработчики протоколов представляли Интернет из нескольких сетей (в конце концов, изначально предполагалось связать несколько

Я вспоминаю, что интервьюер не удовлетворен моим ответом и предлагает мне, что причина real заключается в том, что он гарантированно помещается внутри long int в C, поэтому упрощает реализацию Детали. Будучи молодым и зелёным в то время, я принял это как разумный ответ и (до сегодняшнего дня) больше не думал об этом.

По какой-то причине разговор только что вернулся ко мне, и теперь, когда я размышляю над этим, это не кажется вполне правдоподобным:

  1. В соответствии с исходной схемой адресации, включающей поля сети и хоста фиксированного размера, маловероятно, чтобы разработчик имел хотел назначить конкатенацию двух полей одной переменной (I don у меня нет доступа к каким-либо ранним реализациям ИС, чтобы проверить, что они на самом деле делали на практике); и

  2. В то время, когда работа над TCP /IP началась, C не был стандартизирован, а de facto «lingua franca» разработки программного обеспечения низкого уровня, который он стал сегодня.

Было ли действительно обосновано предложение интервьюера? Если нет, то какие были реальными причинами, по которым разработчики протокола выбрали 32-битную адресацию?

30 голосов | спросил eggyal 15 Maypm14 2014, 19:16:36

3 ответа


20

Вот ссылка на видеовстречу с Vint Cerf (Апрель 2014), где он объясняет, как он думал, что этот интернет должен был быть только экспериментом:

  

Как мы думали об Интернете (думая, что это будет какое-то произвольное количество сетей, все взаимосвязанные - мы не знаем, сколько и мы не знаем, как они будут связаны), но national , мы думали, что « хорошо, может быть, будет два на страну » (потому что это было дорого: на данный момент Ethernet был изобретен, но он не был распространенный повсюду, как это было сделано несколько лет спустя).

     

Затем мы сказали «, сколько стран существует? » (две сети на страну, сколько сетей?), и у нас не было Google, чтобы спросить, поэтому мы догадались по 128 , и это будет 2 раза 128 - это 256 сетей (это 8 бит), а затем мы сказали «, сколько компьютеров будет в каждой сети? », и мы сказали «, как около 16 миллионов? »(это еще 24 бита), поэтому у нас был 32-разрядный адрес, который позволил завершить 4,3 млрд. , что, как я думал, в 1974/3 году было достаточно, чтобы сделать эксперимент!

Я уже опубликовал это как комментарий к ответу Йенс Линк, но я почувствовал, что он немного похож на поверхность.

ответил Daniel F 19 Mayam14 2014, 07:26:52
31

Легкий ответ: , потому что Vint Cerf решил так . Он думал, что он разрабатывает экспериментальный протокол и считает, что 32 бит для этого более чем достаточно; он не ожидал, что IPv4 будет использоваться в производственных системах, и поэтому больше не нужно было указывать размер адресного пространства.

На конференции Google IPv6 2008 он провел панельное обсуждение под названием Что будет выглядеть IPv6-Интернет? , во время которого он рассказал :

  Решение о размещении 32-битного адресного пространства было результатом битвы года среди кучки инженеров, которые не могли составить себе представление о 32, 128 или переменной длине. И после года боев я сказал: «Я сейчас в ARPA, я управляю программой, я плачу за этот материал и используя американские налоговые доллары», и я хотел добиться определенного прогресса, потому что мы не знал, будет ли это работать. Таким образом, я сказал 32 бита, этого достаточно для эксперимента, это 4,3 миллиарда завершений - даже оборонный отдел не нуждается в 4,3 миллиарда от чего-либо, и он не мог купить 4,3 миллиарда периферийных устройств, чтобы сделать все равно. Поэтому в то время, когда я думал, что мы проводим эксперимент, чтобы доказать технологию, и что если она сработает, у нас будет возможность сделать производственную версию. Ну - [смех] - он просто сбежал! - он вышел, и люди начали его использовать, а затем это стало коммерческой.

стенограмма Питер Э. Мюррей .

ответил Jens Link 15 Maypm14 2014, 19:25:40
-1

Word размер. Они пишут программное обеспечение, а не разрабатывают компьютерное оборудование, хотя я уверен, что у них была производительность и мобильность. В это время 32-битное слово word, longword или int или longInt или что-то еще. См. Выбор размера Word .

Они написали это программное обеспечение «в течение первых десятилетий 32-разрядных архитектур (с 1960-х по 1980-е годы)». - Wikipedia

ответил Ron Royston 8 Jpm1000000pmSun, 08 Jan 2017 20:30:29 +030017 2017, 20:30:29

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132