Протокол Internet (IP)
По проводу можно переслать биты только из одного его конца в другой.
Internet же умудряется аккуратно передавать данные в различные точки,
разбросанные по всему миру. Как она это делает? Забота об этом возложена
на сетевой (межсетевой) уровень в эталонной модели ISO OSI.
О нем и поговорим.
Различные части Internet - составляющие сети - соединяются между
собой посредством компьютеров, которые называются ``узлы'';
так Сеть связывается воедино. Сети эти могут быть
Ethernet, Token Ring, сети на телефонных линиях, пакетные
радиосети и т.п. Выделенные линии и локальные сети суть аналоги
железных дорог, самолетов почты и почтовых отделений, почтальонов.
Посредством их почта движется с места на место. Узлы - аналоги
почтовых отделений, где принимается решение, как перемещать
данные (``пакеты'') по сети, точно так же, как почтовый узел
намечает дальнейший путь почтового конверта.
Отделения или узлы не имеют прямых связей со всеми остальными.
Если вы отправляете конверт из Долгопрудного (Московская область)
в Уфу (Башкирия), конечно же, почта не станет нанимать самолет,
который полетит из ближайшего к Долгопрудному аэропорта
(Шереметьево) в Уфу, просто местное почтовое отделение
отправляет послание на подстанцию в нужном направлении, та в свою очередь,
дальше в направлении пункта назначения на следующую подстанцию; таким образом
письмо станет последовательно приближаться к пункту назначения, пока не
достигнет почтового отделения, в ведении которого находится нужный
объект и которое доставит сообщение получателю. Для работы такой системы
требуется, чтобы каждая подстанция знала о наличествующих связях и о том,
на какую из ближайших подстанций оптимально следует передать адресованный
туда-то пакет. Примерно также и в Internet: узлы выясняют, куда
следует ваш пакет данных, решают куда его дальше отправить и отправляют.
На каждой почтовой подстанции определяется следующая подстанция, куда будет
далее направлена корреспонденция, т.е. намечается дальнейший путь
(маршрут) - этот процесс называется маршрутизацией.
Для осуществления маршрутизации каждая подстанция имеет таблицу,
где адресу пункта назначения (или индексу) соответствует указание
почтовой подстанции, куда следует посылать далее этот конверт
(бандероль, ). Их сетевые аналоги называются таблицами
маршрутизации. Эти таблицы рассылаются почтовым подстанциям
централизовано соответствующим почтовым подразделением. Время
от времени рассылаются предписания по изменению и дополнению
этих таблиц. В Internet, как и любые другие действия, составление
и модификация, таблиц маршрутизации (этот процесс тоже является
частью маршрутизации и называется так же) определяются
соответствующими правилами - протоколами
ICMP (Internet Control Message Protocol),
RIP (Routing Internet Protocol) и
OSPF (Open Shortest Path First).
Узлы, занимающиеся маршрутизацией, называются
маршрутизаторами.
А откуда сеть знает, куда назначен ваш пакет данных? От вас.
Если вы хотите отправить письмо и хотите, чтобы ваше письмо достигло
места назначения, вы не можете просто кинуть листочек бумаги в ящик.
Вам следует уложить его в стандартный конверт и написать на нем не
``на деревню дедушке'', как Ванька Жуков, а адрес получателя в
стандартной форме. Только тогда почта сможет правильно обработать ваше
письмо и доставить его по назначению. Аналогично в Internet имеется
набор правил по обращению с пакетами - протоколы.
Протокол Internet (IP) берет на себя заботы по адресации или
по подтверждению того, что узлы понимают, что следует делать с вашими
данными по пути их дальнейшего следования. Согласно нашей аналогии,
протокол Internet работает также как правила обработки почтового
конверта. В начало каждого вашего послания помещается заголовок, несущий
информацию об адресате, сети. Чтобы определить, куда и как доставить
пакет данных, этой информации достаточно.
Адрес в Internet состоит из 4 байт.
При записи байты отделяются друг от друга точками: 123.45.67.89 или 3.33.33.3 .
( Не пугайтесь, запоминать эти цифры вам не придется !)
В действительности адрес состоит из нескольких частей. Так как Internet есть
сеть сетей, начало адреса говорит узлам Internet, частью какой из
сетей вы являетесь. Правый конец адреса говорит этой сети, какой компьютер или
хост должен получить пакет (хотя реально не все так просто, но
идея такова). Каждый компьютер в Internet имеет в этой схеме уникальный
адрес, аналогично обычному почтовому адресу, а еще точнее - индексу.
Обработка пакета согласно адресу также аналогична. Почтовая служба знает,
где находится указанное в адресе почтовое отделение, а почтовое отделение
подробно знает подопечный район. Internet знает, где искать указанную сеть,
а эта сеть знает, где в ней находится конкретный компьютер. Для определения,
где в локальной сети находится компьютер с данным числовым IP-адресом,
локальные сети используют свои собственные протоколы сетевого уровня.
Например, Ethernet для отыскания Ethernet-адреса по IP-адресу
компьютера, находящегося в данной сети, использует протокол
ARP - протокол разрешения(в смысле различения) адресов.
(См. документацию по ARP: RFC 826, 917, 925, 1027)
Числовой адрес компьютера в Internet аналогичен почтовому индексу отделения
связи. Первые цифры индекса говорят о регионе (например, 45 - это Башкирия,
141 - подмосковье и т.д.), последние две цифры -
номер почтового отделения в городе, области или районе. Промежуточные цифры
могут относиться как к региону, так и к отделению, в зависимости от
территориального деления и вида населенного пункта. Аналогично существует
несколько типов адресов Internet (типы: A, B, C, D, E), которые
по-разному делят адрес на поля номера сети и номера узла, от типа
такого деления зависит количество возможных различных сетей и машин
в таких сетях.
По ряду причин (особенно, - практических, из-за ограничений оборудования)
информация, пересылаемая по сетям IP, делится на части (по границам байтов),
раскладываемые в отдельные пакеты. Длина информации внутри пакета
обычно составляет от 1 до 1500 байт. Это защищает сеть от монополизирования
каким-либо пользователем и предоставляет всем примерно равные права.
Поэтому же, если сеть недостаточно быстра, чем больше пользователей
ее одновременно пользует, тем медленнее она будет общаться с каждым.
Протокол IP является дейтаграммным протоколом,
т.е. IP-пакет является дейтаграммой. Это совершенно
не укладывается в модель ISO OSI, в рамках которой
уже сетевой уровень способен работать по методу виртуальных каналов.
Одно из достоинств Internet состоит в том, что протокола
IP самого по себе уже вполне достаточно для работы (в принципе).
Это совершенно неудобно, но, при достаточных аскетичности, уме
и упорстве удастся проделать немалый объем работы. Как только
данные помещаются в оболочку IP, сеть имеет всю необходимую
информацию для передачи их с исходного компьютера получателю.
Работа вручную с протоколом IP напоминает нам суровые
времена доперсональной компьютерной эры, когда пользователь
всячески угождал ЭВМ, укрощая свои тело, дух и эстетические
чувства. Об удобстве пользователя никто и не собирался думать,
потому что машинное время стоило во много раз дороже человеческого.
Но сейчас в аскетизме надобности уже нет. Поэтому следует построить
на основе услуг, предоставляемых IP, более совершенную и удобную
систему. Для этого сначала следует разобраться с некоторыми
жизненно важными проблемами, которые имеют место при пересылке
информации:
- Б?ольшая часть пересылаемой информации длиннее 1500 символов.
Eсли бы почта пересылала только почтовые карточки и отказывалась
бы от пересылки чего-либо большего, мы бы, например, лишились
увлекательнейшего литературного жанра - эпистолярного. Не говоря
уже о том, что практической пользы от такой почты было бы очень немного; - Возможны и неудачи. Почта, нередко бывает, письма теряет;
сеть тоже, бывает, теряет пакеты или искажает в пути информацию
в них. В отличие от почты, Internet может с честью выходить из таких
затруднительных положений; - Пакеты могут приходить в последовательности, отличной от
начальной.
Пара писем, отправленных друг за другом на днях, не всегда приходит
к получателю в том же порядке; то же верно и для Internet.
Таким образом, следующий уровень Internet должен обеспечить способ
пересылки больших массивов информации и позаботиться об ``искажениях'',
которые могут возникать по вине сети.