CSMA는 매체 접근 제어(MAC) 프로토콜의 하나이다. 여러 개의 호스트가 하나의 매체/링크를 공유하게 되면 전기신호가 충돌하여 통신을 할 수 없게 된다.
충돌이 일어나지 않도록 하기 위해서 채널을 사용하기 전(각 노드들이 프레임을 전송하려고 공유 매체에 접근하기 전) 다른 호스트가 그 채널을 사용중인지를 먼저 체크하고 다중접속한다. 이것이 CSMA이다.
CD는 Detect로, 충돌 감지 기능을 사용해 충돌 여부를 확인하고(유선 LAN) CA는 Avoidance로, 충돌을 회피하는 기능을 사용한다(무선 LAN).
CSMA는 충돌의 가능성을 줄일 수는 있지만 충돌을 완전히 방지할 수는 없다.
CSMA에서는 패킷을 송출하기 전에 채널이 사용중(busy)인지 아닌지(idle)를 반송파 검출(Carrier Sense)에 의하여 조사한다. 채널이 비어있다면 자신의 패킷을 전송하고 채널이 사용중이라면 채널이 빌 때까지 기다리게 된다(Listen Before Talk).
IEEE 802.3(LAN의 이더넷 전송 프로토콜)에서 사용한다.
유선 링크의 경우 충돌을 확인할 수 있기 때문에 사용하는 방식이다.
송신 전에 채널이 비어있는지 확인하고 신호를 전송하면서 동시에 두 개의 다른 포트를 이용해 충돌이 발생하는지 확인하고 신호가 목적지에 도착하기 전에 다른 신호의 비트가 발견되면 충돌이 일어난 것으로 판단한다.
즉, 충돌이 없으면 지국은 자신이 보낸 신호만을 받게 되고 충돌이 생기면 지국은 자신의 신호와 다른 지국이 보낸 신호를 함께 받게 된다.
유선 Ethernet LAN에 사용하는 방식이다.
충돌을 탐지하면
IEEE 802.11(무선 랜 전송 프로토콜)에서 사용한다.
무선 네트워크에서는 충돌을 감지하기 힘들기 대문에 CSMA/CD방식을 사용할 수 없다.
ACK frame을 사용한다.
CSMA/CD의 변형으로 무선환경에서 사용하는 media access 방법이다.