Подуровень управления доступом к среде
Содержание
Подуровень управления доступом к среде
В зависимости от скорости передачи данных и передающей среды существует несколько вариантов технологий локальных сетей. Независимо от способа передачи стек сетевого протокола и программы работают одинаково практически во всех нижеперечисленных вариантах.
Сеть Ethernet
(статья с сайта: http://www.itc.ua/node/9424?s=47f3e22792f40e63cf11fede60da66f4) 22 мая 1973 г. Меткалф представил к защите докторскую диссертацию, в которой описана сеть "по имени" Ethernet. Название, возможно, связано с особенностями ее первой инсталляции и изначального предназначения. В этой системе действительно использовалась радиосвязь для обеспечения работы в кампусе гавайского университета Алоха. Таким образом, жители цветущего острова стали свидетелями рождения этого феномена. В июле 1976 г. в журнале "Communications of the ACM" появилась статья, написанная Бобом Меткалфом и Дэвидом Боггзом (David Boggs) под названием "Ethernet: Distributed Packet Switching for Local Computer Networks". В ней были изложены основные принципы работы кабельной Ethernet. Далее спецификации сети начали мутировать с невероятной скоростью, так что сравнивать творение вышеупомянутых ученых с каким-нибудь современным 1000Base-LX -- весьма неблагодарное занятие, схожее разве что с попыткой найти родство между Фордом-Т и болидом Ф-1. А пока "эфирная сеть" спокойно работала на скорости 2,94 Mbps, и даже сам Меткалф не мог предположить, как сложится дальнейшая судьба его детища. По чертежам ученого (рис.) в корпорации Xerox было создано вполне конкретное оборудование. Четыре года спустя изобретатель решил самостоятельно заняться развитием сетевой технологии и образовал собственную компанию 3Com. Одновременно "хитрый" Меткалф устроился консультантом в корпорацию DEC. Таким образом, если он и не стал катализатором, способствовавшим появлению стандартов семейства IEEE 802, то во всяком случае в момент принятия решения о разработке спецификаций Ethernet-подобной сети группой DEC, Intel, Xerox оказался в эпицентре событий. Замысел заключался в проектировании 10-мегабитовой сети DIX (по первым буквам названий компаний--участников альянса) без использования патентов Xerox. На чем базировался столь откровенный альтруизм упомянутой фирмы, нам не известно. Впрочем, в ее адрес всегда раздавались упреки по поводу откровенно слабой политики в области управления своей интеллектуальной собственностью.
Технология Ethernet очень популярна на рынке локальных сетей. В 80-е годы и в начале 90-х технологии Ethernet приходилось конкурировать с множеством альтернативных технологий локальных сетей, включая сети Token ring, FDDI и ATM. Некоторым из этих технологий удалось на несколько лет захватить часть рынка. Но технология Ethernet, разработанная в середине 70-х, продолжает свой рост и развитие до сих пор, а в последние годы она прочно заняла доминирующее положение на рынке. Сегодня Ethernet представляет собой превалирующую технологию локальных сетей, и, похоже, такая ситуация сохранится в обозримом будущем. Значение Ethernet в локальных сетях так же велико, как и значение Интернета в глобальных сетях. Успеху технологии Ethernet способствовало множество причин. Во-первых, Ethernet была первой локальной сетью, получившей широкое распространение. Благодаря этому сетевые администраторы очень близко познакомились с технологией Ethernet и уже не хотели переходить на другие технологии локальных сетей, когда те появились на рынке. Во-вторых, такие технологии, как Token ring, FDDI и ATM, были более сложными и дорогими, чем Ethernet, что еще больше препятствовало переходу на них. В-третьих, наиболее сильным стимулом перехода на другие технологии локальных сетей (например, FDDI или ATM), как правило, была более высокая скорость передачи данных. Однако Ethernet всегда отвечала ударом на удар, и каждая новая версия Ethernet не уступала конкурентам, а то и превосходила их по данному параметру. В начале 90-х была представлена коммутируемая Ethernet-сеть, что позволило снова повысить эффективную скорость передачи данных. Наконец, благодаря популярности Ethernet аппаратура Ethernet (адаптеры, хабы и коммутаторы) стала производиться массовым тиражом, в результате чего цены на нее упали до невероятно низкого уровня. Причиной столь низких цен также является тот факт, что протокол коллективного доступа, применяемый в сетях Ethernet, полностью децентрализован, что обусловливает простоту аппаратуры. Оригинальная локальная Ethernet-сеть была придумана Бобом Меткалфом и Дэвидом Боггсом в середине 70-х. Показанная на рис. 5.21 схема привела к появлению стандарта 10Base5 Ethernet, в который входил интерфейсный кабель, соединявший адаптер Ethernet (то есть интерфейс) с внешним приемопередатчиком. Ethernet-сети посвящен превосходный web-сайт, созданный Чарльзом Сперджо-ном (http://www.ethermanage.com/ethernet/ethernet.html).
Манчестерский код
Ни в одной из версий Ethernet не применяется прямое двоичное кодирование бита 0 напряжением 0 В и бита 1 — напряжением 5В, так как такой способ приводит к неоднозначности. Если одна станция посылает битовую строку 00010000, то другая может интерпретировать ее как 10000000 или 01000000, так как они не смогут отличить отсутствие сигнала (0 В) от бита 0 (0 В). Можно, конечно, кодировать единицу положительным напряжением +1 В, а ноль — отрицательным напряжением -1 В. Но при этом все равно возникает проблема, связанная с синхронизацией передатчика и приемника. Разные частоты работы их системных часов могу привести к рассинхронизации и неверной интерпретации данных. В результате приемник может потерять границу битового интервала. Особенно велика вероятность этого в случае длинной последовательности нулей или единиц. Таким образом, принимающей машине нужен способ однозначного определения начала, конца и середины каждого бита без помощи внешнего таймера. Это реализуется с помощью манчестерского кодирования. В манчестерском коде каждый временной интервал передачи одного бита делится на два равных периода. Бит со значением 1 кодируется высоким уровнем напряжения в первой половине интервала и низким — во второй половине, а нулевой бит кодируется обратной последовательностью — сначала низкое напряжение, затем высокое. Такая схема гарантирует смену напряжения в середине периода битов, что позволяет приемнику синхронизироваться с передатчиком. Недостатком манчестерского кодирования является то, что оно требует двойной пропускной способности линии по отношению к прямому двоичному кодированию, так как импульсы имеют половинную ширину. Например, для того чтобы отправлять данные со скоростью 10 Мбит/с, необходимо изменять сигнал 20 миллионов раз в секунду.
Формат кадра Ethernet
Преамбула (8 байт). Ethernet-кадр начинается с 8-байтового поля преамбулы. В каждый из первых 7 байт преамбулы записывается значение 10101010, а в последний байт — значение 10101011. Первые 7 байт должны «разбудить» принимающие адаптеры и помочь им синхронизировать свои таймеры с часами отправителя. Как уже отмечалось, адаптер А должен передать кадр со скоростью 10 Мбит/с, 100 Мбит/с или 1 Гбит/с в зависимости от типа локальной Ethernet-сети. Однако поскольку ничего не бывает абсолютно точным в реальном мире, скорость передачи всегда будет несколько отличаться от номинала. Величина этого отклонения скорости другим адаптерам локальной сети заранее не известна. Таким образом, первые 62 бита преамбулы, представляющие собой чередующиеся нули и единицы, позволяют приемнику с достаточной точностью настроиться на скорость передатчика, а последние два разряда (две единицы подряд) сообщают адаптеру В, что преамбула закончилась и следом идет уже первый информационный байт поля кадра. Адаптер В понимает, что следующие 6 байт содержат адрес получателя.
Адрес получателя (6 байт). Это поле содержит LAN-адрес принимающего адаптера. Получив Ethernet-кадр с адресом получателя, отличным от собственного физического адреса или широковещательного адреса локальной сети, адаптер отбрасывает кадр. В противном случае он передает содержимое поля данных сетевому уровню.
Адрес отправителя (6 байт). Это поле содержит LAN-адрес адаптера, передающего кадр в локальную сеть. Поле типа (2 байта). Поле типа позволяет локальной Ethernet-сети «мультиплексировать» протоколы сетевого уровня. Чтобы понять, что это означает, вспомним, что хосты могут помимо протокола IP использовать и другие протоколы. В самом деле, любой хост может поддерживать несколько протоколов сетевого уровня — разные протоколы для разных приложений. По этой причине, получив Ethernet-кадр, адаптер В должен знать, какому протоколу сетевого уровня он должен передать (то есть демультиплексировать) содержимое поля данных. Каждому сетевому протоколу (например, IP, Novell IPX или AppleTalk) присвоен зафиксированный в стандарте номер. Обратите внимание, что поле типа аналогично полю протокола в дейтаграмме сетевого уровня и полю номера порта сегмента транспортного уровня. Все эти поля служат для связи протокола одного уровня с протоколом уровнем выше.
Поле данных (от 46 до 1500 байт). Это поле содержит IP-дейтаграмму. Максимальная единица передачи (Maximal Transfer Unit, MTU) в Ethernet-сети составляет 1500 байт. Это означает, что если размер IP-дейтаграммы превышает 1500 байт, тогда хост должен разбить ее на отдельные фрагменты (см. подраздел «Фрагментация IP-дейтаграмм» в разделе «Интернет-протокол» главы 4). Минимальный размер поля данных равен 46 байт. Это означает, что если размер IP-дейтаграммы меньше 46 байт, то данные, помещаемые в это поле, дополняются байтами-заполнителями. При этом сетевой уровень получает дейтаграмму от канального уровня с этими дополнительными байтами и отсекает все лишнее сам, ориентируясь на поле длины в заголовке IP-дейтаграммы. Вот почему на практике в WireShark мы иногда получали 6 нулевых байтов в приходящем пакете.
CRC (4 байта). Назначение поля CRC заключается в том, чтобы получающий адаптер мог определить, не исказился ли кадр при передаче, то есть обнаружить ошибки в кадре. Искажение битов в кадре может быть вызвано ослаблением сигнала в канале, скачками напряжения, наводками в кабелях и интерфейсных платах.
Минимальный размер кадра
Если кадр короткий, а расстояние между компьютерами большое, то отправитель может не обнаружить коллизии. Если отправитель закончит отсылать кадр до прихода сигнала о коллизии, то он подумает, что сигнал о коллизии относится не к нему.
Связь характеристик канала
Пусть M — минимальный размер кадра
P – пропускная способность канала
M/P – время записи кадра в канал
Связь между скоростью, длиной канала и минимальным размером кадра:
M/P > 2T, где T=L/c
Примеры:
P=10 Mb/s M=64 B тогда L<7680 м
P=10 Gb/s M=64 B тогда L<7,68 м
Между тем, кроме верхней границы размера поля данных очень важна и нижняя граница. Поле данных, содержащее 0 байт, вызывает определенные проблемы. Дело в том, что когда приемопередатчик обнаруживает столкновение, он обрезает текущий кадр, а это означает, что отдельные куски кадров постоянно блуждают по кабелю. Чтобы было легче отличить нормальные кадры от мусора, сети Ethernet требуется кадр размером не менее 64 байт (от поля адреса получателя до поля контрольной суммы включительно). Если в кадре содержится меньше 46 байт данных, в него вставляется специальное поле Pad, с помощью которого размер кадра доводится до необходимого минимума. Другой (и даже более важной) целью установки ограничения размера кадра снизу является предотвращение ситуации, когда станция успевает передать короткий кадр раньше, чем его первый бит дойдет до самого дальнего конца кабеля, где он может столкнуться с другим кадром. Эта ситуация показана на рис. 4.17. В момент времени 0 станция А на одном конце сети посылает кадр. Пусть время прохождения кадра по кабелю равно т. За мгновение до того, как кадр достигнет конца кабеля (то есть в момент времени т - е), самая дальняя станция В начинает передачу. Когда станция В замечает, что получает большую мощность, нежели передает сама, она понимает, что произошло столкновение. Тогда она прекращает передачу и выдает 48-битный шумовой сигнал, предупреждающий остальные станции. Примерно в момент времени 2т отправитель замечает шумовой сигнал и также прекращает передачу. Затем он выжидает случайное время и пытается возобновить передачу. Если размер кадра будет слишком маленьким, отправитель закончит передачу прежде, чем получит шумовой сигнал. В этом случае он не сможет понять, произошло это столкновение с его кадром или с каким-то другим, и, следовательно, может предположить, что его кадр был успешно принят. Для предотвращения такой ситуации все кадры должны иметь такую длину, чтобы время их передачи было больше 2т. Для локальной сети со скоростью передачи 10 Мбит/с при максимальной длине кабеля в 2500 м и наличии четырех повторителей (требование спецификации 802.3) (мое: вероятно L=2500*5, где 5 – максимальное количество участков кабеля между компьютерами) минимальное время передачи одного кадра должно составлять в худшем случае примерно 50 мкс, включая время на прохождение через повторитель, которое, разумеется, отлично от нуля. Следовательно, длина кадра должна быть такой, чтобы время передачи было по крайней мере не меньше этого минимума. При скорости 10 Мбит/с на передачу одного бита тратится 1000 не, значит, минимальный размер кадра должен быть равен 500 бит. При этом можно гарантировать, что система сможет обнаружить коллизии в любом месте кабеля. Из соображений большей надежности это число было увеличено до 512 бит или 64 байт. Кадры меньшего размера с помощью поля Pad искусственно дополняются до 64 байт. По мере роста скоростей передачи данных в сети минимальный размер кадра должен увеличиваться, или должна пропорционально уменьшаться максимальная длина кабеля. Для 2500-метровой локальной сети, работающей на скорости 1 Гбит/с, минимальный размер кадра должен составлять 6400 байт. Или же можно использовать кадр размером 640 байт, но тогда надо сократить максимальное расстояние между станциями сети до 250 м. По мере приближения к гигабитным скоростям подобные ограничения становятся все более суровыми.