1. 무선랜 매체 접근
- 이전 시간에서 Spread Spectrum으로 다른 무선기기와의 주파수 공유 문제를 해결한다고 배웠다.
- 각 AP는 위 방법을 사용하면 되지만 AP의 구역 안에 노드들은 동일한 code를 사용하기 때문에 여전히 매체접근제어의 필요성이 있다.
- 공중에 버스가 있다는 생각으로 접근한다. 따라서 기본적으로 이더넷의 CSMA/CD와 유사하지만 이를 그대로 사용할 수는 없다.
- 무선 환경에서는 collision detection을 할수가 없다. 유선 환경에서는 쉽게 구현이 되지만 무선환경에서는 구현이 매우 어렵다. 왜냐하면 무선에서는 보내면서 sensing하는게 문제를 많이 발생시키기 때문이다.
- 유선랜에서는 충돌여부가 버스를 타고 다 전달되기 때문에 모든 노드가 충돌을 인지할 수 있지만 무선에서는 신호전달이 통제가 되지 않는다. 장애물이 있으면 혹은 거리가 멀면 신호 전달이 안될수도 있다.
- 즉 위 그림처럼 유선이였다면 B에서 충돌이 났을 때 A,C가 모두 인지할 수 있지만 무선의 경우는 누가 인지를 못할수 있는 것이다. (신호가 전부 간다는 보장이 없음) 이렇게 충돌이 발생했는데도 인지 하지 못하는 hidden terminal이 있을 수 있다.
- 위의 우측 그림을 보면 A의 신호가 거리에 따라 점점 약해져서 C에게 도달하지 않는다. 즉 C같은 hidden terminal은 idle인줄 알고 신호를 보낼 수 있게 된다.
- 만약 C가 D로 보내고 있다고 하자. B는 C까지 CS가 가능하기 때문에 C가 보내는 중임을 알고 A로 메세지를 보내는 것을 멈추게 된다. 하지만 사실상 B가 A로 보내고 C가 D로 보내는게 동시에 가능하다.
- 이런 상황에서 B를 exposed node라고 한다.
2. Collision Avoidance
- 자 위에서 무선랜에서 CSMA/CD를 사용했을때 발생할 수 있는 문제들을 살펴보았다.
- 따라서 무선랜은 CSMA/CA를 사용한다.
- 충돌을 완전 방지할수는 없지만 줄여보자는 것이다.
- 송신자(A)는 CS를 먼저 하고 비었으면 RequestToSend(RTS)라는 프레임을 사전에 수신자(AP)에게 전송한다.
- 수신자는 허락의 의미로 A주소로 ClearToSend(CTS)를 보내준다. 여기서 주의할 점은 A와 더불어 AP가 관리하는 Cell의 모든 노드에게 CTS를 보낸다.
- CTS(A)를 받은 노드만 프레임을 보낼 수 있게 된다.
- 다른 노드(B)들은 CTS(A)를 받았다면 간섭을 피하기 위해 조용히 기다린다.
- 반면 CTS(A)를 못들었다면? 수신자로부터 거리가 꽤 멀다는 뜻이므로 내가 송신을해도 방해의 여지가 적다는 것을 알 수 있다. 즉 이 경우 AP와 나는 서로 간섭구간에 있지 않은것이다.
- A는 CTS(A)를 받았으니 데이터를 보낸다.
- DATA를 받은 수신자AP는 ACK(A)를 또 모두에게 보내준다. (오류제어에서 쓰던 ACK와 다른 것이다.)
* 참고로 CTS(A)에는 A가 얼마동안 사용할 것(NAV)이라는 정보가 담겨있다. 그래야 다른 노드들이 얼마동안 시도 없이 기다려야 하는지 알수 있기때문이다. 그 시간을 defer라고 한다.
- 정리하면 충돌의 제어를 AP(수신자)가 수행한다.
- 회피가 가능하지만 여전히 충돌이 일어날수는 있다.
- 제일 위의 예시처럼 A와 B가 동시에 RTS를 보내면 충돌이 발생한다.
- 이렇게 충돌이 발생하면 A,B는 timeout안에 CTS가 안왔기 때문에 Exponential Backoff를 수행한다.
- 이런 충돌회피는 충돌 비용을 줄이는 방식이다. 1500짜리 데이터를 보내다가 충돌이 나면 손실되는 비용을 감당할바에 상대적으로 크기가 작은 RTS끼리의 충돌을 확인하는 것이다.
- 그런데 만약에 보내려는 데이터가 작다면? RTS교환하는 비용이 아깝다는 생각이 들 수 있다. 따라서 무선랜은 RTS/CTS threshold를 설정해서 보내려는 데이터의 크기에 따라 선택적으로 사용한다.
*CSMA/CD은 경쟁방식으로 충돌확률을 피하려고 하지않고 충돌시 비용을 개선하는 방식이다.
*Tokenring은 비용을 많이 들이더라도 충돌확률을 개선하는 방식이다.
3. 매체접근제어(MAC) 비교
- 이더넷 : CSMA/CD
- 토큰링 : TokenPassing
- 무선LAN : CSMA/CA
- 충돌에 대비하는 방법1 : 충돌 발생 확률을 줄이는 방법
- 충돌에 대비하는 방법2 : 그냥 경쟁하고 대신 충돌 발생하면 그에 따른 비용을 줄이는 방법
- 토큰링 방식이 단순히 cs를 사용하는 경쟁방식에 비해 MAC overhead가 크다. 이는 생산비용과 직결된다.
- 이더넷은 무선랜에 비해서도 오버헤드가 적다.
- 각각 MAC가 적합한 환경, 발전 방향들에 대해 생각해보자.
'ComputerScience > Network' 카테고리의 다른 글
컴퓨터통신 - 18. 패킷 스위칭 (0) | 2021.11.22 |
---|---|
컴퓨터통신 - 18. 무선랜 이동성 지원 (0) | 2021.11.22 |
컴퓨터통신 - 16. 토큰링, 무선랜 (0) | 2021.11.10 |
컴퓨터통신 - 15. 이더넷(유선LAN) (0) | 2021.11.03 |
컴퓨터통신 - 14. Sliding Window 프로토콜 구현 2 (0) | 2021.11.03 |