본 포스팅은 두 개의 글로 구성되어 있습니다.
CSMA, CSMA/CD, CSMA/CA 란 ? (1)
CSMA, CSMA/CD, CSMA/CA 란 ? (2)
CSMA / CD (Carrier Sense Multiple Access with Collision Detection)
CSMA / CD 방식은 유선 네트워크의 경우 충돌을 확인할 수 있기 때문에 사용하는 방식이다.
더불어, CSMA / CD 방식은 CSMA 방식에 충돌을 처리하는 절차를 더한 것이다.
먼저, 프레임을 전송 과 동시에 두 개의 다른 포트를 이용하여 충돌이 발생하는지 지속적으로 감시한다.
프레임이 목적지에 도착할 시간 이전에 다른 프레임의 비트가 발견된다면 충돌이 일어난 것으로 판단한다.
-- 동작 순서 --
1. persistent mechanism 중 하나를 이용하여 프레임 전송을 시도한다. (채널이 idle 할 때까지 감지하다가 idle 하면 전송을 하고 대기함)
만약 여기서 충돌이 발생했는가 ?
- Yes. 다른 노드가 충돌을 감지하지 못했을 것을 대비하여 짧은 충돌 신호 (Jamming Signal) 전송. 이후 2번 과정.
- No. 전송 성공 ! 여기서 내가 보내고자 하는 프레임을 다 보낼 때까지 다른 노드로부터 전송이 감지되지 않으면 전송에 성공한 것이다.
------ 충돌이 발생했다면 Exponential Backoff (Random Backoff) 과정을 거침.
재충돌을 방지하기 위해 랜덤한 시간동안 대기하였다가 전송을 시도함. 이는 대기하지 않고 바로 채널을 Listen하여 전송을 시도했을 때 충돌을 일으킨 노드와 다시 충돌할 가능성이 높기 때문이다.
2. 전송 횟수 K = K + 1
K가 최대값(보통 15) 보다 큰 가?
- Yes. 전송을 중지함. 종료.
- No. 0~2^(k) - 1사이의 수인 R을 뽑는다.
3. Wait Time 만큼 기다린 후 다시 1번과정 진행.
여기서 말하는 Wait Time = R * Maximum propagation time 또는 R * Average Transmission time for a frame을 의미한다.
CSMA / CA (Carrier Sense Multiple Access with Collision Avoidance)
CSMA/CA는 IEEE 802.11 무선 LAN에서 사용하는 프로토콜이다. 무선 네트워크에서는 충돌을 감지하기 힘들기 때문에 CSMA/CD 대신 CSMA/CA를 사용하는 것이다.
CSMA/CA는 노드가 충돌을 감지하기 위해선 신호를 전송하는 동시에 신호를 수신한다. 만약 충돌이 발생하지 않는다면 노드는 자신이 보낸 신호만을 수신하지만 충돌이 생긴다면 노드는 자신이 송신한 신호와 다른 노드가 송신한 신호인 두 개의 신호를 수신하게 된다.
IEEE 802.11 Standard를 확인해보면 두 가지 매체 접근 방식이 있다.
1. PCF (Point Coordination Function) Mode : 우선 순위 기반 경쟁 방식
2. DCF (Distributed Coordination Function) Mode : 동등한 우선 순위를 가지고 경쟁하는 방식 (default)
여기서 CSMA/CD는 ACK 프레임을 사용하지 않지만, CSMA/CA 에서는 ACK 프레임을 사용한다.
IFS (Inter Frame Space) : 프레임 간 공간 - 첫번째 충돌 회피 방법
채널이 idle한 상태인 것을 확인되었더라도 전송을 늦추어서 충돌을 회피한다.
idle한 채널이 발견된 즉시 전송을 하지 않는 것으로 노드들은 IFS로 불리는 일정 시간만큼 대기한다.
채널을 감지했을 때 idle한 상태인 것처럼 보일지라도 다른 노드에선 이미 전송을 시작했을지 모르기 때문이다.
이렇기 때문에 대기하지 않고 전송을 하면 충돌이 일어날 위험이 있기 때문에 IFS 기간 동안 대기하게 된다.
Contention Window : 경쟁 구간 - 두번째 충돌 회피 방법
Contention Window는 Time Slot으로 나뉘어져 있는 일정 시간 구간이다.
전송할 준비가 되어있는 노드는 임의의 수를 선택해서 해당 수만큼 대기한다. (p-persistent 방식과 비슷함)
이 구간에선 노드들이 매 time slot 뒤에 채널을 감지하게 된다. 이때 채널이 busy 인 것으로 감지하게 되면 노드는 이 과정을 다시 시작하는 것이 아니라 timer를 잠시 멈추고 채널이 idle한 상태인 것이 감지되면 다시 timer를 작동한다.
이로 인해서 가장 오래 대기한 노드가 우선 순위를 갖게 된다.
'네트워크 개념' 카테고리의 다른 글
Network Delay의 4가지 종류 (0) | 2019.08.15 |
---|---|
변조(Modulation)의 정의와 변조의 방식 (0) | 2019.08.15 |
CSMA, CSMA/CD, CSMA/CA 란? (1) (0) | 2019.08.14 |
RIP, OSPF 프로토콜이란 ? (0) | 2019.08.14 |
Floating Point Precision (부동 소수점) 과 Fixed-point Precision (고정 소수점) (0) | 2019.08.01 |