Протоколы доступа к сети
В сети следует воспользоваться каким-либо методом определения того, какой узел и в течение какого времени должен использовать линии обмена данными. Эти функции реализуются сетевым протоколом, который необходим для предотвращения доступа к шине более одного пользователя в любой конкретный момент времени.
В случае одновременного помещения в сеть двух наборов данных происходит конфликт данных и их потеря. В настоящее время используются два фактически стандартных сетевых протокола: Ethernet и Token Ring (Эстафетное кольцо).
Ethernet
Компания Xerox в 1976 г. разработала протокол Ethernet. Стандартная спецификация Ethernet была опубликована Институтом инженеров по электротехнике и электронике (Institute of Electrical and Electronics Engineers, IEEE) как протокол Ethernet IEEE-802.3. Используемая в этом протоколе методология управления называется множественным доступом с контролем несущей и обнаружением конфликтов (carrier sense multiple access with collision detection, CSMA/CD). При использовании упомянутого протокола узел, который желает передать данные по сети, вначале прослушивает локальную сеть, чтобы определить, используется ли она. Если локальная сеть не используется, узел начинает передавать данные. Если сеть занята, узел дожидается освобождения локальной сети в течение определенного времени, а затем захватывает управление линией.
Если два узла ожидают своей очереди использования локальной сети, периодически они пытаются получить к ней доступ одновременно. В этих случаях возникает конфликт данных, и данные, поступающие от обоих узлов, оказываются бесполезными. Приемная часть контроллера Ethernet следит за передачами, пытаясь обнаружить конфликты.
Когда контроллер обнаруживает перекрытие разрядов данных, он останавливает передачу. Это же делает и второй узел. Передающий контроллер генерирует код отмены, который он передает всем узлам локальной сети, сообщая о возникновении конфликта. В результате любые узлы, которые могут дожидаться своей очереди доступа к локальной сети, получают предупреждение о наличии проблемы.
Принимающий узел (или узлы) выгружает любые данные, которые он мог получить перед возникновением конфликта. Остальные узлы, дожидающиеся своей очереди на отправку данных, генерируют случайный номер ожидания и переходят в режим задержки. Номер ожидания — это время ожидания, в течение которого узел не предпринимает попыток выполнить передачу. Поскольку этот номер генерируется случайно, вероятность того, что два узла предпримут новую попытку передачи одновременно, очень низка.
Первый узел, время ожидания которого закончилось, прослушивает локальную сеть, чтобы определить, имеет ли еще место какая-либо активность. Поскольку почти всегда он находит свободную локальную сеть, он начинает передачу. Если два узла одновременно выходят из режима ожидания, возникает еще один конфликт и последовательность отмена/генерирование номера/время ожидания начинается снова. Рано или поздно один из узлов получает доступ к сети и успешно передает свои данные.