ЭВМ/ Так зачем нам нужен IP?

24.08.2011

Меня иногда приглашают поприсутствовать на собеседованиях на вакансию системного администратора Unix/Linux или чего-то подобного. На этих мероприятиях я люблю задавать один простой вопрос: зачем нам нужен IP протокол, и почему нельзя построить весь Интернет на коммутаторах? В самом деле, Ethernet мало чем отличается от IP. Адреса есть, причем их существенно больше (2^{48} против 2^{32}), доставка сообщений такая же негарантированная. Размер IP пакета больше Ethernet фрейма, но существенной роли это не играет, так как протоколы верхнего уровня все равно нарезают потоки данных на сегменты. Коммутаторы могут обмениваться таблицами коммутации, можно даже придумать схему маршрутизации по первым октетам MAC-адреса. Есть небольшая проблемка, связанная с broadcast штормами в больших Ethernet сегментах, но, мне кажется, она решаема. Так зачем же нам дополнительный уровень?

Аналогичный вопрос: зачем нужен UDP, если уже есть один протокол с негарантированной доставкой — IP?

Я думаю, вы все знаете правильный ответ, хотя от кандидатов я его не слышал. Суть, конечно же, в абстрагировании от технологии передачи. Наличие промежуточного слоя в виде IP позволяет легко связать абсолютно разные сети, скажем, Ethernet и PPP поверх GPRS. Если бы IP протокола не было, мы бы его непременно выдумали, начав делать конвертеры из одной среды передачи в другую.