Прошло более тридцати пяти лет с тех пор, как началась эпоха бесконтрольной экспансии корпоративных локальных сетей, которые тогда представляли собой небольшие совокупности рабочих станций, соединенных в сегменты разделяемой широкополосной физической среды. В тех же сегментах находились и все разделяемые ресурсы.
Организации с более серьезными запросами по части доступа к данным скромно обходились мэйнфреймами с централизованной архитектурой. Владельцам же локальных сетей хотелось получить возможность интеграции своих маленьких островков офисной автоматизации путем соединения сегментов сети. Для этого были предназначены тогдашние мосты, маршрутизаторы, а в развитых архитектурах с мэйнфреймами, также и шлюзы. Все это сильно отличалось по функциям, в зависимости от замыслов разработчиков и производителей разных устройств.
В мире DEC (а тогда это действительно был целый мир) была разработана целостная программно-аппаратная концепция DECNET Phase IV, отразившая существовавшие на то время разграничения функций отдельных блоков, из которых, как из кирпичей, были выстроены все сети того времени.
Под влиянием этой концепции мировые закулисные силы международной стандартизации объединились с целью создания объективного научного обобщения возникающих закономерностей и решили увековечить их в виде пресловутой семиуровневой модели OSI/ISO. И теперь каждому, кто впервые попытается уяснить, для чего вообще служит активное сетевое оборудование, сразу же покажут на картинку, где в виде семи коробочек нарисованы все уровни этой модели.
В сети передачи данных модель OSI/ISO рассматривает процессы в любых двух равноправно связанных устройствах, как обеспечивающие виртуальный канал связи с процессом равного себе уровня на другом конце провода. Наличие уровней предполагает некую ступенчатость, и в принятой модели каждая ступень относится к скачку функциональности, возникающей при передаче данных с одного уровня на другой между процессами, запущенными на некотором узле сети. С каждым из них связывают протокол - способ взаимодействия на данном виртуальном уровне.
Стек протоколов - совокупность протоколов сразу всех уровней, сколько их есть. Почему уровней ровно семь? Китайцы бы, точно, насчитали их пять или восемь, по числу Драгоценных Сокровищ Будды (мы в своем рассмотрении остановимся на четырех).
Во всяком случае, в далеких восьмидесятых репитеры (repeaters) работали на уровне 1; мосты (bridges), на втором - канальном уровне; а маршрутизаторы (routers) на уровне 3, который называется собственно сетевым уровнем и отвечает за прокладку маршрута для пакетов и кадров между отдельными узлами и сегментами сети.
Устройства всех систем, на чью долю выпало в то время заниматься преобразованием протоколов выше уровня 3, а все они вынуждены обрабатывать не только заголовки пакета или кадра, но и читать сами сообщения, получили от ISO наименование шлюз, а по-английски - gateway, что вызвало негодование в мире TCP/IP, где это слово обозначает маршрутизатор уровня 3, и где только благодаря смене поколений сейчас можно видеть уступки терминологии ISO.
На самом деле, как вспоминает Боб Меткалф (Bob Metcalfe), изобретатель Ethernet, за свою историю маршрутизаторы поменяли несколько названий: сначала, до того как первые из них были построены, они назывались пакетными коммутаторами (packet switch), затем получили название процессоров сообщений интерфейса (interface message processors, или IMPS) и только потом, после того как в 1983 году стек TCP/IP был встроен в Unix, получили название шлюзов.
Уровни выше третьего существуют во всех протокольных стеках, и везде имеется свое собственное разделение их функций. Сколько их там, этих уровней, и кто может досчитать их до конца? Их используют и преобразуют между собой как сами сетевые прикладные программы, так и шлюзы TCP/IP в X.25, IPX в TCP/IP, разного рода конвертеры TCP/IP в SNA, имеющие огромную область применения и по сию пору.
А в 80-е годы основной проблемой считался грядущий переход тогда еще десятков тысяч закоренелых пользователей TCP/IP под знамена OSI. Судя по публикациям того времени, построение шлюза TCP/IP в протокольный стек OSI волновало создателей модели TCP/IP чуть ли ни больше всего, вот они и насчитали 7 уровней, как наименьший общий знаменатель, имея в виду эту приоритетную задачу.
Вышестоящему меньше видно
Низшие уровни трактуют пакеты высших уровней, как данные.
К ним они добавляют в виде обрамления свою служебную информацию для равного себе по уровню процесса на другом конце провода и передают все это еще ниже, пока информация не превратится в битовый поток в физической среде. Когда, в свою очередь, процесс некоторого уровня передает информацию наверх, он использует информацию из заголовков пакетов для организации виртуального взаимодействия на своем уровне, а затем удаляет эту информацию, скрывая ее от процесса вышестоящего уровня.
Благодаря устоявшейся стандартизации формата относительных смещений в заголовках пакетов передаваемых данных, которыми только и оперирует канальный уровень, границы между первыми тремя уровнями модели OSI/ISO очень четкие. В частности, рамки границ уровня 2 (или канального) для многих интерфейсов коммуникационных линий давно установлены МKТТ, а для разделяемой физической среды - несколько позже - знаменитыми спецификациями серии IEEE802.
В этих же спецификациях содержится разбиение канального уровня еще на два (LLC и MAC), которые вместе полностью определяют взаимную ориентацию устройств в пределах одного сегмента разделяемой физической среды.
Но даже если логические границы между уровнями 2 и 3 остаются незыблемыми, сегодняшние реализации протоколов, исполняющих независимо от конкретного формата канальных данных функции уровня 3, могут включать в себя параллельное кэширование данных LLC- и MAC-уровней для ускорения обработки пакетов.
На уровне третьем, в круге первом
Все сколько-нибудь крупные сети в наше время уже обросли метастазами и для поддержания жизни нуждаются в постоянном обследовании и диагностике.
Сеть масштаба предприятия или более крупная, и, тем более, распределенная сеть никогда не пребывает в завершенном состоянии, почти всегда отдельные связующие ее элементы находятся на грани истощения сил и часто уже не могут быть укреплены и подлежат замене.
Децентрализованные по своей природе сети на основе TCP/IP и IPX слились в корпоративных сетях до такой степени интеграции, какая пристала более солидным архитектурам мэйнфреймов, развивавшимся все это время параллельно, в рамках централизованно управляемых систем с предустановленной статической маршрутизацией, нацеленной на обеспечение высокой пропускной способности и оптимального времени отклика системы.
Тем не менее, в крупных сетях растет обмен именно по протоколу TCP/IP, благодаря развитию вычислений клиент-сервер, которой не требуется точной синхронности, присущей транзакционно-ориентированным вычислениям, где по-прежнему хорошо чувствуют себя лишь протоколы, связанные с централизованным планированием сетей, и еще в большой степени благодаря развитию технологий Интернет/Интранет и экспоненциальному росту числа установленных TCP/IP стеков на рабочих станциях.
Обеспечение сопутствующего этим процессам резко пульсирующего межсегментного трафика средствами маршрутизации TCP/IP переходит сейчас на более эффективные методы, затрагивающие не только сетевой уровень 3, но в большой степени и канальный уровень.
Фундаментальные изменения в практике децентрализованного соединения локальных сетей в глобальные легче уяснить, если понять, что же осталось неизменным в этом резко преобразившемся мире? Да, конечно же, это маршрутизаторы уровня 3, оставшиеся стоять на посту в привычных для них местах.
Ведь TCP/IP, равно как и IPX, задумывались для эксплуатации исключительно в своих операционных средах - Unix и NetWare соответственно. В связи с этим не предусматривалось специально выделенных устройств, объявляющих адреса присоединяемых через них узлов уровня 3 всему остальному сообществу и передающих указания по передаче пакетов между ними и остальным миром вниз, на канальный уровень. И сейчас, как прежде, в этой роли может выступать универсальный компьютер - узел сети, соединенный подходящими интерфейсами со всеми сегментами, которые он сопрягает, и программой, обрабатывающей очереди пакетов уровня 3 и принимающей решения, куда их дальше направить.
Лучше, если многозадачная среда, выполняющая эти задания, будет избавлена от поддержания дисковой файловой системы, контроллеров клавиатуры и видео и вообще всего такого, что слишком вплотную подходит к ключевым ресурсам небольших, а часто даже и одноплатных машин, каковыми являются все маршрутизаторы.
Если эти требования выполнены, да еще и архитектура машины изменена специально для распараллеливания процессов обработки пакетов, тогда такой маршрутизатор некоторые называют аппаратным, и он обязан быть таковым, если требуемые скорости обработки пакетов без потерь измеряются порядками тысяч IP-пакетов в секунду.
Если же маршрутизатор агрегирует трафик из нескольких небольших локальных сетей или стоит между локальной сетью и линией удаленного доступа невысокой пропускной способности, то такому маршрутизатору нет никакого резона иметь специальную архитектуру.
Ситуация значительно усложняется, а объем работы растет с увеличением размеров сети, как, например, в случае глобальной сети - Интернет. Долгое время маршрутизация в узлах сети осуществлялась (и осуществляется) маршрутизаторами уровня 3, которые должны решать дальнейшую судьбу каждого принятого пакета, выбирая канал уровня 2, через который его надлежит переслать.
В силу необходимости производить столь сложные манипуляции, принимаемые IP-пакеты приходится помещать в очередь для последующей обработки. Использование устройств с промежуточным хранением (cut through) обязательно приводит к задержке пакетов, к тому же, может оказаться, что эти устройства обрабатывают пакеты со скоростью меньшей, чем это позволяют их физические интерфейсы - если ресурсов процессора не хватает на обработку всех полученных пакетов, и очереди переполняются, что естественным образом приводит к потере пакетов.
В сетях любого масштаба провайдеры сетевых услуг отдают все большее предпочтение семейству протоколов TCP/IP. Они надстраивают над IP многоуровневые программные шлюзы, преобразующие на прикладном уровне сетевые адреса, обеспечивают виртуальные частные сети по закрытым протоколам и делают много такого, для чего требуется работа приложений, запущенных на компьютерах универсального назначения.
А рутинная деятельность уровня 3 по децентрализованному соединению разрозненных сегментов в единое целое, именуемое Всемирной Паутиной, и регулировке движения на его перекрестках все больше возлагается на эффективные устройства специального назначения.