Много лун назад, когда я был просто крошечное дитя , начином своей карьеры, у меня был собеседование на роль разработчиков низкого уровня. Только что узнав, как внедряется CIDR, я стремился показать свои знания.
К сожалению, эта тактика не сработала для меня. Я вспоминаю, что был полностью обескуражен самым первым заданным вопросом (и затем взволнованным, все пошло под гору). Вопрос был:
Почему IPv4-адреса 32-битные?
Я с готовностью признал , что я не знаю ответ, но я же знаю , что оригинальный дизайн протокола разделить адресное пространство в 8-битным номером сети и 24-битный идентификатор хоста, поэтому я попытался рационализировать это на том основании , что разработчики протоколов представляли себе Интернет в несколько сетей ( в конце концов, он был первоначально предназначен для связи вместе с специфически несколько) каждый из которых содержит множество хостов и, для простоты программирования, держал все выровненный по границам байтов.
Я вспоминаю, что интервьюер был недоволен моим ответом и предположил, что настоящая причина в том, что он гарантированно помещается long int
в C, поэтому упрощает детали реализации. Будучи молодым и зеленым в то время, я принял это как разумный ответ и (до сегодняшнего дня) больше не думал об этом.
По какой-то причине этот разговор только что вернулся ко мне, и теперь, когда я размышляю над ним, он кажется не совсем правдоподобным:
При исходной схеме адресации, включающей в себя поля сети фиксированного размера и поля хоста, маловероятно, что разработчик хотел бы присвоить объединение двух полей одной переменной (у меня нет доступа к каким-либо ранним реализациям IP, чтобы проверить, что они на самом деле делал на практике); а также
В то время, когда началась работа над TCP / IP, C не был ни стандартизирован, ни де-факто «языковым стандартом» разработки программного обеспечения низкого уровня, каким он стал сегодня.
Действительно ли предложение интервьюера было обосновано? Если нет, то были реальные причины , по которым разработчики протокола выбрали 32-битную адресацию?
источник
640 kB ought to be enough for anybody.
никто не ожидал, что у тостеров и холодильников будет доступ в Интернет.Ответы:
Вот ссылка на видеовстречу с Винтом Серфом (апрель 2014 г.), где он объясняет, как он думал, что этот интернет должен был быть только экспериментом:
Я уже опубликовал это в качестве комментария к ответу Дженса Линка, но я почувствовал, что он немного всплыл.
источник
Простой ответ: потому что так решил Винт Серф . Он подумал, что разрабатывает экспериментальный протокол, и считает, что 32-разрядных данных более чем достаточно для этой цели; он не ожидал, что IPv4 будет использоваться в производственных системах, и поэтому больше не задумывался о размере адресного пространства.
На конференции Google IPv6 2008 он провел панельную дискуссию под названием « Как будет выглядеть Интернет IPv6? во время которого он рассказал :
Стенограмма от Питера Э. Мюррей .
источник
Размер слова Они писали программное обеспечение, а не проектировали компьютерное оборудование - хотя я уверен, что они имели в виду производительность и портативность. В то время 32 бит был
word
,longword
или,int
илиlongInt
или как угодно. См. Выбор размера слова .Они написали это программное обеспечение «в течение первых десятилетий 32-битных архитектур (с 1960-х по 1980-е годы)». - Википедия
источник