Глава 37 : Сетевой уровень

 « Предыдущая
 
 Рассматриваемый уровень передачи сигнала применялся для создания одной транспортной системы, призванной объединить несколько сетей. При этом, способ передачи информации в этих сетях не имел значения. В системе использовался дейтаграмма (исполнял роль блока данных), с его помощью осуществлялась доставка отрывка пересылаемого сообщения. Это дает возможность разделить весь процесс передачи сигналов на передачу данных и прикладные программы. Такой подход позволил обрабатывать трафик из сети единым способом, вне зависимости от характера приложений.
Сеть может иметь любую типологию - это не будет помехой на пути следования дейтаграммы, который движется согласно адреса источника и адреса пункта назначения. На траекторию его движения, так же, не влияют другие дейтаграммы. Основными протоколами сетевого уровня являются: IP, IPX и X.25.
Сетевой уровень для удобства своего функционирования может структуризировать сеть и осуществлять согласовку разных способов работы канального уровня.
 Самый основной вопрос передачи информации - адресация. Для его решения применяются 2 способа:

1. Применение одинаковых сетевых и канальных адресов.
2. Применение отличных сетевых и канальных адресов.

Примером первого типа является протокол IPX. такой подход значительно упрощает работу администратора локальной сети. Однако второй способ обеспечивает логическое единство адресного пространства, высокий уровень гибкости и независимости от аппаратной части системы. Положительные стороны этого метода (второго) позволили ему занять лидирующие позиции, сместив остальные методы передачи информации.
Таким образом, все протоколы (за исключением ARP/RARP) для передачи информации между узловыми точками сети применяют IP.

Логика передачи пакетов на сетевом уровне


Выше уже указывалось на то, что между сетями не предусмотрен механизм передачи кадров, а так же локальная сеть ограничивает взаимодействие на канальном уровне. В этой связи вместо данных кадры Ethernet передают дейтаграммы сетевого уровня.
Для определения пункта назначения, выделения IP и запаковки дейтаграмм обратно в кадры существует специальное устройство - router (маршрутизатор). В результате маршрутизаторы исполняют роль объединителей различных сетей в единую - Глобальную сеть Интернет.
Были разработаны специальные таблицы маршрутизации, по которым задается путь следования дейтаграмм. Эти таблицы могут быть заданы динамически (путь определяется самим маршрутизатором), либо назначаться статистически (путь определяет администратор сети).
В любом случае для всех сетей задаются определенные правила, которые регулируют доставку дейтаграмм в место назначения. Под правилами понимаются адреса маршрутизаторов. При этом этими адресами будут точки непосредственной доставки (next hop routing). В результате каждый маршрутизатор не имеет полной информации о маршруте, а только адреса сетей, с которыми ему предстоит контактировать на прямую.
При этом отпадает необходимость в едином "сквозном" протоколе, характеризующем весь путь следования протокола. Для того чтобы произошла передача дейтаграмм между компьютерами разных сетей, разработаны специальные действия:

1. Маршрутизатору (другими словами шлюзу локальной сети) направляется кадр от отправителя. Кадр имеет IP дейтаграмму с адресом получателя. Шлюз производит подключение к локальной сети из которой пришла дейтаграмма и получает кадр.
2. Получив кадр, шлюз извлекает IP-дейтаграмму и обращается к таблице маршрутизации. Для дальнейшего взаимодействия он создает кадр канального уровня, который отправляется следующему маршрутизатору другой подсети, согласно данным таблицы.
3. Кадр будет двигаться от шлюза к шлюзу до тех пор, пока IP-дейтаграмма не попадет к маршрутизатору, который подключен к той же подсети, что и получатель информации. Попав в такой шлюз, он будет направлен непосредственному получателю.

Данный вид доставки информации предполагает наличие у каждого из узлов уникального сетевого адреса, который состоит из: ost ID (адреса узла) и Net ID (адреса сети). Адреса канального и сетевого уровня так же должны соответсвовать друг другу, для это разработан Address Resolution Protocol (протокол разрешения адресов, ARP). Для создания и изменения таблиц маршрутизации применяют Open Shortest Path First (OSPF), Routing Internet Protocol (RIP) и Internet Control Message Protocol (ICMP). Последний отвечает за управление межсетевыми сообщениями.
 



Структура протокольных модулей сети, построенной на основе IP


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

В последующих разделах будут рассмотрены более подробно сами принципы передачи данных на сетевом уровне.

Протокол адресации (IP)
К главным функциям протокола IP относятся:

   1. деление данных на дейтаграммы (поступающих от протоколов более высокого уровня) с целью их передачи в другие сети;
   2. при получении дейтаграмм от других шлюзов сетей - создание блоков данных.

С этой целью кадру присваивается унифицированный заголовок. Этот заголовок может иметь длину до пяти 32-х битовых слов (весом до 20 байт) - четвертая версия IP.

Формат дейтаграммы IP :

 Версия  Длина Тип сервиса Общий размер
 Идентификация Флаги Смещение фрагмента
 Время жизни  Протокол Контрольная сумма заголовка
 Адрес отправителя
 Адрес получателя
 Опции и заполнение
 Данные

В заголовок дейтаграммы IP  включены следующие поля:

1. Identification (идентификатор). Служит для определения дейтаграмм, т.к. до фрагментации они являются составной частью единого блока данных.
2. Vers – номер версии протокола IP.
3. Protocol - идентификатор протокола верхнего уровня. Указывает на принадлежность данной дейтаграммы определенному протоколу верхнего уровня.
4. Hlen – длина заголовка. Измеряется в 32-битовых словах. В основном заголовок состоит из пяти 32-битовых слов, весящих до 20 байт, однако теоретически, он может быть расширен за счет использования  IP OPTIONS.
5. IP options – резерв. Необязательное поле, активно используется при отладке сети.
6. Fragment offset – смещение фрагмента. Находит применение при разборке или сборке пакетов во время их передачи между сетями с различными величинами максимальной длины дейтаграммы. С этой целью в байтовой величине указывается смещение начала фрагмента, вошедшего в данную дейтаграмму, от начала общего блока данных, который подвергается фрагментации.
7. Source IP address, Destination IP address - адрес источника и адрес назначения соответственно. Назначение этих полей – получение ответа и доставка дейтаграммы.
8. Servise type - тип сервиса. Основные функции - назначает приоритет и критерий выбора способа доставки дейтаграмм. Шлюзы имеют возможность использовать 3 первых бита этого поля для назначения очередности обработки сообщений. Обычному пакету информации устанавливается приоритет равный "0", если пакет содержит управляющую информацию, то назначается максимальный приоритет - "7". Последующие 3 бита служат для определения способа доставки. Существует 3 способа доставки: путь с минимальной задержкой доставки - "D" значение delay; путь с целью достижения максимальной пропускной способности - "T"; путь, который имеет самую высокую степень надежности доставки обозначается буквой - "R".
9. Header Checksum – контрольная сумма. Поле предназначено для расчета суммы по всему заголовку на каждой точке обработки дейтаграмм.
10. Total length – общая длина (с учетом заголовка и поля данных). Мерой определения максимальной длины дейтаграммы IP служит единица транспортировки (MTU). Например, для сети Х.25 MTU = 128 байт; для сети Ethernet MTU = 1500 байт.
11. Time to live - время жизни. Это поле предназначено для отражения информации о предельном сроке перемещения дейтаграммы по сети. Если для дейтаграммы данное поле равно "0", то она уничтожается. Для измерения времени служат секунды, оно отнимается на транзитных узлах при передаче. При этом единица вычитается в любом случае, даже если времени потребовалось меньше. Сегодня, в условиях высоких скоростей передачи данных, Time to live определяется числом транзитных узлов.
12. Flags – флаги. Используются для управления фрагментацией данных. Например, бит More Fragments (MF)  означает, что дейтаграмма содержит промежуточный фрагмент; бит Do not Fragment (DF) вовсе запрещает маршрутизатору разбивать данную дейтаграмму.
  
Теперь постараемся более подробно рассмотреть IP-адреса, по средству которых происходит доставка дейтаграмм. Механизм эффективной организации этого процесса, который чаще всего используется на практике, довольно сложный.
IP-адресом является одно 32-битное слово, весом 4 байта. Его обычно записывают в десятичном виде. К примеру, сетевой адрес адаптера, записанный в двоичном виде, может иметь следующий вид: 11000000-10101000-00000000-00000010. Для битов, являющихся составной частью адреса, назначен термин - октет.
Напомним, что IP-адрес включает в себя номера сети и номера узла. Подразделение Сетевого Информационного Центра (NIC) само назначает адрес сети сетевому адаптеру только в том случае, если он является частью сети Интернет. Во всех других случаях администратор самостоятельно назначает адреса.
Для облегчения работы Internet-провайдеры в первую очередь получают диапазоны адресов в NIC, а затем распределяют их среди своих клиентов уже на своих собственных условиях.
Несколько адресов в сети имеет не только каждый узел. Например, нескольким адаптерам может быть определен один и тот же адрес, или одному интерфесу несколько адресов. Все система управления адресами очень гибкая, поэтому ее полное описание вызывает сложность.
Когда Глобальная сеть только зародилась, для удобства распределения адресов, входящие в нее сети разделялись на классы - "Классовая модель". С течением времени от нее отказались и была утверждена "Бесклассовая модель" (CIDR).
Остановимся подробнее на классовой модели. Для нее характерна четкая граница между частью, ориентированной на идентификацию хостов и сетевой частью IP-адреса. Проходит она по границе октета. В результате возможны только 4 типа сетей.

Деление IP сетей на классы

 Класс Диапазон значений первого октета  Значения адреса в десятичной записиВозможное
кол-во сетей
  Возможное
кол-во узлов
 A  от 00000001-…
до 01111110-…
  от 1.ххх.xxx.xxx
до 126.ххх.ххх.ххх
 126 16777214
 B  от 1000000-00000000-…
до 1011111-11111111-… 
  от 128.0.ххх.ххх
до 191.255.ххх.ххх
  16382   65534
 C от 1100000-00000000-00000000…
до 1101111-11111111-11111111…
  от 192.0.0.ххх
до 223.255.255.ххх
 2097150 254
 D от 1110000-…
до 1110111-…
  от 224.ххх.ххх.ххх
до 239.ххх.ххх.ххх
  - 
 268435456
 E  от 1111000-…
до 1111111-… 
 от 240.ххх.ххх.ххх
до 255.ххх.ххх.ххх
  -     134217728

   
Класс адресов "А" в основном используется в национальных сетях, т.е. в сетях общественного использования, имеющих гигантский размер. Адреса "В" класса, по американской модели понимания масштабов сети, используются сетями корпораций и крупных провайдеров. Адреса класса "С" предназначены для небольших сетей и не крупных провайдеров. Этот класс дает возможность арендовать 254 узла. Оставшиеся 2-а класса используются следующим образом: D - для обращениях к группам машин; Е - являются резервом, используемым в экспериментальных целях.
Номером всей сети выступает самый первый (нулевой) адрес, он не присваивается никому конкретно. Последний адрес диапазона адресов сети используется для broadcasting (широковещательных сообщений). Такие сообщения поступают на все узлы компьютерной сети. Разумеется, к этим двум типам адресов узлы не имеют доступа. В связи с этим становится понятно почему в сети С типа существует возможность аренды только 254-х узлов, а не 256-ти.

Помимо описанных, существует еще ряд зарезервированных групп адресов, которые имеют статус "адресов специального назначения". Например, в сети с диапазоном адресов А класса, номер адреса 127 предназначен для общения компьютера с самим собой. Когда пакет данных отправляется на этот адрес, он не движется дальше по сети, а отправляется обратно, но уже в виде протокола верхнего уровня. Таким образом, существует запрет на распространение адресов сети данного типа - считается что ее адреса не принадлежат адресному пространству Интернет.
Та же ситуация с адресом 0.0.0.0, который определен как локальный адрес данного узла. Ради исключения недоразумений из диапазона доступных сетей исключен соответствующий блок.
Было разработано еще одно соглашение - RFC 1918. Согласно его положениям, определен ряд сетей, которые считаются "частными" и не подлежат маршрутизации в сети Internet. К ним относятся: в сети А класса - диапазон от 10.0.0.0 - 10.255.255.255; в сети В класса - 172.16.0.0-172.31.255.255 (16 сетей); в сети класса С - 192.168.0.0-192.168.255.255 (255 сетей). Основное назначение этих диапазонов - маскарадинг изолированных или транзитных сетей. Такой подход обеспечивает отсутствие сбоев в работе других узлов Глобальной сети при наличии ошибки в маршрутизации.
Однако такой огромный диапазон адресов, применяя данный метод адресации, не используется эффективно. Достаточно не просто представить физическую IP-сеть класса А,  в которой число узлов будет достаточным. При этом очевидно и то, что применять исключительно небольшие сети невозможно. В любом случае каждая из сетей создает особое правило на транзитных маршрутизаторах. А нагромождение сетей приводит к неоправданной перегрузке шлюзов или, вообще, к утрате их работоспособности.
Когда существовала классовая модель, принадлежность узла к конкретному классу определялась старшими битами IP-адреса. На него же ориентировались маршрутизаторы, определяя размер сети. Со временем была введена netmask - 32-битная маска (маска подсети - subnet mask). Сделано это было для того, чтобы реализовать технически более привлекательный принцип произвольного разделения адресного пространства.
Принцип действия сетевой маски следующий:
 -  в позициях, соответствующих номеру сети, биты установлены в 1;
 -  в позициях, соответствующих номеру хоста, биты сброшены в 0.
  
В результате появилась "безклассовая модель" адресации - прямая бесклассовая маршрутизация (Classless Internet Direct Routing, CIDR). В ней уже нет необходимости разделять сеть-хост в IP-адресе точно по границе октета, т.к. технические причины для этого действия были ликвидированы. Кроме того такая схема предполагает иерархию. Такой подход позволяет крупным магистральным шлюзам обрабатывать поток данных согласно правилам полных сетей. Магистральные маршрутизаторы работают не обращая внимания на то, что сеть где-то может быть делится на подсети. В результате нагрузка на такие маршрутизаторы распределяется по периферийным.
Рассмотрим описанную ситуацию на примере: имеем сеть класса С 192.168.25.0 с маской 255.255.255.0 (11111111. 11111111. 11111111.00000000). Данная запись в компактной форме будет иметь вид: 192.168.25.0/24 (24-количество значащих разрядов маски).

Возможные варианты разделения сети класса С на подсети.

 Запись маски Последний октет маски Количество подсетей Количество адресов в подсети
  Количество значащих разрядов
 255.255.255.252 11111100  64 4 
 30
 255.255.255.248 11111000  32  8 29
 255.255.255.240 11110000  16 16  28
 255.255.255.224  11100000   8  32 27
 255.255.255.192 11000000   4 64  26
 255.255.255.128 10000000   2  128     25

Следует обратить внимание на то, что первый (нулевой) адрес в каждой подсети (к примеру, 192.172.25.64/255.255.255.192) будет адресом самой подсети, последний адрес (к примеру, 192.172.25.127/255.255.255.192) будет бродкастовым. Соответственно они не применяются  в качестве узлов. Так же маска 255.255.255.254 к ним не применима. Из таблицы следует, что первый вариант (255.255.255.252) вообще располагает только двумя реальными адресами, поэтому сфера их применения очень ограничена.
Во всех остальных случаях разделить сети можно самым разнообразным способом. К примеру, сеть С класса можно представить следующим образом: 2*4+1*8+1*16+3*32+2*64, однако при этом теряются шестнадцать адресов.
Подсети выполняют важную роль и их значение нельзя недооценивать. К примеру, если посмотреть с позиции маршрутизатора на сетевой адрес 192.168.25.149/255.255.255.128 (192.168.25.149/25), то он будет иметь следующий вид: номер сети - 192.168.25.128, номер узла – 21. Такая ситуация имеет значительные отличия от традиционной записи, из-за чего могут возникнуть некоторые проблемы.

Протокол преобразования адресов ARP (RARP)


Выше уже рассказывалось о том, что одна из основных ролей маршрутизаторов - упаковка дейтаграммы IP в кадры локальных сетей Ethernet. Чтобы создать соответствие MAC по IP адресу ими применяется Address Resolution Protocol - протокол разрешения адреса (ARP). Если требуется решить противоположную задачу (определение IP по имеющемуся MAC-адресу) они применяют Reverse Address Resolution Protocol - реверсивный протокол разрешения адреса (RARP). Самый наглядный пример использования RARP - начало работы станции, которая в явном виде еще не имеет IP-адреса.
   Протокол работает по следующей схеме:

      1. Чтобы направить дейтаграмму IP-адреса узлу в локальной сети, маршрутизатор создает ARP-запрос с помещает его в кадр широковещательной рассылки.
      2. Далее все узлы локальной сети получают кадр с этим ARP-запросом и IP-адресом. Узлы сравнивают указанный IP-адрес со своим.
      3. Если этот адрес совпадает, то узел создает ARP-ответ, формат которого совпадает с ARP-запросом. В запрос узел помещает информацию о своем IP- и МАС-адресе, после чего направляет его маршрутизатору.
      4. Когда кадр получен, маршрутизатор отсылает MAC-адресу IP-дейтаграмму адресату.
  
Работа протокола требует немало времени, в течение которого дейтаграмма может быть утерена. Происходит это из-за превышения лимита времени хранения ее в кэше сетевого адаптера. Чтобы избежать таких потерь маршрутизаторы и рабочие станции с сети имеют ARP-таблицу (таблица соответствия). Используя такую таблицу, отправка ARP-запроса не требуется.
Данная таблица содержит так же информацию о возрасте записи. Этот параметр позволяет обновлять ее в соответствии с определенными правилами. Не редки случаи, когда такие таблицы создаются администратором сети вручную. Связано это с характером поддерживаемой операционной системы. Такой подход оправдывает себя в случае, когда необходимо проследить жесткое соответствия MAC и IP адреса узла. Такое вмешательство требуется, когда нужно ограничить несанкционированный доступ к различным ресурсам.

Формат пакета протокола ARP/RARP в Ethernet

 Тип оборудования (для Ethernet - 1) Тип протокола (для IP-0800)
 Длина МАС-адреса   Длина IP-адреса Операция. 1-ARP (запрос), 2-ARP (ответ), 3-RARP (запрос), 4-RARP (ответ)
 Аппаратный адрес (для Ethernet МАС) отправителя (байты 9-14)
 
IP-адрес отправителя (байты 15-18)
 Аппаратный адрес (для Ethernet МАС) получателя (байты 19-24)
 
IP-адрес получателя (байты 25-28)

Обычно каждый вид протокола имеет свой формат локальных адресов. В результате составить строго определенную таблицу с известными заранее значениями ее полей очень сложно. Связано это и стем, что запрос занимает 28 байт (длина МАС-адреса в Ethernet составляет 6 байт и IP - 4 байта).
Мультипротокольная коммутация меток (протокол MPLS)
Одной из главных проблем IP является недостаточно высокая скорость маршрутизации информации: пограничные рутеры  считывают все заголовки IP-кадров, и только после этого кадры перенаправляются на нужный интерфейс. В настоящее время разработано большое число фирменных технологий, которые призваны ускорить данный процесс. При этом не велико число тех способов, которые способны ускорить маршрутизацию всей сети в целом. На сегодня основной такой разработкой стал метод, созданный компанией Cisco. Он имеет название "MPLS".
Основой работы технологии MPLS выступают IP-туннели. Для работы этого метода необходима поддержка MP-BGP (вид протокола маршрутизации). Пакет MPLS совместим с любым маршрутизируемым транспортным протоколом, не только с IP.
Технология процесса состоит в следующем: каждому новому пакету, возникшему в виртуальной сети, присваивается метка. Благодаря ей пакет не может выйти за пределы этой виртуальной сети. Кроме того, протокол MPLS может обеспечить значение QoS, что выступает гарантией более высокого уровня безопасности. Каждая метка соответствует определенной (своей) зоне действия. Был разработан специальный стек меток, цель его создания - структуризация потоков, происходящих в пакете. Данный стек меток изображен рис. 3 (смотри RFC-3032). Стек меток располагается главным образом между заголовком сетевого (L2) и канального уровней (L3). Четыре октета стека отводятся под каждую из записей.
MAC-заголовок     Стек меток MPLS     IP-заголовок

На месте МАС заголовка может быть заголовок РРР. Если работа идет с сетями АТМ, то метке могут принадлежать поля VPI и VCI.
Стек MPLS имеет следующий вид:

 Метка CoS S TTL Стек
 20 бит  3 бита 1 бит  8 бит   -

                   
Ячейке СoS назначается ToS приоритет поля. Само поле CoS имеет объем 3 бита, их вполне достаточно для поля приоритета IP-заголовка. Дно стека определяется флагом-указателем S. Время жизни  протокола MPLS указывается полем TTL.
В целом MPLS является объединением технологий L2 и L3 уровней. Label Information Base (LIB) является базой, на основе которой происходит коммутация по меткам. Пограничным маршрутизатором MPLS является Label Edge Router (LER). Его функция - стирание меток на пакетах информации после того, как пакет покидает облако MPLS, а так же перевод их во входящие пакеты.
При управлении потоком MPLS происходит автоматическая установка и поддержание туннеля через опорную сеть. При определении пути туннеля в расчет берутся требования и ресурсы (constraint-based routing). Для автоматической маршрутизации потока, проходящего через эти туннели, используется IGP. Зачастую протокол использует для своего движения через опорную сеть MPLS один и тот же туннель (и для входа и для выхода).

Следующая »