Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курс Информационные сети (4 ку.doc
Скачиваний:
8
Добавлен:
26.11.2019
Размер:
2.58 Mб
Скачать

Механизм csma/cd

Механизм MAC — определяющий элемент стандарта Ethernet. Про­токол, во всех остальных отношениях очень похожий на Ethernet, например, 100VG Any LAN, попадет в другую категорию, если в нем используется другой механизм MAC. Название «Множественный до­ступ с контролем несущей и обнаружением коллизий» (Carrier Sense Multiple Access with Collision Detection) кажется несколько громозд­ким, но суть этого механизма проста, если, конечно, не вдаваться в подробности.

Когда системе Ethernet нужно передать данные, она прежде всего проверяет, не занята ли сеть другой системой. Этот этап называется фазой контроля несущей (carrier sense). Если сеть занята, система ждет некоторое время, а потом снова проверяет сеть на занятость. Если сеть свободна, система передает пакет данных. Эта этап называется фазой множественного доступа (multiple access), поскольку за право получить доступ к среде соревнуются все системы одной ЛВС.

Фазы контроля несущей и множественного доступа демон­стрируются в видеоролике CSMA из папки Demos на прила­гаемом к книге компакт-диске.

Хотя во время фазы контроля несущей и выполняется начальная проверка, она все-таки не гарантирует, что две системы в сети не нач­нут передачу одновременно, вызвав тем самым коллизию (collision). Такое, например, происходит, когда одна система выполняет кон­троль несущей, а другой компьютер уже начал передачу, но его сиг­нал еще не достиг первой системы. Убедившись в незанятости сети, первый компьютер тоже начинает передачу, и где-то в кабеле два па­кета встречаются. Происходит коллизия, в результате которой оба пакета игнорируются, и системы должны повторить их передачу. Та­кие коллизии в сетях Ethernet — вещь вполне обычная и ожидаемая, и они не создают проблем, если их не слишком много и компьютеры способны их обнаруживать.

Коллизия демонстрируется в видеоролике Collision из папки Demos на прилагаемом к книге компакт-диске.

Примечание Хотя все без исключения называют столкновение паке­тов коллизией, согласно стандарту IEEE 802.3, оно представляет собой ошибку качества сигнала (Signal Quality Error, SQE). В подобных стан­дартах это обычная практика — придумывать сложные термины там, где можно обойтись одним словом.

Самая важная часть процесса передачи данных — фаза обнаруже­ния коллизий (collision detection). Если системы не распознают столк­новение пакетов, поврежденные данные могут достичь целевой сис­темы, которая обработает их как корректные. Сети Ethernet спроек­тированы так, чтобы пакеты были достаточно большими и заполняли весь сетевой кабель сигналами, пока не будет передан последний бит информации. Именно поэтому пакеты Ethernet должны быть не ме­нее 64 байтов в длину, именно поэтому система перед передачей до­полняет короткие пакеты до 64 байтов, именно поэтому в стандартах Ethernet накладываются такие строгие ограничения на длину сегмен­тов кабеля.

Компьютер способен обнаружить коллизию, пока он находится в процессе передачи данных. При использовании кабеля UTP или оптоволоконного кабеля компьютер «предполагает», что случилась кол­лизия, если сигнал регистрируется как и в передающих, так и в при­нимающих проводах. В коаксиальных сетях о коллизии говорит рез­кий скачок напряжения в кабеле. Если кабель слишком длинный или пакет слишком короткий, система может завершить передачу до того, как обнаружит признаки коллизии.

Внимание! Очевидно, что коллизия может произойти и после того, как последний бит данных покинул передающую систему. Такая кол­лизия называется запоздавшей (late collision) и указывает на наличие в сети Ethernet серьезной проблемы (например, неисправного сетевого адаптера), которую нужно как можно быстрее исправить.

Обнаружив коллизию, система немедленно останавливает переда­чу данных и начинает передачу сигнала затора (jam pattern), сигнали­зируя всем системам сети, что произошла коллизия, и потому необ­ходимо игнорировать все пакеты, частично принятые к этому време­ни, и не начинать передачу данных, пока сеть не очистится. После передачи сигнала затора система выдерживает паузу до новой попыт­ки передать данные. Продолжительность этой паузы называется пе­риодом задержки (backoff period), и обе системы, вовлеченные в кол­лизию, рассчитывают его самостоятельно по алгоритму усеченной дво­ичной экспоненциальной задержки (truncated binary exponential backoff) с использованием генератора случайных чисел. Случайным образом период вычисляется для того, чтобы у двух систем он не совпал и они не начали передачу одновременно, породив новую коллизию.

Процедура действия CSMA/CD такова, что чем больше систем Вы подключаете к сети и чем больше они передают данных, тем больше происходит коллизий. Коллизии — нормальная часть работы сети Ethernet, но это не значит, что они ей не мешают. Коллизии приво­дят к задержкам в передаче данных, так как некоторые пакеты систе­мам приходится посылать повторно. Если число коллизий не превы­шает норму, задержки не существенны, но, когда нагрузка на сеть уве­личивается, число коллизий также возрастает, и связанная с ними суммарная задержка уже заметно ухудшает работу сети. Поэтому сети Ethernet не рекомендуется слишком перегружать. Для ослабления нагрузки на сеть в ней можно установить мост или коммутатор или разделить ее на две ЛВС, соединенные маршрутизатором.

Может показаться, что управление доступом к сетевой среде с по­мощью механизма CSMA/CD происходит неэффективно, но на са­мом деле действия, с помощью которых система борется за доступ к сети и ликвидирует последствия коллизий, производятся много раз в секунду, причем так быстро, что задержкой можно пренебречь, если число коллизий не чрезмерно. Управление доступом к среде демонстрируется в видеоролике Contention из папки Demos на прилагаемом к книге компакт-диске.