비영구 CSMA(Non-persistent CSMA)는 매체 접근 제어(MAC, Medium Access Control) 계층에서 동작하는 반송파 감지 다중 접속(CSMA, Carrier Sense Multiple Access) 프로토콜의 한 방식으로, 채널이 사용 중일 때 공격적으로 재전송을 시도하지 않는 '비공격적(non-aggressive)' 버전입니다.
CSMA 계열 프로토콜에서는 둘 이상의 사용자 또는 노드가 하나의 케이블이나 광섬유처럼 여러 노드를 연결하는 공유 매체, 혹은 무선 주파수 스펙트럼의 일부를 통해 데이터를 송수신합니다. 이때 여러 스테이션이 동시에 전송을 시도하면 충돌(collision)이 발생할 수 있는데, 비영구 CSMA는 이러한 충돌을 줄이기 위한 접근 방식을 취합니다.
비영구 CSMA의 핵심 원리
비영구 CSMA에서 송신 스테이션이 전송할 프레임을 가지고 있는데 채널이 사용 중(busy)임을 감지하면, 그 사이에 채널 상태를 다시 확인하지 않은 채 임의의(random) 시간 동안 대기한 후 알고리즘을 처음부터 다시 수행합니다. 이것이 1-영구 CSMA가 채널이 비는 즉시 전송을 시도하는 것과 다른 점입니다.
동작 알고리즘
- 프레임이 준비되면 송신 스테이션은 먼저 채널이 유휴(idle) 상태인지 사용 중(busy) 상태인지 확인합니다.
- 채널이 유휴 상태라면 프레임을 즉시 전송합니다.
- 채널이 사용 중이라면, 대기 시간 동안 채널 상태를 전혀 확인하지 않고 임의의 시간만큼 기다립니다.
- 대기 시간이 끝나면 다시 채널 상태를 확인하고 알고리즘을 재시작합니다.
비영구 CSMA의 장점
비영구 CSMA는 1-영구 CSMA에 비해 충돌 발생률이 크게 감소합니다. 각 스테이션이 재전송을 시도하기 전에 서로 다른 임의의 시간만큼 대기하기 때문입니다. 여러 스테이션이 우연히 동일한 시간만큼 기다렸다가 동시에 전송할 확률은 극히 낮습니다. 따라서 채널을 두고 경쟁하는 스테이션 간의 충돌이 크게 줄어들며, 결과적으로 재전송으로 인한 네트워크 부하도 함께 감소합니다.
비영구 CSMA의 단점
반면 비영구 CSMA는 네트워크 대역폭 활용 효율을 떨어뜨립니다. 전송할 프레임을 가진 스테이션이 존재하더라도, 각 스테이션이 임의의 시간 동안 대기하는 동안에는 채널이 유휴 상태로 남아 있을 수 있기 때문입니다. 즉, 채널이 놀고 있는데도 여러 스테이션이 대기만 하고 있는 상황이 발생하여 채널 자원이 낭비될 수 있습니다.
처리량(Throughput) 비교
네트워크 시스템의 처리량은 프레임 시간(frame time)당 성공적으로 전송된 횟수로 정의됩니다. 아래 그래프는 비영구 CSMA의 처리량을 1-영구 CSMA 등 다른 MAC 프로토콜과 비교한 것으로, 부하가 커질수록 비영구 방식이 더 안정적인 처리량을 유지하는 것을 확인할 수 있습니다.
