Обработку кадров, передаваемых по сети, выполняют сетевой адаптер, устанавливаемый в слот расширения станции, и соответствующий ему драйвер.
Сетевой адаптер (СА) и драйвер СА реализуют следующие функции:
- поддерживают метод доступа в сети,
- формируют и анализируют кадры, передаваемые по сети.
В зависимости от поддерживаемого метода доступа и типа кадра сетевые адаптеры можно разделить на несколько групп: Ethernet, Token Ring, ARCNet, FDDI и др. Сети, где устанавливаются перечисленные адаптеры, имеют те же названия: сети Ethernet, сети Token Ring и т. д. Следует отметить, что рассматриваемые СА поддерживают разные методы доступа и типы кадров, поэтому они не совместимы между собой. Следовательно, на станциях, подключаемых к одному сегменту сети, необходимо устанавливать сетевые адаптеры одного типа.
Ниже рассматриваются методы доступа и кадры для сетей Ethernet, Token Ring, ARCNet и FDDI.
На логическом уровне в Ethernet применяется топология шина:
- все устройства, подключённые к сегменту сети, равноправны, т. е. любая станция может начать передачу в любой момент времени, если передающая среда свободна,
- кадр, передаваемый одной станцией, одновременно анализируется всеми остальными станциями сегмента.
Стандарты Ethernet поддерживают метод доступа CSMA/CD (Carrier Sense Multiple Access / Collision Detection) и обеспечивают скорость передачи по шине 10 Мбит/с и 100 Мбит/с. По-русски этот метод доступа называется "Множественный доступ с контролем несущей и обнаружением коллизий". Ниже приводится краткое описание этого метода доступа.
Передача данных происходит следующим образом. Станция проверяет состояние среды передачи данных (шины). Если среда занята, то станция ожидает освобождения среды. Если среда свободна, то станция начинает передавать кадр данных, одновременно контролируя состояние среды (несущую частоту f1). В том случае, когда за время передачи кадра станция не обнаружила состояние коллизии в сети (т. е. частота f1 не изменилась), считается, что данные переданы успешно.
Если при передаче кадра произошла коллизия (т. е. несущая частота изменилась на величины f2(f1), то станция прекращает передавать данные и выдаёт специальную последовательность из 32 битов, которая позволяет всем станциям определить, что произошла коллизия. Затем станция переходит в состояние ожидания на небольшой случайный промежуток времени, по окончании которого она, проверив среду, пытается ещё раз передать по сети свой кадр. Если за 16 попыток станции не удается передать свои данные, то считается, что среда недоступна.
Следует отметить, что коллизия (конфликт) может произойти в том случае, если среду проверяют несколько станций одновременно. Выяснив, что среда свободна, они пытаются передать свои кадры. При одновременной передаче нескольких кадров несущая частота среды изменяется до величины f2, отличной от f1 (передача одного кадра). Коллизию обнаруживают все станции, которые пытаются одновременно передать свои данные. Каждая из этих станций выполняет действия, перечисленные выше.
Существует четыре основные разновидности кадров Ethernet (рисунок 2.28). NetWare все их поддерживает.
Ethernet_II Ethernet_802.3 Ethernet_802.2 Ethernet_SNAP
P | 7 | P | 7 | P | 7 | P | 7
|
SFD | 1 | SFD | 1 | SFD | 1 | SFD | 1
|
DA | 6 | DA | 6 | DA | 6 | DA | 6
|
SA | 6 | SA | 6 | SA | 6 | SA | 6
|
Type | 2 | Length | 2 | Length | 2 | Length | 2
|
Пакет | | | | DSAP | 1 | DSAP | 1
|
| | | | SSAP | 1 | SSAP | 1
|
| 46- | | 46- | Control | 1 | Control | 1
|
| 1500 | | 1500 | Пакет | | OUI | 3
|
| | | | | 43 - | ID | 2
|
| | | | | 1497 | Пакет | 38-
|
| | | | | | | 1495
|
FCS | 4 | FCS | 4 | FCS | 4 | FCS | 4
|
Рис. 2.28. Типы кадров для сетей Ethernet
Цифры на рисунке обозначают длины полей кадров (в байтах). Здесь введены следующие обозначения.
P - преамбула. Представляет собой семибайтовую последовательность единиц и нулей (101010....). Это поле предназначено для синхронизации приёмной и передающей станций.
SFD (Start Frame Delimiter) - признак начала кадра (10101011),
DA (Destination Address), SA (Source Address) - адреса получателя и отправителя. Они представляют собой физические адреса сетевых адаптеров Ethernet и являются уникальными. Первые три байта адреса назначаются каждому производителю Ethernet-адаптеров (для адаптеров фирмы Intel это будет значение 00AA00h, а для адаптеров 3Com - 0020afh), последние три байта определяются самим производителем. Для широковещательных кадров поле DA устанавливается в FFFFFFFFh.
FCS (Frame Check Sequence) - контрольная сумма всех полей кадра (за исключением полей преамбулы, признака начала кадра и самой контрольной суммы). Если длина пакета передаваемых данных меньше минимальной величины, то адаптер Ethernet автоматически дополняет его до 46 байтов. Этот процесс называется выравниванием (padding). Жёсткие ограничения на минимальную длину пакета были введены для обеспечения нормальной работы механизма обнаружения коллизий.
Теперь рассмотрим специфичные поля каждого типа кадра.
Ethernet_II
Этот тип кадра был разработан первым для сетей Ethernet. Дополнительно содержит следующее поле:
Type - определяет тип протокола сетевого уровня, пакет которого переносится этим кадром (8137h - для протокола IPX, 0800h - для протокола IP, 809Bh - для протокола AppleTalk и т. д.). Все идентификаторы имеют значения старше 05bch.
Ethernet_802.3
Этот тип кадра был создан фирмой Novell и является базовым для сетей с ОС NetWare 3.11. Дополнительно содержит следующее поле:
Length - длина передаваемого пакета.
Поскольку в этом кадре отсутствует поле с типом протокола, то он может быть использован только для переноса IPX. Заголовок пакета IPX (рисунок 2.14) следует непосредственно за полем длины, поэтому первое поле пакета (поле Checksum) содержит значение FFFFh.
Ethernet_802.2
Этот тип кадра разработан подкомитетом IEEE 802.3 в результате стандартизации сетей Ethernet. Этот кадр содержит следующие дополнительные поля:
Length - длина передаваемого пакета,
DSAP (Destination Service Access Point) - тип протокола сетевого уровня станции-получателя (E0h - для IPX),
SSAP (Source Service Access Point) - тип протокола сетевого уровня станции-отправителя,
Control - номер сегмента; используется при разбиении длинных IP-пакетов на более мелкие сегменты; для пакетов IPX это поле всегда содержит значение 03h (обмен ненумерованными датаграммами).
Ethernet_SNAP
Этот кадр является модернизацией кадра Ethernet_802.2 и содержит ещё два поля: OUI (Organizational Unit Identifier) и ID, которые определяют тип протокола верхнего уровня SNAP Protocol ID.
Каждая станция начинает принимать кадр с преамбулы Р. Затем сравнивает значение адреса DA со своим адресом. Если адреса одинаковы, или пришёл широковещательный кадр, или задана специальная программа обработки, то кадр копируется в буфер станции. Если нет, то кадр игнорируется.
Ниже приведён алгоритм идентификации типа кадра сетевым адаптером:
- если за полем SA следует значение старше 05dch, то это кадр Ethernet_II,
- если за полем Length следует идентификатор FFFFh, то это кадр Ethernet_802.3,
- если за полем Length следует идентификатор AAh, то это кадр Ethernet_SNAP, иначе - это кадр Ethernet_802.2.
Адаптеры Token Ring поддерживают метод доступа Token Ring (маркерное кольцо) и обеспечивают скорости передачи 4 Мбит/с или 16 Мбит/с. Ниже перечислены основные положения этого метода:
- станции подключаются к сети по топологии кольцо,
- все станции, подключённые к сети, могут передавать данные, только получив разрешение на передачу (маркер),
- в любой момент времени только одна станция в сети обладает таким правом.
Data/Command Frame Token Abort
| SD | 1 | SD | 1 | SD | 1 |
|
| AC | 1 | AC | 1 | ED | 1 |
|
| FC | 1 | ED | 1 | | |
|
| DA | 6 | | | | |
|
| SA | 6 | | | | |
|
| Пакет | до 4202 | | | | |
|
| | | | | | |
|
| FCS | 4 | | | | |
|
| ED | 1 | | | | |
|
| FS | 1 | | | | |
|
Рис. 2.29. Типы кадров для сетей Token Ring
Этот метод доступа излагается при обсуждении кадров Token Ring в конце данного пункта.
В сетях Token Ring используются три основных типа кадров (рисунок 2.29):
- Data/Command Frame (кадр управления/данные),
- Token (маркер),
- Abort (кадр сброса).
Цифры на рисунке обозначают длины полей кадров (в байтах). Здесь введены следующие обозначения полей:
SD (Start Delimiter) - признак начала кадра. Синхронизирует работу приёмника и передатчика, подготавливает станцию к приёму пакета.
AC (Access Control) - поле управления доступом. Содержит поле приоритета Р (3 бита), поле маркера Т (1 бит), поле монитора М (1 бит) и рабочее поле R (3 бита). Поясним назначение полей Р, Т и М.
- Поле Р (Priority). Предположим, что станции WS1, WS2 и WS3 связаны в кольцо. Пусть у станции WS2 есть данные для передачи с приоритетом 5. В это время через неё проходит кадр (например, данные от WS1), где в поле AC установлен приоритет 3 (поле Р). Тогда WS2 запоминает старое значение Р (=3), устанавливает в Р новое значение (=5, т. е. более высокий уровень) и ретранслирует кадр дальше. По кольцу этот кадр возвращается к станции-отправителю WS1. Она, обнаружив в поле Р значение 5, формирует кадр Token (маркер) со значением поля Р, равным 5, и направляет этот кадр по кольцу. Таким образом, станция WS2 получит право на передачу, поскольку у неё самый высокий приоритет. Передав данные, WS2 сформирует и передаст кадр Token с приоритетом 5. Если ни одна станция в сети не имеет данных с таким приоритетом, то маркер (кадр Token) вернётся на WS2. Эта станция "вспомнит", что в своё время увеличила приоритет, и уменьшит его, изменив значение Р в поле AС с 5 на 3. Затем маркер с приоритетом 3 будет передан в сеть.
- Поле Т (Token). Этот бит равен 1, если это кадр Data/Command Frame, и равен 0, если это кадр Token.
- Поле М (Monitor). При первом проходе станция-монитор устанавливает этот бит в 1. Если затем она получает по кольцу этот кадр с битом М=1, то считает, что станция-отправитель неисправна и удаляет этот кадр из сети.
FC (Frame Control) - поле кадра управления. Для кадра управления в этом поле содержится команда управления. Это может быть команда инициализации кольца, команда проверки адресов устройств и т. п.
DA (Destination Address) - адрес приёмника. Это может быть broadcast-, multicast- или unicast-адрес.
SA (Source Address) - адрес источника.
Пакет - это данные, сформированные каким-либо протоколом (например, IPX). Максимальная длина пакета зависит от загрузки сети. При большой загрузке сети, когда многие станции имеют данные для передачи, интервал времени между получениями маркера станцией будет увеличиваться. В такой ситуации станции автоматически уменьшают максимальный размер пакета, поэтому каждая станция будет передавать свои данные за более короткий промежуток времени и, следовательно, уменьшится время получения (ожидания) маркера или время доступа станции к среде. Когда загрузка сети уменьшается, максимальный размер пакета динамически увеличивается. Этот механизм позволяет устойчиво работать сети Token Ring при пиковых нагрузках.
FCS (Frame Check Sequence) - контрольная сумма, вычисленная для полей FC, DA, SA, Пакет.
ED (End Delimiter) - конечный ограничитель кадра. Кроме этого один бит в этом поле используется для индикации, что этот кадр является последним в логической цепочке. Ещё один бит изменяется приёмником при обнаружении ошибки после сравнения контрольной суммы со значением в поле FCS.
FS (Frame Status) - поле статуса кадра. Состоит из полей A (Address Resolution) и C (Frame Copied). Передающая станция устанавливает эти поля в 0, а принимающая станция изменяет их в соответствии с результатами приёма кадра и ретранслирует кадр дальше по сети. Когда кадр возвращается на станцию-передатчик, выполняется проверка полей A и С (таблица 2.12), и кадр удаляется из кольца.
Таблица 2.12. Значения полей А и С
А | С | Описание
|
0 | 0 | Станция-приёмник не доступна в данный момент.
|
1 | 0 | Станция-приёмник обнаружила ошибку в кадре. Передача кадра повторяется.
|
0 | 1 | Недопустимая комбинация битов.
|
1 | 1 | Передача выполнена успешно.
|
Ниже приведено краткое описание метода доступа Token Ring.
Управление станциями в сети происходит с помощью передачи специального кадра Token - маркера (рисунок 2.29). Станция, которая приняла маркер, получает право на передачу и может передавать данные. Для этого станция удаляет маркер из кольца, формирует кадр данных и передаёт его следующей станции. В сети Token Ring все станции принимают и ретранслируют все кадры, проходящие по кольцу. При приёме станция сравнивает поле адреса кадра (DA) с собственным адресом. Если адреса не совпадают, то кадр передаётся далее по кольцу без изменений. Если адреса совпадают, или принят кадр с broadcast-адресом, то содержимое копируется в буфер станции, а по результатам приёма вносятся изменения в поле статуса кадра (FS). Затем кадр передаётся далее по сети и, таким образом, возвращается на станцию-отправитель. Получив кадр, станция-отправитель проверяет поле статуса кадра (FS) (таблица 2.12), формирует маркер и передаёт его следующей станции. Таким образом, следующая станция получает право на передачу данных.
При подключении устройств в ARCNet применяют топологию шина или звезда. Адаптеры ARCNet поддерживают метод доступа Token Bus (маркерная шина) и обеспечивают производительность 2,5 Мбит/с. Этот метод предусматривает следующие правила:
- все устройства, подключённые к сети, могут передавать данные, только получив разрешение на передачу (маркер),
- в любой момент времени только одна станция в сети обладает таким правом,
- кадр, передаваемый одной станцией, одновременно анализируется всеми остальными станциями сети.
Этот метод доступа излагается после рассмотрения кадров ARCNet.
В сетях ARCNet используется асинхронный метод передачи данных (в сетях Ethernet и Token Ring применяется синхронный метод). Т. е. передача каждого байта в ARCNet выполняется посылкой ISU (Information Symbol Unit - единица передачи информации), состоящей из трёх служебных старт/стоповых битов и восьми битов данных.
В ARCNet определены 5 типов кадров (рисунок 2.30):
- Кадр ITT (Invitations To Transmit) - приглашение к передаче. Станция, принявшая этот кадр, получает право на передачу данных.
- Кадр FBE (Free Buffer Enquiries) - запрос о готовности к приёму данных. С помощью этого кадра проверяется готовность узла к приёму данных.
- Кадр DATA - с помощью этого кадра передаётся пакет данных.
- Кадр ACK (ACKnowledgments) - подтверждение приёма. Подтверждение готовности к приёму данных (ответ на FBE) или подтверждение приёма кадра DATA без шибок (ответ на DATA).
- Кадр NAK (Negative ACKnowledgments) - Узел не готов к приёму данных (ответ на FBE) или принят кадр с ошибкой (ответ на DATA).
ITT FBE DATA ACK NAK
AB | 1 | AB | 1 | AB | 1 | AB | 1 | AB | 1
|
EOT | 1 | ENQ | 1 | SOH | 1 | ACK | 1 | NAK | 1
|
DID | 2 | DID | 2 | SID | 1 | | | |
|
| | | | DID | 2 | | | |
|
| | | | COUNT | 2 | | | |
|
| | | | Пакет | 1-508 | | | |
|
| | | | | | | | |
|
| | | | CRC | 2 | | | |
|
Рис. 2.30. Типы кадров для сетей ARCNet
Цифры на рисунке 2.30 обозначают длины полей кадров (в байтах). На рисунке введены следующие обозначения полей:
AB (Alert Burst) - начальный разделитель. Он выполняет функции преамбулы кадра.
EOT (End Of Transmit) - символ конца передачи.
DID (Destination Identification) - адрес приёмника (ID приёмника). Если в поле заносится значение 00h, то кадр обрабатывается всеми станциями.
ENQ (ENQuiry) - символ запроса о готовности к приёму данных.
SOH (Start Of Header) - символ начального заголовка.
SID (Source Identification) - адрес источника (ID источника).
COUNT = 512-N, где N - длина пакета в байтах.
CRC - контрольная сумма.
ACK (ACKnowledgments) - символ готовности к приёму данных.
NAK (Negative ACKnowledgments) - символ не готовности к приёму данных.
Ниже приведено описание метода доступа Token Bus.
Все станции в сети ARCNet определяются 8-битовым ID (Identification - физический адрес сетевого адаптера). Этот адрес устанавливается переключателями на плате.
В сети ARCNet очерёдность передачи данных определяется физическими адресами станций (ID). Первой является станция с наибольшим адресом, затем следует станция с наименьшим адресом, далее - в порядке возрастания адресов. Каждая станция знает адрес следующей за ней станции (NextID или NID). Этот адрес определяется при выполнении процедуры реконфигурации системы. Выполнив передачу данных, станция передаёт право на передачу данных следующей станции при помощи кадра ITT, при этом в поле DID устанавливается адрес NID. Следующая станция передаёт данные, затем кадр ITT и так далее. Таким образом, каждой станции предоставляется возможность передать свои данные. Предположим, что в сети работают станции с физическими адресами 3, 11, 14, 35, 126. Тогда маркер на передачу (кадр ITT) будет передаваться в следующей последовательности: 126®3®11®14®35®126®3 и т. д.
Для передачи пакета станция сначала должна получить маркер. Получив маркер, узел посылает кадр FBE той станции, которой должны быть переданы данные. Если станция-приёмник не готова, она отвечает кадром NAK, в противном случае - ACK. Получив ACK, узел, владеющий маркером, начинает передавать кадр DATA. После отправки кадра передатчик ожидает ответа в течение 75,6 мкс. Если получен ответ ACK, то передатчик передаёт маркер следующей станции. Если получен ответ NAK, то передатчик повторно передаёт приёмнику кадр DATA. Затем, вне зависимости от ответа маркер передаётся следующей станции.
Каждая станция начинает принимать кадр DATA, обнаружив передачу начального разделителя AB. Затем сравнивает значение адреса DID со своим адресом. Если адреса одинаковы или пришёл broadcast-кадр, данные записываются в буфер станции, если нет, то кадр игнорируется. Кадр считается нормально принятым, если он принят полностью, и контрольная сумма совпадает со значением в поле CRC. Получив нормальный кадр DATA, станция передаёт ответ ACK. Если при приёме обнаружена ошибка, то передаётся ответ NAK. В ответ на широковещательный кадр DATA кадры ACK и NAK не передаются.
В заключение этого пункта рассмотрим, как выполняется реконфигурация сети ARCNet.
Реконфигурация сети выполняется автоматически всякий раз при включении новой станции или при потере маркера. Сетевой адаптер начинает реконфигурацию, если в течение 840 мс не получен кадр ITT. Реконфигурация производится с помощью специального кадра реконфигурации (Reconfiguration Burst). Такой кадр длиннее любого другого кадра, поэтому маркер будет разрушен (из-за коллизии), и никакая станция в сети не будет владеть маркером (т. е. правом на передачу). После приёма кадра реконфигурации каждая станция переходит в состояние ожидания на время, равное 146*(256-ID) мкс. Если по окончании тайм-аута передач по сети не было (а это справедливо только для станции с наибольшим адресом ID), то узел передаёт кадр ITT с адресом DID, равным собственному ID. Если ни одна станция не ответила, узел увеличивает DID на единицу и повторяет передачу кадра ITT и т. д. После положительного ответа маркер передаётся ответившей станции, а её адрес ID запоминается как адрес следующей станции (NID). Эта операция повторяется, пока маркер не вернётся к первому узлу (станции с максимальным адресом). При выполнении реконфигурации каждая станция в сети узнаёт следующую за ней станцию. Таким образом формируется логическое кольцо, определяющее последовательность передачи маркера.
Адаптеры FDDI поддерживают метод доступа Token Ring (см. п. 2.3.6.2) и обеспечивают производительность 100 Мбит/с. Максимальная длина кольца с оптоволоконным кабелем FDDI - 100 км. Интерфейс FDDI (Fiber Distributed Data Interface) является более современным, чем Ethernet, Token Ring и ARCNet. Сети FDDI можно использовать для объединения нескольких сетей Ethernet, расположенных в разных зданиях (рисунок 2.31).
Часто в качестве адаптеров FDDI используются интеллектуальные концентраторы, выполняющие функции моста, например, NetBuilder II. На рисунке интеллектуальный концентратор обозначен как Hub1. Простой концентратор (Hub2) обычно выполняет роль повторителя. Метод доступа, используемый в сетях FDDI, имеет следующие отличия от Token Ring (см. п. 2.3.6.2):
- в Token Ring маркер передаётся следующей станции только после возвращения кадра в узел, который передал этот кадр в сеть; в методе FDDI маркер будет передан непосредственно после передачи кадра данных в сеть,
- в методе FDDI не используется поле приоритета Р (в байте АС).
В сетях FDDI используются два основных типа кадра (рисунок 2.32):
- Data/Command Frame (кадр управление/данные),
- Token (маркер).
Цифры на рисунке 2.32 обозначают длины полей кадров (в байтах). На рисунке введены следующие обозначения полей:
P - преамбула. Это поле предназначено для синхронизации.
SD - признак начала кадра.
FC - поле, состоящее из следующих областей: CLFFTTTT.
Рис. 2.31. Использование интерфейса FDDI для объединения сетей Ethernet
Бит C устанавливает класс кадра, который определяет, будет ли кадр использоваться для синхронного или асинхронного обмена. Бит L - это индикатор длины адреса станции (16 или 48 битов). В отличие от Ethernet и Token Ring здесь допускается использование в одной сети адресов той и другой длины. Биты FF определяют, принадлежит ли кадр подуровню MAC (т. е. кадр предназначен для управления кольцом) или подуровню LLC (т. е. кадр предназначен для передачи данных). Если кадр является кадром подуровня MAC, то биты TTTT определяют тип пакета (IPX и т. д.).
DA - адрес станции-приёмника.
SA - адрес станции-источника.
FCS -контрольная сумма.
ED - конечный ограничитель кадра.
FS - поле статуса пакета. Это поле содержит поля А (Address Resolution) и C (Frame Copied) (см. таблицу 2.12).
Data/Command Frame Token
P | 8 | P | 8
|
SD | 1 | SD | 1
|
FC | 1 | FC | 1
|
DA | 2 или 6 | ED | 1
|
SA | 2 или 6 | FS | 1
|
Пакет | до 4500 | |
|
| | |
|
FCS | 4 | |
|
ED | 1/2 | |
|
FS | 1 | |
|
Рис. 2.32. Типы кадров для сетей FDDI
Предыдущая глава || Оглавление || Следующая глава