Основная идея введения сетевого уро вня состоит в следующем. Сеть в общем случае рассматривается как совокупность нескольких сетей и называется составной сетью или интерсетью (internet). Сети, входящие в составную сеть, называются подсетями (subnet), составляющими сетями или просто сетями (см. рисунок 7.1).
Рисунок 7.1- Архитектура составной сети
Подсети соединяются между собой маршрутизаторами. Компонентами составной сети могут являться как локальные, так и глобальные сети. Внутренняя структура каждой сети на рисунке не показана, так как она не имеет значения при рассмотрении сетевого протокола. Все узлы в пределах одной подсети взаимодействуют, используя единую для них технологию. Так, в составную сеть, показанную на рисунке, входит несколько сетей разных технологий: локальные сети Ethernet, Fast Ethernet, Token Ring, FDDI и глобальные сети frame relay, X.25, ISDN. Каждая из этих технологий достаточна для того, чтобы организовать взаимодействие всех узлов в своей подсети, но не способна построить информационную связь между произвольно выбранными узлами, принадлежащими разным подсетям, например между узлом А и узлом В на рисунке 7.1. Следовательно, для организации взаимодействия между любой произвольной парой узлов этой «большой» составной сети требуются дополнительные средства. Такие средства и предоставляет сетевой уровень.
Таким образом, сетевой.адрес представляет собой пару: номер сети (подсети) и номер узла - 192.60.40.2 255.255.255.0
Когда две или более сети организуют совместную транспортную службу, то такой режим взаимодействия обычно называют межсетевым взаимодействием (internetworking).
Принципы маршрутизации
Важнейшей задачей сетевого уровня является маршрутизация — передача пакетов между двумя конечными узлами в составной сети.
Рассмотрим принципы маршрутизации на примере составной сети, изображенной на рисунке 7.2. В этой сети 20 маршрутизаторов объединяют 18 сетей в общую сеть; SI, S2,..., S18 — это номера сетей.
Рисунок 7.2 - Принципы маршрутизации в составной сети
Для выбора рационального маршрута дальнейшего следования пакета, каждый конечный узел и маршрутизатор анализируют таблицу маршрутизации. Используя условные обозначения для сетевых адресов маршрутизаторов и номеров сетей в том виде, как они приведены на рисунке 7.2, рассмотрим таблицу маршрутизации, например, в маршрутизаторе 4.
Таблица 7.1 - Таблица маршрутизации маршрутизатора 4
Номер сети назначения | Сетевой адрес след, маршрутизатора | Сетевой адрес выходного порта | Расстояние до сети назначения |
S1 | Ml (2) | М4(1) | |
S2 | - | М4(1) | |
S3 | М1(1) | М4(1) | |
S4 | М2(1) | М4(1) | |
S5 | - | М4(2) | |
S6 | М2(1) | М4(1) | |
Default | М5(1) | М4(2) | - |
В таблице 7.1 расстояние между сетями измерялось хопами. Расстояние для сетей, непосредственно подключенных к портам маршрутизатора, здесь принимается равным 0, однако в некоторых реализациях отсчет расстояний начинается с 1.
Обратимся снова к сети, изображенной на рисунке 7.2. Таблица маршрутизации для конечного узла В выглядит следующим образом (см. таблицу. 7.2). Здесь MB — сетевой адрес порта компьютера В. На основании этой таблицы конечный узел В выбирает, на какой из двух имеющихся в локальной сети S3 маршрутизаторов следует посылать тот или иной пакет.
Таблица 7.2 - Таблица маршрутизации конечного узла В
Номер сети назначения | Сетевой адрес след, маршрутизатора | Сетевой адрес выходного порта | Расстояние до сети назначения |
S1 | М1(3) | MB | |
S2 | М1(3) | MB | |
S3 | - | MB | |
S4 | М3(1) | MB | |
S5 | М1(3) | MB | |
S6 | М3(1) | MB | |
Default | М3(1) | MB | - |
Ниже помещена таблица маршрутизации другого конечного узла составной сети — узла А (см. таблицу 7.3).
Таблица 7.3 - Таблица маршрутизации конечного узла А
Номер сети назначения | Сетевой адрес след, маршрутизатора | Сетевой адрес выходного порта | Расстояние до сети назначения |
S12 | - | МА | |
Default | М17(1) | МА | - |
Еще одним отличием работы маршрутизатора и конечного узла при выборе маршрута является способ построения таблицы маршрутизации. Если маршрутизаторы обычно автоматически создают таблицы маршрутизации, обмениваясь служебной информацией, то для конечных узлов таблицы маршрутизации часто создаются вручную администраторами и хранятся в виде постоянных файлов на дисках.
Протоколы маршрутизации
Для автоматического построения таблиц маршрутизации маршрутизаторы обмениваются информацией о топологии составной сети в соответствии со специальным служебным протоколом. Протоколы этого типа называются протоколами маршрутизации (или маршрутизирующими протоколами). Протоколы маршрутизации (например, RIP, OSPF, NLSP) следует отличать от собственно сетевых протоколов (например, IP, IPX).
Функции маршрутизатора
Основная функция маршрутизатора - чтение заголовков пакетов сетевых протоколов, принимаемых и буферизуемых по каждому порту (например, IP, IPX, AppleTalk или DECnet), и принятие решения о дальнейшем маршруте следования пакета по его сетевому адресу, включающему, как правило, номер сети и номер узла.
Функции маршрутизатора могут быть разбиты на 3 группы в соответствии с уровнями модели OSI (см. рисунок 7.3).
Рисунок 7.3 - Функциональная модель маршрутизатора
7.3.1 Уровень интерфейсов
На нижнем уровне маршрутизатор, как и любое устройство, подключенное к сети, обеспечивает физический интерфейс со средой передачи, включая согласование уровней электрических сигналов, линейное и логическое кодирование, оснащение определенным типом разъема.
7.3.2 Уровень сетевого протокола
Сетевой протокол в свою очередь извлекает из пакета заголовок сетевого уровня и анализирует содержимое его полей. Прежде всего проверяется контрольная сумма, и если пакет пришел поврежденным, то он отбрасывается. Выполняется проверка, не превысило ли время, которое провел пакет в сети (время жизни пакета), допустимой величины. Если превысило - то пакет также отбрасывается. На этом этапе вносятся корректировки в содержимое некоторых полей, например, наращивается время жизни пакета, пересчитывается контрольная сумма.
7.3.3 Уровень протоколов маршрутизации
Сетевые протоколы активно используют в своей работе таблицу маршрутизации, но ни ее построением, ни поддержанием ее содержимого не занимаются. Эти функции выполняют протоколы маршрутизации. На основании этих протоколов маршрутизаторы обмениваются информацией о топологии сети, а затем анализируют полученные сведения, определяя наилучшие по тем или иным критериям маршруты. Результаты анализа и составляют содержимое таблиц маршрутизации.
Помимо перечисленных выше функций, на маршрутизаторы могут быть возложены и другие обязанности, например операции, связанные с фрагментацией. Более детально работа маршрутизаторов описана при рассмотрении конкретных протоколов сетевого уровня.
7.2 Многоуровневая структура стека TCP/IP
В стеке TCP/IP определены 4 уровня (см. рисунок 7.4). Каждый из этих уровней несет на себе некоторую нагрузку по решению основной задачи - организации надежной и производительной работы составной сети, части которой построены на основе разных сетевых технологий.
Уровень I | Прикладной уровень |
Уровень II | Основной (транспортный) уровень |
Уровень III | Уровень межсетевого взаимодействия |
Уровень IV | Уровень сетевых интерфейсов |
Рисунок 7.4 - Многоуровневая архитектура стека TCP/IP
Уровень межсетевого взаимодействия
Стержнем всей архитектуры является уровень межсетевого взаимодействия, который реализует концепцию передачи пакетов в режиме без установления соединений, то есть дейтаграммным способом. Именно этот уровень обеспечивает возможность перемещения пакетов по сети, используя тот маршрут, который в данный момент является наиболее рациональным. Этот уровень также называют уровнем internet, указывая тем самым на основную его функцию — передачу данных через составную сеть.
7.4.1 Основной уровень
Поскольку на сетевом уровне не устанавливаются соединения, то нет никаких гарантий, что все пакеты будут доставлены в место назначения целыми и невредимыми или придут в том же порядке, в котором они были отправлены. Эту задачу - обеспечение надежной информационной связи между двумя конечными узлами - решает основной уровень стека TCP/IP, называемый также транспортным.
7.4.2 Прикладной уровень
Прикладной уровень объединяет все службы, предоставляемые системой пользовательским приложениям. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и служб прикладного уровня. Прикладной уровень реализуется программными системами, построенными в архитектуре клиент-сервер, базирующимися на протоколах нижних уровней. В отличие от протоколов остальных трех уровней, протоколы прикладного уровня занимаются деталями конкретного приложения и «не интересуются» способами передачи данных по сети. Этот уровень включает такие сетевые службы как Telnet, FTP, TFTP, DNS, SNMP, HTTP.
7.4.3 Уровень сетевых интерфейсов
Протоколы этого уровня должны обеспечивать интеграцию в составную сеть других сетей: сеть TCP/IP должна иметь средства включения в себя любой другой сети, какую бы внутреннюю технологию передачи данных эта сеть не использовала. Отсюда следует, что этот уровень нельзя определить раз и навсегда. Для каждой технологии, включаемой в составную сеть подсети, должны быть разработаны собственные интерфейсные средства. К таким интерфейсным средствам относятся протоколы инкапсуляции IP-пакетов уровня межсетевого взаимодействия в кадры локальных технологий. Например, документ RFC 1042 определяет способы инкапсуляции IP-пакетов в кадры технологий IEEE 802. Для этих целей должен использоваться заголовок LLC/ SNAP, причем в поле Туре заголовка SNAP должен быть указан код 0x0800. Только для протокола Ethernet в RFC 1042 сделано исключение - помимо заголовка LLC/SNAP разрешается использовать кадр Ethernet DIX, не имеющий заголовка LLC, зато имеющий поле Туре. В сетях Ethernet предпочтительным является инкапсуляция IP-пакета в кадр Ethernet DIX.
7.4.5 Соответствие уровней стека TCP/IP семиуровневой модели ISO/OSI
Так как стек TCP/IP был разработан до появления модели взаимодействия открытых систем ISO/OSI, то, хотя он также имеет многоуровневую структуру, соответствие уровней стека TCP/IP уровням модели OSI достаточно условно (см. рисунок 7.5). Рассматривая многоуровневую архитектуру TCP/IP, можно выделить в ней, подобно архитектуре OSI, уровни, функции которых зависят от конкретной технической реализации сети, и уровня, функции которых ориентированы на работу с приложениями (см. рисунок 7.6).
Рисунок 7.6 - Сетезависимые и независимые уровни стека TCP/IP
Каждый коммуникационный протокол оперирует с некоторой единицей передаваемых данных. Названия этих единиц иногда закрепляются стандартом, а чаще просто определяются традицией. В стеке TCP/IP за многие годы его существования образовалась устоявшаяся терминология в этой области (см. рисунок 7.7).
Рисунок 7.7 - Название единиц данных, используемые в TCP/IP Потоком называют данные, поступающие от приложений на вход протоколов транспортного уровня TCP и UDP.
Протокол TCP нарезает из потока данных сегменты.
Единицу данных протокола UDP часто называют дейтаграммой (или датаграммой). Дейтаграмма - это общее название для единиц данных, которыми оперируют протоколы без установления соединений. К таким протоколам относится и протокол межсетевого взаимодействия IP. Дейтаграмму протокола IP называют также пакетом.
В стеке TCP/IP принято называть кадрами (фреймами) единицы данных протоколов, на основе которых IP-пакеты переносятся через подсети составной сети. При этом не имеет значения, какое название используется для этой единицы данных в локальной технологии.