Методы доступа к среде передачи с использованием CSMA
Carrier-sense multiple access
CSMA: протокол управления доступом к среде передачи данных. Устройства проверяют канал перед передачей, избегая коллизий и обеспечивая совместное использование.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Система, позволяющая передатчикам поочередно использовать общую среду передачи.
System allowing transmitters to take turns on a shared media
Множественный доступ с прослушиванием несущей (CSMA) – это протокол управления доступом к среде (MAC), в котором узел проверяет отсутствие других передач перед отправкой данных по общей среде передачи, такой как электрическая шина или полоса электромагнитного спектра. В рамках CSMA передатчик использует механизм определения занятости среды, чтобы установить, происходит ли другая передача, прежде чем начать свою. То есть, он пытается обнаружить наличие сигнала несущей от другого узла перед попыткой передачи. Если сигнал несущей обнаружен, узел ждет завершения текущей передачи, прежде чем инициировать свою собственную. Используя CSMA, несколько узлов могут поочередно отправлять и принимать данные в одной и той же среде. Передачи одного узла обычно принимаются всеми другими узлами, подключенными к среде. Вариации базового CSMA включают в себя добавление механизмов предотвращения коллизий (CSMA/CA), обнаружения коллизий (CSMA/CD) и разрешения коллизий.
Carrier sense multiple access (CSMA) is a medium access control (MAC) protocol in which a node verifies the absence of other traffic before transmitting on a shared transmission medium, such as an electrical bus or a band of the electromagnetic spectrum. Under CSMA, a transmitter uses a carrier sense mechanism to determine whether another transmission is in progress before initiating a transmission. That is, it tries to detect the presence of a carrier signal from another node before attempting to transmit. If a carrier is sensed, the node waits for the transmission in progress to end before initiating its own transmission. Using CSMA, multiple nodes may, in turn, send and receive on the same medium. Transmissions by one node are generally received by all other nodes connected to the medium. Variations on basic CSMA include addition of collision avoidance (CSMA/CA), collision detection (CSMA/CD) and collision resolution techniques.
Режимы доступа
В различных вариантах CSMA используются различные алгоритмы для определения момента начала передачи по общему каналу. Ключевой отличительной чертой этих алгоритмов является степень их агрессивности или настойчивости при инициировании передачи. Более агрессивный алгоритм может начать передачу быстрее и использовать больший процент доступной полосы пропускания канала. Обычно это происходит за счет повышенной вероятности коллизий с другими передатчиками. 1-персистентный (1-persistent) CSMA – это агрессивный алгоритм передачи. Когда передающий узел готов к передаче, он проверяет, свободен ли канал или занят. Если канал свободен, он передает данные немедленно. Если канал занят, он непрерывно контролирует его, пока он не станет свободным, после чего передает сообщение (кадр) безусловно (т.е. с вероятностью = 1). В случае коллизии отправитель ждет случайный промежуток времени и повторяет процедуру. 1-персистентный CSMA используется в системах CSMA/CD, включая Ethernet. Неперсистентный (non-persistent) CSMA – это неагрессивный алгоритм передачи. Когда передающий узел готов к передаче данных, он проверяет, свободен ли канал или занят. Если канал свободен, он передает данные немедленно. Если канал занят, он переходит непосредственно к последнему этапу случайного ожидания 1-персистентного CSMA перед повторением всего логического цикла: он не продолжает проверять занятый канал, пытаясь осуществить передачу, отсюда и название. Такой подход снижает вероятность коллизий и обеспечивает более высокую общую пропускную способность канала, но с недостатком в виде большей начальной задержки по сравнению с 1-персистентным. P-персистентный (P-persistent) CSMA занимает промежуточное положение между 1-персистентным и неперсистентным режимами доступа CSMA. Когда передающий узел готов к передаче данных, он проверяет, свободен ли канал или занят. Если канал свободен, он передает данные немедленно. Если канал занят, он непрерывно контролирует его, пока он не станет свободным, после чего передает с вероятностью p. Если узел не передает (вероятность этого события равна 1-p), он ждет случайный промежуток времени, прежде чем повторить ту же процедуру, используя ту же вероятность p. Если канал свободен, он снова передает с той же вероятностью p. Эта вероятностная задержка повторяется до тех пор, пока кадр не будет окончательно передан или пока канал снова не станет занятым (т.е. другой узел уже начал передачу). В последнем случае узел повторяет весь логический цикл (который начался с проверки канала на свободу или занятость). P-персистентный CSMA используется в системах CSMA/CA, включая Wi-Fi и другие пакетные радиосистемы. Следует отметить, что P = 0-персистентный CSMA отличается от неперсистентного CSMA. Оба могут передавать только в начале процедуры (если канал свободен), но их поведение на занятом канале различается: неперсистентный CSMA не пытается контролировать канал и перезапускает свой логический цикл, в то время как P = 0 обязательно застревает в бесконечном цикле ожидания (поскольку у него нулевая вероятность передачи, даже если канал снова станет свободным). O-персистентный (O-persistent) CSMA: каждому узлу присваивается порядок передачи управляющим узлом. Когда канал становится свободным, узлы ждут своей очереди в соответствии с назначенным порядком передачи. Узел, которому назначен первый порядок, передает данные немедленно. Узел, которому назначен второй порядок, ждет один временной слот (но к тому времени первый узел уже начал передачу). Узлы контролируют канал на предмет передач от других узлов и обновляют свой назначенный порядок с каждой обнаруженной передачей (т.е. они перемещаются на одну позицию ближе к началу очереди). O-персистентный CSMA используется в CobraNet, LonWorks и сети контроллеров.
Variations of CSMA use different algorithms to determine when to initiate transmission onto the shared medium. A key distinguishing feature of these algorithms is how aggressive or persistent they are in initiating transmission. A more aggressive algorithm may begin transmission more quickly and utilize a greater percentage of the available bandwidth of the medium. This is typically at the expense of an increased likelihood of collision with other transmitters. 1 persistent 1 persistent CSMA is an aggressive transmission algorithm. When the transmitting node is ready to transmit, it senses the transmission medium for idle or busy. If idle, then it transmits immediately. If busy, then it senses the transmission medium continuously until it becomes idle, then transmits the message (a frame) unconditionally (i. e. with probability=1). In case of a collision, the sender waits for a random period of time and attempts the same procedure again. 1 persistent CSMA is used in CSMA/CD systems including Ethernet. Non persistent Non persistent CSMA is a non aggressive transmission algorithm. When the transmitting node is ready to transmit data, it senses the transmission medium for idle or busy. If idle, then it transmits immediately. If busy, it jumps to the final random waiting step of 1 persistent CSMA directly before repeating the whole logic cycle again: it does not persist in checking the busy channel trying to get its transmission through, hence the name. This approach reduces the chance of collision and results in overall higher medium throughput but with a penalty of longer initial delay compared to 1–persistent. P persistent This approach lies between the 1 persistent and non persistent CSMA access modes. When the transmitting node is ready to transmit data, it senses the transmission medium for idle or busy. If idle, then it transmits immediately. If busy, then it senses the transmission medium continuously until it becomes idle, then transmits with probability p. If the node does not transmit (the probability of this event is 1 p), it waits for a random period of time before re attempting the same procedure, using the same probability p. If the transmission medium is not busy, it transmits again with the same probability p. This probabilistic hold off repeats until the frame is finally transmitted or when the medium is found to become busy again (i. e. some other node has already started transmitting). In the latter case the node repeats the whole logic cycle (which started with sensing the transmission medium for idle or busy) again. p persistent CSMA is used in CSMA/CA systems including Wi Fi and other packet radio systems. Note that p = 0 persistent CSMA is different from non persistent CSMA. Both can only transmit at the start of the procedure (if the channel is idle), but their behaviour on a busy channel differs: non persistent CSMA doesn't attempt to sense the channel and restarts its logical cycle, whilst p = 0 necessarily gets stuck in an infinite loop of waiting (since it has zero probability of transmission even if the channel goes back to being idle). O persistent Each node is assigned a transmission order by a supervisory node. When the transmission medium goes idle, nodes wait for their time slot in accordance with their assigned transmission order. The node assigned to transmit first transmits immediately. The node assigned to transmit second waits one time slot (but by that time the first node has already started transmitting). Nodes monitor the medium for transmissions from other nodes and update their assigned order with each detected transmission (i. e. they move one position closer to the front of the queue). O persistent CSMA is used by CobraNet, LonWorks and the controller area network.