🚀
경쟁 기반 프로토콜 (Contetnion Based Protocols) 🔗
- 1970년대 하와이 대학에서 패킷 라디오 네트워크를 위해 개발되었다.
- 스테이션이 데이터를 가지고 있을 때 전송한다.
- 송신자는 전송이 성공했는지 충돌이 발생했는지를 목적지 스테이션으로부터의 방송을 듣고 확인한다.
- 충돌이 발생하면 송신자는 랜덤한 시간을 기다린 후 재전송한다.
슬롯 ALOHA
- 개선점: 시간을 슬롯으로 나누고 패킷은 하나의 슬롯 시작 부분에서만 전송될 수 있다.
- 따라서 충돌 기간을 줄일 수 있다.
CSMA (반송파 감지 다중 접속)
- 개선점: 전송 중인 신호가 없을 때만 전송 시작
CSMA/CD (충돌 감지 기능이 있는 CSMA)
- 개선점: 충돌이 감지되면 진행 중인 전송 중지
CSMA/CA (충돌 회피 기능이 있는 CSMA)
- 개선점: 반송파가 조용할 때 랜덤 시간을 기다린 후 다시 시도. 여전히 조용하면 전송 시작
CSMA/CA와 ACK
CSMA/CA와 RTS/CTS
🚀
ALOHA에서의 충돌 매커니즘 (Collision Mechanism in ALOHA) 🔗
노드 1이 데이터를 전송할 때 다른 노드가 전송중이지 않으면 성공적으로 전송된다. 하지만 두 노드(2, 3)가 동시에 전송하면 충돌이 발생한다.
충돌이 발생하면 두 노드는 재전송을 위해
랜덤한 시간
을 기다린다.
이 랜덤 시간은 충돌이 발생한 노드가 다시 전송을 시도하는 시간을 랜덤하게 설정하여 충돌이 다시 발생하지 않도록 한다.
🚀
Slotted ALOHA에서의 충돌 매커니즘 (Collision Mechanism in Slotted ALOHA) 🔗
기본 ALOHA와 달리 Slotted ALOHA는 시간을 슬롯으로 나누어 전송한다.
따라서 충돌이 발생하면 두 노드는
랜덤함 다음 슬롯
에서 재전송을 시도한다.
🚀
반송파 감지 다중 접속: CSMA (Carrier Sense Multiple Access) 🔗
슬롯 ALOHA로 달성 가능한 최대 처리량은 0.368이다.
CSMA는 ALOHA 프로토콜에 비해 향상된 처리량을 제공한다.
패킷을 전송하기 전에 채널을 감지하여 (피할 수 있는 충돌을 방지한다).
🚀
CSMA에서의 충돌 매커니즘 (Collision Mechanism in CSMA) 🔗
노드 1이 데이터를 전송하고, 그 후에 노드 2가 데이터를 전송한다.
노드 3도 데이터를 전송하고, 노드 4는 채널을 감지하여 데이터를 전송하려고 한다.
노드 4는 채널이 사용 중임을 감지하고 대기한다.
이후 노드 4가 채널을 감지하여 비어 있음을 확인하고 데이터를 전송하려고 하지만, 노드 5도 같은 시점에 채널을 감지하고 데이터를 전송하려고 한다.
이로 인해 노드 4와 노드 5의 데이터가 충돌하게 된다.
충돌이 발생하면 충돌한 노드들은 랜덤한 시간 동안 대기한 후 다시 데이터를 전송하려고 시도한다.
이 과정을 통해 충돌이 반복되는 것을 피하고, 데이터 전송의 성공 확률을 높인다.
🚀
충돌 감지 다중 접속: CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 🔗
CSMA/CD는 CSMA 프로토콜에 충돌 감지 기능을 추가한 프로토콜이다.
작동 원리:
- 매체가 비어 있는 경우, 즉 채널이 사용 중이지 않으면 데이터를 전송한다.
- 매체가 사용 중이면, 채널이 비어 있을 때까지 계속 감지하고 대기한 후 전송을 시도한다.
- 전송 중에 충돌이 감지되면, 즉시 전송을 중지하고 충돌을 처리한다.
- 충돌 후 랜덤한 시간 동안 대기한 후, 동일한 알고리즘을 반복하여 다시 전송을 시도한다.
🚀
충돌 회피 다중 접속: CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) 🔗
CSMA/CA는 CSMA 프로토콜에 충돌 회피 기능을 추가한 프로토콜이다.
작동 원리:
- 모든 단말기는 CSMA/CD와 동일하게 매체를 청취한다.
- 전송 준비가 된 단말기는 매체를 감지한다.
- 매체가 사용 중이면 현재 전송이 끝날 때까지 기다린다.
- 그 후 추가로 미리 정해진 시간 동안 DIFS(Distributed Inter Frame Space)를 기다린다.
- 그 후 경쟁 윈도우 내에서 슬롯의 무작위 개수(백오프 카운터의 초기 값)를 선택하여 프레임을 전송하기 전에 대기한다.
- 이 시간 동안(백오프 시간)에 다른 단말기에서 전송이 발생하면 해당 단말기는 카운터를 멈춘다.
- 다른 단말기의 전송이 끝나고 DIFS가 지나면 카운트다운을 재개한다. 단말기는 카운터가 0에 도달하면 전송을 시작할 수 있다.
- CSMA/CD(Carrier Sense Multiple Access with Collision Detection)는 유선 네트워크에서 주로 사용되며, 충돌이 발생한 후 이를 감지하고 처리하는 반면, CSMA/CA는 무선 네트워크에서 충돌이 발생하기 전에 이를 피하기 위해 설계되었다.
- 무선 네트워크에서는 충돌을 감지하는 것이 어렵기 때문에 CSMA/CA 방식이 더 효과적이다.
DIFS
(Distributed Inter Frame Space):
- DIFS는 데이터 프레임 간의 간격을 의미하며, CSMA/CA에서 사용된다.
- 전송이 끝난 후 새로운 전송을 시작하기 전에 일정 시간 동안 기다리는 역할을 한다.
- 백오프 카운터는 단말기가 전송을 시도하기 전에 기다려야 하는 시간을 결정한다.
- 이 카운터는 무작위로 선택되며, 이는 충돌 가능성을 줄이는 데 도움을 준다.
- 경쟁 윈도우는 백오프 카운터가 선택될 수 있는 시간 슬롯의 범위를 말한다.
초기 값은 작지만 충돌이 발생할 때마다 윈도우 크기가 증가한다.
- 단말기가 전송을 시도할 때 다른 단말기의 전송으로 인해 충돌이 발생할 경우, 단말기는 백오프 시간 동안 대기해야 한다.
- 이 대기 시간 동안 다른 단말기가 전송을 완료할 때까지 기다린 후, 다시 전송을 시도한다.
수신자는 데이터 프레임을 수신하자마자 즉시 응답 신호(ACK)를 보낸다.
ACK 프레임은
SIFS
(Short Inter-Frame Space) 간격 후에 전송된다 (SIFS < DIFS).
수신자는 매체를 감지하지 않고 ACK를 전송한다.
ACK가 손실되면, 재전송을 수행한다.
송신자는 매체가 DIFS보다 오랜 시간 동안 유휴 상태일 때
RTS
(Request to Send)를 전송한다.
수신자는 매체가 SIFS 동안 유휴 상태일 때
CTS
(Clear to Send)로 응답한다.
그 후 데이터가 교환된다.
RTS/CTS는 데이터 전송을 위한 채널을 예약하는 데 사용되며, 충돌은 제어 메시지에서만 발생할 수 있다.
RTS (Request to Send)
:
- 송신자가 데이터를 보내기 전에 매체가 유휴 상태임을 확인하고, 데이터 전송 요청을 보내는 신호다.
- RTS는 네트워크의 다른 단말기들에게 송신자가 데이터를 전송할 계획임을 알린다.
- 수신자가 RTS를 받고 매체가 유휴 상태임을 확인한 후, 데이터를 받아도 된다는 신호를 보내는 것이다.
- CTS는 네트워크의 다른 단말기들에게 수신자가 데이터를 받을 준비가 되었음을 알린다.
🚀
지수 백오프 (Exponential Backoff) 🔗
패킷을 전송할 때, 백오프 간격을 [0, cw] 범위 내에서 선택한다
매체가 유휴 상태일 때 백오프 간격을 카운트다운 한다
백오프 간격이 0에 도달하면 RTS를 전송한다.
🚀
백오프 인터벌 (Backoff Interval) 🔗
큰
cw를 선택하면 백오프 간격이 커지고 오버헤드가 증가할 수 있다.
작은
cw를 선택하면 충돌이 더 많이 발생할 수 있다 (두 노드가 동시에 0까지 카운트다운할 때).
동시에 전송을 시도하는 노드 수는 시간에 따라 달라질 수 있으므로, 경쟁을 관리할 수 있는 메커니즘이 필요하다.
IEEE 802.11 DCF: 경쟁 윈도우
cw는 충돌 발생에 따라 동적으로 선택된다.