Смекни!
smekni.com

Проектирование ЛВС (стр. 6 из 14)

Допустим, две станции начали передачу одновременно, посчитав, что канал свободен. Сколько времени им потребуется, чтобы понять, что помимо них передачу осуществляет еще и другая станция? Как минимум, это время распространения сигнала от одной станции до другой. Однако, даже если станция не зафиксировала конфликта в течение времени распространения сигнала по кабелю между двумя самыми удаленными станциями, это еще не означает, что она избежала конфликта и "заняла" кабель. Рассмотрим такую ситуацию. Одна из наиболее удаленных станций начинает передачу. Вторая наиболее удаленная станция получит сигнал только через время t, поэтому, не обнаружив передачи, она начинает свою собственную в момент t-e. Конечно, вторая станция тут же обнаружит конфликт (через время t) и прекратит передачу, однако первой станции это уже не поможет; к тому же она обнаружит конфликт только через время 2*t-e. Таким образом, в общем случае время обнаружения конфликта равно времени распространения сигнала от одной самой удаленной станции до другой самой удаленной станции, и обратно. Только по истечении этого времени станция может быть уверена, что она "заняла" кабель. Данная характеристика - время разрешения конфликта - имеет огромное значение для эффективности протокола, в частности во многом именно она определяет ограничения на протяженность кабеля в сегменте Ethernet.

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

МАНЧЕСТЕРСКОЕ КОДИРОВАНИЕ

Прямое двоичное кодирование нулевого бита нулевым напряжением (0 В) и единичного бита ненулевым напряжением (5 В) не применяется, помимо прочего, из-за того, что оно ведет к неоднозначности. В частности, строку бит 00001000 становится невозможно отличить от строки 10000000 ввиду отсутствия различий между свободной линией (0 В) и нулевым битом (также 0 В). Следовательно, каким-то образом принимающая сторона должна иметь возможность определить начало и конец любого бита безотносительно внутреннего тактового генератора. Это позволяет сделать манчестерское кодирование и дифференциальное манчестерское кодирование. При манчестерском кодировании каждый интервал времени, который занимает передача одного бита, разделен на два равных подинтервала. Единичный бит кодируется высоким напряжением в продолжении первой половины интервала и низким напряжением в течение второй его части, а нулевой бит кодируется противоположным образом. Изменение напряжения в середине интервала облегчает принимающей стороне синхронизацию с передающей станцией. Дифференциальное манчестерское кодирование представляет собой разновидность обычного манчестерского кодирования. В этом случае единичный бит характеризуется отсутствием изменения напряжения по сравнению с уровнем напряжения во второй половине предшествующего бита. Изменение напряжения в начале бита означает, что это нулевой бит.

Недостаток схемы манчестерского кодирования очевиден - оно требует вдвое большей пропускной способности, чем прямое кодирование. Однако вследствие своей простоты манчестерское кодирование используется в 802.3. Уровень напряжения составляет +0,85В и -0,85В, причем в силу принятой схемы кодирования постоянные токи в кабеле не могут возникнуть в принципе.

ФОРМАТ КАДРА (Общие черты)

Максимальный размер кадра Ethernet составляет 1526 байт (12 208 бит), а минимальный - 72 байт (576 бит). При частоте передачи 10 МГц время передачи пакета минимальной длины составляет 57,6 мс. Это время несколько больше, чем удвоенное время распространения сигнала между крайними точками кабеля, равное 51,2 мс. Последняя цифра получена исходя из максимально допустимого в Ethernet расстояния между узлами в 2500 м.

Структура кадра показана на Рисунке 9. Каждый кадр начинается с преамбулы длиной 7 байт, причем каждый байт преамбулы представляет собой чередующуюся последовательность единиц и нулей. Преамбула позволяет принимающей стороне подстроиться под передающую станцию, т. е. синхронизироваться с ней. Следом за преамбулой идет стартовый байт (10101011), сигнализирующий о начале кадра.


Рисунок 9
Форматы кадров Ethernet могут несколько отличаться друг от друга, в частности поле длины поля данных может иметь смысл типа протокола.

Далее кадр содержит два поля адреса - получателя и отправителя. Стандарт допускает адреса длиной 2 и 6 байт, однако спецификация на немодулированную передачу со скоростью 10 Мбит/с предусматривает применение только адресов длиной 6 байт. Если сетевая плата Ethernet определяет, что адрес получателя совпадает с ее собственным, то, считав кадр, она передает его для дальнейшей обработки на более высокие уровни. Если адреса не совпадают, то кадр игнорируется.

Адреса Ethernet могут быть обычными, групповыми и широковещательными. Если старший бит адреса получателя равен нулю, то это обычный адрес, а если единице, то это групповой. Многоадресная передача принимается всеми станциями, групповой адрес которых совпадает с указанным в поле адреса получателя. Если же все биты адреса равны единице, то это широковещательный адрес, и такой пакет предназначен всем станциям. Следующий по старшинству бит в поле адреса используется для различения локальных и глобальных адресов. Как ясно из названия, локальные адреса назначаются администратором сети и имеют смысл только в пределах локальной сети. За вычетом двух вышеуказанных битов адресное пространство составляет 246 или около 7*1013 адресов, а эта цифра намного больше числа имеющихся компьютеров, так что адресов хватит всем. Поле длины кадра состоит из двух байтов и определяет длину поля данных (от 0 до 1500 бит). Однако, ввиду ограничений на минимальную длину кадра, поле данных не может быть короче 46 байт. Если же объем передаваемых данных меньше, то поле данных дополняется заполняющими битами. Собственно в Ethernet поле длины кадра соответствует полю типа протокола. Оно служит для идентификации протокола на уровень выше канального. Заканчивается кадр контрольной последовательностью. Очевидно, она служит для проверки кадра на предмет наличия ошибок.

Форматы кадров Ethernet (Детализация)

Несмотря на наличие стандарта, кадры Ethernet отличаются друг от друга своим форматом. Как и на производстве, кадры в сети Ethernet решают все. Они служат вместилищем для всех высокоуровневых пакетов, поэтому, чтобы понять друг друга, отправитель и получатель должны использовать один и тот же тип кадров Ethernet. К счастью (или к сожалению), кадры могут быть всего четырех разных форматов, и к тому же не сильно отличающихся друг от друга. Более того, базовых форматов кадров существует всего два (в английской терминологии их называют "raw formats") - Ethernet_II и Ethernet_802.3, причем они отличаются назначением всего одного поля.

Современные компьютерные сети гетерогенны по своей природе, а сетевые протоколы третьего уровня используют зачастую разные типы кадров Ethernet. Так, в старых версиях NetWare 3.х компании Novell базовым форматом по умолчанию является Ethernet_802.3, а не 802.2 или SNAP, как это предусмотрено стандартами IEEE, причем, кроме нее, этот формат больше никто не применяет. С выходом NetWare 4.х протоколы IPX/SPX используют по умолчанию стандартные кадры Ethernet_802.2, а с планируемым переводом IntranetWare на протоколы TCP/IP эта сетевая ОС будет, возможно, работать по умолчанию с кадрами Ethernet_SNAP, так как именно этот формат применяется в новейших реализациях TCP/IP. Вообще говоря, пакеты протоколов IPX/SPX могут передаваться с помощью кадров любых типов, поэтому - а также потому, что тип Ethernet_802.3 используется исключительно Novell, - в этом уроке мы будем рассматривать кадры Ethernet преимущественно с точки зрения сетей NetWare.

ETHERNET II

Несмотря на то что мы привычно называем стандарт 802.3 именем Ethernet, это не совсем правильно, так как последнее название является торговой маркой Xerox, Intel и Digital, чья технология послужила прототипом этого столь популярного стандарта. Формат Ethernet_II соответствует оригинальному формату кадров Ethernet и имеет следующий вид.

Как и всякий кадр, Ethernet_II начинается с семибайтной преамбулы, состоящей из чередующихся единиц и нулей, и однобайтного начального ограничителя кадра, в котором два младших бита равны 112, а не 102, как остальные биты в преамбуле и ограничителе. Однако, если быть более точным, в Ethernet_II преамбула не разделяется на собственно преамбулу и начальный ограничитель кадра - и это является одним из отличий Ethernet от IEEE 802.3, хотя весьма несущественным, можно сказать, схоластическим, тем более что очень часто преамбула вообще рассматривается как часть физического механизма синхронизации передающей и принимающей стороны, а не как часть кадра (поэтому на рисунках мы не будет обозначать преамбулу и начальный ограничитель).

Собственно заголовок кадра состоит из шестибайтного поля адреса получателя (Destination Address), шестибайтного поля адреса отправителя (Source Address) и двухбайтного поля типа протокола (Frame Type) (см. Рисунок 10). При передаче каждого байта адреса младшие биты (крайние справа) передаются первыми. В адресе получателя первый передаваемый бит (бит 0 байта 0) указывает тип адреса - обычный или групповой. Таким образом, нечетный первый байт адреса получателя означает, что кадр предназначен группе станций. Разновидностью многоадресной передачи является широковещательная передача. В этом случае все биты адреса получателя задаются равными 1.