12.1. Функции сетевого уровня модели OSI
12.2. Адресация на сетевом уровне модели OSI
12.2.1. Адресация в TCP/IP сетях
12.2.2. Протокол автоматического назначения IP адресов — DHCP
12.3. Маршрутизация на сетевом уровне OSI
12.3.1. Принципы обмена сообщениями между сетями
12.3.2. Протоколы маршрутизации
12.3.3. Функиции маршрутизатора
12.4. Функции обеспечения качества обслуживания и контроля передачи на транспортном уровне
12.1. Функции сетевого уровня модели OSI
В стандартной модели взаимодействия открытых систем в функции сетевого уровня входит решение следующих задач:
— передача пакетов между конечными узлами в составных сетях;
— выбор маршрута передачи пакетов, наилучшего по некоторому критерию;
— согласование разных протоколов канального уровня, использующихся в отдельных подсетях одной составной сети.
Протоколы сетевого уровня реализуются, как правило, в виде программных модулей и выполняются на конечных узлах-компьютерах, называемых хостами, а также на промежуточных узлах — маршрутизаторах, называемых шлюзами.
Основная идея введения сетевого уровня состоит в следующем. Сеть в общем случае рассматривается как совокупность нескольких сетей и называется составной сетью или интерсетью (internetwork или internet). Сети, входящие в составную сеть, называются подсетями (subnet), составляющими сетями или просто сетями (рис. 12.1).

Рисунок 12.1 — Архитектура составной сети
Подсети соединяются между собой маршрутизаторами. Компонентами составной сети могут являться как локальные, так и глобальные сети. Внутренняя структура каждой сети на рисунке не показана, так как она не имеет значения при рассмотрении сетевого протокола.
Все узлы в пределах одной подсети взаимодействуют, используя единую для них технологию. Так, в составную сеть, показанную на рисунке, входит несколько сетей разных технологий: локальные сети Ethernet, Fast Ethernet, Token Ring, FDDI и глобальные сети frame relay, X.25, ISDN. Каждая из этих технологий достаточна для того, чтобы организовать взаимодействие всех узлов в своей подсети, но не способна построить информационную связь между произвольно выбранными узлами, принадлежащими разным подсетям, например между узлом А и узлом В на рис. 12.1.
Многие технологии локальных сетей (Ethernet, Token Ring, FDDI, Fast Ethernet и др.) используют одну и ту же систему адресации узлов на основе МАС — адресов. Адреса, присвоенные узлам в соответствии с технологиями подсетей, называют локальными. Чтобы сетевой уровень мог выполнить свою задачу, ему необходима собственная система адресации, не зависящая от способов адресации узлов в отдельных подсетях, которая позволила бы на сетевом уровне универсальным и однозначным способами идентифицировать любой узел составной сети.
Естественным способом формирования сетевого адреса является уникальная нумерация всех подсетей составной сети и нумерация всех узлов в пределах каждой подсети. Таким образом, сетевой адрес представляет собой пару: номер сети (подсети) и номер узла.
В качестве номера узла может выступать либо локальный адрес этого узла (такая схема принята в стеке IPX/SPX), либо некоторое число, никак не связанное с локальной технологией, которое однозначно идентифицирует узел в пределах данной подсети (характерен для стека TCP/IP).
Если проводить аналогию между взаимодействием разнородных сетей и перепиской людей из разных стран, то сетевая информация — это индекс страны, добавленный к адресу письма, написанному на одном из сотни языков земного шара, например на санскрите. И даже если это письмо должно пройти через множество стран, почтовые работники которые не знают санскрита, прочтут понятный им индекс страны-адресата который подскажет, через какие промежуточные страны лучше передать письмо, чтобы оно кратчайшим путем попало в Индию. А уже там работники местных почтовых отделений смогут прочитать точный адрес, указывающий город, улицу, дом и доставить письмо адресату, так как адрес написан на языке и в форме, принятой в данной стране.
Заголовок сетевого уровня должен содержать информацию, необходимую для успешного перехода пакета из сети одного типа в сеть другого типа:
— номер сети-адресата. Явная нумерация сетей позволяет протоколам сетевого уровня составлять точную карту межсетевых связей и выбирать рациональные маршруты при любой их топологии, в том числе альтернативные маршруты, если они имеются, что не умеют делать мосты и коммутаторы.
— номер фрагмента пакета, необходимый для успешного проведения операций сборки-разборки фрагментов при соединении сетей с разными максимальными размерами пакетов;
— время жизни пакета, указывающее, как долго он путешествует по интерсети, это время может использоваться для уничтожения «заблудившихся» пакетов;
— качество услуги — критерий выбора маршрута при межсетевых передачах — например, узел-отправитель может потребовать передать пакет с максимальной надежностью, возможно, в ущерб времени доставки.
Когда две или более сети организуют совместную транспортную службу, то такой режим взаимодействия обычно называют межсетевым взаимодействием (internetworking).
12.2. Адресация на сетевом уровне модели OSI
12.2.1. Адресация в TCP/IP сетях
Протокол TCP/IP является на настоящий момент наиболее распространенным протоколом сетевого и транспортного уровней. Поэтому реализацию конечных протоколов данных уровней OSI рассмотрим на их примере.
В стеке TCP/IP используются три типа адресов:
— локальные (называемые также аппаратными или МАС-адресами),
— символьные доменные имена
— IP-адреса.
В терминологии TCP/IP под локальным адресом (МАС-адресом) понимается такой тип адреса, который используется средствами базовой технологии для доставки данных в пределах сети, являющейся элементом более глобальной интерсети.
Если подсетью интерсети является локальная сеть, то локальный адрес — это МАС — адрес. МАС — адрес сетевого адаптера и сетевого интерфейса маршрутизаторов. МАС — адреса назначаются производителями оборудования и являются уникальными, так как управляются централизованно. Для всех существующих технологий локальных сетей МАС — адрес имеет формат 6 байт, например 11-AO-17-3D-BC-01.
Символьные доменные имена. Символьные имена в IP-сетях называются доменными и строятся по иерархическому признаку. Составляющие полного символьного имени в IP-сетях разделяются точкой и перечисляются в следующем порядке:
— сначала простое имя конечного узла,
— затем имя группы узлов (например, имя организации),
— затем имя более крупной группы (поддомена) и так до имени домена самого высокого уровня (например, домена объединяющего организации по географическому принципу: RU — Россия, UK — Великобритания, SU — США),
Примеров доменного имени может служить имя base2.sales.zil.ru. Между доменным именем и IP-адресом узла нет никакого алгоритмического соответствия, поэтому необходимо использовать какие-то дополнительные таблицы или службы, чтобы узел сети однозначно определялся как по доменному имени, так и по IP-адресу. В сетях TCP/IP используется специальная распределенная служба Domain Name System (DNS), которая устанавливает это соответствие на основании создаваемых администраторами сети таблиц соответствия. Поэтому доменные имена называют также DNS-именами.
IP-адреса представляют собой основной тип адресов, на основании которых сетевой уровень передает пакеты между сетями. IP-адрес состоит из двух частей: номера сети и номера узла, при этом в качестве признака номера сети выступает маска сети.
Когда протокол IP был стандартизирован в сентябре 1981 года, его спецификация требовала, чтобы каждое устройство, подключенное к сети, имело уникальный 32-битный адрес. Этот адрес делится на две части. Первая часть адреса идентифицирует сеть, в которой располагается устройство. Вторая часть однозначно идентифицирует само устройство. Такая схема создает двухуровневую адресную иерархию, которая показана на рис. 12.2
|
0 1 2 3… |
…30 31 |
|
|
Ключ |
Номер сети |
Номер устройства в сети |
Рисунок 12.2 — Двухуровневая адресная иерархия
Поле номера сети в адресе так же называется сетевым префиксом, так как первая порция каждого IP-адреса идентифицирует номер сети. Все станции определенной сети используют один и тот же сетевой префикс, но при этом должны иметь уникальные номера устройств. Аналогично две любые станции, расположенные в разных сетях, должны иметь различные сетевые префиксы, но при этом они могут иметь одинаковые номера устройств.
IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел, представляющих значения каждого байта в десятичной форме и разделенных точками, например,
128.10.2.30 — традиционная десятичная форма представления адреса,
10000000 00001010 00000010 00011110 — двоичная форма представления этого же адреса.
Маска — это число, которое используется в паре с IP-адресом; двоичная запись маски содержит единицы в тех разрядах, которые должны в IP-адресе интерпретироваться как номер сети.
Поскольку номер сети является цельной частью адреса, единицы в маске также должны представлять непрерывную последовательность.
Для обеспечения гибкости в присвоении адресов компьютерным сетям разработчики определили, что адресное пространство протокола IP должно быть разделено на три различных класса — А, В и С. Каждый из этих основных классов фиксирует границу между сетевым префиксом и номером устройства в различных точках 32-битного адреса.
Таблица 12.1 — Диапазоны значений адресов трех классов
|
Класс адреса |
Диапазоны значений |
|
A |
1. ХХХ.ХХХ.ХХХ–126. ХХХ.ХХХ.ХХХ |
|
B |
128.0.ХХХ.ХХХ–191.255.ХХХ.ХХХ |
|
C |
192.0.0.ХХХ–223.255.255.ХХХ |
Для стандартных классов сетей маски имеют следующие значения:
— класс А:
11111111. 00000000. 00000000. 00000000 (255.0.0.0);
— класс В:
11111111. 11111111. 00000000. 00000000 (255.255.0.0);
— класс С:
11111111. 11111111. 11111111. 00000000 (255.255.255.0).
В масках количество единиц в последовательности, определяющей границу номера сети, не обязательно должно быть кратным 8, чтобы повторять деление адреса на байты. Пусть, например, для IP-адреса 129.64.134.5 указана маска 255.255.128.0, то есть в двоичном виде:
IP-адрес 129.64.134.5 — 10000001. 01000000. 10000110. 00000101,
Маска 255.255.128.0 — 11111111. 11111111. 10000000. 00000000.
Снабжая каждый IP-адрес маской, можно отказаться от понятий классов адресов и сделать более гибкой систему адресации. Например, если рассмотренный выше адрес 185.23.44.206 ассоциировать с маской 255.255.255.0, то номером сети будет 185.23.44.0, а не 185.23.0.0, как это определено системой классов.
В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов.
— Если весь IP-адрес состоит только из двоичных нулей, то он обозначает адрес того узла, который сгенерировал этот пакет; этот режим используется только в некоторых сообщениях ICMP.
— Если в поле номера сети стоят только нули, то по умолчанию считается, что узел назначения принадлежит той же самой сети, что и узел, который отправил пакет.
— Если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным. сообщением (limited broadcast).
— Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети. Например, пакет с адресом 192.190.21.255 доставляется всем узлам сети 192.190.21.0. Такая рассылка называется широковещательным сообщением (broadcast).
Таблица 12.2 — Зарезервированные IP-адреса
| IP-адрес | Примечания | |
| Все биты установлены в «0» | Данное устройство | |
| Номер сети | Все биты номераравны 0 | Данная IP-сеть |
| Все биты равны 0 | Номер устройства | Устройство в данной IP-сети |
| Все биты установлены в «1» | Все устройства в данной IP-сети | |
| Номер сети | Все биты номера равны 1 | Все устройства в указанной IP-сети |
| 127 (десятичное) | Что-нибудь (обычно 1) | Адрес обратной связи |