Механизм управления доступом к среде CSMA/CD

Наиболее характерная особенность сети Ethernet — это механизм управления доступом к среде, который называется множественным доступом с контролем несущей и обнаружением коллизий (CSMA/CD, Carrier Sense Multiple Access with Collision Detection). Подобно любому методу MAC, CSMA/CD позволяет ком­пьютерам в сети совместно разделять единую узкополосную среду передачи без потери данных. В сети Ethernet нет приоритетов, поскольку на этом осно­ван метод доступа к среде. Протокол разработан таким образом, что каждый узел имеет равные права на доступ к сетевой среде передачи.

Когда узел в сети Ethernet хочет передать данные, сначала он "прослуши­вает" сетевую среду, пытаясь определить, используется ли она. Это — фаза контроля несущей. Если узел выявляет в сети трафик, он выдерживает корот­кую паузу и снова прослушивает сеть. Если сеть свободна, то любой узел сети может осуществить через нее передачу своих данных. Это — фаза мно­жественного доступа. Описанный механизм сам управляет доступом к среде передачи, но не без ошибок.

Вполне возможно для двух (или более) систем установить, что сеть свобод­на, и начать передавать свои данные примерно в один и тот же момент. Это приводит к спорной ситуации, которая в спецификациях IEEE называется ошибкой качества сигнала (SQE, signal quality error) или, что более широкоупотребимо, коллизией (collision). Коллизии возникают, когда одна система передает данные, а другая система выполняет контроль несущей в течение короткого промежутка времени до того момента, как первый бит передан­ного пакета достигнет ее (рис. 8.1). Этот интервал известен как время со­стязания (contention time) или временной зазор (slot time), так как каждая во­влеченная в процесс система полагает, что она начала передавать данные первой. Таким образом, каждый узел в сети всегда находится в одном из трех возможных состояний: передаче, соревновании или ожидании.

Когда сталкиваются пакеты от Двух различных узлов, в кабеле возникает состояние, отличное от нормы, которое распространяется навстречу обеим системам. В коаксиальной сети уровень напряжения стремится к точке, в которой он равен или больше, чем объединенные уровни двух трансмитте­ров (+/-0,85 В). В сети из оптоволоконного кабеля или витой пары откло­нения имеют форму одновременной активности сигнала в принимающей и передающей цепи.

Когда каждая передающая система выявляет ненормальную ситуацию, она осознает, что имеет место коллизия, немедленно прекращает посылать дан­ные и предпринимает действия, чтобы исправить эту ситуацию. Это — ста­дия обнаружения коллизии. Из-за того, что столкнувшиеся пакеты считаются поврежденными, обе задействованные системы передают в остальную сеть сигнал задержки (jam pattern), который устанавливает во всем кабеле напря­жение, информирующее другие системы в сети о столкновении и предот­вращающее возможную передачу ими данных.

Сигнал задержки — это последовательность из 32 бит, которые могут иметь любое значение до того момента, пока они не станут равны значению поля контроля, содержащего циклический избыточный код (CRC) поврежденного пакета. Система, получившая пакет Ethernet, использует поле CRC (или контрольную сумму) для того, чтобы определить, были ли данные в пакете получены без ошибок. До тех пор, пока маска задержки отличается от пра­вильного значения CRC, все принимающие узлы будут отбрасывать пакет.

В большинстве случаев сетевые адаптеры просто выставляют во всех 32 битах сигнала задержки значение 1, что соответствует CRC для пакета с весом 232, генерация которого в нормальных условиях не представляется вероятной.

После передачи сигнала задержки оба узла, вовлеченные в конфликт, от­кладывают свою передачу на случайный интервал времени, который вычис­ляется по алгоритму с использованием их собственных МАС-адресов в каче­стве уникальных факторов. Этот процесс называется отсрочкой или времен­ной выдержкой. Так как оба узла выполняют независимые вычисления вре­менной паузы, то шанс, что они начнут повторную передачу в одно и то же время, существенно снижается. Однако это по-прежнему возможно, и, если между теми же двумя узлами возникнет очередная коллизия, то они оба уве­личат продолжительность интервалов задержки и снова переходят в состоя­ние отсрочки. Как следствие того, что увеличивается количество возможных значений интервала выдержки, вероятность того, что системы снова выберут одинаковые интервалы, уменьшается. В спецификации Ethernet описанный процесс называется усеченной двоичной экспоненциальной временной выдерж­кой (truncated binary exponential backoff или truncated BEB). Система Ethernet будет пытаться передать пакет 16 раз, и если каждый раз будет возникать коллизия, то пакет отбракуется.