Теория построения сетей. Введение в сетевые протоколы

В течение последних нескольких десятилетий размеры и количество сетей значительно выросли. В 80-х годах существовало множество типов сетей. И практически каждая из них была построена на своем типе оборудования и программного обеспечения, зачастую не совместимых между собой. Это приводило к значительным трудностям при попытке соединить несколько сетей (например, различный тип адресации делал эти попытки практически безнадежными).

Эта проблема была рассмотрена Всемирной организацией по стандартизации ( International Organization for Standardization , ISO ) и было принято решение разработать модель сети, которая могла бы помочь разработчикам и производителям сетевого оборудования и программного обеспечения действовать сообща. В результате в 1984 г. была создана модель OSI – модель взаимодействия открытых систем ( Open Systems Interconnected). Она состоит из семи уровней, на которые разделяется задача организации сетевого взаимодействия. Схематично они представлены в таблице 16.1 .

Таблица 16.1. Уровни модели OSI.
Номер уровня Название уровня Единица информации
Layer 7 Уровень приложений Данные (data)
Layer 6 Представительский уровень Данные (data)
Layer 5 Сессионный уровень Данные (data)
Layer 4 Транспортный уровень Сегмент (segment)
Layer 3 Сетевой уровень Пакет (packet)
Layer 2 Уровень передачи данных Фрейм (frame)
Layer 1 Физический уровень Бит (bit)

Хотя сегодня существуют разнообразные модели сетей, большинство разработчиков придерживается именно этой общепризнанной схемы.

Рассмотрим процесс передачи информации между двумя компьютерами. Программное обеспечение формирует сообщение на уровне 7 (приложений), состоящее из заголовка и полезных данных. В заголовке содержится служебная информация , которая необходима уровню приложений адресата для обработки пересылаемой информации (например, это может быть информация о файле, который необходимо передать, или операции , которую нужно выполнить). После того, как сообщение было сформировано, уровень приложений направляет его "вниз" на представительский уровень ( layer 6). Полученное сообщение, состоящее из служебной информации уровня 7 и полезных данных, для уровня 6 представляется как одно целое (хотя уровень 6 может считывать служебную информацию уровня 7). Протокол представительского уровня выполняет необходимые действия на основании данных, полученных из заголовка уровня приложений, и добавляет заголовок своего уровня, в котором содержится информация для соответствующего (6-го) уровня адресата. Полученное в результате сообщение передается далее "вниз" сеансовому уровню, где также добавляется служебная информация . Дополненное сообщение передается на следующий транспортный уровень и т.д. на каждом последующем уровне (схематично это представлено на рис.16.1). При этом служебная информация может добавляться не только в начало сообщения, но и в конец (например, на 3-м уровне, рис.16.2). В итоге получается сообщение, содержащее служебную информацию всех семи уровней.


Рис. 16.1.



Рис. 16.2.

Процесс " обертывания " передаваемых данных служебной информацией называется инкапсуляцией ( encapsulation ).

Далее это сообщение передается через сеть в виде битов. Бит – это минимальная порция информации, которая может принимать значение 0 или 1 . Таким образом, все сообщение кодируется в виде набора нулей и единиц, например, 010110101 . В простейшем случае на физическом уровне для передачи формируется электрический сигнал , состоящий из серии электрических импульсов (0 - нет сигнала, 1 - есть сигнал). Именно эта единица принята для измерения скорости передачи информации. Современные сети обычно предоставляют каналы с производительностью в десятки и сотни Кбит/с и Мбит/с.

Получатель на физическом уровне получает сообщение в виде электрического сигнала (рис.16.3). Далее происходит процесс, обратный инкапсуляции,– декапсуляция ( decapsulation ). На каждом уровне происходит разбор служебной информации. После декапсуляции сообщения на первом уровне (считывания и обработки служебной информации 1-го уровня) это сообщение, содержащее служебную информацию второго уровня и данные в виде полезных данных и служебной информации вышестоящих уровней, передается на следующий уровень. На канальном (2-м) уровне снова происходит анализ системной информации и сообщение передается на следующий уровень. И так до тех пор, пока сообщение не дойдет до уровня приложений, где в виде конечных данных передается принимающему приложению.



Рис. 16.3.

В качестве примера можно привести обращение браузера к web-серверу. Приложение клиента – браузер – формирует запрос для получения web-страницы. Этот запрос передается приложением на уровень 7 и далее последовательно на каждый уровень модели OSI . Достигнув физического уровня, наш первоначальный запрос "обрастает" служебной информацией каждого уровня. После этого он передается по физической сети (кабелям) в виде электрических импульсов на сервер . На сервере происходит разбор соответствующей системной информации каждого уровня, в результате чего посланный запрос достигает приложения web-сервера . Там он обрабатывается, после чего клиенту отправляется ответ. Процесс отправки ответа аналогичен отправке запроса – за исключением того, что сообщение посылает сервер , а получает клиент.

Так как каждый уровень модели OSI стандартизирован, потребители могут использовать совместно оборудование и программное обеспечение различных производителей. В результате web- сервер под управлением операционной системы Sun Solaris может передать HTML-страницу пользователю MS Windows .

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

Три нижних уровня – физический, канальный и сетевой – являются сете-зависимыми. Например, смена Ethernet на ATM влечет за собой полную смену протокола физического и канального уровней.

Три верхних уровня – приложений, представительский и сессионный – ориентированы на прикладные задачи и практически не зависят от физической технологии построения сети. Так, переход от Token Ring на Ethernet не требует изменений в перечисленных уровнях.

Транспортный уровень является промежуточным между сете-зависимыми и сете-независимыми уровнями. Он скрывает все детали функционирования нижних уровней от верхних. Это позволяет разработчику приложений не задумываться о технических средствах реализации транспортировки сетевых сообщений.

Вместе с названием сообщение (message ) в стандартах ISO для обозначения единицы данных используют термин протокольный блок данных (Protocol Data Unit , PDU ). В разных протоколах применяются и другие названия, закрепленные стандартами, или просто традиционные. Например, в семействе протоколов TCP / IP протокол TCP разделяет поток данных на сегменты , протокол UDP работает с датаграммами (или дейтаграммами, от datagram ), сам протокол IP использует термин пакеты. Часто так же говорят о кадрах или фреймах.

Для более глубокого понимания принципов работы сети рассмотрим каждый уровень по отдельности.

Physical layer (layer 1)

Как видно из общей схемы расположения уровней в модели OSI, физический уровень ( Physical layer ) самый первый. Этот уровень описывает среду передачи данных. Стандартизируются физические устройства, отвечающие за передачу электрических сигналов (разъемы, кабели и т.д.) и правила формирования этих сигналов. Рассмотрим по порядку все составляющие этого уровня.

Большая часть сетей строится на кабельной структуре (хотя существуют сети, основанные на передаче информации с помощью, например, радиоволн). Сейчас существуют различные типы кабелей. Наиболее распространенные из них:

  • телефонный провод;
  • коаксиальный кабель ;
  • витая пара ;
  • оптоволокно .

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

Коаксиальный кабель использовался в сетях еще несколько лет назад, но сегодня это большая редкость. Такой тип кабеля по строению практически идентичен обычному телевизионному коаксиальному кабелю – центральная медная жила отделена слоем изоляции от оплетки. Некоторые отличия есть в электрических характеристиках (в телевизионном кабеле используется кабель с волновым сопротивлением 75 Ом, в сетевом – 50 Ом).

Основными недостатками этого кабеля является низкая скорость передачи данных (до 10 Мбит/с), подверженность воздействиям внешних помех. Кроме того, подключение компьютеров в таких сетях происходит параллельно, а значит, максимальная возможная скорость пропускания делится на всех пользователей. Но, по сравнению с телефонным кабелем, коаксиал позволяет объединять близко расположенные компьютеры с намного лучшим качеством связи и более высокой скоростью передачи данных.

Витая пара (" twisted pair ") – наиболее распространенное средство для передачи данных между компьютерами. В данном типе кабеля используется медный попарно скрученный провод, что позволяет уменьшить количество помех и наводок, как при передаче сигнала по самому кабелю, так и при воздействии внешних помех.

Существует несколько категорий этого кабеля. Перечислим основные из них. Cat 3 – был стандартизирован в 1991 г., электрические характеристики позволяли поддерживать частоты передачи до 16 МГц, использовался для передачи данных и голоса. Более высокая категория – Cat 5, была специально разработана для поддержки высокоскоростных протоколов. Поэтому его электрические характеристики лежат в пределах до 100Мгц. На таком типе кабеля работают протоколы передачи данных 10, 100, 1000 Мбит/с. На сегодняшний день кабель Cat5 практически вытеснил Cat 3. Основное преимущество витой пары перед телефонными и коаксиальными кабелями – более высокая скорость передачи данных. Также использование Cat 5 в большинстве случаев позволяет, не меняя кабельную структуру, повысить производительность сети (переходом от 10 к 100 и от 100 к 1000 Мбит/с).

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

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

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

Связь сетевого адаптера с сетевым программным обеспечением осуществляют драйверы сетевых адаптеров. Именно благодаря драйверу компьютер может не знать никаких аппаратных особенностей адаптера (его адресов, правил обмена с ним, его характеристик). Драйвер унифицирует, делает единообразным взаимодействие программных средств высокого уровня с любым адаптером данного класса. Сетевые драйверы, поставляемые вместе с сетевыми адаптерами, позволяют сетевым программам одинаково работать с платами разных поставщиков и даже с платами разных локальных сетей (Ethernet, Arcnet, Token-Ring и т.д.). Если говорить о стандартной модели OSI, то драйверы, как правило, выполняют функции канального уровня, хотя иногда они реализуют и часть функций сетевого уровня (рис. 6.1). Например, драйверы формируют передаваемый пакет в буферной памяти адаптера, читают из этой памяти пришедший по сети пакет, дают команду на передачу, информируют компьютер о приеме пакета.

Рис. 6.1. Функции драйвера сетевого адаптера в модели OSI

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

Прежде чем приобрести плату адаптера, необходимо ознакомиться со списком совместимого оборудования (Hardware Compatibility List, HCL), который публикуют все производители сетевых операционных систем. Выбор там довольно велик (например, для Microsoft Windows Server список включает более сотни драйверов сетевых адаптеров). Если в перечень HCL не входит адаптер какого-то типа, лучше его не покупать.

Протоколы высоких уровней.

Существует несколько стандартных наборов (или, как их еще называют, стеков) протоколов, получивших сейчас широкое распространение:

  • набор протоколов ISO/OSI;
  • IBM System Network Architecture (SNA);
  • Digital DECnet;
  • Novell NetWare;
  • Apple AppleTalk;
  • набор протоколов глобальной сети Интернет, TCP/IP.

Включение в этот список протоколов глобальной сети вполне объяснимо, ведь, как уже отмечалось, модель OSI используется для любой открытой системы: на базе как локальной, так и глобальной сети или комбинации локальной и глобальной сетей.


Протоколы перечисленных наборов делятся на три основных типа:

  • Прикладные протоколы (выполняющие функции трех верхних уровней модели OSI – прикладного, представительского и сеансового);
  • Транспортные протоколы (реализующие функции средних уровней модели OSI – транспортного и сеансового);
  • Сетевые протоколы (осуществляющие функции трех нижних уровней модели OSI).

Прикладные протоколы обеспечивают взаимодействие приложений и обмен данными между ними. Наиболее популярны:

  • FTAM (File Transfer Access and Management) – протокол OSI доступа к файлам;
  • X.400 – протокол CCITT для международного обмена электронной почтой;
  • Х.500 – протокол CCITT служб файлов и каталогов на нескольких системах;
  • SMTP (Simple Mail Transfer Protocol) – протокол глобальной сети Интернет для обмена электронной почтой;
  • FTP (File Transfer Protocol) – протокол глобальной сети Интернет для передачи файлов;
  • SNMP (Simple Network Management Protocol) – протокол для мониторинга сети, контроля за работой сетевых компонентов и управления ими;
  • Telnet – протокол глобальной сети Интернет для регистрации на удаленных серверах и обработки данных на них;
  • Microsoft SMBs (Server Message Blocks, блоки сообщений сервера) и клиентские оболочки или редиректоры фирмы Microsoft;
  • NCP (Novell NetWare Core Protocol) и клиентские оболочки или редиректоры фирмы Novell.

Транспортные протоколы поддерживают сеансы связи между компьютерами и гарантируют надежный обмен данными между ними. Наиболее популярные из них следующие:

  • TCP (Transmission Control Protocol) – часть набора протоколов TCP/IP для гарантированной доставки данных, разбитых на последовательность фрагментов;
  • SPX – часть набора протоколов IPX/SPX (Internetwork Packet Exchange/Sequential Packet Exchange) для гарантированной доставки данных, разбитых на последовательность фрагментов, предложенных компанией Novell;
  • NetBEUI – (NetBIOS Extended User Interface, расширенный интерфейс NetBIOS) – устанавливает сеансы связи между компьютерами (NetBIOS) и предоставляет верхним уровням транспортные услуги (NetBEUI).

Сетевые протоколы управляют адресацией, маршрутизацией, проверкой ошибок и запросами на повторную передачу. Широко распространены следующие из них:

  • IP (Internet Protocol) – TCP/IP-протокол для негарантированной передачи пакетов без установления соединений;
  • IPX (Internetwork Packet Exchange) – протокол компании NetWare для негарантированной передачи пакетов и маршрутизации пакетов;
  • NWLink – реализация протокола IPX/SPX компании Microsoft;
  • NetBEUI – транспортный протокол, обеспечивающий услуги транспортировки данных для сеансов и приложений NetBIOS.

Все перечисленные протоколы могут быть поставлены в соответствие тем или иным уровням эталонной модели OSI. Но при этом надо учитывать, что разработчики протоколов не слишком строго придерживаются этих уровней. Например, некоторые протоколы выполняют функции, относящиеся сразу к нескольким уровням модели OSI, а другие – только часть функций одного из уровней. Это приводит к тому, что протоколы разных компаний часто оказываются несовместимы между собой. Кроме того, протоколы могут быть успешно использованы исключительно в составе своего набора протоколов (стека протоколов), который выполняет более или менее законченную группу функций. Как раз это и делает сетевую операционную систему "фирменной", то есть, по сути, несовместимой со стандартной моделью открытой системы OSI.

В качестве примера на рис. 6.2, рис. 6.3 и рис. 6.4 схематически показано соотношение протоколов, используемых популярными фирменными сетевыми операционными системами, и уровней стандартной модели OSI. Как видно из рисунков, практически ни на одном уровне нет четкого соответствия реального протокола какому-нибудь уровню идеальной модели. Выстраивание подобных соотношений довольно условно, так как трудно четко разграничить функции всех частей программного обеспечения. К тому же компании-производители программных средств далеко не всегда подробно описывают внутреннюю структуру продуктов.

Теперь следует подробнее рассмотреть некоторые наиболее распространенные протоколы.

Модель OSI допускает два основных метода взаимодействия абонентов в сети:

  • Метод взаимодействия без логического соединения (или метод дейтаграмм).
  • Метод взаимодействия с логическим соединением.

Метод дейтаграмм – это простейший метод, в котором каждый пакет рассматривается как самостоятельный объект (рис. 6.5).

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

Метод дейтаграмм предъявляет повышенные требования к аппаратуре (так как приемник всегда должен быть готов к приему пакета). Достоинства метода в том, что передатчик и приемник работают независимо друг от друга, к тому же пакеты могут накапливаться в буфере и затем передаваться вместе, можно также использовать широковещательную передачу, то есть адресовать пакет всем абонентам одновременно. Недостатки метода – это возможность потери пакетов, а также бесполезной загрузки сети пакетами в случае отсутствия или неготовности приемника.

Метод с логическим соединением (рис. 6.6, рис. 4.5) разработан позднее, чем метод дейтаграмм, и отличается усложненным порядком взаимодействия.

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


Рис. 6.2. Соотношение уровней модели OSI и протоколов сети Интернет


Рис. 6.3. Соотношение уровней модели OSI и протоколов операционной системы Windows Server


Рис. 6.4. Соотношение уровней модели OSI и протоколов операционной системы NetWare


Рис. 6.5. Метод дейтаграмм


Рис. 6.6. Метод с логическим соединением

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

Примеры протоколов, работающих по методу дейтаграмм- это протоколы IP и IPX.

Примеры протоколов, работающих по методу с логическим соединением – это TCP и SPX.

Именно для того, чтобы объединить достоинства обоих методов, эти протоколы используются в виде связанных наборов: TCP/IP и IPX/SPX, в которых протокол более высокого уровня (TCP, SPX), работающий на базе протокола более низкого уровня (IP, IPX), гарантирует правильную доставку пакетов в требуемом порядке.

Протоколы IPX/SPX, разработанные компанией Novell, образуют набор (стек), используемый в сетевых программных средствах довольно широко распространенных локальных сетей Novell (NetWare). Это сравнительно небольшой и быстрый протокол, поддерживающий маршрутизацию. Прикладные программы могут обращаться непосредственно к уровню IPX, например, для посылки широковещательных сообщений, но значительно чаще работают с уровнем SPX, гарантирующим быструю и надежную доставку пакетов. Если скорость не слишком важна, то прикладные программы применяют еще более высокий уровень, например, протокол NetBIOS, предоставляющий удобный сервис. Компанией Microsoft предложена своя реализация протокола IPX/SPX, называемая NWLink. Протоколы IPX/SPX и NWLink поддерживаются операционными системами NetWare и Windows. Выбор этих протоколов обеспечивает совместимость по сети любых абонентов с данными операционными системами.

Набор (стек) протоколов TCP/IP был специально разработан для глобальных сетей и для межсетевого взаимодействия. Он изначально ориентирован на низкое качество каналов связи, на большую вероятность ошибок и разрывов связей. Этот протокол принят во всемирной компьютерной сети Интернет, значительная часть абонентов которой подключается по коммутируемым линиям (то есть обычным телефонным линиям). Как и протокол IPX/SPX, протокол TCP/IP также поддерживает маршрутизацию. На его основе работают протоколы высоких уровней, такие как SMTP, FTP, SNMP. Недостаток протокола TCP/IP -более низкая скорость работы, чем у IPX/SPX. Однако сейчас протокол TCP/IP используется и в локальных сетях, чтобы упростить согласование протоколов локальных и глобальных сетей. В настоящее время он считается основным в самых распространенных операционных системах.

В стек протоколов TCP/IP часто включают и протоколы всех верхних уровней (рис. 6.7). И тогда уже можно говорить о функциональной полноте стека TCP/IP.

Как протокол IPX, так и протокол IP являются самыми низкоуровневыми протоколами, поэтому они непосредственно инкапсулируют свою информацию, называемую дейтаграммой, в поле данных передаваемого по сети пакета (см. рис. 4.6). При этом в заголовок дейтаграммы входят адреса абонентов (отправителя и получателя) более высокого уровня, чем MAC-адреса, – это IPX-адреса для протокола IPX или IP-адреса для протокола IP. Эти адреса включают номера сети и узла, хоста (индивидуальный идентификатор абонента). При этом IPX-адреса (рис. 6.8) более простые, имеют всего один формат, а в IP-адрес (рис. 6.9) могут входить три формата (класса A, B и C), различающиеся значениями трех начальных битов.


Рис. 6.7. Соотношение уровней модели OSI и стека протоколов TCP/IP

Рис. 6.8. Формат IPX- адреса


Рис. 6.9. Форматы IP-адреса

Интересно, что IP-адрес не имеет никакой связи с MAC-адресами абонентов. Номер узла в нем присваивается абоненту независимо от его MAC-адреса. В качестве идентификатора станции IPX-адрес включает в себя полный MAC-адрес абонента.

Номер сети – это код, присвоенный каждой конкретной сети, то есть каждой широковещательной области общей, единой сети. Под широковещательной областью понимается часть сети, которая прозрачна для широковещательных пакетов, пропускает их беспрепятственно.

Протокол NetBIOS (сетевая базовая система ввода/вывода) был разработан компанией IBM для сетей IBM PC Network и IBM Token-Ring по образцу системы BIOS персонального компьютера. С тех пор этот протокол стал фактическим стандартом (официально он не стандартизован), и многие сетевые операционные системы содержат в себе эмулятор NetBIOS для обеспечения совместимости. Первоначально NetBIOS реализовывал сеансовый, транспортный и сетевой уровни, однако в последующих сетях на более низких уровнях используются стандартные протоколы (например, IPX/SPX), а на долю эмулятора NetBIOS остается только сеансовый уровень. NetBIOS обеспечивает более высокий уровень сервиса, чем IPX/SPX, но работает медленнее.

На основе протокола NetBIOS был разработан протокол NetBEUI, который представляет собой развитие протокола NetBIOS до транспортного уровня. Однако недостаток NetBEUI состоит в том, что он не поддерживает межсетевое взаимодействие и не обеспечивает маршрутизацию. Поэтому данный протокол используется только в простых сетях, не рассчитанных на подключение к Интернет. Сложные сети ориентируются на более универсальные протоколы TCP/IP и IPX/SPX. Протокол NetBEUI в настоящее время считается устаревшим, хотя даже в операционной системе Windows XP предусмотрена его поддержка, правда, только как дополнительная опция.

Наконец, упоминавшийся уже набор протоколов OSI – это полный набор (стек) протоколов, где каждый протокол точно соответствует определенному уровню стандартной модели OSI. Набор содержит маршрутизируемые и транспортные протоколы, серии протоколов IEEE 802, протокол сеансового уровня, представительского уровня и несколько протоколов прикладного уровня. Пока широкого распространения этот набор протоколов не получил, хотя он и полностью соответствует эталонной модели OSI.

Протоколы, реализованные на Сетевом уровне, которые переносят пользовательские данные, включают:

  • Протокола Интернета версии 4 (IPv4)
  • Протокола Интернета версии 6 (IPv6)
  • Межсетевой обмен пакетов Novell (IPX)
  • AppleTalk
  • Сетевая Служба без Установки соединения (CLNS /DECNet)

Интенет-Протокол (IPv4 и IPv6) является наиболее широко используемым протоколом передачи данных Уровня 3, которому далее будет уделяться основное внимание. Обсуждение других протоколов будет только поверхностным.

Протокол IP - Пример Протокола Сетевого Уровня


Роль IPv4

Как показано на рисунке, в службы Сетевого уровня, реализованные в стеке протоколов TCP/IP, входит Протокол Интернета (IP) . Версия 4 IP (IPv4) является в настоящий момент наиболее широко используемой версией IP. Это единственный протокол Уровня 3, который используются, чтобы передавать пользовательские данные по Интернету, и он будет браться в качестве примера протоколов Сетевого уровня в этой и последующих статьях.

Версия 6 IP (IPv6) разрабатывается и реализуется в некоторых областях. IPv6 будет работать наряду с IPv4 и может заменить его в будущем. Службы, предоставляемые IP, так же как структура заголовка пакета и содержимое, определяются или протоколом IPv4, или протоколом IPv6. Эти службы и пакетная структура используются, чтобы инкапсулировать дейтаграммы UDP или сегменты TCP для их прохождения через объединенную сеть.

Характеристики каждого протокола отличаются. Понимание этих характеристик позволит Вам понимать работу служб, описанных соответствующим протоколом.

Протокол Интернета был разработан как протокол с низкими издержками. Это обеспечивает только функции, которые необходимы для доставки пакета от источника до места назначения по системе соединенных сетей. Протокол не разрабатывался с целью отслеживать и управлять потоком пакетов. Эти функции выполняются другими протоколами на других уровнях.

Основные характеристики IPv4:

  • Без установки соединения - Перед отправкой пакетов не устанавливается никаких сеансов.
  • Негарантированная доставка (ненадежный) - Не используется дополнительных издержек, чтобы гарантировать доставку пакетов.
  • Независимый от среды - Работает независимо от среды, переносящей данные.

Разработка протоколов сетевого уровня велась уже задолго до того, как была предложена архитектура OSI и приняты стандарты на сетевой сервис.

Для уточнения места различных протоколов этого уровня в эталонной модели OSI была разработана архитектура сетевого уровня (ISO 8648). Этот документ выделяет на сетевом уровне 3 подуровня. Предполагается, что услуги реальной подсистемы могут быть:

В двух последних случаях для обеспечения стандартного сервиса необходимо реализовать определенный набор дополнительных функций.

На рисунке показаны протоколы трех сетевых подуровней.



Протоколы сетевого уровня в сетях с коммутацией пакетов

В компьютерных сетях с коммутацией пакетов (КП) выделяют на сетевом уровне протоколы трех функциональных типов:

    Протоколы обработки пакетов – определяют форматы пакетов и процедуры их обработки в абонентских и коммуникационных системах

    Протоколы управления пакетами – содержат алгоритмы принятия решений о выборе маршрутов передачи пакетов, ограничения входной нагрузки, управления пакетами, задают состав служебной информации, которой обмениваются системы, и правила реакции на нее.

    Протоколы передачи служебной информации – определяют форматы служебной информации и процедуры ее передачи.

Кроме такой классификации, в зависимости от типа взаимодействующих систем, выделяют следующие три сетевых протоколов (см. рис.):



Э

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

Х.25 не содержит алгоритмов маршрутизации. Рекомендация является формальной спецификацией сопряжения DTE и DCE (см. рис.). Под DTE понимается любое оконечное оборудование данных (ООД), аDCE – это аппаратура окончания канала данных (АКД). Стандарт является ассиметричным, т.к. определяется только одна сторона соединения между абонентами, осуществляемого через сеть.

Н

а втором уровне используется подмножество LAPB протокола HDLC.

Пакет уровня 3 (сетевого) (см. рис.) транспортируется в информационном поле (I) кадра протокола HDLC, работающего в режиме LAPB.

Особенности пакетного уровня (протокола Х.25/3)

Протокол использует принцип виртуальных цепей (в Х.25 их называют логическими каналами). Логические каналы получаются путем мультиплексирования пакетов разных пользователей в одном физическом канале. В таком физическом канале может быть назначено до 4095 логических каналов. Номера логических каналов используются для идентификации подключаемого к сети DTE.



Управление потоком

Применяются 2 механизма: окно передачи и приостановка передачи. Пакеты данных нумеруются по модулю 8 (допускается расширенный формат – по модулю 128), т.е. 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 и т.д. Приемник пакетов следит за последовательными номерами P(S) принятых пакетов и указывает в поле P(R) ответных пакетов порядковый номер того пакета, который он ожидает (подразумевается, что все номера до этого им уже приняты правильно).

Окно передачи

Д

ля регулирования потока данных применяетсямеханизм окон . Окно W – это количество пакетов, которое ООД может послать не получив на них подтверждения. В протоколе Х.25/3 рекомендуется W = 2, но администрация любой сети может сама устанавливать конкретные значения.

На рисунке показано начальное состояние DTE с W=3. Такая станция может передать без подтверждения максимум 3 пакета, т.е. пакеты с P(S)=0, P(S)=1 и P(S)=2. DCE следит за последовательностью номеров и может информировать DTE о следующем ожидаемом на приеме номере пакета P(R). Тем самым оно подтверждает получение всех пакетов с последовательными номерами до {P(R)-1} включительно. Такое управление относится только к сопряжению DTE/ DCE.

П

оложим, что в ответном от DCE пакете сообщен номер P(R)=2. Это означает, что подтверждаются два пакета. Окно сдвигается (см. рис.). Теперь DTE может продолжить передачу вплоть до P(S)=4.

Так как потоки данных идут в обе стороны сопряжения, то аналогичное управление потоком от DCE выполняет DTE.

Выше было рассмотрено локальное (на уровне сопряжения ООД/АКД) управление потоком. Кроме локального, механизм окна может использоваться и для управления потоком по виртуальному каналу. Если специальный служебный бит (D-бит) в пакете установлен в "1", это означает, что требуется подтверждение сквозной доставки пакета (из конца в конец, т.е. DTE - DTE).

Приостановка выдачи пакетов

В случае необходимости срочно приостановить выдачу пакетов партнером применяется дополнительный механизм управления потоком. Положим, что DCE хочет приостановить поток пакетов данных от DTE. Тогда оно выдает пакет «К приему не готов» (RNR) – Receive not Ready (см. рис.).

Номер P(R) в пакете подтверждает все пакеты до {P(R)-1} включительно.

Для возобновления приема выдается пакет «К приему готов» (RR) – Receive Ready. Такой пакет также содержит номер P(R).

П

роцедуры протокола Х.25/3

Передача данных Размер поля данных может составлять от 16 до 4096 байт.

Процедура сброса Используется в случае ошибок в конкретном виртуальном канале. Инициируется пакетами «Запрос сброса» (Reset Request) или «Индикация сброса» (Reset Indication) от DTE или DCE. Виртуальный канал не разъединяется. Производится его инициализация. Счетчики пакетов на обоих концах устанавливаются в "0". Все пакеты находящиеся в пути аннулируются.

Процедура рестарта Применяется в случае серьезных ошибок, затрагивающих весь интерфейс DTE / DCE. Разъединяются все виртуальные каналы между DTE и DCE. Далее надо все каналы устанавливать заново. Используются пакеты: «Запрос рестарта» (Restart Request) и «Индикация рестарта» (Restart Indication).

П

ередача срочных данных
Предусмотрена возможность передавать данные не соблюдая процедур управления потоком.

Для этого применяется пакет «Прерывание» (Interrupt). Максимальная длина данных в пакете - 32 байта. Этот пакет обходит все очереди в пути следования и принимается на другом конце, даже если ООД не принимает обычные данные. На каждый пакет (см. рис.) посылается подтверждение приема (Interrupt Confirmation). Передающее ООД не посылает следующий пакет «Прерывание» пока не получит подтверждение на предыдущий.

Необязательные услуги Их достаточно много. Среди них, например:

    Повторная передача пакетов (с помощью специального пакета «Reject» (Отказ). DTE может запросить передачу ей пакетов с указанного номера P(R) и всех следующих за ним).

    Переадресация вызова . Если вызываемое DTE неисправно или занято, то вызов пересылается сетью в другой DTE.

    Формирование замкнутой группы пользователей . Эти пользователи могут взаимодействовать только друг с другом. Можно, например, разрешить DTE давать исходящие вызовы без ограничений, но принимать входящие вызовы только от замкнутой группы пользователей.

    Реверсивная тарификация (просьба к сети возложить все расходы по оплате на вызываемого абонента) и т.д.

ТЕМА: Сетевой уровень передачи данных. Протоколы сетевого уровня.

Сетевой уровень (Network layer ) - уровень межсетевого взаимодействия (internetworking) (третий уровень модели OSI), служит для образования единой транспортной подсистемы, объединяющей несколько сетей. При этом сети могут использовать совершенно различные принципы передачи сообщений между конечными узлами и обладать произвольной структурой связи.

Данные, которые поступают на сетевой уровень и которые необходимо передать через составную сеть, снабжаются заголовком сетевого уровня.

Данные вместе с заголовком образуют пакет. Заголовок пакета сетевого уровня несет информацию о номере сети, которой предназначается пакет, а так же другую служебную информацию, необходимую для успешного перехода пакета из сети одного типа в сеть другого типа. К такой информации может относиться, например:

Номер фрагмента пакета, необходимый для успешного проведения операций сборки – разборки фрагментов при соединении сетей с разными максимальными размерами пакетов;

Время жизни пакета, указывающее, как долго он путешествует по интерсети, это время может использоваться для уничтожения «заблудившихся» пакетов;

Качество услуги – критерий выбора маршрута при межсетевых передачах – например, узел – отправитель может потребовать передать пакет с максимальной надежностью, возможно в ущерб времени доставки.

Основными протоколами сетевого уровня являются сетевые протоколы (например, IP или IPX ) и протоколы маршрутизации (RIP , OSPF , BGP и др.).

Вспомогательную роль выполняют такие протоколы как - протокол межсетевых управляющих сообщений ICMP (Internet Control Message Protocol) , который предназначен для обмена информацией об ошибках между маршрутизаторами сети и узлом- источником пакета. С помощью специальных сообщений ICMP сообщает о невозможности доставки пакета или о превышении времени жизни пакета, об изменении маршрута пересылки, о состоянии системы и т.д. Протокол группового управления IGMP и протокол разрешения адресов ARP .

Сетевые протоколы и протоколы маршрутизации реализуются виде программных модулей на конечных узлах – компьютерах, называемых часто хостами и на промежуточных узлах – маршрутизаторах, называемых шлюзами.

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

На сетевом уровне так же происходит установление соответствия между IP – адресом и аппаратным адресом (МАС - адресом). Установление осуществляется протоколом разрешения адресов – ARP, который для этой цели просматривает ARP – таблицы. Если нужный адрес отсутствует, то выполняется широковещательный ARP – запрос.

Функции сетевого уровня.

В функции сетевого уровня входит решение следующих задач:

1. Передача пакетов между конечными узлами в составных сетях. Сетевой уровень выступает в качестве координатора, организующего работу всех подсетей, лежащих на пути продвижения пакета по составной сети. Составная сеть (Интернет) – это совокупность нескольких сетей, называемых также подсетями (subnet), которые соединяются между собой маршрутизаторами.

2. Выбор маршрута передачи пакетов, наилучшего по некоторому критерию.

3. Согласование разных протоколов канального уровня, использующихся в отдельных подсетях составной сети. Для перемещения данных в пределах подсетей сетевой уровень обращается к используемым в этих подсетях технологиям.

4. На сетевом уровне выполняется одна из важнейших функций маршрутизатора – фильтрация трафика. Маршрутизаторы позволяют администраторам задавать разные правила фильтрации. Например, запретить прохождение в корпоративную сеть всех пакетов, кроме пакетов, поступающих из подсетей этого же предприятия. Фильтрация в данном случае происходит по сетевым адресам. Программное обеспечение маршрутизатора может реализовать различные дисциплины обслуживания очередей пакетов, а так же различные варианты приоритетного обслуживания.

5.На сетевом уровне проверяется контрольная сумма, и если пакет пришел поврежденным, то он отбрасывается (сетевой уровень коррекцией ошибок не занимается). Так же проверяется время жизни пакета – не превышает ли оно допустимой величины (если превысило – то пакет отбрасывается).

Принципы маршрутизации.

Сетевой уровень обеспечивает возможность перемещения пакетов по сети, используя тот маршрут, который в данный момент является более рациональным.

Маршрут – это последовательность маршрутизаторов, которые должен пройти пакет от отправителя до пункта назначения. В сложных составных сетях почти всегда существуют несколько альтернативных маршрутов для передачи пакетов между двумя конечными узлами. Задачу выбора маршрута решают как конечные узлы – компьютеры так и промежуточные узлы – маршрутизаторы на основе таблиц маршрутизации. Маршрутизаторы обычно автоматически создают таблицы маршрутизации, обмениваясь служебной информацией; для конечных узлов таблицы маршрутизации часто создаются вручную администраторами и хранятся виде постоянных файлов на дисках. Маршрутизаторы имеют по несколько портов для подключения сетей, каждый порт маршрутизатора имеет свой собственный сетевой адрес и свой собственный локальный адрес . Если маршрутизатор имеет блок управления, то этот блок имеет свой собственный адрес, по которому к нему обращается центральная станция управления, находящаяся где - то в составной сети.

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

К протоколам маршрутизации относятся такие протоколы как RIP, OSPF, протокол BGP; протокол межсетевых управляющих сообщений ICMP.

Крупные сети разбиваются на автономные системы, автономные системы – это сети, присоединенные к магистрали, имеющие свое собственное административное управление и собственные протоколы маршрутизации.

Протоколы маршрутизации делятся на внешние и внутренние. Внешние протоколы (EGP,BGP) переносят маршрутную информацию между автономными системами, а внутренние (RIP, OSPF) применяются в пределах определенной автономной системы.

Протокол BGP позволяет распознавать наличие петель между автономными системами и исключить их из межсистемных маршрутов.

Протокол RIP(Routing Internet Protocol) является одним из наиболее ранних протоколов обмена маршрутной информации и до сих пор чрезвычайно распространен ввиду простоты маршрутизации. Протокол RIP имеет несколько версий, например, для протокола IP имеется версия RIPv1, которая не поддерживает масок и версия RIPv2, это протокол, который передает информацию о масках сетей. С помощью протокола RIP строится таблица маршрутизации. В первом столбце таблицы перечисляются номера сетей, входящих в интерсеть. В каждой строке следом за номером сети указывается сетевой адрес порта следующего маршрутизатора, на который нужно отправить пакет, чтобы тот передвигался по направлению к сети с данным номером по рациональному маршруту. В третьем столбце указывается номер выходного порта данного маршрутизатора. В четвертом столбце указывается расстояние до сети назначения.

Таблица 1. Таблица маршрутизации

В качестве расстояния до сети назначения стандарты протокола RIP допускают различные виды метрик: хопы, метрики, учитывающие пропускную способность, вносимые задержки и надежность сетей. Простейшая метрика – это количество хопов, т. е. количество промежуточных маршрутизаторов, которые нужно преодолеть пакету до сети назначения. Протокол RIP успешно работает в сравнительно небольших сетях, имеющих до 15 маршрутизаторов.

Протокол OSPF (Open Shortest Path Fist) был разработан для эффективной маршрутизации IP- пакетов в больших сетях со сложной топологией, включающей петли. Он основан на алгоритме состояния связей, который обладает высокой устойчивостью к изменениям топологии сети. При выборе маршрута OSPF – маршрутизаторы используют метрику, учитывающую пропускную способность составных сетей. Протокол OSPF учитывает биты качества обслуживания, для каждого типа качества строится отдельная таблица маршрутизации. Протокол OSPF обладает высокой вычислительной сложностью, поэтому чаще всего работает на мощных аппаратных маршрутизаторах.