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