Сетевой уровень модели OSI
Аннотация: Приведены основные устройства, протоколы и методы межсетевого взаимодействия, основные элементы маршрутизаторов, принципы маршрутизации, функционирование таблиц маршрутизации.
6.1. Общие сведения о сетевом уровне
Объединение нескольких локальных сетей в глобальную (распределенную, составную) WAN сеть происходит с помощью устройств и протоколов сетевого уровня 3 семиуровневой эталонной модели или уровня межсетевого взаимодействия модели TCP / IP . Если LAN объединяют рабочие станции, периферию, терминалы и другое сетевое оборудование в одной аудитории или в одном здании, то WAN обеспечивают соединение LAN на широком географическом пространстве. В составную распределенную сеть ( internetwork , internet ) входят как локальные сети и подсети, так и отдельные пользователи.
При передаче по сети большое сообщение сегментируется, а сегменты инкапсулируются в пакеты, которые представляют формат информационных данных третьего сетевого уровня. Для функционирования программно-аппаратных средств сетевого уровня 3 необходимо реализовать процессы адресации пакетов, их маршрутизации, инкапсуляции сегментов в пакеты на передающей стороне и декапсуляции сегментов из пакетов на приемной.
Основными устройствами, объединяющими LAN в составную сеть , являются маршрутизаторы (routers). Функционирование маршрутизаторов на Уровне 3 модели OSI происходит по правилам сетевых протоколов ( Internet Protocol ) версий 4 или 6 (IPv4 или IPv6). Другие сетевые протоколы ( IPX ,Apple Talk) в настоящее время практически не используются. Сетевые протоколы IP функционируют без предварительного установления соединения ( connectionless ) между источником и получателем сообщения. При этом доставка сообщения производится с максимальными усилиями (best effort delivery ), но без гарантий, т.е. доставка ненадежная (unreliable). Такой метод доставки (передачи) данных получил название дейтаграммный.
Поскольку при дейтаграммном методе передачи пакеты отправляются адресату назначения без предварительного установления соединения, то пакет будет отправлен даже, если адресат не может его принять. При повреждении пакетов или их потере требуется повторная передача поврежденных или потерянных данных. Сетевые протоколы IP не имеют средств подтверждения доставки пакетов, их целостности, что и определяет ненадежность доставки. Однако дейтаграммные протоколы IP создают сравнительно небольшую нагрузку на сеть , что определило их высокую эффективность и широкое распространение. Такой способ доставки является оптимальным. Функции надежности доставки возложены на другие протоколы, в частности на протокол TCP транспортного уровня.
Важно отметить, что сетевые протоколы независимы от среды передачи. Поэтому один и тот же пакет может передаваться по медным и оптоволоконным кабелям, радиоканалам. Однако максимальный размер поля данных кадра может различаться в зависимости от среды, поэтому пакеты в ряде случаев разбиваются на более мелкие фрагменты (фрагментирование).
Для определения наилучшего пути передачи данных через связываемые сети, маршрутизаторы строят таблицы маршрутизации и обмениваются сетевой маршрутной информацией с другими маршрутизаторами. Маршрутизаторы принимают решения, базируясь на сетевых логических адресах (IP-адресах), находящихся в заголовке пакета (дейтаграммы). Администратор может конфигурировать статические маршруты и поддерживать таблицы маршрутизации вручную. Однако большинство таблиц маршрутизации создается и поддерживается динамически, за счет использования протоколов маршрутизации ( routing protocol ), которые позволяют маршрутизаторам автоматически обмениваться информацией о сетевой топологии друг с другом, т.е. разделять маршрутную информацию.
6.2. Протокол IPv4
В настоящее время широко используется сетевой протокол IPv4 и начинает внедряться IPv6. Формат пакета сетевого протокола IPv4 ( рис. 6.1) включает заголовок, состоящий из 12 полей общей длиной в 160 бит (5 слов по 4 байта, т.е. 20 байт ), поле опций переменной длины и поле данных.
- Первое 4-х разрядное поле (Vers) задает номер версии протокола. Например, номер версии IPv4 будет задан в двоичной системе — 0100. В описаниях версия 4 выглядит следующим образом: Version = 4 (0x4). Согласно версии IPv4, длина адреса источника (Source IP address) и адреса назначения (Destination IP address) равна 32 разрядам (4 байтам).
- Длина заголовка — количество 32-разрядных слов в заголовке, задается вторым полем (HLEN). Например, код в этом поле — 0101 или запись Header Length = 20 (0x14) означает, что заголовок содержит 5 слов по 32 разряда или 20 байт.
- В новых спецификациях протокола IPv4 третье поле называется дифференцированные сервисы (DS). Старшие шесть бит поля определяют код дифференциальных сервисов (DSCP) и обеспечивают качество обслуживания QoS. Два младших бита используются для уведомления о перегрузке сети (ECN). В старых спецификациях это поле типа сервиса (Type of Service — ToS) длиной 8 бит включает четыре идентификатора: трехразрядный идентификатор PR и одноразрядные D, T, R. Идентификатор PR определяет тип пакета (нормальный, управляющий и др.) и в соответствие с этим задает приоритет передаваемого пакета. Установка 1 в разряде D означает требование минимизации задержки при передаче пакета; единица в разряде Т означает требование максимальной пропускной способности; установка 1 в разряде R требует обеспечение максимальной надежности.
- Поле Total Length задает общую длину пакета, включая заголовок и поле данных. 16 разрядов поля позволяют задавать максимальную длину 64 Кбайт (65 535). Поскольку максимальная длина поля данных кадра в большинстве технологий локальных сетей меньше 64 Кбайт, например, в Ethernet она составляет 1500 байт, то большие пакеты разбивают на фрагменты. При фрагментации пакета используется информация 5, 6 и 7 полей. Все фрагменты должны иметь: идентификационный номер пакета; определитель порядка следования фрагмента при сборке пакета; дополнительную информацию. Фрагментацию пакетов может производить конечный узел, исходя из максимального размера единицы передаваемой информации (Maximum Transmission Unit — MTU) на канальном уровне. Вторичную фрагментацию может выполнять транзитный сетевой элемент, если пакет передается из сети с большим значением MTU в сеть с меньшим MTU.
- Пятое поле заголовка Идентификатор используется при фрагментации пакета и содержит его идентификационный номер.
- Трехразрядное поле флагов (Flags) содержит два одноразрядных флага фрагментации. Установка 1 в разряде DF запрещает маршрутизатору производить фрагментацию данного пакета. Единичка в разряде MF указывает, что данный пакет не является последним.
- 13-разрядное поле смещения данных (Fragment Offset) помогает собрать фрагменты в единый пакет. Оно задает смещение в байтах поля данных этого пакета от начала общего поля данных исходного не фрагментированного пакета.
- Из заданного значения время жизни (Time to Live — TTL), которое может составлять значение от 0 до 255, при прохождении каждого маршрутизатора (или каждую секунду) вычитается 1. Таким образом, число узлов, через которые может пройти пакет, ограничено.
- Поле протокол (Protocol) указывает тип протокола верхнего уровня (TCP — тип 6, UDP — тип 17 и др.), которому будет передан принятый пакет после завершения IP процесса.
- Поле контрольной суммы заголовка (Header Checksum). Поскольку при прохождении маршрутизатора значения некоторых полей заголовка изменяются, например время жизни TTL, то расчет контрольной суммы производится в каждом маршрутизаторе заново.
- Адрес источника информации (Source IP address) длиной 4 байта (32 двоичных разряда).
- Адрес назначения (Destination IP address) длиной 4 байта (32 разряда). При передаче по сети адреса источника и назначения остаются неизменными.
- Поле опций (IP option) позволяет поддерживать различные опции, например, опцию защиты информации. Поскольку это поле может иметь разную длину, то оно дополняется нулями до 32 разрядов.
- Поле данных Data имеет длину более 64 двоичных разрядов.
8.3. Сетевые протоколы. Формат пакета протокола ip
На пути кадра к устройству назначения его заголовок и трейлер изменяются при прохождении через каждое устройство 3-го уровня составной сети, например, через маршрутизатор. Это происходит вследствие того, что в кадре используется локальная адресация 2-го уровня, а пакеты адресуются с использованием логического адреса 3-го уровня и в пакете задается конечный адрес узла назначения.
Кадры 2-го уровня Ethernet предназначены для работы с МАС-адресами внутри широковещательного домена, не зависимо от используемого типа соединения. Правильность принятых данных проверяется с использованием циклического кода CRC. Полученный результат сравнивается с извлеченной из кадра контрольной суммой кода CRC. Если расчетный результат и контрольная сумма не совпадают, то кадр отбрасывается. При положительном результате сравнения из кадра извлекается пакет, который проверяется, предназначен ли пакет данному маршрутизатору или его надо передать другому устройству составной сети.
Если пакет необходимо маршрутизировать, IP-адрес сети назначения сравнивается с таблицей маршрутизации. При нахождении соответствующей записи в таблице пакет будет переслан на интерфейс, определенный в строке таблицы маршрутизации. Когда пакет коммутируется на выходной интерфейс, формируется новый кадр с новым заголовком и новым значением CRC в трейлере. Кадр затем передается в новый домен на пути к адресату назначения.
Существует два типа систем доставки информации:
- без предварительного соединения отправителя и получателя сообщения (connectionless), по которым передаются дейтаграммы;
- с предварительным соединением отправителя и получателя (connection—oriented).
- Первое 4-х разрядное поле (Vers) задает номер версии протокола. В настоящее время действует версия 4 – IPv4, согласно которой длина адреса источника (Source IP address) и адреса назначения (Destination IP address) равна 32 разрядам (4 байтам). В распечатках поля заголовка обычно представляются в десятичной и шестнадцатеричной системе. Например, действующая в настоящее время версия 4 выглядит следующим образом: Version = 4 (0x4). В поле заголовка номер версии будет задан в двоичной системе – 0100.
- Длина заголовка – количество 32-разрядных слов в заголовке, задается вторым полем HLEN. Например, код в этом поле – 0101 и запись Header Length = 20 (0x14) означает, что заголовок содержит 5 слов по 32 разряда или 20 байт.
- Поле типа сервиса (Type of Service – ToS) длиной 8 бит включает четыре идентификатора: трехразрядный идентификатор PR и одноразрядные D, T, R. Идентификаторы определяют требования к метрике при прокладке маршрута. Идентификатор PR определяет тип пакета (нормальный, управляющий и др.) и в соответствие с этим задает приоритет. Установка 1 в разряде D означает требование минимизации задержки при передаче пакета; единица в разряде Т означает требование максимальной пропускной способности; установка 1 в разряде R означает требование максимальной надежности.
- Поле Total Length задает общую длину пакета, включая заголовок и поле данных. 16 разрядов поля позволяют задавать максимальную длину 64 Кбайт. Поскольку максимальная длина кадра в большинстве технологий локальных сетей меньше 64 Кбайт, например, в Ethernet она составляет 1500 байт, то большие пакеты разбивают на фрагменты. При фрагментации пакета используется информация 5, 6 и 7 полей, все фрагменты должны иметь: одинаковый идентификационный номер пакета; номер, определяющий порядок следования фрагмента при сборке пакета; дополнительную информацию.
- Пятое поле заголовка содержит идентификационный номер пакета.
- Трехразрядное поле Flags содержит два одноразрядных флага фрагментации. Установка 1 в разряде DF запрещает маршрутизатору производить фрагментацию данного пакета. Единичка в разряде MF указывает, что данный пакет не является последним.
- 13-разрядное поле Fragment Offset помогает собрать фрагменты в единый пакет. Оно задает смещение в байтах поля данных этого пакета от начала общего поля данных исходного не фрагментированного пакета.
- Из заданного значения Time to Live – время жизни (255 – максимум) при прохождении каждого маршрутизатора или каждую секунду вычитается 1. Таким образом, число узлов, через которые может пройти пакет, ограничено.
- Поле Protocol указывает протокол верхнего уровня (TCP, UDP, OSPF и др.), которому будет передан принятый пакет после завершения IP процесса.
- Поле контрольной суммы заголовка Header Checksum. Поскольку при прохождении маршрутизатора значения некоторых полей заголовка изменяются, например время жизни, то расчет контрольной суммы производится в каждом маршрутизаторе заново.
- Source IP address – адрес источника информации, длина 4 байта (32 разряда).
- Destination IP address – адрес приемника информации, длина 4 байта (32 разряда).
- Поле IP option позволяет поддерживать различные опции, например, опцию защиты информации. Поскольку это поле может иметь разную длину, то оно дополняется до нулями до 32 разрядов.
- Поле данных Data имеет длину более 64 разрядов.