Протокол CSMA
В обоих вариантах протокола ALOHA, дискретном и чистом, узел принимает решение о передаче кадра независимо от активности остальных узлов, присоединенных к широковещательному каналу. В частности, узел не обращает внимания на то, ведется ли в данный момент передача другими узлами, и не прекращает передачу в случае коллизий. Если вспомнить нашу аналогию с вечеринкой, протоколы ALOHA подобны невоспитанным собеседникам, прерывающим чужой разговор и продолжающим говорить, несмотря на то что в разговор вступили другие участники вечеринки. У людей также есть свои протоколы, позволяющие им не только вести себя более цивилизованно, но и тратить меньше времени на «коллизии» друг с другом и, таким образом, повышать «производительность» беседы. В частности, существуют два важных правила вежливого разговора.
□ Слушайте, прежде чем говорить. Если кто-то уже говорит, подождите, пока он не закончит. В мире компьютерных сетей это правило называется контролем несущей и заключается в том, что узел прослушивает канал перед тем, как начать передачу. Если по каналу передается кадр, узел выжидает («отступает») в течение случайного периода времени, после чего снова опрашивает канал. Если канал оказывается свободным, узел начинает передачу кадра. В противном случае узел ждет в течение еще одного случайного интервала времени и повторяет весь процесс.
□ Если кто-то начал говорить, прекращайте разговор. В мире компьютерных сетей это правило называется обнаружением коллизий. Оно заключается в том, что во время передачи узел прослушивает канал. Если он обнаруживает, что другой узел в этот момент времени тоже ведет передачу, он прекращает свою передачу и с помощью протокола вычисляет время своей следующей попытки передачи.
Эти два правила реализованы в семействе протоколов CSMA (Carrier Sense Multiple Access — множественный доступ с контролем несущей) и CSMA/CD (CSMA with Collision Detection — множественный доступ с контролем несущей и обнаружением коллизий). Было разработано множество вариантов протоколов CSMA и CSMA/ CD. Кроме того, протокол CSMA/CD, применяемый в Ethernet-сети, мы подробно обсудим в разделе «Ethernet», а пока рассмотрим некоторые фундаментальные характеристики протоколов CSMA и CSMA/CD.
Первый вопрос о протоколе CSMA, который может возникнуть, состоит в том, как вообще могут возникать коллизии, если все узлы прослушивают несущую? В самом деле, ведь узел воздерживается от передачи, если он замечает, что канал занят.
Ответ на этот вопрос лучше всего проиллюстрировать с помощью пространственно-временной диаграммы. На рис. 5.15 показана пространственно-временная диаграмма работы четырех узлов (А, В, С, D), присоединенных к линейной широковещательной шине. На горизонтальной оси фиксируется положение каждого узла в пространстве, вдоль вертикальной оси изменяется время.
В момент времени t0 узел В опрашивает канал и приходит к выводу, что канал свободен, так как никакой другой узел в этот момент не ведет передачу. Поэтому узел В начинает передачу, и передаваемый им сигнал распространяется по широковещательному носителю в обоих направлениях со скоростью, близкой к скорости света, но конечной. В момент времени t(1)(t(1) > t(0)) у узла D появляется кадр для передачи. Хотя узел В в этот момент уже передает данные, передаваемый им сигнал еще не достиг узла D, таким образом, узел D полагает, что канал свободен. Поэтому в соответствии с протоколом CSMA узел D начинает передачу своего кадра.
Немного позднее сигнал, передаваемый узлом В, смешивается с сигналом узла D — возникает коллизия. Из рисунка видно, что производительность широковещательного канала в значительной степени зависит от времени прохождения сигнала по каналу от одного узла до другого. Чем больше это время, тем выше вероятность коллизий, вызванных тем, что сигнал уже начавшего передачу узла не успел достичь другого узла, готового к передаче.
Изображенные на рис. 5.15 узлы не обнаруживают коллизию. Оба узла (В и D) продолжают передавать свои кадры целиком и после коллизии. При использовании протокола с обнаружением коллизий узел прекращает передачу, как только он обнаруживает коллизию. На рис. 5.16 показан тот же сценарий, что и на рис. 5.15, но в этом случае узлы прекращают передачу, обнаружив коллизию. Очевидно, добавление способности обнаружения коллизий повышает производительность протокола, так как продолжение передачи кадров в случае коллизии не имеет смысла и приводит лишь к дополнительным потерям времени. Протокол Ethernet, который будет рассматриваться в разделе «Ethernet», представляет собой протокол CSMA с обнаружением коллизий.
Мой блог находят по следующим фразам