Это - копия документа, находившегося на http://dz.ru. Авторские права, если не указано иначе, принадлежат Дмитрию Завалишину и/или Евгении Завалишиной. Все изменения, внесенные мной, находятся в этой рамочке.Пожалуйста, прочитайте disclaimer. |
Опубликовал вчера объявление о покупке IP-адреса с рук и сел грустить. Жарил картошку и грустил. Не потому, что настолько соскучился по жареной картошке, что жарил её в два часа ночи. По IP-адресам была моя грусть.
Когда-то в Интернете была благодать, какую редко встретишь. Каждый желающий по первому запросу e-mail-ом получал группу IP-адресов (т.н. сеть) и роутеры всего мира честно знали про все сети в мире, держа у себя в памяти их адреса.
Дальше Интернет стал расти не по дням, а по часам, и такая роскошь показалась кому-то излишней. Некто предположил, что если собирать адреса по географическому признаку в блоки, то жить станет легче - роутерам уже не придётся более знать про все адреса, а лишь про каждый блок. И тогда их можно будет не апгрейдить - память не добавлять, процессоры побыстрее не ставить...
Только вот при смене провайдера придётся менять адреса, ибо они теперь привязаны. Работаешь через одного провайдера - один адрес. Работаешь через другого - другой. А бекапа иметь не моги - никто тебе твой адрес отдельно роутить не будет, роутят только весь блок провайдера и если он, провайдер твой, лёг - и ты лежи, не рыпайся. Ишь, важная птица. Полежишь, не барин.
Да, конечно, работа роутера - страшная штука. Получив пакет, нужно, как минимум, определить, куда его деть. Пакет-то. В какой интерфейс. В тривиальном случае это делается путём просмотра таблицы роутинга, в которой прописано - куда такой адрес, куда - сякой. Пробегаем таблицу, находим там строку, под которую подходит адрес назначения текущего пакета, берём из этой строки номер интерфейса, в который нужно уронить пакет, роняем. Кошмарная работа. Для роутера, обслуживающего четыре канала по два мегабита в секунду каждый, при среднем размере пакета в 30 байт (для примера. я не знаю, каков средний размер пакета по всему Интернету), пакеты в роутер поступают в количестве примерно 35000 в секунду. И для каждого нужно найти роутинг. Если предположить, что собственно пересылкой пакета занимается специальный сопроцессор, а основной проц лишь отвечает на вопрос "кому", то можно бы посчитать, сколько нужно оному процессору выполнить операций в секунду. Можно? Не совсем. Всё ещё зависит от объёма памяти и сложности алгоритма. Для простого случая, когда мы лишь смотрим по адресу направление и шлём, получить ответ можно за одну команду процессора - достаточно взять 24 старших бита адреса и по ним, как по индексу, вынуть ответ из огромной таблицы. Целых 16 мегабайт будет занимать та таблица.
То есть с задачей справится любой приличный и неприличный процессор, у которого есть под боком более 16 мег ОЗУ.
Такое ли это тяжкое бремя, чтобы устраивать все эти проблемы с адресацией и собиранием сетей в блоки. Даже в эту стрёмную осень 16 мегабайт стоят не более полтинника (кошмар...).
В реальности, конечно, маршрутизация выполняется куда более запутанным методом, нежели простой выбор порта назначения из таблицы по адресу, но, собственно, кто сказал, что так и надо? Кучу сложных функций можно заменить табличными и свести маршрутизацию пусть не к одному, к нескольким, но лишь выборам из таблиц.
Правда, это пока мы пользуемся IP v4, у которого адреса - 32-битные, и то из 32 бит задействованы не все. Не совсем все. :-) То ли будет, когда придёт IP v6 со своими огромными адресами. С другой стороны, он так долго идёт, что уж сумлеваюсь я - придёт ли.
Реклама | ||
Выиграйте новый струйный принтер Lexmark Z11 или Lexmark Z51, на Ваш выбор! Online-викторина до 30 октября!
|
Агрегирование адресов (собирание их в блоки, которые маршрутизируются как единое целое), впрочем, преследует и другую цель, и третью. Вторая - это процессорная мощь. Ведь перед тем, как маршрутом воспользоваться его нужно построить. А это - нагрузка на процессора роутеров. И, главное, на каналы. Если агрегирования не учинять, то магистральные каналы Интернета будут завалены сообщениями о крошечных изменениях роутинга там и сям.
Или не будут?
Прикинем. Грубо, конечно, но прикинем. Положим, что четверть адресного пространства сетей Интернет используется. То есть занято 24-2 бита - 22, то есть порядка четырёх миллионов адресов сетей. Пусть информация о маршруте на каждую из них распространяется раз в 20 секунд в объеме 10 байт. Это опять грубая прикидка, есть много разных протоколов маршрутизации и каждый ведёт себя по-своему, но допустим, что среднее таково.
Таким образом мы имеем поток информации в два мегабайта в секунду. Некислый поток, его не во всякий канал утопчешь, да и что там останется для собственно полезного трафика - это вопрос.
Но учтём, что прикидки сделаны исходя из допущения, что весь Интернет живёт на протоколе обмена роутинговой информацией самого примитивного вида, класса RIP. Такие протоколы рассылают информацию всюду, обо всём и постоянно, что, конечно, неприемлемо, да и не нужно. Тем более, что RIP всё равно нельзя применять в мировых масштабах по другим причинам.
В RIP пакеты, несущие информацию о маршрутах заодно выполняют роль оповестителей маршрутизирующих узлов о том, что их соседи ещё живы. Вываливает на тебя сосед прорву информации о роутинге - значит жив. Замолчал - видать, помер. От этого можно отказаться, если информацию о том, какие из твоих соседей по Интернету живы, получать другим, не столь дорогим способом. Тогда и информацию о роутинге можно будет вываливать друг на друга не в виде регулярных рассылок, а лишь по факту изменения маршрутов.
Что уже са-авсем другое дело. Реально маршруты на узлы меняются весьма редко, поэтому при условии обмена лишь изменениями, и лишь существенными для данного масштаба изменениями, потребность в трафике упадёт в сотни раз. Поясню про масштаб. Если я перетащу свой компьютер в соседний дом, то маршрут к нему, конечно, изменится. Маршрутизаторы Митино Онлайн это учтут и изменят свои таблицы. Но вот остальному миру об этом знать вовсе нет причины - для него я как был доступен через Митино Онлайн, так и остался. А про внутренние изменения зачем же всем рассказывать...
Хорошо, положим, мы сократили таким образом трафик в 100-1000 раз. Это уже 2-20 килобайт в секунду, для сегодняшнего магистрального канала цифра вполне съедобная. Значит, всё же, можно обойтись без агрегации?
С третьей стороны, кому нужны IP-адреса сами по себе, чтобы так уж бороться против агрегации и за неизменность IP? Все работают с именами хостов, а IP-адреса получаются из имён посредством DNS, что позволяет менять оные адреса как перчатки, не нарушая, по сути, работу сети. Так что по идее агрегирование - не такая уж и беда. Вот только ещё бы адреса в 32-битном пространстве не кончались...
Гм. Пожалуй, Микрософт со своей "программой 32" несколько запоздал - за последние несколько лет 32-битность сдала позиции по всем направлениям - от файловых систем и адресов памяти до Интернета.
Оперативная память вертится около двух долларов за мегабайт. А флеш дошёл до $2.6 за мег. Эдак пойдёт - и никакого маграма не будет нужно, поставил флеш вместо ОЗУ и играй себе в персистенс. Правда, медленно и печально - ещё и из-за блочной структуры флеша, в который записывать можно не побайтно, а лишь кусками, как на винчестер. Тут, впрочем, спасает кеш, но он же приводит к проблемам с выключением питания - а ну, как не успеем переписать из кеша?
Нет, рано ещё. Ждём MAGRAM. :-)
Смешная штука - игры. Особенно если смотреть на них глазом разработчика, а не игрока. Например, такой момент. В большинстве игр, имеющих в своём составе понятие "деньги" существует минимум два чуда. Идеально Чёрное Идеально Горячее Экономическое Тело, способное вечно и беззаветно исторгать деньги и Идеально Чёрное Идеально Холодное Экономическое Тело, с таким же энтузиазмом их при необходимости поглощающее. Незамкнутая экономика - весёлая штука и с других точек зрения. Хорош, например, завод, который потребляет неограниченное количество сырья и производит в единицу времени количество продукции, ограниченное лишь сырьём. Не менее хорош и завод, клепающий три звездолёта в год без затрат сырья вообще и, соответственно, без необходимости его доставки, без возможности его нехватки а равно и нехватки рабочей силы.
Короче, беда с этими экономическими играми - сплошное они издевательство над здравым смыслом, который подсказывает, что в жизни на налоги уйдёт денег больше, чем на зарплату, если платить их полностью. Просто потому, что зарплату полностью тогда уж платить будет нечем. :-) А в игре - какие там налоги, смех один. В Sim City, если установить налоговую ставку в 50%, народ начинает из города постепенно сваливать, а если выставить такую, какая есть в нашей стране, то не проживёшь и года, как окажешься мэром пустого города. Правда, судя по скорости истечения людей из России после кризиса, нетрудно предположить, что кто-то скоро будет президентом пустой страны, но это уже отход от темы.
А по теме - грущу я. Хочу экономическую стратегию, в которой деньги не пропадают в никуда и не возникают из неоткуда. Чтоб и эмиссии с инфляцией, и фондовый рынок, и налоги, и оффшор...
Жизнь не предлагать.
Компьютерра провела опрос на тему "B каком году пленочные фотоаппараты станут раритетами?". Один из ответов я бы повесил на стену, если бы не лень:
"Никогда. Как по сей день не выходят из моды ламповые усилители и приемники. Лет через пять цифровые мыльницы будут общедоступны, а пленочные фотоаппараты перейдут в область дорогих раритетов, как автомобили." - Евгений Морев, сисадмин.
Перевод:
- Когда они станут раритетами?
- Никогда, Они просто станут раритетами.
"Как хорошо уметь читать". И как жаль, что в школе этому не учат.