Операционная система UNIX - Страница 151
Технология FDDI, также использует метод передачи маркера, правда, несколько отличающийся от только что описанного. Основное отличие заключается в том, что устройство сразу же после передачи пакета помещает свободный маркер. Если какое-либо устройство желает передать данные, оно может воспользоваться этим маркером, также поместив новый свободный маркер вслед за переданным пакетом. Таким образом, в кольце может одновременно существовать несколько пакетов, что повышает эффективность использование пропускной способности сети.
Формат кадров в сетях Token Ring определяется двумя стандартами — IEEE 802.5 и FDDI. Однако за исключением октета контроля доступа эти форматы не отличаются друг от друга. Формат кадра IEEE 802.5 приведен на рис. 6.38.
Рис. 6.38. Формат кадра IEEE 802.5
Протокол LLC
Протокол LLC обеспечивает большую часть услуг уровня канала данных. Этот протокол был разработан на основе другого протокола уровня канала данных — HDLC, однако обладает меньшей функциональностью по сравнению со своим родителем.
Формат кадра LLC представлен на рис. 6.39. Основными полями заголовка кадра являются
DSAP
SSAP
Рис. 6.39. Формат кадра LLC
Инкапсуляция IP
При работе в локальной сети на базе технологии CSMA/CD возможны два варианта инкапсуляции датаграмм IP в кадры уровней LLC и MAC.
Первый заключается в использовании кадров Ethernet 2.0. В этом случае поле данных (1500 октетов) полностью принадлежит IP-датаграмме, a SAP адресуется полем "тип пакета", которое содержит значение параметра
Ethertype
Таблица 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
При передаче данных TCP/IP в сетях Token Ring используется формат кадра IEEE 802.5, инкапсулирующий кадр LLC с заголовком SNAP, как описано выше.
Внутренняя архитектура
Как уже говорилось, драйвер, реализующий поставщика услуг уровня канала данных, состоит из двух частей: аппаратно-зависимой и аппаратно-независимой. Соответственно драйвер хранит отдельные структуры данных, необходимые для работы этих частей. Архитектура драйвера приведена на рис. 6.40.
Рис. 6.40. Архитектура драйвера DLPI
Для каждого обслуживаемого драйвером сетевого адаптера создается отдельная структура данных
DL_bdconfig_t
В частности, эта структура содержит следующие поля:
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
state | Состояние SAP. Возможные состояния определены интерфейсом DLPI. Исходное состояние точки доступа DL_UNBOUND | |
sap_addr | Уникальный адрес (идентификатор) SAP | |
flags | Флаги, определяющие дополнительные характеристики SAP | |
read_q | Указатель на очередь чтения потока, связанного с SAP | |
write_q | Указатель на очередь записи потока, связанного с SAP | |
mac_type | Тип используемого протокола доступа и формат используемого кадра. Возможные значения включают: | |
DL_CMACD | IEEE 802.3 | |
DL_ETHER | Ethernet 2.0 | |
DL_TPB | IEEE 802.4 | |
DL_TPR | IEEE 802.5 | |
DL_HDLC | ISO HDLC | |
DL_FDDI | FDDI | |
service_mode | Режим передачи данных. В локальных сетях обычно используется режим без установления связи без подтверждения DL_CLDLS | |
provider_style | Тип поставщика услуг: DL_STYLE1 DL_STYLE2 | |
bd | Указатель на структуру DL_bdconfig_t | |
next_sap | Указатель на следующую точку доступа в списке активных SAP | |
max_spdu | Максимальный размер данных, которые могут быть переданы в кадре | |
min_spdu | Минимальный размер данных, которые могут быть переданы в кадре |