Литмир - Электронная Библиотека

Компьютерные сети. 5-е издание - _202.jpg

Рис. 4.13. Архитектура классической сети Ethernet

Информация по этим кабелям передается с использованием манчестерского кода. Сеть Ethernet может состоять из большого количества сегментов кабеля и повторителей, однако два приемопередатчика должны располагаться на расстоянии не более 2,5 км и между ними должно быть не более четырех повторителей. Причина такого ограничения лежит в протоколе MAC, о котором мы поговорим далее.

4.3.2. Протокол подуровня управления доступом к среде в классическом Ethernet

Формат кадра, применяемый для отправки данных, показан на рис. 4.14. Сначала идет поле Preamble (преамбула, заголовок) длиной 8 байт, которое содержит последовательность 10101010 (за исключением последнего байта, в котором значения последних двух битов равны 11). Последний байт в стандарте 802.3 называется разделителем Start of Frame (Начало кадра). Манчестерское кодирование такой последовательности битов дает в результате меандр с частотой 10 МГц и длительностью 6,4 мкс, что позволяет получателю синхронизировать свои часы с часами отправителя. Два последних бита, равных единице, говорят получателю, что сейчас начнется новый кадр.

Затем следуют два адреса: получателя и отправителя. Каждый занимает по 6 байт. Первый передаваемый бит адреса получателя содержит 0 для обычных адресов и 1 для групповых получателей. Групповые адреса позволяют нескольким станциям принимать информацию от одного отправителя. Кадр, отправляемый групповому адресату, может быть получен всеми станциями, входящими в эту группу. Такой механизм называется групповой рассылкой (multicasting). Если адрес состоит только из единиц, то кадр могут принять абсолютно все станции сети. Таким способом осуществляется широковещание (broadcasting). Групповая рассылка более избирательна, но требует некоторых усилий при управлении группами. Широковещание — это более грубая технология, но зато не требует никакой настройки групп.

Компьютерные сети. 5-е издание - _203.jpg

Рис. 4.14. Форматы кадров: а — DIX Ethernet; б — IEEE 802.3

Интересной особенностью исходных адресов станций является глобальная уникальность. Они централизованно назначаются IEEE, и это гарантирует, что один и тот же глобальный адрес не используется двумя станциями нигде в мире. Идея заключается в том, что каждая станция может быть однозначно идентифицирована по ее 48-битному номеру. Для этого первые 3 байта поля адреса используются для OUI (Organizationally Unique Identifier, организационно уникальный идентификатор). Значения этого поля назначаются IEEE и однозначно определяют производителя. Производителям выделяются блоки по 224 адресов. Производитель назначает последние 3 байта адреса и программирует весь адрес в сетевой карте перед тем, как она поступает в продажу.

Затем следует поле Type или Length, в зависимости от того, относится кадр к стандарту Ethernet или IEEE 802.3. В сетях Ethernet поле Type показывает приемнику, что делать с кадром. Дело в том, что одновременно на одной и той же машине может работать несколько протоколов сетевого уровня, поэтому, когда приходит кадр Ethernet, операционная система должна понимать, какому протоколу его передать. Поле Type определяет процесс, который должен взять себе кадр. Например, код типа 0x0800 означает, что данные содержат пакет IPv4.

Создатели IEEE 802.3 в своей безграничной мудрости решили, что в этом поле должна передаваться длина кадра. Но поскольку для определения длины необходимо заглянуть внутрь данных, то мы наблюдаем нарушение правил использования сетевых уровней. Разумеется, это означало, что получатель никак не мог выяснить, что же ему делать с входящим кадром. Эту проблему решили путем добавления в данные еще одного заголовка для протокола LLC (Logical Link Control, управление логическим каналом). Он занимает 8 байт и передает 2 байта информации о типе протокола.

К сожалению, к моменту опубликования стандарта 802.3 использовалось так много оборудования и программного обеспечения для DIX Ethernet, что лишь немногие про-

изводители и пользователи проявили энтузиазм в отношении переопределения полей Type и Length. В 1997 году IEEE признал поражение и согласился с обоими способами. К счастью, значения всех полей Type, использовавшиеся до 1997 года, были больше 1500 (тогда это значение было установлено в качестве максимального размера поля данных). Теперь правило таково, что любое значение, не превышающее 0x600 (1536), можно интерпретировать как Length, а любое число больше 0x600 — как Type. Теперь IEEE спокойна, что все используют ее стандарт, причем можно продолжать делать то, что программисты делали и до этого, не утруждая себя мыслями о LLC и не чувствуя вины за нарушение стандарта.

Наконец, за полем Type следует поле данных, размер которого ограничен 1500 байт. Такое ограничение было выбрано, в общем-то, произвольно в те времена, когда официально был закреплен стандарт Ethernet. При выборе ссылались на то, что приемопередатчику нужно довольно много оперативной памяти для того, чтобы хранить весь кадр. А память в том далеком 1978 году была еще очень дорогой. Соответственно, увеличение верхней границы размера поля данных привело бы к необходимости установки большего объема памяти, а значит, к удорожанию всего приемопередатчика.

Между тем, кроме верхней границы размера поля данных очень важна и нижняя граница. Поле данных, содержащее 0 байт, вызывает определенные проблемы. Дело в том, что когда приемопередатчик обнаруживает столкновение, он обрезает текущий кадр, а это означает, что отдельные куски кадров постоянно блуждают по кабелю. Чтобы было легче отличить нормальные кадры от мусора, сети Ethernet требуется кадр размером не менее 64 байт (от поля адреса получателя до поля контрольной суммы включительно). Если в кадре содержится меньше 46 байт данных, в него вставляется специальное поле Pad (наполнитель), с помощью которого размер кадра доводится до необходимого минимума.

Другой (и даже более важной) целью установки ограничения размера кадра снизу является предотвращение ситуации, когда станция успевает передать короткий кадр раньше, чем его первый бит дойдет до самого дальнего конца кабеля, где он может столкнуться с другим кадром. Эта ситуация показана на рис. 4.15. В момент времени 0 станция A на одном конце сети посылает кадр. Пусть время прохождения кадра по кабелю равно т. За мгновение до того, как кадр достигнет конца кабеля (то есть в момент времени т - е), самая дальняя станция B начинает передачу. Когда станция B замечает, что получает большую мощность, нежели передает сама, она понимает, что произошло столкновение. Тогда она прекращает передачу и выдает 48-битный шумовой сигнал, предупреждающий остальные станции. Примерно в момент времени 2т отправитель замечает шумовой сигнал и также прекращает передачу. Затем он выжидает случайное время и пытается возобновить передачу.

Если размер кадра будет слишком маленьким, отправитель закончит передачу прежде, чем получит шумовой сигнал. В этом случае он не сможет понять, произошло это столкновение с его кадром или с каким-то другим, и, следовательно, может предположить, что его кадр был успешно принят. Для предотвращения такой ситуации все кадры должны иметь такую длину, чтобы время их передачи было больше 2т. Для локальной сети со скоростью передачи 10 Мбит/с при максимальной длине кабеля в 2500 м и наличии четырех повторителей (требование спецификации 802.3) минимальное время передачи одного кадра должно составлять в худшем случае примерно 50 мкс.

Следовательно, длина кадра должна быть такой, чтобы время передачи было по крайней мере не меньше этого минимума. При скорости 10 Мбит/с на передачу одного бита тратится 100 нс, значит, минимальный размер кадра должен быть равен 500 бит. Из соображений большей надежности это число было увеличено до 512 бит или 64 байт.

100
{"b":"639789","o":1}