네트워크/개념

[NW] #7. CSMA/CD, CSMA/CA

코딩하는상후니 2022. 9. 30. 18:28

 

 


 

 

 
 
'Ethernet' 은 데이터 링크 계층의 대표적인 프로토콜이다.
유선 통신의 문제는 여러 사용자가 네트워크 통신을 할 때,
통신 신호가 겹쳐서 못 받거나 충돌되는 상황이 발생한다.

 

이러한 문제를 해결하기 위해,
LAN 환경을 기반하는 Ethernet 에서 사용하는 대표적인 접속 방식 에 대해 알아보려고 한다.
 
CSMA / CD ( 유선 )이 그것이다.
 
더 나아가서,
LAN 환경과는 상반되는 무선랜 ( wireless LAN ) 환경에서의 대표적 접속 방식
CSMA / CA ( 무선 )에 대해서도 알아볼 것이다.
 
먼저 공통적인 기반을 가지고 있는 CSMA 를 알아보자.
 

 

 
 

* CSMA ( Carrier Sense Multiple Access )

 

 

=> 의미를 해석하면 '다중 접근 운반 감지' 정도가 되겠다.
즉,
신호를 계속 보내는 것이 아니라 다른 곳에서 같은 목적지의 경로로
데이터를 보내고 있는지 감지할 수 있는 방식이라 생각하면 된다.

 

하지만 문제는,
지금은 아직 아무 곳에서 데이터를 보내고 있지 않지만
보냄과 동시에 다른 곳에서도 데이터를 보냄으로써 예기치 못한 충돌이 발생할 수 있다.
 
이러한 상황들을 고려했을 때,
'목적지의 경로가 비어있음을 확인 후 보낼 때의 작동 방식' 에는
총 3가지 경우로 나눌 수 있다.
 
 

 

 

1. 1-Persistent CSMA

 
=> 낙천형
 
충돌되지 않는다는 확신을 가지고 사용 중이지 않는 것을 감지한다면,
즉시 데이터 프레임을 전송.
 
=> 충돌 발생률이 가장 크다.
 
=> 보통 유선 Ethernet 에서 이 방식과 더불어 충돌 감지 기능과 혼합해 사용한다.
( CSMA/CD )
 
 

2. nonpersistent CSMA

 
=> 비관형
 
반드시 충돌된다는 믿음으로 사용 중이 아니라고 감지해도
임의의 시간만큼 무조건 기다린 다음 데이터 프레임을 전송한다.
 
=> 대기 시간이 길어진다는 단점이 있다.
 
 
 

3. p-persistent CSMA

 
=> 혼합형
 
사용 중이 아니라고 감지하면
순간 확률 (p) 를 생성하고 해당 확률을 근거해
즉각 데이터 프레임을 전송하거나 1-p = q 만큼의 시간동안 기다린 후, 다시 감지한다.
 
=> 위 두 가지 방식을 혼합한 방식이며, 충돌 위험을 줄이면서 회선 효율을 높인다.

 

 

* CSMA / CD ( Carrier Sense Multiple Access / Collision Detection )

 

 

 
=> IEEE 802.3, LAN 의 이더넷 전용 프로토콜에서 사용한다.
=> 앞서 설명한,
1-Persistent CSMA 방식을 기반으로 충돌 감지를 더한 방식 이다.
 
=> 신호들이 여러 갈래에서 오게 되면 신호가 섞이게 되고 충돌이 발생한다.
그로 인해, 트래픽이 커지게 되어 속도 측면에서 굉장히 떨어지게 된다.
 
이를 해결하기 위해서
유선 기술로 전위 변화를 이용해 '충돌 여부를 검사할 수 있는 방식'
바로 'CSMA / CD' 이다.
=> 충돌이 감지되면 LAN 케이블의 색깔이 변하는 것을 볼 수 있다.
 
CSMA/CD 의 대략적인 동작 과정으로는,
 
1. 데이터 ( 프레임 ) 전송
2. 전송 중 충돌이 감지되면 패킷의 전송을 즉시 중단.
3. 충돌 사실을 모든 스테이션들에게 간단한 신호로 알림.
이를 '잼 시그널 ( jam sinal )' 이라고 한다.
4. 임의의 시간동안 대기 후, 프레임을 다시 전송.
 
CSMA/CD 의 개념과 한가지 더 알아야할 개념이 있는데,
바로 전이중 ( Full-duplex ), 반이중 ( Half-duplex ) 이다.
 
 
 

 

 
 

* 전이중 ( Full- Duplex ) & 반이중 전송 ( Half-Duplex )

 
 

 
 
한마디로 '데이터를 보내고 받는 능력' 을 말한다.
 
여기서 'Duplex' 의미는 보낼 수 있는 능력이 양쪽 모두 존재한다는 의미이다.
 
Simplex : 단방향 통신으로 수신자, 송신자가 미리 정해져있다.
ex ) 라디오, TV 방송..
 
Half-Duplex : 양쪽 모두 보낼 수 있지만 통로는 하나뿐이라 결국 한 방향씩 전송 가능하다.
ex) '저속' LAN
 
Full-Duplex : 양쪽 모두 보낼 수 있고 각자의 통로를 가질 수 있어 완전한 양방향 통신이라고 볼 수 있다.
즉, 데이터를 보내고 있을 때 혹은 보내려고 준비하는 과정에서 데이터를 받을 수 있다.
ex) '고속' LAN ( Fast Ethernet )
 
 
 
CSMA/CD 개념을 살펴본 후, Duplexing 개념을 살펴보면
유선 양방향 통신 상황에서 충돌이 발생할 때 사용할 수 있다고 예측 가능하다.
 
반이중 방식에서와 전이중 방식에서의 차이점은 통로가 하나 더 생겨난 것이다.
그로 인해, 충돌 횟수의 차이가 생김으로 그에 따른 속도가 차이가 발생한다.
 
CSMA/CD 를 유지하는 이유는
같은 방향에서도 충돌이 생길 수 있으며, 기존의 방식과 호환성을 유지해야할 필요가 있기 때문이다.
 

 

 
 

* CSMA / CA ( Carrier Sense Multiple Access / Collision Avoidance )

 

 
 
유선의 경우, 케이블 전압의 변화를 감지하면서 전압폭을 이용해 충돌을 감지할 수 있는 반면에
무선의 경우, 전파 신호로만 통신하기에 거리에 따른 신호 에너지도 충분하지 않고 충돌을 감지할 수 없음.
 
이를 해결하기 위해서 무선에서는 사전에 충돌을 가능한 회피하는 방식 을 사용한다.
 
 
* 충돌을 감지할 수 없는 이유
 
1. 낮은 전력으로 송신, 수신 하나의 작업만 가능.
2. 숨은 자국 존재.
3. 거리에 따른 통신 불안정
 
CSMA/CA 의 기본적인 메커니즘은 충돌을 회피하기 위해서,
프레임간의 여유 간격을 두고 신호를 송신하고 ACK 로 응답한다.

 

 

https://cs.stanford.edu/people/eroberts/courses/soco/projects/2003-04/wireless-computing/int_interlan.shtml

 

* IFS ( Inter Frame Space )  :  프레임 간 공간

 
=> 목적지 경로가 비어있다고 해도 바로 보내지 않고 임의의 시간 동안 기다린다고 했는데,
 
이 때,
기다리는 시간을 'IFS ( Inter Frame Space )'라고 한다.
 
=> 해당 지국(노드) 마다 우선순위를 규정 가능하다.
 
=> 802.11 표준에서는 DIFS, SIFS, EIFS 와 같은 여러 IFS 를 사용함.
 
 
 

* Contention Window  :  다툼 구간

 
=> Time slot 으로 나누어져 있는 일정 시간 구간.
 
=> 임의의 수를 선택해서 해당 수만큼 대기 한다.
( p-persistent 방식 )
 
위 그림을 참고하여 CSMA/CA 의 대략적인 동작 과정을 살펴보겠다.
 
그림에서 Receiver 와 Transmitter 의 예시로는
Receiver 는 Wifi 공유기 정도가 예시로 볼 수 있겠고
Transmitter 는 Wifi 를 사용하는 스마트폰이나 노트북 정도가 되겠다.
 
 
1. 통신 감지 후 비어있다면,
바로 프레임을 전송하지 않고 기다린다. ( DIFS )
 
2. 전송 측에서 RTS 신호를 보낸다. 수신 측에서도 잠시동안 대기하며 ( SIFS )
CTS 를 보낸다.
 
3. 해당 과정까지 확인 후 전송 측은 데이터 프레임을 전송한다.
그러곤 수신 측에서 ACK 가 올 때 까지 기다린다.
 
4. 받는 측에서 재대로 수신했다면 ACK 를 보내게 되고
전송 측에서 ACK 를 받으면 전송 종료한다.
 
5. 반대로 받는 측에서 다른 데이터 프레임과 충돌 등으로 인해
ACK 를 보내지 못했을 때,
전송 측에선 일정 시간을 기다린 후, 수신하지 못했다고 판단하여
프레임을 재전송을 시도 한다.
 
6. 재전송 시, 백오프 과정 ( Backoff process ) 을 진행해서 랜덤한 슬롯 배수만큼의
시간동안 더 기다리게 된다.
( DIFS + Contention Window Random Slot )
 
7. 이후 2번 과정부터 반복한다.

 

 
결론적으로 중요한 것은,
 
CSMA / CD or CA 모두 '충돌 최소화' 목적을 위한 방법 이라는 것이다.
충돌 최소화 여부, 데이터 지연 시간 최소화가 속도와 직결된다고 볼 수 있다.

 


 

@ 221110 - 수정사항
- 반이중, 전이중 개념 추가

 

 

참고 자료