Сетевые технологии (архитектуры)
ЛОКАЛЬНЫХ СЕТЕЙ
Поколения сетевых архитектур
Архитектуры локальных сетей можно разделить, по крайней мере, на два поколения. К первому из них относятся архитектуры, обеспечивающие низкую и среднюю скорость передачи информации:
Local Talk (230 Кбит/с), Ethernet 10 Мбит/с), Token Ring (16 Мбит/с) и ARC net (2,5 Мбит/с).
Все они (по крайней мере, первоначальные их версии) основаны на использовании в качестве среды передачи данных кабеля с медной жилой.
Ко второму поколению относятся современные высокоскоростные архитектуры: FDDI (100 Мбит/с), АТМ (155 Мбит/с) и усовершенствованные версии архитектур первого поколения, включая 100 и 1000 – мегабитную архитектуры Ethernet, 20-ти мегабитная архитектура ARC net Plus.
Усовершенствованные варианты архитектур нового поколения все также рассчитаны на применение кабелей с медными жилами, поскольку ориентированы на использование уже существующих кабельных систем.
Новые архитектуры (FDDI и ATM) ориентированы на применение волоконно-оптических линий передачи данных и могут использоваться для одновременной передачи информации различных типов, например, речи, данных и видеоизображения.
Технология Ethernet
Ветераном сетевых технологий (архитектур) является Ethernet – эта спецификация была предложена фирмами DEC, Intel и Xerox в 1980 году и несколько позже на ее основе появился стандарт IEEE 802.3. По первым буквам названий этих фирм образовано сокращение DIX, фигурирующее в описаниях этой технологии. Слово Ether (эфир) в названии технологии обозначает многообразие возможных сред передачи. Первые версии – Ethernet v1.0 и Ethernet v2.0 предназначались только для коаксиального кабеля, стандарт IEEE 802.3 рассматривает и иные варианты среды передачи – витуй пару и оптоволокно. Сейчас под названием Ethernet подразумевают стандарт IEEE 802.3 (скорость 10 Мбит/с). В 1995 году был принят стандарт IEEE 802.3u – Fast Ethernet со скоростью 100 Мбит/с, а в 1997 году IЕЕЕ 802.3z -Gigabit Ethernet (1000 Мбит/с). Осенью 1999 года принят стандарт IEEE 802.3ab – Gigabit Ethernet на витой паре категории 5. Популярные разновидности Ethernet обозначаются как 10Base2, 100BaseTX и др. Здесь первый элемент обозначает скорость передачи, Мбит/с. Второй элемент: Base – прямая (немодулированная) передача, Broad – использование широкополосного кабеля с частотным уплотнением каналов. Третий элемент: округленная длина кабеля в сотнях метров (10Base2 – 185 м, 10Base5 – 500 м, хотя в 1Base5 длина до 250м) или среда передачи (Т, ТХ, Т2, Т4 – витые пары, FX, FL, FB, SX и LX – оптоволокно, СХ – твинаксиальный кабель для Gigabit Ethernet). Эти разновидности будут рассмотрены ниже, за исключением “древнего” варианта 1Ваse5 и 10Broad36 на 75-омном коаксиальном кабеле, которые в настоящее время встречаются редко.
Технология Ethernet основана на методе множественного доступа к среде передачи с прослушиванием несущей и обнаружением коллизий – CSMA/CD. Суть этого метода опишем применительно к “классической”версии Ethernet (10 Мбит/с на коаксиальном кабеле) и рассмотрим более поздние вариации.
1.2.1. Метод доступа CSMA/CD
Каждый узел сети имеет сетевой адаптер – схему, реализующую метод CSMA/CD на аппаратном (или микропрограммном) уровне. Адаптер имеет приемопередатчик – трансивер, подключенный к общей (разделяемой) среде передачи, в оригинале – к коаксиальному кабелю. Адаптер узла, (для краткости – узел), нуждающийся в передаче информации, прослушивает линию и дожидается “тишины” – отсутствия сигнала (несущей). Далее он формирует кадр (frame, фрейм), начинающийся с синхронизирующей преамбулы, за которой следует поток двоичных данных в самосинхронизирующемся (манчестерском) коде. Все остальные узлы принимают этот сигнал, синхронизируются по преамбуле и декодируют его в последовательность бит, помещаемую в свой приемный буфер. Окончание кадра определяется по пропаданию несущей, и по этому событию приемники анализируют принятый кадр. Этот кадр контролируется на отсутствие ошибок (с помощью контрольной последовательности бит и по длине), после чего в “хорошем” кадре проверяется адресная информация. В каждом кадре имеется заголовок с МАС-адресами узла-источника и узла его назначения. Если адрес назначения кадра соответствует МАС-адресу данного узла, то кадр поступает на дальнейшую обработку протоколами вышестоящих уровней. Кадры, не адресованные данному узлу, им игнорируются на аппаратном уровне адаптера, не отвлекая центральный процессор узла. Теперь предположим, что два узла хотят передать данные почти одновременно: оба дождались “тишины” и стали передавать преамбулу. Столкновение двух сигналов – коллизия – приведет к их искажению, которое обнаруживается передатчиком. Передающие узлы, обнаружив коллизию, прекращают передачу кадра, после чего повторную попытку передачи сделают через случайный интервал времени (каждый через свой) после освобождения линии. Если повторная попытка также не удалась, делается следующая (и так до 16 раз), причем интервал увеличивается. Приемник обнаруживает коллизию по ненормально короткой длине (в “хорошем” кадре она не может быть меньше 64 байт, не считая преамбулы) и такие кадры отбрасывает.
Коллизии являются нормальным, хотя и нежелательным явлением в сети Ethernet. Метод CSMA/CD хорошо работает лишь при общей загрузке канала (среды передачи) до 30 %. При большей загрузке коллизии приводят к прогрессирующей деградации производительности, что является слабым местом технологии Ethernet. Несмотря на то, что в принципе Ethernet допускает наличие в одном сегменте сотен (даже тысяч) узлов, при их высокой активности разумный размер домена коллизий – группы узлов, связанных общей средой (кабелями и повторителями), – ограничен лишь несколькими десятками узлов. Протяженность домена коллизий ограничивается временем распространения сигнала между самыми удаленными друг от друга узлами.
Временные соотношения принято измерять в битовых интервалах bt (bit time). Битовый интервал – время, необходимое для передачи одного бита, которое при скорости передачи 10 Мбиг/с составляет 0,1 мкс. Смежные 8-битные группы называют как байтами, так и октетами.
Двоичная информация передается в манчестерском коде. В середине каждого битового интервала происходит изменение состояния в линии: от -V к +V для единичного бита, от +V к -V – для нулевого. В начале битового интервала изменение может быть, а может и не быть. Передатчик является источником тока 40 мА, приемник – детектором уровня напряжения с высоким входным сопротивлением. Узел, не передающий в данный момент, вносит нагрузку сопротивлением более 100 кОм. Приемник и передатчик подключаются к общему коаксиальному кабелю с импедансом 50 Ом, который с обоих концов оканчивается 50-омными терминаторами. Т-образные ответвления кабеля недопустимы. Два терминатора образуют нагрузку с сопротивлением постоянному току 25 Ом, с учетом сопротивления кабеля эта нагрузка может доходить и до 30 Ом (худший случай, когда узел расположен в середине самого длинного сегмента). На номинальной нагрузке ток 40 мА от одного передатчика вызывает падение напряжения 1 В. Коллизия определяется передающим трансивером по большому уровню (более 1,5 В) сигнала в линии, вызванному одновременной работой двух и более передатчиков. Принятый метод доступа и способ передачи сигналов критичен к импедансу кабеля и терминаторов. При использовании иного (например, 75 Ом) кабеля и нарушении терминации (не два терминатора или не 50 Ом) сеть практически неработоспособна – из-за большого сопротивления нагрузки сигнал одиночного передатчика будет превышать порог срабатывания детектора коллизий. Порог срабатывания “детектора коллизий (1,5-1,6 В) выбирается с таким расчетом, чтобы сигнал от одного передатчика гарантированно не приводил к срабатыванию детектора, а сумма сигналов от двух передатчиков вызывала срабатывание, причем для самых худших случаев. В расчете порогов фигурирует разброс выходных токов передатчиков, максимальный входной ток приемника и (он вызывает смещение уровня сигнала), входное сопротивление приемника, разброс сопротивлений терминаторов, сопротивление сегмента постоянному току (складывается из сопротивления кабеля и коннекторов). С этими расчетами связаны ограничения на количество узлов в сегменте и максимальную длину сегмента, с учетом сопротивления кабелей и коннекторов. Коллизии могут выявляться в двух режимах: в режиме передачи и в режиме приема. При выявлении коллизий в режиме передачи (transmit mode collision detection) детектор, обязан обнаружить коллизию двух (и более) передатчиков, один из которых – его собственный. Это более легкий (в плане тонкости подбора порогов) случай. При выявлении коллизий в режиме приема (receive mode collision detection) детектор обязан обнаружить коллизии любых двух (и более) передатчиков, при этом “вилка” возможных значений порогов сужается. Стандарт 802.3 для узлов, не являющихся повторителями, допускает оба режима обнаружения. Если все узлы используют обнаружение в режиме передачи, то появляется возможность увеличения длины сегмента (до 300 м в “тонком” варианте и до 1000 м в “толстом”) и числа узлов (до 100 в “тонком”). Однако повторители (см. 1.2.6.1) должны обеспечивать обнаружение коллизий и в режиме приема, иначе они не смогут сообщить о коллизии в другой сегмент.
В первой версии Ethernet (vl.0) уровни нормальных сигналов составляли 0 и 1 B (full step signal), при этом в линии присутствовала постоянная составляющая сигнала. В последующих версиях стали применять двуполярные сигналы половинной амплитуды (halt step signal), и постоянная составляющая отсутствует.
Кадр начинается с преамбулы (preamble) длиной в 7 байт с кодами 10101010, за которой следует 1-байтный разделитель начала кадра SFD (Start Frame Delimiter) с кодом 10101011. За ним следует 6-байтный адрес назначения, 6-байтный адрес источника, заголовок, поле данных и 4-байтное поле контрольного CRC-кода, с помощью которого контролируется целостность всего кадра. Заголовок и поле данных в разных типах кадров трактуются по-разному, но их суммарная длина не может быть меньше 48 бaйт и больше 1502 байт. Если требуется передать кадр с меньшим числом байт, после действительных данных вводится заполнитель (Pad), доводящий размер кадра до минимально разрешенного. Таким образом, размер нормального кадра (включая адресную информацию и CRC-код) может быть в диапазоне 64 – 1518 байт. Адаптер приемника способен распознавать следующие ошибки кадров (конец кадра определяется по пропаданию несущей):
Длинный кадр (long, oversized) – более 1518 байт с правильным CRC-кодом. Может порождаться некорректным драйвером адаптера.
Короткий кадр (runt, undersized) – менее 64 байт с правильным CRC-кодом. Может порождаться некорректным драйвером адаптера.
“Болтливый” кадр (jabber) – более 1518 байт с неправильным CRC-кодом. Может порождаться неправильным трансивером (адаптером).
Ошибка выравнивания (alignment error) – кадр, длина которого не кратна байту. Может порождаться неисправным адаптером, трансивером, кабелем.
Ошибка контрольного кода (CRC-error) – кадр правильной длины, но с неправильным CRC-кодом. Может порождаться помехами, слишком большой длиной кабеля.
На вышестящие протокольные уровни передаются только кадры, не имеющие перечисленных ошибок. Кадр, отсеченный коллизией (менее 64 байт и с неправильным CRC-кодом), ошибочным формально не считается, но и на обработку в вышестоящие уровни не передается.
Между кадрами должен обеспечиваться временной зазор IPG (Inter Packet Gap) длительностью 9,6 мкс – узел не имеет права начать передачу раньше, чем через интервал IPG после определения момента пропадания несущей. Через 0,6 мкс после окончания передачи начинается 1,4-мкс окно тестирования цепей детектора коллизий SQE window. В это время трансивер, передавший кадр, формирует специальный тестовый сигнал SQE (Signal Quality Error), он же heartbit, по которому адаптер определяет работоспособность детектора коллизий. Сигнал SQE в общую среду передачи не поступает, он передается только между трансивером и адаптером одного и того же узла сети. Этот сигнал появился только начиная с версии 2.0, и если трансивер 802.3 или v2.0 подключить к адаптеру v1.0, он может воспринять его как сигнал коллизии и послать jam-последовательность, что приведет к невозможности нормальной передачи данных.
Трансивер, как относительно независимый узел, может (и должен) контролировать работу адаптера. Если он обнаружил “болтливость” адаптера (слишком долгое формирование сигналов передачи), он прекращает передачу в линию и блокируется до тех пор, пока адаптер не “помолчит” определенное время. Таким образом обеспечивается зашита среды передачи от ее монопольного захвата неисправным узлом.
Адаптер может считать, что ему удалось получить доступ к среде передачи, если он не обнаружил коллизий при передаче первых 64 байт кадра, и рапортовать об этом на более высокий протокольный уровень. Если он обнаружил коллизию, то обязан вместо продолжения пакета послать короткую (32-48-битовую) цепочку затор (jam), после чего прекратить передачу. Цель посылки затора – дать возможность всем передатчикам, вовлеченным в коллизию, ее заметить. Посылкой затора обеспечивается оповещение о коллизии узлов, разделенных повторителями. Ситуация, когда коллизия обнаружена позже 64-байтного окна (collision window), называется поздней коллизией (later collision) и является ненормальной для сети Ethernet.
Интервал времени до повторной попытки доступа tRT определяется через интервал отсрочки TS и случайное число t, зависящее or номера попытки n:
tRT= TS t.
Интервал отсрочки TS называется также тайм-слотом (time slot) и составляет 512 bt. Число t является случайным целым, равномерно распределенным и диапазоне 0 – 2n для n = 1, 2,...10 и в диапазоне 0 – 210 для n > 10. После 16 неудачных попыток передачи адаптер отказывается от дальнейших попыток доступа, сообщая о неудаче на вышестоящие уровни. Максимальное время между двумя повторными попытками может доходить до 210TS = 524 288 bt 52,4 мс, минимальное – 0 (сразу после зазора).
С механизмом обнаружения коллизии связаны пространственные ограничения на размер домена коллизий, обусловленные конечностью скорости распространения сигнала в среде передачи и задержками, вносимыми повторителями. На рис. 2 приведена временная диаграмма действий двух узлов, заметно удаленных друг от друга. Пусть узел А начал передавать кадр в момент t0A, и вскоре появилась потребность в передаче у узла В. Узел В будет видеть линию свободной вплоть до момента t0Ви в момент t1Вему ничто не мешает начать передачу. Вскоре его передатчик обнаружит коллизию, и он вместо продолжения кадра начнет передавать сигнал затора. Передатчик А обнаружит коллизию только в момент t1Aи тоже прекратит передачу кадра. Максимальное время, в течение которого передатчик А будет “беззаботно” передавать пакет, составит время tTRAmax = tAB + tBA – так называемое время двойного оборота по сети (round trip time). Это время плюс время на передачу затора должно быть меньше, чем время передачи самого короткого кадра, иначе кадры, оборванные коллизией, приемник будет пытаться трактовать как нормальные. Таким образом, время двойного оборота не должно превышать время передачи кадра минимальной длины. Для надежности берут еще и запас, с учетом которого время двойного оборота не должно превышать 45 мкс. Поскольку сеть симметрична, для определения ограничений достаточно определить время прохождения сигнала между двумя самыми удаленными друг от друга узлами домена коллизий. В это время входит задержка распространения сигнала в кабеле, задержки, вносимые повторителями (если они встречаются на пути), и время реакции адаптера на обнаружение коллизии. Это время не должно превышать 25,6 мкс, а для надежности следует еще оставить запас в 1 – 5 мкс. Расстояние между максимально удаленными узлами называется диаметром домена коллизий. Скоростные технологии – Fast Ethernet и Gigabil Etherner – имеют тот же механизм обнаружения коллизий, и из-за более высокой частоты передачи (bt = 10 нc в Fast и bt = 1 нc и Gigabit Ethernet) ограничения на диаметр домена коллизий жестче. Для их смягчения в Gigabit Ethernet пошли на увеличение минимального размера кадра.
Рис. 1. Влияние задержек на обнаружение коллизии
Адресация, форматы кадров
И пропускная способность
В сетях Ethernet могут использоваться 4 типа формата кадров:
Ethernet II;
Ethernet 802.3;
Ethernet 802.2;
Ethernet SNAP
Кадры этих типов имеют одинаковую систему адресации источника и получателя, но различаются в трактовке последующих двух полей (заголовка и данных) Форматы кадров приведены на рис. 3, длина полей указана в байтах.
Преамбула Р (Preamble) и разделитель начала кадра SFD (Start of Frame Delimiter) не несут полезной информации (в первых версиях разделитель считался частью преамбулы).
Поле адреса назначения DA (Destination Address) может содержать адрес одного из трех типов:
Уникальный МАС-адрес единственного получателя кадра (unicast address).
Широковещательный адрес (broadcast address), указывающийна то, что данный кадр адресован всем увидевшим его абонентам сети.
Групповой адрес (multicast address), являющийся признаком, по которому узлы могут обрабатывать интересующие их кадры.
Рис. 2. Форматы кадров Ethernet
Тип адреса задается его первым байтом (рис. 3):
00h – уникальный адрес, остальные байты задают адрес конкретного сетевого адаптера. Уникальность адресации адаптеров обеспечивается специальным соглашением, по которому каждому производителю аппаратуры выделяется свое значение (одно или несколько) кода (Manufactorеr Id) – байты 2-3 (иногда к коду производителя относят и первый байт, имеющий нулевое значение). Байты 4-6 заполняются изготовителем – на нем лежит ответственность за их уникальность (эта информация может рассматриваться как серийный номер платы). Случаются и конфузы, когда незадачливые “подпольные” производители снабжают свои изделия одинаковыми адресами – больше одного такого устройства в одной локальной сети работать не будет. Ряд моделей адаптеров (в комплексе с драйверами) позволяет задавать МАС-адрес узла и произвольно, но в этом случае ответственность за уникальность адресации ложится на администратора. Признаком “ручного” задания адреса должна быть единица во втором справа разряде первого банта адреса (02-хх-хх-хх-хх-хх).
FF-FF-FF-FF-FF-FF – широковещательный адрес.
01-хх-хх-хх-хх-хх – групповой адрес. Идентификатором группы являются байты 2 – 6.
Поле адреса источника SA (Source Address) содержит МАС-адрес узла, пославшего кадр. Формат адреса соответствует уникальному адресу, изображенному на рис. 3.
Поле данных Data несет “полезную” информацию более высокого (LLC) уровня.
Последнее поле контрольного кода FCS (Frame Check Sequence) содержит CRC-код, подсчитанный для всех полей с DA по Data включительно. Этот код вычисляется адаптером при передаче кадра и при приеме; CRC, подсчитанный при приеме, должен совпасть со значением, принятым из кадра, в противном случае кадр считается искаженным и отбрасывается.
Рис. 3. Адресация кадров Ethernet: а – уникальный адрес,
б – уникальный произвольный адрес, в – широковещательный, г – групповой
Промежуточные поля (рис. 2) трактуются и зависимости от типа кадра.
Для Ethernet II полe Type задает тип протокола верхнего уровня, использующего данный кадр Значение поля Type должно быть больше 1500 (в десятичном выражении) – максимальной длины поля данных. Этим обеспечивается различимость кадра Ethernet II от кадров других типов.
Кадр Ethernet 802.3, называемый также “rаw” (сырой, необработанный), в отличие от других не содержит идентификатора протокола вышестоящего уровня. В результате в сетях с несколькими протоколами (например, IPX и IP) возможна их ошибочная маршрутизация. Формат кадра 802.3 применяется в сетях Novell с протоколом IPX/SPX, в более поздних многопротокольных версиях (NetWare 3.12+, 4.х, 5.х) он заменен на 802.2. Поле Length задает длину поля данных.
КадрEthernet 802.2 имеет поля для информации LLC-уровня. Поле Length задает суммарную длину полей LLC и данных (от DSAP до Data включительно). Поля DSAP (Destination Service Access Point – точка доступа сервиса назначения) и SSAP (Sourсе Service Access Point – точка доступа сервиса источника) содержат первый и второй байты двухбайтного идентификатора протокола верхнего уровня. Поле Control задает тип кадра LLC-уровня.
Кадр Ethernet SNAP (Sub-Network Access Protocol) имеет 5-байтное поле Protocol Id, что позволяет идентифицировать значительно большее число протоколов, чем Ethernet II и 802.2 с их двухбайтными идентификаторами. Для отличимости от 802.2 поля OSAP и SSAP имеют фиксированное значение AAh, поле Control – 03h. Поле Length задает суммарную длину полей LLC и данных (от DSAP до Data включительно). Формат кадра SNAP универсален для Ethernet и Token Ring.
В одной сети могут присутствовать кадры различных типов, однако в многопротокольных сетях следует избегать применения кадра 802.3, поскольку его применение усложняет задачу разбора кадров. Для протокола IPX кадр 802.3 легко отличим, поскольку его поле данных начинается с элемента FFFFh – для полей DSAP и SSAP такое сочетание недопустимо (это поле контрольной суммы IPX, которая по умолчанию не используется, на что и указывает ее значение FFFFh). Попутно заметим, что протокол IPX/SPX может пользоваться в одной локальной сети обоими типами кадров 802.2 и 802.3 одновременно, но при этом кадры разных типов будут относиться к различным логическим сетям. Связь между этими сетями (существующими в одном кабеле!) осуществляется только через маршрутизатор (внутренний маршрутизатор сервера NetWare, у которого протокол IPX привязан к обоим типам кадра).
Пропускную способность сети Ethernet определим как количество кадров и байт данных поля Data, передаваемых по сети кадрами разных размеров и типов за единицу времени. Минимальный размер кадра – 64 байта + 8 байт преамбулы = 72 байта = 576 bt = 57,6 мкс. С учетом межкадрового зазора 9,6 мкс максимальная частота передачи самых коротких пакетов составит 1/(57,6 + 9,6) = 14881 к/с (fps – frame per second, кадров в секунду). Для максимальных пакетов (1526 байт с преамбулой = 12 208 bt) частота передачи будет 813 к/с.
Полезная пропускная способность для кадров минимального размера (типов 802.2 и SNAP) составит 14 881 37 8 = 4 404 776 бит/с (4,4 Мбит/с), для кадров Ethernet II и 802.3 – 5476208 бит/с (5,48 Мбит/с). Для кадров максимального размера полезная пропускная способность составит 813 1500 8 = 9 756 000 бит/с (9,76 Мбит/с), что достаточно близко к битовой скорости данной технологии (10 Mбит/с). Эти значения подсчитаны для идеального случая, когда в сети нет коллизий. Обработка коллизий значительно снижает реальную полезную пропускную способность сети, противодействовать этому можно путем уменьшения числа узлов в домене коллизий. В пределе для полудуплексной передачи по коммутируемой среде в домене коллизий оказывается всего два узла, а при полнодуплексной коллизий как таковых не бывает.
1.2.3. Стандарты Ethernet 10 Мбит/с: