Carrier Sense Multiple Access
Carrier Sense Multiple Access (CSMA) — вероятностный сетевой протокол канального (МАС) уровня. Узел, желающий передать пакет данных, выполняет процедуру оценки чистоты канала, то есть слушает шумы в передающей среде в течение заранее определённого периода времени. Если передающая среда оценивается как чистая, узел может передать пакет данных. В противном случае, если выполняется другая передача, узел «отстраняется», то есть ждёт определённое количество времени, прежде чем опять предпринять процедуру отправки пакета.
На практике более распространена модификация этой технологии CSMA/CD, поддерживающая распознавание коллизий. Существует также технология CSMA/CA, которая пытается избегать коллизии.
История появления
В ранней сети типа ALOHAnet, работавшей с 1970 г. на Гавайских островах, использовался радиоканал и установленный на спутнике ретранслятор (отсюда слово «несущая» в названии метода), а также сравнительно простой метод доступа CSMA без обнаружения коллизий. В сетях типа Ethernet и Fast Ethernet в качестве несущей выступает синхросигнал, «подмешиваемый» к передаваемым данным таким образом, чтобы обеспечить надёжную синхронизацию на приёмном конце. Это реализуется за счёт организации (при необходимости) дополнительных принудительных переходов сигнала между двумя (как в коде Манчестер-II) или тремя электрическими уровнями (как в коде типа 8В6Т, используемом в сегменте 100BASE-T4 на основе четырёх неэкранированных витых пар).
Типы CSMA
- 1-настойчивый CSMA
Когда станция готова к передаче данных, она прослушивает канал. Если канал оказывается свободным, происходит передача кадра. Если же канал занят, то станция ждет, пока канал не освободится, затем сразу начинает передачу данных. В случае возникновения коллизии станция ждет в течение случайного интервала времени, затем снова прослушивает канал и, если он свободен, пытается передать кадр еще раз.
- Ненастойчивый CSMA
Когда станция готова к передаче данных, она прослушивает канал. Если канал оказывается свободным, происходит передача кадра. Если же канал занят, то станция ждет в течение случайного интервала времени, а затем прослушивает линию снова. При возникновении коллизии станция поступает также, как и в случае 1-настойчивого CSMA.
- p-настойчивый CSMA
Этот протокол используется в дискретных каналах. Когда станция готова передавать, она опрашивает канал. Если канал свободен, она с вероятностью p начинает передачу. С вероятностью 1-p она отказывается от передачи и ждет начала следующего такта. Процесс повторяется до тех пор, пока кадр не будет передан или другая станция не начнет передачу. В последнем случае станция поступает также, как и при возникновении коллизии: ждет в течение случайного интервала времени, после чего начинает все снова. Если при первом прослушивании канала он оказывается занят, станция ждет следующего интервала времени, после чего применяется тот же алгоритм.