Канальный уровень в локальных сетях

Глава 2 Канальный уровень

Введение

Из рисунка 1.4 видно, что основная задача канального уровня в семействе протоколов TCP/IP - посылать и принимать (1) IP датаграммы для IP модуля, (2) ARP запросы и отклики для ARP модуля, и (3) RARP запросы и отклики для RARP модуля. TCP/IP поддерживает различные канальные уровни, в зависимости от того какой тип сетевого аппаратного обеспечения используется: Ethernet, Token ring, FDDI (Fiber Distributed Data Interface), последовательные линии RS-232, и так далее.

В этой главе мы подробно рассмотрим канальный уровень Ethernet, два специализированных канальных уровня для последовательных интерфейсов (SLIP и PPP) и драйвер loopback, который присутствует практически во всех реализациях. Ethernet и SLIP это канальные уровни, используемые для большинства примеров в данной книге. Также мы рассмотрим максимальный блок передачи (MTU - Maximum Transmission Unit), который является характеристикой канального уровня и к которой мы обращаемся много раз в этой главе и в следующих. Также мы покажем некоторые расчеты, с помощью которых можно выбрать MTU для последовательной линии.

Ethernet и IEEE 802 инкапсуляция

Термин Ethernet обычно означает стандарт, опубликованный в 1982 году компаниями Digital Equipment Corp., Intel Corp., и Xerox Corp. В настоящее время это основная технология применяемая в локальных сетях использующих TCP/IP. В Ethernet используется метод доступа, называемый CSMA/CD, что обозначает наличие несущей (Carrier Sense), множественный доступ (Multiple Access) с определением коллизий (Collision Detection). Обмен осуществляется со скоростью 10 Мбит/сек, с использованием 48-битных адресов.

Несколько лет спустя Комитет 802 Института инженеров по электротехнике и радиоэлектронике ( IEEE - Institute of Electrical and Electronics Engineers) опубликовал отличающийся набор стандартов. 802.3 описывает полный набор сетей CSMA/CD, 802.4 описывает сети с передачей маркера и 802.5 описывает сети Token ring. Общим для всех них является стандарт 802.2, который определяет управление логическим каналом ( LLC - Logical link control) и который является общим для большинства сетей 802. К сожалению, комбинация 802.2 и 802.3 определяет форматы фрейма отличные от Ethernet ( описывает все детали стандартов IEEE 802).

В мире TCP/IP инкапсуляция IP датаграмм определена в RFC 894 для сетей Ethernet и в RFC 1042 для сетей IEEE 802. В Host Requirements RFC к каждому компьютеру, подключенному к Internet через кабель Ethernet 10 Мбит/сек, предъявляются следующие требования:

  1. Компьютер должен иметь возможность посылать и получать пакеты, инкапсулированные с использованием RFC 894 (Ethernet).
  2. У компьютера должна быть возможность получать пакеты RFC 1042 (IEEE 802), перемешанные с пакетами RFC 894.
  3. Компьютер должен иметь возможность посылать пакеты с использованием инкапсуляции RFC 1042. Если компьютер может посылать оба типа пакетов, то тип пакета должен быть конфигурируемым, а конфигурация по умолчанию должна быть настроена на пакеты RFC 894.

Наиболее широко используется инкапсуляция RFC 894. На рисунке 2.1 показаны два различных метода инкапсуляции. Цифры под каждым квадратиком на рисунке это размер в байтах.

В обоих форматах фрейма используется 48-битовый (6-байтовый) формат представления адресов источника и назначения (802.3 позволяет использование 16-битных адресов, однако обычно используются 48-битные). Это как раз то, что мы называем по тексту аппаратными адресами (hardware addresses). Протоколы ARP и RARP (см. главу 4 и главу 5) устанавливают соответствие между 32-битными IP адресами и 48-битными аппаратными адресами.

Следующие 2 байта в этих форматах фрейма различаются. Поле длины (length) 802 содержит количество следующих за ним байтов, однако не содержит в конце контрольной суммы. Поле тип (type) в Ethernet определяет тип данных, которые следуют за ним. Во фрейме 802 то же поле типа (type) появляется позже в заголовке протокола доступа к подсети (SNAP - Sub-Network Access Protocol). К счастью, величины, находящиеся в поле длины (length) 802, никогда не совпадают с величинами, находящимися в поле типа (type) Ethernet, поэтому эти два формата фрейма легко различимы.

Во фрейме Ethernet данные следуют сразу после поля тип (type), тогда как во фрейме 802 за ним следуют 3 байта LLC 802.2 и 5 байт SNAP 802.2. Поля DSAP (точка доступа к сервису назначения - Destination Service Access Point) и SSAP (точка доступа к сервису источника - Source Service Access Point) оба установлены в 0xAA. Поле ctrl установлено в 3. Следующие 3 байта, org code установлены в 0. Затем идет 2-байтовое поле тип (type), такое же, как мы видели в формате фрейма Ethernet (дополнительные значения, которые могут появиться в поле типа, описаны в RFC 1340 ).

Поле контрольной суммы ( CRC) определяет ошибки, возникшие при транспортировке фрейма (также оно иногда называется FCS или последовательность контроля фрейма - frame check sequence).

Минимальный размер фреймов 802.3 и Ethernet требует, чтобы размер данных был хотя бы 38 байт для 802.3 или 46 байт для Ethernet. Чтобы удовлетворить этому требованию, иногда вставляются байты заполнения, для того чтобы фрейм был соответствующей длины.

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

Рисунок 2.1 Инкапсуляция IEEE 802.2/802.3 (RFC 1042) и инкапсуляция Ethernet (RFC 894).

Инкапсуляция завершителей

На рисунке 2.5 приведен список некоторых типичных значений MTU, взятых из RFC 1191 . Здесь приведены MTU для каналов точка-точка (таких как SLIP или PPP), однако они не являются физической характеристикой среды передачи. Это логическое ограничение, при соблюдении которого обеспечивается адекватное время отклика при диалоговом использовании. В разделе главы 2 мы рассмотрим, откуда берется это ограничение.

В разделе "Команда netstat" главы 3 мы воспользуемся командой netstat, чтобы определить MTU для определенного интерфейса.

Network

MTU (байты)

Hyperchannel
16 Мбит/сек Token ring (IBM)
4 Мбит/сек Token ring (IEEE 802.5)
FDDI
Ethernet
IEEE 802.3/802.2
X.25
Точка-точка (с маленькой задержкой)

Рисунок 2.5 Типичные значения максимальных блоков передачи (MTU).

Транспортный MTU

Когда общаются два компьютера в одной и той же сети, важным является MTU для этой сети. Однако, когда общаются два компьютера в разных сетях, каждый промежуточный канал может иметь различные MTU. В данном случае важным является не MTU двух сетей, к которым подключены компьютеры, а наименьший MTU любого канала данных, находящегося между двумя компьютерами. Он называется транспортным MTU (path MTU).

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

RFC 1191 описывает механизм определения транспортного MTU (path MTU discovery mechanism). Мы рассмотрим как функционирует этот механизм после того, как опишем фрагментацию ICMP и IP. В разделе "ICMP ошибки о недоступности" главы 11 мы подробно рассмотрим ошибку недоступности ICMP, которая используется в этом механизме, а в разделе "Определение транспортного MTU с использованием Traceroute" главы 11 мы покажем версию программы traceroute, которая использует механизм определения транспортного MTU до пункта назначения. В разделах "Определение транспортного MTU при использовании UDP" главы 11 и "Определение транспортного MTU" главы 24 показано, как функционируют UDP и TCP, когда реализация поддерживает определение MTU.

Вычисление загруженности последовательной линии

Если скорость в линии составляет 9600 бит/сек, при этом 1 байт составляет 8 бит плюс 1 старт-бит и 1 стоп-бит, скорость линии будет 960 байт/сек. Передача пакета размером 1024 байта с этой скоростью займет 1066 мс. Если мы используем SLIP канал для диалогового приложения и одновременно с ним работает такое приложение как FTP, которое посылает или принимает пакеты по 1024 байт, мы должны ждать, так как среднее время задержки нашего интерактивного пакета составит 533 мс.

Это означает, что наш диалоговый пакет будет послан по каналу перед любым другим "большим" пакетом. Большинство SLIP приложений предоставляют разделение пакетов по типу сервиса, отправляя диалоговый трафик перед трафиком передачи данных. Диалоговый трафик это, как правило, Telnet, Rlogin и управляющая часть (пользовательские команды, но не данные) FTP.

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

Ожидание в 533 мс неприемлемо для диалогового ответа. С точки зрения человеческого фактора мы знаем, что неприемлемой является задержка дольше чем 100-200 мс [ Jacobson 1990a]. Под задержкой подразумевается время между отправкой пакета и возвращением отклика (как правило, эхо символа).

Уменьшение MTU в канале SLIP до 256 означает, что максимальное время, в течение которого канал может быть занят одним фреймом, составляет 266 мс, и половина от этого (наше среднее время ожидания) составляет 133 мс. Это лучше, однако до сих пор не идеально. Причина, по которой мы выбрали это значение (как сравниваются 64 и 128), заключается в том, чтобы обеспечить лучшее использование канала для передачи данных (как, например, при передаче большого файла). В случае CSLIP фрейма размером 261 байт с заголовком размером в 5 байт (256 байт данных), 98,1% линии используются для передачи данных и 1,9% на заголовки. Уменьшение MTU меньше чем 256 уменьшает максимальное значение пропускной способности линии, которую мы можем получить при передаче данных.

Значение MTU равное 296 для канала точка-точка (рисунок 2.5), подразумевает 256 байт данных и 40 байт TCP и IP заголовков. Так как MTU это величина, о которой IP узнает от канального уровня, это значение должно включать в себя стандартные заголовки TCP и IP. Именно таким образом IP принимает решение о фрагментации. IP ничего не знает о сжатии заголовков, которое осуществляются CSLIP.

Наш расчет средней задержки (половина того времени, которое требуется на передачу фрейма максимального размера) имеет отношение только к каналу SLIP (или каналу PPP), который используется для передачи интерактивного трафика и трафика данных. Когда идет обмен только интерактивным трафиком, время передачи одного байта данных в каждом направлении (в случае сжатого 5-байтового заголовка) составляет примерно 12,5 мс, при скорости 9600 бит/сек. Это хорошо укладывается в диапазон 100-200 мс, о котором мы упоминали ранее. Также заметьте, что сжатие заголовков с 40 до 5 байт уменьшает время задержки для одного байта с 85 до 12,5 мс.

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

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

Краткие выводы

В этой главе рассматривался самый нижний уровень из семейства протоколов Internet, канальный уровень. Мы рассмотрели различие между Ethernet и IEEE 802.2/802.3 инкапсуляциями, и инкапсуляцию, которая используется в SLIP и PPP. Так как оба SLIP и PPP часто используются на медленных каналах, они предоставляют методы, для сжатия общих полей (которые практически всегда неизменны). При этом улучшается время отклика.

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

Мы описали важную характеристику большинства канальных уровней, MTU и соответствующую концепцию транспортного MTU. Используя стандартный MTU для последовательных линий, мы вычислили временную задержку, которая существует в каналах SLIP и CSLIP.

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

Упражнения

Если Ваша система поддерживает команду netstat(1) (см. главу 3, раздел "Команда netstat"), используйте ее, чтобы определить интерфейсы в Вашей системе и их MTU.

На физическом уровне просто пересылаются биты. При этом не учитывается, что в тех сетях, в которых линии связи используются (разделяются) попеременно несколькими парами взаимодействующих компьютеров, физическая среда передачи может быть занята. Поэтому одной из задач канального уровня (Data Link layer) является проверка доступности среды передачи. Другая задача канального уровня - реализация механизмов обнаружения и коррекции ошибок. Для этого на канальном уровне биты группируются в наборы, называемые кадрами (frames ). Канальный уровень обеспечивает корректность передачи каждого кадра помещая специальную последовательность бит в начало и конец каждого кадра, для его выделения, а также вычисляет контрольную сумму , обрабатывая все байты кадра определенным способом, и добавляет контрольную сумму к кадру. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпадают, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. Канальный уровень может не только обнаруживать ошибки, но и исправлять их за счет повторной передачи поврежденных кадров. Необходимо отметить, что функция исправления ошибок для канального уровня не является обязательной, поэтому в некоторых протоколах этого уровня она отсутствует, например в Ethernet и frame relay.

Функции канального уровня

Надежная доставка пакета:

  1. Между двумя соседними станциями в сети с произвольной топологией.
  2. Между любыми станциями в сети с типовой топологией:
    1. проверка доступности разделяемой среды;
    2. выделение кадров из потока данных, поступающих по сети; формирование кадров при отправке данных;
    3. подсчет и проверка контрольной суммы.

Реализуются программно-аппаратно.

В протоколах канального уровня , используемых в локальных сетях, заложена определенная структура связей между компьютерами и способы их адресации. Хотя канальный уровень и обеспечивает доставку кадра между любыми двумя узлами локальной сети, он это делает только в сети с определенной топологией связей, именно той топологией, для которой он был разработан. К таким типовым топологиям, поддерживаемым протоколами канального уровня локальных сетей, относятся «общая шина», «кольцо» и «звезда», а также структуры, полученные из них с помощью мостов и коммутаторов. Примерами протоколов канального уровня являются протоколы Ethernet, Token Ring, FDDI, 100VG-AnyLAN.

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

В глобальных сетях, которые редко обладают регулярной топологией, канальный уровень часто обеспечивает обмен сообщениями только между двумя соседними компьютерами, соединенными индивидуальной линией связи. Примерами протоколов «точка-точка» (как часто называют такие протоколы) могут служить широко распространенные протоколы PPP и LAP-B. В таких случаях для доставки сообщений между конечными узлами через всю сеть используются средства сетевого уровня. Именно так организованы сети X.25. Иногда в глобальных сетях функции канального уровня в чистом виде выделить трудно, так как в одном и том же протоколе они объединяются с функциями сетевого уровня. Примерами такого подхода могут служить протоколы технологий ATM и frame relay.

В целом канальный уровень представляет собой весьма мощный набор функций по пересылке сообщений между узлами сети. В некоторых случаях протоколы канального уровня оказываются самодостаточными транспортными средствами, и тогда поверх них могут работать непосредственно протоколы прикладного уровня или приложения, без привлечения средств сетевого и транспортного уровней. Например, существует реализация протокола управления сетью SNMP непосредственно поверх Ethernet, хотя стандартно этот протокол работает поверх сетевого протокола IP и транспортного протокола UDP. Естественно, что применение такой реализации будет ограниченным - она не подходит для составных сетей разных технологий, например Ethernet и X.25, и даже для такой сети, в которой во всех сегментах применяется Ethernet, но между сегментами существуют петлевидные связи. А вот в двухсегментной сети Ethernet, объединенной мостом, реализация SNMP над канальным уровнем будет вполне работоспособна.

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

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

Другой областью действия протоколов канального уровня являются связи типа «точка-точка» глобальных сетей, когда протокол канального уровня ответственен за доставку кадра непосредственному соседу. Адрес в этом случае не имеет принципиального значения, а на первый план выходит способность протокола восстанавливать искаженные и утерянные кадры, так как плохое качество территориальных каналов, особенно коммутируемых телефонных, часто требует выполнения подобных действий. Если же перечисленные выше условия не соблюдаются, например связи между сегментами Ethernet имеют петлевидную структуру, либо объединяемые сети используют различные способы адресации, как в сетях Ethernet и X.25, то протокол канального уровня не может в одиночку справиться с задачей передачи кадра между узлами и требует помощи протокола сетевого уровня.

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

Метод коммутации

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

В настоящее время существует два основных метода коммутации: коммутация каналов и коммутация пакетов .

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

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

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

Протоколы канального уровня

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

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

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

  • протоколы для соединений типа "точка-точка";
  • протоколы для сетей сложных топологий.

Структура кадра данных

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

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

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

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

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

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

Для большинства протоколов канального уровня существует ограничение на максимально допустимый объем данных, передаваемых в одном кадре, вызванное различными техническими условиями. Характеристику, устанавливающую это пороговое значение, выраженное в байтах, обозначают английской аббревиатурой MTU (Maximum Transfer Unit, максимальная единица передачи данных ).

Протоколы для соединений типа "точка-точка"

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

Простейшим примером протоколов данной группы является протокол SLIP (Serial Line Internet Protocol). Единственными служебными полями кадра протокола SLIP являются поля, позволяющие определить начало и конец кадра. Данный протокол может совместно работать только с одним протоколом сетевого уровня – протоколом IP, поскольку в заголовке кадра не предусмотрено поля идентификации протокола сетевого уровня. Кроме того, протокол не располагает средствами обнаружения ошибок, возникающих при передаче данных, что делает его малоэффективным при построении сетей на основе каналов низкого качества, например, телефонных линий.

В связи с этим протокол SLIP в настоящее время почти не используется при построении реальных сетей. Для подключения к Интернет по обычным телефонным линиям конечных пользователей в основном применяется более совершенный протокол канального уровня PPP (Point-to-Point Protocol). В отличие от SLIP протокол PPP обладает большей функциональностью и обеспечивает:

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

Протоколы для сетей сложных топологий

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

Выделение на всем множестве компьютеров, подключенных к сети, конкретного абонента, с которым осуществляется информационный обмен, то есть адресация ;

Упорядочивание доступа к среде передачи в случае, когда нескольким парам абонентов требуется осуществить передачу данных.

Адресация абонентов

Для обеспечения адресации абонентов в заголовке кадров должны присутствовать следующие поля:

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

Достаточно часто в литературе, посвященной компьютерным сетям, аппаратный адрес сетевого адаптера называется MAC-адресом. Аббревиатура MAC происходит от названия функционального подуровня управления доступом к среде передачи (Media Access Control, MAC), который выделяется внутри канального уровня, и в задачи которого входит, в том числе, и обеспечение адресации абонентов.

2. Адрес получателя , определяющий компьютер, который должен принять и обработать кадр. Очевидно, что кадр данных, отправленный кем-либо, "виден" сетевыми адаптерами всех компьютеров, подключенных к общему носителю. Каждый сетевой адаптер, получивший кадр, сравнивает адрес получателя, записанный в кадре со своим собственным адресом. Если они совпадают, то кадр адресован данному компьютеру и подлежит дальнейшей обработке. В противном случае кадр отбрасывается, поскольку он направлен другому абоненту. Адрес получателя может иметь специальное значение – так называемый широковещательный адрес. Такой тип адресации получателя предполагает, что кадр должен приниматься и обрабатываться всеми компьютерами, которые его получили.

Метод доступа к среде передачи

Важной проблемой передачи данных по сети с коммутацией пакетов, является проблема одновременной передачи данных несколькими компьютерами. Поскольку одновременно в сети может присутствовать только один пакет, то доступ компьютеров к среде передачи должен определенным образом упорядочиваться. В настоящее время существует три основных метода управления доступом к среде передачи: "Обнаружение коллизий", "Предупреждение коллизий" и "Передача маркера".

Метод обнаружения коллизий . Полное название этого метода – "Множественный доступ к сетям с проверкой несущей и обнаружением коллизий" (Carrier Sense Multiple Access with Collision Detection, CSMA/CD). Данный метод предполагает, что перед передачей данных передающий компьютер должен убедиться в "свободном состоянии" линии, а в процессе передачи – "прослушивать" канал. При обнаружении коллизии (столкновения с "чужими данными", collision) он должен прекратить передачу и попытаться возобновить ее через определенный промежуток времени. Обычно этот способ используется в сетях с топологией "шина".
*Метод предупреждение коллизий . Полное название этого метода – "Множественный доступ к сетям с проверкой несущей и предупреждением коллизий" (Carrier Sense Multiple Access with Collision Avoidance, CSMA/CA). Этот метод также предполагает, что передающий компьютер перед началом передачи определяет занятость канала. Убедившись в том, что кабель свободен, он оповещает другие компьютеры о начале передачи, предупреждая тем самым возможность одновременной посылки данных. Главный недостаток этого метода состоит в значительном объеме широковещательной рассылки.
*Метод передачи маркера . Принцип этого метода достаточно прост. Для того чтобы передать данные, компьютер должен получить разрешение. Для этого он должен "поймать" пакет данных специального вида – маркер (token). Маркер перемещается по замкнутому кругу от одного компьютера к другому. Получив маркер, компьютер может передать его дальше или вместо него отправить пакет с данными. Когда данные достигнут компьютера-получателя, тот, в свою очередь, должен снова "выставить" в сеть маркер. Такой алгоритм используется, как правило, в сетях с топологией кольцо.

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

Протоколы канального уровня и сетевые технологии

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

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

В настоящее время существует большое количество сетевых технологий и, соответственно, определяемых ими протоколов канального уровня. Рассмотрим для примера одну из наиболее популярных в настоящее время технологий – технологию локальных сетей Ethernet . Эта технология предполагает, что сеть должна строиться на основе физических топологий "шина", если используется коаксиальный кабель, или "звезда", если используется кабель типа "витая пара". В зависимости от типа используемого кабеля скорость передачи данных лежит в диапазоне 10-1000 Мбит/с. В качестве метода доступа к среде передачи используется метод обнаружения коллизий (CSMA/CD). Что касается формата кадра, то в настоящее время на практике используются 4 варианта кадров Ethernet, отличающихся друг от друга, но все они согласуются с общими положениями, изложенными ранее. Максимальный объем данных, передаваемых в одном кадре (MTU), в технологии Ethernet не может превышать 1500 байт.

Помимо технологии Ethernet в настоящее время в локальных сетях широко используются технологии AppleTalk, FDDI и ATM . В глобальных сетях широко распространены технологии ATM, FrameRelay, ISDN и SMDS.

Существует также ряд технологий, использующихся для организации беспроводных сетей. Наиболее популярной технологией, применяемой при построении локальных сетей, в настоящее время является технология RadioEthernet. Она предполагает передачу данных в двух УКВ-диапазонах: около 915 МГЦ и 2400-2483,5 МГц, а также в инфракрасном спектре. Диапазон 915 МГц в России и Европе достаточно сильно загружен средствами связи (сотовая телефония), поэтому он используется, как правило, для организации сетей внутри зданий, хотя технически позволяет осуществлять передачу на значительные расстояния. Это же ограничение распространяется и на инфракрасный диапазон, поскольку инфракрасные лучи чувствительны к погодным условиям. В зависимости от того, какой режим передачи используется, сети RadioEthernet позволяют осуществлять передачу данных со скоростью 2 - 10 Мбит/с. Технология RadioEthernet предполагает построение сетей на базе топологий "точка-точка" и "звезда". В качестве метода доступа используется метод предупреждения коллизий (CSMA/CA).

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

Объединение сетей на канальном уровне

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

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

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

Мост

Принцип функционирования моста достаточно прост: для подключения сетей мост располагает несколькими портами, с каждым из которых связываются записи так называемой адресной таблицы, содержащей список адресов компьютеров сетей, подключенных к мосту. Когда мост получает кадр данных, то он передает его в сеть через порт, который согласно таблице соответствует адресу получателя. В случае, если адрес получателя не обнаружен в адресной таблице, то кадр передается во все сети. Адресные таблицы мостов, как правило, строятся на основе анализа кадров, передаваемых по сетям.
Важной проблемой, возникающей при использовании мостов, является объединение сетей, базирующихся на разных технологиях. Вообще говоря, существуют так называемые транслирующие мосты, позволяющие объединять сети разных технологий. Однако объединяемые сети должны иметь единый принцип адресации. Так, например, можно объединить сеть Ethernet с сетью FDDI, поскольку адрес сетевого адаптера, работающего по технологии Ethernet, будет понятен сетевому адаптеру FDDI и наоборот. А вот сеть, построенную на базе протокола канального уровня SLIP, нельзя объединить с помощью моста с сетью Ethernet, поскольку в отличие от Ethernet, SLIP вообще не предусматривает механизм адресации. Поэтому для построения объединенных сетей, в общем случае, требуется функциональная надстройка, обеспечивающая единую логическую систему адресации. Такая система не должна зависеть от принципов физической адресации, принятых для каждой конкретной сетевой технологии.

Канальный уровень (Data Link) обеспечивает обмен данными через общую локальную среду. Он находится между сетевым и физическим уровнями модели OSI. Поэтому Канальный уровень должен предоставлять сервис вышележащему уровню, взаимодействуя с сетевым протоколом и обеспечивая инкапсулированным в кадр пакетам доступ к сетевой среде. В то же время, канальный уровень управляет процессом размещения передаваемых данных в физической среде. Поэтому канальный уровень разделен на 2 подуровня: верхний подуровень логической передачи данных LLC – Logical Link Control, являющийся общим для всех технологий, и нижний подуровень управления доступом к среде MAC – Media Access Control (рис.4.1). Кроме того, на канальном уровне обнаруживают ошибки в передаваемых данных.

Рис. 4.1. Подуровни канального уровня

Взаимодействие узлов локальных сетей происходит на основе протоколов канального уровня. Международным институтом инженеров по электротехнике и радиоэлектронике (Institute of Electrical and Electronics Engineers – IEEE) было разработано семейство стандартов 802.х, которое регламентирует функционирование нижних уровней (канального и физического) семиуровневой модели ISO/OSI. Ряд этих протоколов являются общими для всех технологий, например, стандарт 802.2, другие протоколы (например, 802.3, 802.5) определяют особенности технологий локальных сетей.

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

Подуровень МАС определяет особенности доступа к физической среде при использовании различных технологий локальных сетей. Протоколы МАС-уровня ориентированы на совместное использование физической среды абонентами. Разделяемая среда (shared media) используется в таких широко распространенных в локальных сетях технологиях как Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, FDDI. Использование разделяемой между пользователями среды улучшает загрузку канала связи, удешевляет сеть, но ограничивает скорость передачи данных между двумя узлами.

Каждой технологии МАС-уровня соответствует несколько вариантов (спецификаций ) протоколов физического уровня (рис.4.1). Так протоколу 802.3 , описывающему наиболее известную технологию Ethernet , соответствуют спецификации физического уровня: 10 Base - T , 10 Base - FB , 10 Base - FL . Спецификация 10Base-T предусматривает построение локальной сети на основе использования неэкранированной витой пары UTP не ниже 3 категории и концентратора (hub). Спецификации 10Base-FB, 10Base-FL используют волоконно-оптические кабели. В более ранних спецификациях 10Base-5 и 10Base-2 применялся “толстый” и “тонкий” коаксиальные кабели.

Протоколу Fast Ethernet (802.3u) соответствуют следующие спецификации физического уровня:

100Base-T4, где используется четыре витых пары кабеля UTP не ниже 3 категории;

100Base-TX – применяется две пары кабеля UTP не ниже 5 категории;

100Base-FX – используется два волокна многомодового оптического кабеля.

Помимо Ethernet и Fast Ethernet на МАС уровне используется еще ряд технологий: Gigabit Ethernet со скоростью передачи 1000 Мбит/c – стандарты 802.3z и 802.3ab; 10Gigabit Ethernet со скоростью передачи 10000 Мбит/c – стандарт 802.3ае, а также ряд других. Например, протокол 802.5 описывает технологию сетей Token Ring, где в качестве физической среды используется экранированная витая пара STP, с помощью которой все станции сети соединяются в кольцевую структуру. В отличие от технологии Ethernet в сетях с передачей маркера (Token Ring) реализуется не случайный, а детерминированный доступ к среде с помощью кадра специального формата – маркера (token). Сети Token Ring позволяют передавать данные по кольцу со скоростями либо 4 Мбит/c, либо 16 Мбит/c. По сравнению с Ethernet технология Token Ring более сложная и надежная, однако, Token Ring не совместима с новыми технологиями Fast Ethernet, Gigabit Ethernet, 10Gigabit Ethernet. Технологии Ethernet и совместимые с ними и рассматриваются в настоящем курсе лекций.

Передаваемый в сеть пакет инкапсулируется в поле данных кадра протокола LLC, формат которого приведен на рис.4.2.

Рис. 4.2. Формат кадра LLC

Флаги определяют границы кадра LLC. В поле данных (Data) размещаются пакеты сетевых протоколов. Поле адреса точки входа службы назначения (DSAP – Destination Service Access Point) и адреса точки входа службы источника (SSAP – Source Service Access Point) длиной по 1 байту адресуют службу верхнего уровня, которая передает и принимает пакет данных. Например, служба IP имеет значение SAP равное 0х6. Обычно это одинаковые адреса. Адреса DSAP и SSAP могут различаться только в том случае, если служба имеет несколько адресов точек входа. Таким образом, адреса DSAP и SSAP не являются адресами узла назначения и узла источника, да и не могут быть таковыми, поскольку поле длиной 1 байт позволяет адресовать только 256 точек, а узлов в сети может быть очень много.

Поле управления (Control) имеет длину 1 или 2 байта в зависимости от того, какой тип кадра передается: информационный (Information), управляющий (Supervisory), ненумерованный (Unnumbered). У первых двух длина поля Control составляет 2 байта, у ненумерованного – 1 байт. Тип кадра определяется процедурой управления логическим каналом LLC. Стандартом 802.2 предусмотрено 3 типа таких процедур:

LLC1 – процедура без установления соединения и подтверждения;

LLC2 – процедура с установлением соединения и подтверждением;

LLC3 – процедура без установления соединения, но с подтверждением.

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

Процедура LLC 2 перед началом передачи данных устанавливает соединение, послав соответствующий запрос и получив подтверждение, после чего передаются данные. Процедура позволяет восстанавливать потерянные и исправлять ошибочные данные, используя режим скользящего окна. Для этих целей она использует все три типа кадров (информационные, управляющие, ненумерованные). Данная процедура более сложная и менее быстродействующая по сравнению с LLC1, поэтому она используется в локальных сетях значительно реже, чем LLC1, например, протоколом NetBIOS/NetBEUI.

Широкое применение процедура, подобная LLC2, получила в глобальных сетях для надежной передачи данных по ненадежным линиям связи. Например, она используется в протоколе LAP-B сетей Х.25, в протоколе LAP-D сетей ISDN, в протоколе LAP-M сетей с модемами, частично – в протоколе LAP-F сетей Frame Relay.

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

Таким образом, наиболее широкое распространение в локальных сетях получила процедура LLC1, в которой используются только ненумерованные типы кадров.

На передающей стороне кадр LLC уровня передается на МАС-уровень, где инкапсулируется в кадр соответствующей технологии данного уровня. При этом флаги кадра LLC отбрасываются. Технология Ethernet предусматривает кадры четырех форматов, которые незначительно отличаются друг от друга. На рис.4.3 приведен наиболее распространенный формат кадра 802.3/LLC.

Рис.4.3. Формат кадра Ethernet 802.3/LLC

Преамбула кадра состоит из семи байт 10101010, необходимых для вхождения приемника в режим синхронизации. Начальный ограничитель кадра (Start of Frame Delimiter - SFD) – 10101011 вместе с преамбулой в итоге составляют 8 байт. Далее следуют физические адреса узла назначения (DA – Destination Address) и узла источника (SA – Source Address). В технологиях Ethernet физические адреса получили название МАС-адресов. Они содержат по 48 двоичных разрядов и представляются в шестнадцатеричной системе. В локальных сетях адресация узлов производится на основе МАС-адресов, которые «прошиты» в ПЗУ сетевых карт.

Адрес, состоящий из всех единиц FFFFFFFFFFFF, является широковещательным адресом (broadcast), когда передаваемая в кадре информация предназначена всем узлам локальной сети.

Младшие 24 разряда МАС-адреса (6 шестнадцатеричных разрядов) задают уникальный номер оборудования, например, номер сетевой карты. Следующие 22 разряда, за исключением двух старших, задают идентификатор производителя оборудования. Старший бит равный 0 указывает на то, что адрес является индивидуальным, а равный 1 – адрес является групповым. Второй старший бит равный 0 указывает, что идентификатор задан централизованно комитетом IEEE. В стандартной аппаратуре Ethernet идентификатор всегда задан централизованно. Несмотря на то, что в МАС-адресе выделена старшая и младшая части, МАС-адрес считается плоским (flat).

Поле L (рис.4.3) определяет длину поля данных Data, которое может быть от 46 до 1497 байт (в информационных кадрах процедуры LLC2 – до 1496 байт, поскольку поле Control – 2 байта). Если поле данных меньше 46 байт, то оно дополняется до 46 байт.

Поле контрольной суммы (FCS – Frame Check Sequence) длиной в 4 байта позволяет определить наличие ошибок в полученном кадре, за счет использования алгоритма проверки на основе циклического кода.

Вспомним функции канального уровня:

Управление доступом к среде (физическому уровню) передачи,

Физическая адресация узлов (MAC)

Обеспечение сервиса для протоколов более высокого уровня (Service Access Point)

Упорядочивание кадров (фреймов), буферизация

Учет топологии сети

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

Определение способа взаимодействия источника и приемника (связь с установлением соединения или нет)

1. Протоколы канального уровня

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

Возможна обработка ошибок передачи.

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

Единица данных уровня - кадры, инкапсулирующие пакеты сетевого уровня и преобразуемые в битовые потоки на физическом уровне.

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

доставка данных между сетевыми уровнями узлов.

Типы сервиса:

Без установления соединения и без подтверждения доставки;

Без установления соединения с подстерждением доставки;

С установлением содинения.

  1. Протоколы канального уровня Ethernet

Поступающие с сетевого уровня пакеты должны инкапсулироваться в кадры канального уровня. Формат кадра Ethernet (Ethernet-II или DIX) следующий:

Рассмотрим элементы кадра.

Преамбула (Preamble) не несет полезной информации. Генерируемый при её передаче в физической среде сигнал извещает принимающие устройства о необходимости быть готовым к приему.

SFD (Start of Frame Delimiter) разделитель начала кадра тоже не несет полезной информации (в первых версиях разделитель считался частью преамбулы). Он позволяет приемнику точно определить момент начала передачи полезных данных.

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

Адрес получателя DA (Destination Address) содержит уникальный MAC – адрес устройства, которому адресован данный кадр или специальный адрес для широковещательной рассылки пакетов.

Остановимся на структуре MAC – адреса подробнее.

Этот адрес всегда состоит из 6 байт или 48 бит. Для его записи обычно используется шестнадцатеричная форма ХХ:ХХ:ХХ:ХХ:ХХ:ХХ.

Значения первых двух бит в первом байте - признак уникального адреса, остальные байты задают адрес конкретного сете вого адаптера. Уникальность адресации адаптеров обеспечивается специ­ альным соглашением, по которому каждому производителю аппаратуры выделяется свое значение (одно или несколько) кода OUI (Organizationally Unique Identifier уникальный идентификатор организации ) - 22 бита из байтов 1-3 . Байты 4-6 заполняются изготовителем - на нем лежит ответственность за их уникальность (эта информация может рас сматриваться как серийный номер платы).

Для осуществления широковещательной рассылки используется специальное значение MAC – адреса FF-FF-FF-FF-FF-FF. Переданный пакет будет принят и обработан всеми станциями, которые находятся в локальной сети.

Адрес источника SA (Source Address) содержит МАС-адрес узла, пославшего кадр. Адрес широковещательной рассылки FF-FF-FF-FF-FF-FF использоваться здесь не может.

Тип несет данные о протоколе сетевого уровня.

Данные Data несет полезную информацию более высокого уровня

Контрольная сумма FCS (Frame Check Sequence) содержит CRC-код, подсчитанный для всех полей с DA no Data включительно. Этот код вычисляется адаптером при передаче кадра и при приеме. CRC, подсчитанный при приеме, должен совпасть со значением, принятым из кадра, в противном случае кадр считается искаженным и отбрасывается.

Рассмотренный нами формат кадра правильно называть форматом Ethernet-II или Ethernet DIX по имени компаний Digital, Intel и Xerox, согласовавших и опубликовавших его в 1980 году. Это был последний «фирменный» стандарт для Ethernet.