<<<предыдущий список следующий>>>

Это - копия документа, находившегося на http://dz.ru. Авторские права, если не указано иначе, принадлежат Дмитрию Завалишину и/или Евгении Завалишиной. Все изменения, внесенные мной, находятся в этой рамочке.Пожалуйста, прочитайте disclaimer.


19 января 1998    

Вода раньше была куда мокрее, а сахар - слаще. Это вам кто угодно подтвердит. И Интернет раньше был куда "интернетнее", чем сейчас. Сейчас он несколько деградирует, причем за наш же счет. Это вам мало кто подтвердит - сегодня все с него балдеют, и радость глазки застит. На глубокие внутренние проблемы смотреть не всем охота... а уж решать их как следует, не отпинываясь и не делая временных подпорок...

Хотя, давайте по порядку. Где деградация, почемум мы ее кормим и почему не сможем остановиться.

Итак, деградация - в самой сути. Интернет - это всемирная глобалка, состоящая из... локалок! Интернет - сообщество локальных сетей. Единица для него - не машина, не узел, а сеть - пачка узлов, связанных Бог знает чем, но с точки зрения Интернета все они - в кучу. При построении таблиц маршрутизации он рассматривается именно так - минимальной единицей является локальная сеть - не менее 254 адресов хостов на пучок.

Что такое маршрутизация, роутинг? Это способность системы донести информацию (пакет) из точки А в точку Я не имея между ними прямого и безразрывного пути. Транзитом через какие-то другие точки, заранее неизвестные. Откройте окно с командной строкой, наберите "tracert dz-online.excimer.ru" - в 95-х и NT, "tracerte ..." в OS/2 и "traceroute... " в Юниксе. Каждая строка результата работы трассировщика показывает очередной маршрутизатор на пути от вас в Эксимер, в данном случае. Пакеты с данными, пробегая по этому пути, на каждом из маршрутизаторов отсылаются в том или ином направлении в соответствии с таблицами роутинга.

Таблица роутинга - это очень просто. Столб с табличками в зоопарке видели? "Обезьяны - налево, слоны - направо, дирекция - прямо". Вот то же самое, только для IP-адресов. Огромные таблицы, в которых указано, куда ехать, чтобы приехать в такое-то место.

Маразм в том, что таблица маршрутизации приличного роутера содержит, в идеале, список всех сетей, составляющих Интернет. Всех! В пределе - несколько миллионов. Сколько нужно памяти, чтобы сложить в нее несколько миллионов адресов? Десятки мегабайт. Сколько нужно времени, чтобы найти в такой таблице нужный маршрут? Порядка 44 команд процессора. Для бекбонного роутера - уже заметно долго. Правда, поиск можно реализовать в виде системы ассоциативной памяти - тогда быстродействие будет принципиально выше - порядка наносекунд при любом разумном объеме. Но дорого!

Держать в Интернетовских маршрутизаторах полные списки маршрутов - дорого! То есть, вроде бы надо, поскольку иначе сеть не будет работать, но - дорого. Причем экономить вроде бы не на чем. Было, пока в сеть не попер соцлагерь. Будучи на правах поначалу птичьих, он и стал мальчиком для битья. Обоснование было, конечно, разумным, а меры - не драконовскими, но, тем не менее, под основную идею Интернета была подложена бомба.

Что же случилось с соцлагерем? Да ничего особенного. Сущая безделица. Ему предложили кучковаться. Собираться пачками по нескольку подряд идущих адресов и маршрутизировать их скопом. Это резко сокращает нагрузку на маршрутизаторы и экономит их владельцам деньги, сокращаяя потребности в памяти и более быстрых железках. Ценой нашего удобства и полноценности нашей части Интернета.

Российский Интернет неполноценен. Не больше, и не меньше. Американец может получить себе в NIC-е IP-адрес сети, настроить на него 200 машин в фирме, и только потом выбрать провайдера. И по маршрутизаторам всего мира разойдется весть - такого-то роутить туда-то. Если он сменит провайдера, или снимется со всей фирмой, и переедет в другой штат, маршрутизаторы всего мира, опять же, об этом узнают. И от американца не потребуется никаких усилий. Так замышлялся Интернет. Это называлось - динамический роутинг.

Вам, мой соотечественник, эта радость недоступна. В Россию маршрутизируются определенные диапазоны адресов, которые затем делятся на блоки и раздаются провайдерам. Вы можете получить адрес из этого блока, но как только придумаете менять провайдера - придется менять и адрес. Не домен, слава Богу, а только цифровой адрес. Всех ваших хостов. Сколько их в фирме? Сто? Вот все сто и придется пробежать (если нет DHCP, правда.).

Что в этом смертельного? Смертельного - ничего. Это просто деградация, как я в начале и написал.

Почему будет хуже? Потому, что сеть растет, и такая метода разгрузки роутеров, путем скучковывания российских сетевиков, долго помогать не будет. Она хороша, пока есть явно выделенная Россия с относительно большим количеством хостов внутри, относительно малым числом сетей (мало, кто подключен выделенками - царствует диалап) и ограниченным числом каналов вовне. По мере усложнения канальной структуры примитивные схемы дробления адресного пространства начнут создавать больше проблем, чем приносить пользы. Ведь потеря детализации при роутинге чревата неоптимальностью маршрутов.

Если делать все так грубо и примитивно, как было сделано. А если с умом...

Лет с 10 тому назад некто умный (предположительно - Paul Farncis) предложил методику, получившую название Landmark Routing. Идея, которая стоит за этой схемой, взята из самой жизни. Представьте, что вы покупаете билет на самолет, собираясь посетить тетю в Питере. Когда кассир спрашивает у вас пункт назначения, вы же не называете ноемр квартиры, подъезд, этаж? Даже улицу умалчиваете! Достаточно только город назвать. Поэтому таблица маршрутизации пассажиров у авиадиспетчеров довольно мала - в ней перечислены лишь города, и совсем нет улиц и квартир. Не нужны!

Что же в Интернете? Идиотизм. Когда пакет приходит на роутер, последний в поисках дальнейшего пути перебирает практически ВСЕ возможные точки назначения. Потому как IP-адрес неструктуризован. По нему нельзя сказать навскидку - в Европу он едет или в Антарктиду. Собственно, агрегация российских адресов в блоки решала именно эту проблему - позволяла уже по части адреса уверенно сказать, не вдаваясь в подробности - "этого - в Россию, а там разберутся".

Landmark Routing решает ту же задачу, но заметно менее болезненно для клиентов и с существенно большей эффективностью.

К примеру, на сеть из нескольких десятков тысяч узлов при использовании Landmark Routing'а нужны таблицы маршрутизации всего в полтора десятка строк каждая. И сверхскоростная маршрутизация с использованием таких таблиц может быть достигнута относительно дешево.

И тот, кто воплотит ее в жизнь, возможно, будет править бал в завтрашнем сетевом сообществе.

И это, похоже, будет не Интернет. Интернет как-то не показал себя достаточно гибким технически и политически в последнее время.


Как устроен и почему хорош Landmark Routing? Во-первых, он сразу ставит четкую грань между двумя свойствами адреса - идентификацией и пригодностью для маршрутизации. И становится видно - эти две задачи требуют от адреса совсем разного.

Использование адреса для идентификации требует его уникальности и неизменности. Использование для роутинга - структурности и "географичности": элементы адреса должны нести информацию о пути доставки, причем разгруппированную по неким уровням. Как, например, в почтовом адресе - страна, город, улица, дом, квартира.

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

Попали в страну? Смещаемся по адресу на шаг ниже, детальнее. Текущая цель - город, по возможности стараемся въехать в него наиболее удачным способом, чтобы оказаться поближе к улице назначения. На этом этапе нас название страны уже не волнует, и при уточнении маршрута его можно не учитывать.

Таким образом на каждом шаге мы анализируем не весь адрес, а только одну или две его компоненты - в зависимости от того, насколько мы близки к цели.

Точно так же работает и Landmark Routing. Для каждого узла в сети строится его доставочный адрес. Он зависит от положения хоста и топологии сети, и потому генерируется системой автоматически. Для идентификации он не используется - для этой цели служит основной адрес, выдаваемый раз и навсегда. Неизменный, и не нужный ни для чего, кроме одной операции - по нему можно получить текущий доставочный, чтобы уж его использовать в дороге.

Доставочный адрес сегментирован. В нем, конечно, нет стран, городов и улиц, но есть нечто похожее - группы узлов, скапливающиеся вокруг некоторых центров - их и называют landmark-ами. Вешками эдакими. Хотите добраться до www.excimer.ru? Первая вешка, самая высокая - во-он тот хост первого уровня. Идите на него, а там - близко.

Причем, отметьте - не "идите через него" - это глупо и приведет к перегрузке этого узла. "Идите на него", в его сторону. По мере приближения глядите вокруг, как завидите вот такой-то хост второго уровня - идите на него. Подходя ближе ориентируйтесь на такой-то хост, и уж совсем вблизи - будет видно и сам пункт назначения.

Идея в том, что все хосты разделяются по уровням. Первый уровень (таких хостов всего несколько) "стоит высоко", его "видно" отовсюду. То есть, на практике, роутинг на него прописан у абсолютно всех узлов. Адрес близко расположеных к нему узлов начинается с идентификатора именно этого узла.

Второй уровень - "пониже". Его видать только вблизи. Соответственно, маршрут на него загнимает место в таблицах роутинга только близлежащих узлов. И так далее - чем "ниже" ранг узла, тем меньше кому он известен из соседей. А чтобы до него можно было добраться, в качестве ориентиров в свой доставочный адрес он включает и адреса более "высоких" и "видных" соседей.

В итоге, размер таблиц роутинга в такой схеме исчисляется десятками элементов, а не миллионами, как в традиционном Интернете. Правда, немного падает эффективность - некоторые маршруты оказываются неидеальными. Увы, в Интернете нынешнем - та же беда. Я знаю кучу путей из Москвы в Москву через Америку. Что значительно хуже, чем предполагаемая на уровне 0.95 неэффективность Landmark Routing-а.

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

PS: Disclaimer (отмазка) - я занимался проблемами Landmark Routing-а, и не могу точно сказать, что из изложенных идей принадлежит изначальному автору, что - мне, а что - коллективу АО "Диалог-Сети", где я работал над этой проблемой "много лет тому назад" c Черепаха Тортилла.


Генеральным спонсором журнала dz online является компания "Эксимер".
Спонсор не отвечает за содержание публикуемых материалов
.


Пишите нам! Редакции интересно знать мнение своих читателей. Если Вы не против опубликования Вашего письма, то, пожалуйста, указывайте это в самом письме.


www.reklama.ru. The Banner Network.

Rambler's Top100 Copyright c dz online, 1996-1998
Designed by Denis A. Kim