Э. Таненбаум - Компьютерные сети. (4-е издание) (PDF) (1130118), страница 82
Текст из файла (страница 82)
По стандарту разрешаются 2-байтовые и 6-байтовые адреса, однако параметры немодулированной передачи со скоростью 10 Мбит/с предусматривают только 6-байтовые адреса.Старший бит адреса получателя содержит 0 для обычных адресов и 1 для групповых получателей. Групповые адреса позволяют нескольким станциям принимать информацию от одного отправителя. Кадр, отправляемый групповому адресату, может быть получен всеми станциями, входящими в эту группу. Такоймеханизм называется групповой рассылкой.
Если адрес состоит только из единиц, то кадр могут принять абсолютно все станции сети. Таким способом осуществляется широковещание. Разница между групповой рассылкой и широковещанием весьма существенна, поэтому еще раз повторим: кадр, предназначенныйдля групповой рассылки, посылается некоторой группе станций Ethernet; широковещательный же кадр получают абсолютно все станции сети. Групповая рассылка более избирательна, но требует некоторых усилий при управлении группами. Широковещание — это более грубая технология, но зато не требуетникакой настройки групп.Рис. 4.16.
Форматы кадров: DIX Ethernet (a); IEEE 802.3 (б)Еще одной интересной особенностью адресации является использование46-го бита (соседнего со старшим битом), позволяющего отличать локальные адреса от глобальных. Локальные адреса назначаются администратором каждой сети и не имеют смысла за ее пределами.
Глобальные адреса, напротив, назначаются IEEE, и это гарантирует, что один и тот же глобальный адрес не используетсядвумя станциями. При 48 - 2 = 46 доступных битах может быть назначено около7 • 1013 глобальных адресов. Идея заключается в том, что каждая станция можетбыть однозначно идентифицирована по ее 48-битовому номеру. Найти по этомуномеру саму станцию — задача сетевого уровня.Затем следует поле Туре, которое показывает приемнику, что делать с кадром.Дело в том, что одновременно на одной и той же машине могут работать несколько протоколов сетевого уровня, поэтому когда приходит кадр Ethernet, ядро должно понимать, какому протоколу его передать. Поле Туре определяет процесс, который должен взять себе кадр.Наконец, за полем Туре следует поле данных, размер которого ограничен1500 байтами.
Такое ограничение было выбрано, в общем-то, произвольно в тевремена, когда официально был закреплен стандарт DIX. При выборе ссылалисьна то, что приемопередатчику нужно довольно много оперативной памяти длятого, чтобы хранить весь кадр. А память в том далеком 1978 году была еще оченьдорогой. Соответственно, увеличение верхней границы размера поля данных привело бы к необходимости установки большего объема памяти, а значит, к удорожанию всего приемопередатчика.Между тем, кроме верхней границы размера поля данных очень важна и нижняя граница. Поле данных, содержащее 0 байт, вызывает определенные проблемы.
Дело в том, что когда приемопередатчик обнаруживает столкновение, он обрезает текущий кадр, а это означает, что отдельные куски кадров постоянно324Глава 4. Подуровень управления доступом к средеСеть Ethernetблуждают по кабелю. Чтобы было легче отличить нормальные кадры от мусора,сети Ethernet требуется кадр размером не менее 64 байт (от поля адреса получателя до поля контрольной суммы включительно).
Если в кадре содержитсяменьше 46 байт данных, в него вставляется специальное поле Pad, с помощьюкоторого размер кадра доводится до необходимого минимума.Другой (и даже более важной) целью установки ограничения размера кадраснизу является предотвращение ситуации, когда станция успевает передать короткий кадр раньше, чем его первый бит дойдет до самого дальнего конца кабеля, где он может столкнуться с другим кадром. Эта ситуация показана нарис. 4.17. В момент времени 0 станция А на одном конце сети посылает кадр.Пусть время прохождения кадра по кабелю равно т. За мгновение до того, каккадр достигнет конца кабеля (то есть в момент времени т - е), самая дальняястанция В начинает передачу. Когда станция В замечает, что получает большуюмощность, нежели передает сама, она понимает, что произошло столкновение.Тогда она прекращает передачу и выдает 48-битный шумовой сигнал, предупреждающий остальные станции.
Примерно в момент времени 2т отправитель замечает шумовой сигнал и также прекращает передачу. Затем он выжидает случайное время и пытается возобновить передачу.Пакет достиг станции Вв момент времени т - ЕПакет посылаетсяв момент времени ОШумовой сигнал, в момент времени 2т1=1вСИ"^гРис. 4.17. Обнаружение столкновения может занять 2тЕсли размер кадра будет слишком маленьким, отправитель закончит передачу прежде, чем получит шумовой сигнал. В этом случае он не сможет понять,произошло это столкновение с его кадром или с каким-то другим, и, следовательно, может предположить, что его кадр был успешно принят. Для предотвращения такой ситуации все кадры должны иметь такую длину, чтобы время ихпередачи было больше 2т.
Для локальной сети со скоростью передачи 10 Мбит/спри максимальной длине кабеля в 2500 м и наличии четырех повторителей (требование спецификации 802.3) минимальное время передачи одного кадра должно составлять в худшем случае примерно 50 мкс, включая время на прохождениечерез повторитель, которое, разумеется, отлично от нуля. Следовательно, длинакадра должна быть такой, чтобы время передачи было по крайней мере не меньше этого минимума.
При скорости 10 Мбит/с на передачу одного бита тратится1000 не, значит, минимальный размер кадра должен быть равен 500 бит. При325этом можно гарантировать, что система сможет обнаружить коллизии в любомместе кабеля. Из соображений большей надежности это число было увеличенодо 512 бит или 64 байт. Кадры меньшего размера с помощью поля Pad искусственно дополняются до 64 байт.По мере роста скоростей передачи данных в сети минимальный размер кадрадолжен увеличиваться, или должна пропорционально уменьшаться максимальная длина кабеля.
Для 2500-метровой локальной сети, работающей на скорости1 Гбит/с, минимальный размер кадра должен составлять 6400 байт. Или же можно использовать кадр размером 640 байт, но тогда надо сократить максимальноерасстояние между станциями сети до 250 м. По мере приближения к гигабитнымскоростям подобные ограничения становятся все более суровыми.Последнее поле кадра стандарта Ethernet содержит контрольную сумму. Посути дела, это 32-битный хэш-код данных. Если какие-либо биты приняты неправильно (в результате шума в канале), контрольная сумма практически наверняка будет неправильной, и ошибка, таким образом, будет замечена.
Алгоритмвычисления контрольной суммы основан на циклическом избыточном коде(CRC), который мы уже обсуждали в главе 3.Когда институт IEEE принимал стандарт Ethernet, в формат кадра было внесено два изменения, как показано на рис. 4.16, б. Во-первых, преамбула былауменьшена до 7 байт, а последний байт был объявлен ограничителем кадра (Startof Frame) для совместимости со стандартами 802.4 и 802.5. Во-вторых, поле Туребыло преобразовано в Length. Конечно, приемник при этом потерял возможностьопределения действия над пришедшим кадром, но эта проблема была решена добавлением небольшого заголовка поля данных, предназначенного именно дляподобной информации. Мы отдельно обсудим формат поля данных, когда будемрассматривать управление логическим соединением.К сожалению, ко времени опубликования 802.3 по всему миру распространилось уже немало программного обеспечения и оборудования, соответствующихстандарту DIX Ethernet, поэтому изменение формата кадра было воспринятопроизводителями и пользователями без энтузиазма.
В 1997 году в IEEE поняли,что бороться бесполезно и бессмысленно и объявили оба стандарта приемлемыми. К счастью, все поля Туре, использовавшиеся до 1997 года, имели значениябольше 1500. Соответственно, любые номера, меньшие или равные 1500, можнобыло без сомнений интерпретировать как Length, а превышающие 1500 — какТуре.
Теперь IEEE может говорить, что все используют предложенный им стандарт, и при этом все пользователи и производители могут без зазрения совестипродолжать работать точно так же, как и раньше.Алгоритм двоичного экспоненциального откатаРассмотрим, как осуществляется рандомизация периода ожидания после столкновения. Модель представлена на рис. 4.5. После возникновения коллизии времяделится на дискретные интервалы, длительность которых равна максимальномувремени кругового обращения сигнала (то есть его прохождения по кабелю в прямом и обратном направлениях), 2т. Для удовлетворения потребностей Ethernet326Глава 4. Подуровень управления доступом к средепри максимальном размере сети необходимо, чтобы один интервал составлял512 битовых интервалов, или 51,2 мкс.После первого столкновения каждая станция ждет или 0 или 1 интервал, прежде чем попытаться передавать опять.
Если две станции столкнутся и выберутодно и то же псевдослучайное число, то они столкнутся снова. После второгостолкновения каждая станция выбирает случайным образом 0, 1, 2 или 3 интервала из набора и ждет опять. При третьем столкновении (вероятность такого события после двойного столкновения равна '/ 4 ) интервалы будут выбираться3в диапазоне от 0 до 2 - 1.В общем случае после i столкновений случайный номер выбирается в диапазоне от 0 до 2' - 1, и это количество интервалов станция пропускает. Однако после 10 столкновений подряд интервал рандомизации фиксируется на отметке1023.