Формат кадров в сетях Token Ring определяется двумя стандартами — IEEE 802.5 и FDDI. Однако за исключением октета контроля доступа эти форматы не отличаются друг от друга. Формат кадра IEEE 802.5 приведен на рис. 6.38.
Рис. 6.38. Формат кадра IEEE 802.5
Протокол LLC обеспечивает большую часть услуг уровня канала данных. Этот протокол был разработан на основе другого протокола уровня канала данных — HDLC, однако обладает меньшей функциональностью по сравнению со своим родителем.
Формат кадра LLC представлен на рис. 6.39. Основными полями заголовка кадра являются DSAP
и SSAP
, которые определяют адреса точек доступа (SAP) соответственно отправителя и получателя данных. Кадр LLC также может содержать дополнительный заголовок SNAP (Sub-Network Access Point), также называемый адресом логической точки доступа (Logical SAP, LSAP).
Рис. 6.39. Формат кадра LLC
При работе в локальной сети на базе технологии CSMA/CD возможны два варианта инкапсуляции датаграмм IP в кадры уровней LLC и MAC.
Первый заключается в использовании кадров Ethernet 2.0. В этом случае поле данных (1500 октетов) полностью принадлежит IP-датаграмме, a SAP адресуется полем "тип пакета", которое содержит значение параметра Ethertype
— индекса протокола верхнего уровня. В случае IP это значение равно 0x0800. Значения Ethertype для других протоколов приведены в табл. 6.11.
Таблица 6.11. Значение Ethertype для некоторых протоколов
0x0000–0x05DC |
Поле Length IEEE 802.3 |
0x0800 |
Internet IP (IPv4) |
0x0806 |
ARP |
0x6003 |
DEC DECNET Phase IV Route |
0x8137 |
Novell IPX |
Второй вариант предполагает использование формата IEEE 802.3. В этом случае IP-датаграмма инкапсулируется в кадр LLC, а адресация SAP осуществляется в заголовке SNAP с помощью идентификатора Ethertype. При этом поля DSAP
и SSAP
не используются, и их значения устанавливаются равными 0xAA. Заметим, что в этом случае максимальный размер IP-датаграммы составляет 1492 октета.
При передаче данных TCP/IP в сетях Token Ring используется формат кадра IEEE 802.5, инкапсулирующий кадр LLC с заголовком SNAP, как описано выше.
Как уже говорилось, драйвер, реализующий поставщика услуг уровня канала данных, состоит из двух частей: аппаратно-зависимой и аппаратно-независимой. Соответственно драйвер хранит отдельные структуры данных, необходимые для работы этих частей. Архитектура драйвера приведена на рис. 6.40.
Рис. 6.40. Архитектура драйвера DLPI
Для каждого обслуживаемого драйвером сетевого адаптера создается отдельная структура данных DL_bdconfig_t
, описывающая характеристики адаптера и содержащая необходимую для управления адаптером информацию, а также статистику, являющуюся частью MIB (Management Information Base). Эта структура используется аппаратно-независимой и зависимой частями совместно, в том числе и для передачи определенной информации между ними.
В частности, эта структура содержит следующие поля:
major |
Старший номер устройства, связанного с данным сетевым адаптером |
io_start |
Адрес начала области ввода/вывода |
io_end |
Адрес конца области ввода/вывода |
mem_start |
Адрес начала базовой памяти |
mem_end |
Адрес конца базовой памяти |
irq_level |
Уровень прерывания |
шах_saps |
Максимальное число точек доступа (SAP) |
flags |
Флаги состояния адаптера |
mib |
Список статистических данных |
Поле flags
может включать следующие флаги:
BOARD_PRESENT |
Устанавливается драйвером после успешной инициализации адаптера |
BOARD_DISABLED |
Устанавливается драйвером при неудачной инициализации адаптера. Этот флаг также может быть установлен, если драйвер определит нарушения в функционировании адаптера |
TX_BUSY |
Указывает на отсутствие ресурсов, например отсутствие необходимых буферов для передачи кадра |
TX_QUEUED |
Указывает на наличие кадров, ожидающих передачи |
Для каждого подключенного пользователя услуг, или, другими словами, для каждой активной SAP драйвер создает структуру данных DL_sap_t
, описывающую тип и характеристики точки доступа. Приведем описание некоторых полей этой структуры:
Читать дальше