Картография Интернета



С «высоты птичьего полета» карта Интернета представляется множеством точек - IP-адресов, каждый из которых связан со всеми остальными. «Подлетев» поближе, мы увидим, что IP-адреса группируются в «стаи», на техническом языке именуемые сетями, а самих сетей существует огромное множество.

Классификация сетей ИнтернетаЧлены одной сети, как правило, обслуживаются одним «вожаком» - одним провайдером сетевых услуг и очень прытко контачат друг с другом, гораздо легче и быстрее, чем с членами чужих сетей.
Определить принадлежность узла к той или иной сети можно по его IP-адресу. Существует несколько различных типов сетей, отличающихся друг от друга максимально возможным количеством входящих в них узлов, от сетей-малюток с несколькими десятками абонентов до гигантских мегаполисов с миллионами узлов. Чем же вызвана такая вопиющая несправедливость?
Камень преткновения в ограниченной разрядности IP-адреса - при всем желании в жалкие 32 бита нельзя втиснуть больше, чем четыре миллиарда постоянных узлов. Учитывая все ускоряющие темпы роста Интернет - это совсем немного!
Сильно упрощая, можно сказать, что всякий IP-адрес состоит, по меньшей мере, из адреса сети и адреса узла в этой сети. Адрес сети занимает от одного до трех октетов. Из-за переменной длины адреса сети определить, принадлежат ли два IP-адреса одной или различным сетям, не так-то просто. Поэтому ниже приведена таблица, облегчающая решение этой задачи.
Попробуем этой таблицей воспользоваться. Например, есть у нас два адреса: 12.13.226.23 и 12.127.5.141. Старший, то есть первый слева, октет - 12 входит в диапазон от 1 до 126 и, следовательно, указывает на сеть класса А. Три остальных октета задают адрес узла в этой сети. Таким образом, оба IP-адреса принадлежат одной сети - 12.000.000.000. Между прочим, это сеть корпорации «Боинг». По первому адресу располагается ее веб-сайт (www.boeing.com), а по второму - какой-то ее маршрутизатор, обслуживаемый компанией AT&T.
Другой пример: возьмем адреса 191.222.067.129 и 191.221.067.128. По первом октету сразу определяем, что они относятся к сетям класса В. Адреса в таких сетях задаются двумя октетами, следовательно, второй октет слева -это продолжение адреса сети. У наших IP-адресов вторые октеты разные - 222 и 221. Выходит, эти узлы принадлежат различным сетям.
Чтобы построить карту Интернета остается только разобраться, как соединяются узлы одной сети и как сами сети взаимодействуют друг с другом.
Схемы сетейПри модемном соединении абоненты друг с другом и с внешним миром связываются через сервер провайдера (рис. 1). Для локальных сетей более характерно «параллельное» подсоединение - с внешним миром узлы по-прежнему общаются через выделенный сервер (шлюз), зато друг с другом - напрямую, без посредников (рис. 2).
Разумеется, это упрощенная модель - сети могут делиться на подсети, связанные между собой маршрутизаторами, а каждый узел локальной сети может принимать входящие звонки с одного или нескольких модемов. Таким образом, схема функционирования типичного провайдера сильно отличается от идеализированных моделей и ближе к рис. 3.
Сети, в свою очередь, соединяются между собой, причем не всегда напрямую, а зачастую через длинную цепочку промежуточных сетей. Самое интересное, что маршрут путешествия пакетов от одной сети к другой в большинстве случаев не единственный и не постоянный. Из Москвы в Петербург можно отправиться и на самолете, и на поезде, и на легковой машине, и... да мало ли еще на чем! Так и при соединении с сайтом microsoft.com случается, что один пакет направляется по одному трансатлантическому кабелю, другой из-за перегрузки маршрутизатора идет через спутник, третий - вновь по кабелю, но уже по другому.
Разумеется, это возможно только в тех случаях, когда сети соединены друг с другом множественным образом. Иначе путь только один, точно так же, как из таежной деревни Большие Грибы в Москву можно добраться лишь одним путем - сначала на санях до станции, а оттуда с кучей пересадок поездом до пункта назначения. И никаких вам ни самолетов, ни вертолетов, ни спутников...
Чтобы построить карту, необходимо отправиться в путешествие и наносить на бумагу свой маршрут и координаты обнаруженных достопримечательностей. В Интернете координатами служат IP-адреса, достопримечательностями - доменные имена, ну а в роли картографа выступает утилита tracert из штатной поставки Windows, скрупулезно отмечающая все промежуточные узлы, посещенные пакетом. Остается только выбрать маршрут путешествия. Куда бы нам отправиться? Маршрут 1Давайте посетим сайт www.aha.ru. Итак, открываем Сеанс MS-DOS, набираем команду tracert.exe www.aha.ru и ждем. Отчет о первом путешествии автора, пользующегося услугами провайдера krinel, показан на врезке «Маршрут 1».
О чем этот протокол говорит? Сначала пакеты попадают на «сортировочный пункт» - маршрутизатор cisco03.krintel.ru с IP-адресом 195.161.42.210. Обратившись к таблице (стр. 22), выясняем, что это сеть класса С, следовательно, адрес сети задается тремя старшими октетами и выглядит так 195.161.42.0. Затем пакеты направляются на «сборный пункт» -ns.krinel.ru, который, судя по адресу сети, принадлежит все тому же провайдеру, а затем - в другую сеть, 195.161.241.0, затем в следующую и, наконец, добираются до крупного провайдера Rostelecom, который и является провайдером провайдера krintel. Погуляв немного по серверам «Ростелекома», пакетики, устремляются в локальную сеть провайера Zenon, того, что владеет сервером www.aha.ru... Итак, первая линия на карте Интернета проведена. Попробуем теперь другой маршрут - исследуем траекторию путешествия пакетов к серверу NASA, расположенному в далекой Америке (см. «Маршрут 2»). Маршрут 2
Оказывается, начальная часть маршрута совпадает - куда бы мы ни шли, все равно попадаем в «Ростелеком», на базовый перевалочный пункт,
т. е. на ту железнодорожную станцию, куда из Больших Грибов приходится добираться на санях.
Впрочем, сани не всегда идут по одной колее - в прошлый раз пакет направлялся на московский сервер «Ростелекома», а сейчас - на ростовский! Но в целом начало пути у всех пакетов похожее (жирным шрифтом выделены совпадающие точки обоих маршрутов).
Продолжая поочередно соединяться с различными сетями, в некотором (весьма отдаленном) будущем мы сумеем построить карту, если не всего Интернета, то, по крайней мере, некоторой его части. А нельзя ли как-нибудь автоматизировать этот процесс? Увы, нет...
Так надо ли этим заниматься? По большому счету, вовсе не обязательно, но знать, как именно ваш провайдер связан с внешним миром, кто провайдер првайдера, подчас очень полезно. Проследим маршрут пакетов к серверу www.aha.ru, подключившись к другому провайдеру -itech (см. «Маршрут 3»).
Маршрут 3Заметно, что теперь пакеты доходят втрое быстрее (задержки 320 мс против 870). К тому же маршрут вдвое короче, а сам провайдер пользуется услугами Sprint, а не Rostelecom. Но самое интересное - посмотреть, каким образом идут пакеты от провайдера itech к провайдеру krintel. Самих провайдеров физически разделяет каких-то двадцать километров, поэтому, думается, маршрут пакетов будет очень коротким... Итак, «Маршрут 4» -в студию!
Ого! Двадцать четыре перехода, с заходом в Санкт-Петербург, Стокгольм, Лондон, Москву, Краснодар, Ростов... Вот это «короткая» дорога! Обогнуть чуть не всю Землю, чтобы попасть в исходную точку!
Маршрут 4Зная, как провайдер соединен с внешним миром, с другими странами и провайдерами, можно не задумываясь распознавать самый быстрый из нескольких зеркальных серверов, причем осмысленно, а не методом тыка!
Например, входя в сеть через провайдера krintel, бессмысленно пользоваться proxy-серверами провайдера itech - это только замедлит соединение. Напротив, зная, что у krintel связь с Америкой препаршивейшая, а с Японией даже быстрее, чем по России - имеет смысл найти бесплатный японский proxy и через него скачивать с сайта любимой фирмы новую beta-версию всем известного браузера.

Крис Касперски,
kk@sendmail.ru