티스토리 뷰

[네트워크] CSMA, CSMA/CD, CSMA/CA 란?


여러개의 호스트가 하나의 매체/링크를 공유할때는 두 개 이상의 호스트가 동시에 링크를 사용하는 경우 전기신호의 출돌로 인하여 통신을 할 수 없게 된다.

 

이렇게 링크를 공유하는 경우 원할한 통신을 위해서는 서로간의 약속이 필요하게 된다.

 

지금은 거의 사용하지 않지만 Bus Topology 형태의 네트워크나 허브를 통해 구성된 LAN의 경우가 매체를 공유하는 경우에 해당된다.

 

또한 전파를 사용하는 무선통신의 경우에도 매체를 공유한다고 볼 수 있다.



공유 링크에 접근하기 위한 프로토콜 중에서 Random Access(임의접근) 방식에 속하는 프로토콜에는 ALOHA, CSMA, CSMA/CD, CSMA/CA 가 있다.

 

※ Random Access = Contention Based Access(경쟁기반접근)

 

Random Access 방식에서는 어떤 지국도 다른 지국보다 우선순위가 높지 않으며, 다른 지국을 제어할 수 없다.

매 순간 전송할 데이터가 있는 지국은 전송할지 말지를 결정하기 위해 프로토콜에서 정해진 절차를 따른다.

이 결정은 매체의 상태(휴지 상태 : idle, 바쁜 상태 : busy)에 좌우된다.

다시 말하면 각 지국은 매체의 상태를 확인하는 것을 포함한 미리 정해진 절차를 따라서 매체 상태에 따라 자신이 전송하고자 할 때 전송할 수 있다.


두 개 이상의 지국이 동시에 전송하려고 하면 접근에 대한 간섭-충돌이 벌어지며 이로 인해 프레임은 손상되거나 변형된다.



CSMA (Carrier Sense Multiple Access)

 

지국이 매체를 사용하려고 시도하기 이전에 매체를 감지하게 되면 충돌의 기회를 줄일 수 있다.

CSMA(반송파 감지 다중 접근)는 각 지국이 전송하기 이전에 먼저 매체에 귀를 기울일 것(또는 매체의 상태를 확인)을 요구하고 있다.

다시 말해 CSMA는 "전송 이전에 감지" 또는 "말하기 이전에 듣기" 원칙에 기반을 두고 있다.

-> Listen before Talk (Transmission)


CSMA는 충돌의 가능성을 줄일 수 있으나 완전히 없앨 수는 없다.


지국이 매체를 감지하여 매체가 idle한것을 감지한다 해도 다른 지국이 전송한 프레임의 첫 번째 비트가 아직 도달 중일 수 있다.

-> 프레임이 전송(전파)되는 시간차 때문에 idle한것을 감지하고 나서 프레임을 전송하는 경우 다른곳에서 보낸 프레임이 도착하여 두 프레임이 충돌,손상될 수 있다. 전파지연(Propagation Delay) 때문 - CSMA의 한계


지속 방식(Persistent Mechanism)

채널이 사용 중이거나 휴지 상태일때 어떻게 행동하느냐에 관한 방식

 

(1) 1-persistent

이 방식에서는 지국이 회선의 상태를 지속적으로 확인하다가 휴지 상태인 것을 감지하게 되면 즉각 프레임을 전송한다.

이 방식은 두 개 이상의 지국이 회선이 휴지 상태인 것을 감지할 것이고 그런 경우에 모두 즉각 프레임을 전송하기 때문에 가장 높은 충돌 위험을 유발한다.

-> idle을 기다리는 두 개 이상의 Station이 회선의 idle이 확인됨과 동시에 보낼 것이므로 충돌확률 매우 높음

 

(2) nonpersistent

전송할 프레임이 있는 지국이 회선을 감지하여 idle 상태에 있으면 즉시 프렘을 전송한다.

만일 회선이 busy 상태인 경우 Random한 시간을 기다렸다가 다시 회선을 감지한다.

이 방식은 두 개 이상의 지국이 같은 시간을 대기하고 있다가 동시에 전송할 확률이 낮기 때문에 충돌의 위험은 낮다.

그러나 전송할 프레임을 가진 지국이 있음에도 회선이 idle 상태에 있을 수 있기 때문에 회선 효율이 낮다.

 

(3) p-persistent

이 방식은 1-persistent 처럼 지속적으로 회선을 확인하다가 회선이 idle 상태가 되는 순간 확률(p)을 뽑는다. (q = 1 - p)

 p =1 : 즉각 프레임 전송

 p1 : q 만큼의 Time Slot 동안 기다리다가 회선을 다시 감지한다.

위의 두가지 방식을 합한 방식이며, 충돌의 위험을 줄이면서 회선 효율을 높인다.


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


CSMA/CD 방식은 CSMA 방식에 충돌을 처리하는 절차를 더한 것이다.

유선링크의 경우 충돌을 확인할 수 있기 때문에 사용가능한 방식이다.


프레임을 전송 함과 동시에 두개의 다른 포트를 이용하여 충돌이 발생하는지 감시한다.


프레임이 목적지에 도착할 시간 이전에 다른 프레임의 비트가 발견되면 충돌이 일어난 것으로 판단한다.


유선 Ethernet LAN에서 사용하는 프로토콜이다.


※ 동작 순서


1. persistent mechanism 중 하나를 이용해 프레임 전송을 시도한다.

(회선이 idle 할때까지 listen 하다가, idle 해진 순간 전송을 하고 기다린다.)


2. 충돌(collision)이 발생 했는가?


3-1. (No) 전송 성공 -> 끝

(내가 모든 프레임을 보낼때까지 다른 전송이 감지되지 않으면 전송이 성공한 것이다.)


3-2. (Yes) 다른 지국이 충돌을 감지하지 못했을 것을 대비하여 짧은 충돌 신호(Jamming Signal) 전송

(충돌이 발생한 경우 전송을 중지하고 Jamming Signal을 보낸다.)


-- 이하 충돌이 발생한 경우 Exponential Backoff (Random Backoff) 과정 --

재충돌을 방지하기 위해 랜덤시간 동안 기다렸다가 전송을 시도한다.

기다리지 않고 곧장 회선을 Listen 하여 전송을 시도한다면 충돌을 일으킨 호스트와 또다시 충돌  가능성이 높다.


4. 전송횟수 K = K+1


5. K가 최대값(보통 15) 보다 큰가?


6-1. (Yes) 전송 중지 -> 끝


6-2. (No) 0~2^K - 1 사이의 수 R을 뽑는다.


7. Wait Time 만큼 기다린 후 1.번으로

Wait Time = R * Maximum propagation time(상수)

또는

Wait Time = R * Average transmission time for a frame(상수)



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


CSMA/CD의 기본 아이디어는 지국이 충돌을 감지하기 위해서는 신호를 전송하는 동시에 신호를 받을 필요가 있다는 것이다.

충돌이 없으면 지국은 자신이 보낸 신호만을 받게 된다.

충돌이 생기면 지국은 자신의 신호와 다른 지국이 보낸 신호인 두 개의 신호를 받게 된다.


무선 네트워크에서는 충돌을 감지하기 힘들기 때문에 CSMA/CD방식을 사용할 수 없다.

따라서 충돌을 회피하는 방식을 사용한다.


IEEE 802.11 표준을 보면 두가지 매체 접근 방식이 있는데 하나는 PCF(Point Coordination Function) Mode라고 하고 우선 순위 기반으로 경쟁하는 방식이다.

기본적으로 사용하는 방식은 DCF(Distributed Coordination Function) Mode로, CSMA/CA 프로토콜을 사용하는 동등한 우선순위를 가지고 경쟁하는 방식이다.


CSMA/CA는 IEEE 802.11 무선 LAN(또는 무선 Ethernet)에서 사용하는 프로토콜이다. ( IEEE 802.11란? <- 링크바로가기 )


CSMA/CD 에서는 ACK 프레임을 사용하지 않지만, CSMA/CA 에서는 ACK 프레임을 사용한다.



※ IFS(Inter Frame Space) : 프레임 간 공간 - 첫번째 충돌 회피 방법

우성 채널이 휴지 상태인 것으로 확인되더라고 전송을 늦추어서 충돌을 회피한다.

휴지 상태의 채널이 발견된 즉시 전송하지 않는 것이다. 지국은 IFS라 불리는 일정 시간을 기다린다.

채널을 감지했을때 휴지상태인 것처럼 보일지라도 멀리 떨어진 지국이 이미 전송을 시작했을지 모르기 때문이다.

이런 경우 기다리지 않고 전송을 해버리면 충돌이 일어날 수 있으므로 IFS동안 기다리게 된다.

CSMA/CA에서 IFS는 지국이나 프레임의 우선순위를 규정하는 것에도 사용될 수 있다.

예를 들어 더 짧은 IFS시간을 갖도록 허락된 지국은 다른 지국에 비해 높은 우선순위를 갖는 셈이다.

(기다리는 시간이 짧으므로 먼저 프레임을 보낼 수 있다.)

802.11 표준에서는 DIFS, SIFS, EIFS 와 같이 여러 IFS를 사용한다.


※ Contention Window : 다툼 구간 - 두번째 충돌 회피 방법

Contention Window는 time-slot 으로 나뉘어져 있는 일정 시간이다.

전송할 준비가 되어있는 지국은 임의의 수를 선택하여 그 만큼 기다린다.

(임의의 수만큼 기다린다는 것 이외에 p-persistent 방식과 비슷하다.)

이 구간에서는 지국이 매 time-slot 뒤에 채널을 감지하게 된다.

이때 채널이 사용 중인 것으로 감지하면 지국은 이 과정을 다시 시작하는 것이 아니라 단지 타이머를 멈추고 채널이 휴지 상태인 것이 감지되면 그 때 다시 타이머를 작동한다.

이로 인해 가장 오래 기다린 지국이 우선순위를 갖게 된다.



실제 우리 주변의 유무선 LAN 환경

 

NESPOT 같은 AP를 통한 네트워크 방식(infrastructure mode)에서 802.11b은 DSSS(Direct Sequence Spread Spectrum)라는 인코딩 방식을 사용하여 2.4GHz 주파수 대역을 서로 다르면서도 중첩되는 11개의 채널로 나눈다.

이 중 3개의 채널이 서로 중첩되지 않는데, 여러개의 AP가 중첩되는 전송 영억을 가지는 핫 스팟에서 각 AP는 중첩되지 않는 채널을 사용하여 서로 충돌이 일어나지 않게 한다.

같은 AP에 연결된 호스트들은 같은 채널을 사용하므로 자신과 같은 AP에 연결된 호스트들끼리만 CSMA/CA로 통신하게 된다.

 

802.11a 와 802.11g에서 사용하는 인코딩 방식인 OFDM역시 중첩되지 않는 여러개의 채널을 이용한다. 

참고 : nenunena.tistory.com

댓글