우보천리 개발
[5. Wireless Network] WiFi and CSMA/CA 본문
무선링크와 유선링크의 가장 큰 차이는 당연히 케이블로의 연결 차이이다.
유선 링크에서는 케이블로 연결되어있기 때문에 외부에서의 노이즈의 간섭은 없다.
하지만 무선 링크에서는 케이블로 연결이 되어있는 것이 아니기 때문에 외부의 간섭이 존재하기 때문에
무선 링크에서 사용하던 MAC 프로토콜을 사용하기 어렵다.
또한 신호의 세기는 거리가 증가함에 따라서 감소하게 되며, 경로 손실이 발생한다.
802.11 무선 랜 (WiFi)
무선 랜 프로토콜인 IEEE 802.11 은 우리에게 WiFi라고 알려져있다.
WiFi의 기본 구성은 Basic Service Set (BSS)로 이루어져 있는데 하나의 BSS에는 하나 이상의 Access Point(AP) 와
하나의 이상의 단말기로 이루어져 있다.
무선 단말기는 AP로 프레임을 보내기 위해서는 AP와 결합되어야 한다.
AP들은 주기적으로 Beacon Frame을 내보내고 무선 단말기는 많은 AP 중 하나와 결합을 하게 된다.
이후 와이파이를 통해서 프레임을 전송할 수 있게 된다.
이더넷과 다르게 WiFi 에서는 WiFi 프레임을 보내게 되는데 유선 상황과 비슷하게 충돌에 대한 대응이 있어야한다.
CSMA/CA
802.11에서 사용하는 MAC 프로토콜은 CSMA/CA (CSMA with collision avoidance) 이다.
CSMA/CD와 다르게 CSMA/CA 는 충돌을 감지하지 않고 회피하는 Avoid가 들어가 있다. 무선 랜에서는 충돌 감지를 하기 어렵고 충돌이 발생하여 데이터 손실 이 있는 경우 유선 랜의 경우보다 피해(오류율 등)이 더 크다.
그렇기 때문에 무선 랜에서는 하나의 프레임을 전송하면, 해당 프레임 전체가 전송 될 때 까지 다른 호스트들은 전송을 할 수 없게 설계되었다.
802.11 에서는 충돌 회피를 위해서 ACK를 사용한다. 이 ACK는 링크 계층의 ACK로 TCP에서 사용하는 ACK와 다르다.
충돌을 회피하기 위해서는 다음과 같은 작동을 한다
1. 우선 채널의 사용여부를 감지하고, 사용되지 않고 있다면 DIFS(Distributed Inter-Frame Space)라는 짧은 시간만큼 기다린 이후 프레임을 전송
2. 프레임을 전송하고, ACK 수신을 기다린다
3. ACK를 수신했다는 것은 프레임이 제대로 전송 되었고, 목적지에 제대로 도착했다는 뜻이기 때문에 제대로 전송됨을 확인한다.
802.11 프로토콜에서 숨은 터미널 문제를 해결하기 위해서 Ready-to-Send(RTS)와 Clear-to-Send(CTS)를 사용한다.
각 무선 호스트들은 RTS와 CTS를 통해서 자신의 채널 접속을 예약한다.
우선 DIFS만큼 기다린 스테이션은 RTS 프레임을 AP로 전송하게 되고, 전송할 수 있는 상황이면 AP는 CTS를 송신자에게 보낸다.
이후 송신자는 CTS의 기간만큼 채널을 사용할 수 있기 때문에 자신의 데이터를 보내게 된다.
데이터를 제대로 수신한 AP는 송신자에게 ACK를 전송하게 된다.
802.11 Frame
Frame Control |
Duration | Address 1 | Address 2 | Address 3 | Seq Control | Address 4 | Payload | CRC |
802.11 프레임에서 중요한 주소 필드 3개가 있다.
Address 1: 프레임을 수신하는 AP의 MAC 주소
Address 2: 프레임을 전송하는 AP의 MAC 주소
Address 3: 라우터 인터페이스의 MAC 주소
802.11이 주소필드가 3개가 필요한 이유가 있다.
호스트가 프레임을 전송할 때 자신의 MAC주소와 수신하는 AP의 MAC주소는 필요하다. 하지만 여기서 라우터 인터페이스의 MAC 주소도 필요하다.
그 이유는 라우터의 입장에서는 AP는 존재하지 않는 장치이기 때문이다.
또한 AP는 링크 계층의 장치이고, 라우터는 네트워크 계층의 장치이기 때문에 AP는 IP주소를 해석할 수 있는 능력이 없다.
그렇기 때문에 AP로 프레임을 보낼 때 3개의 주소를 포함해서 AP가 라우터로 프레임을 전송할 때 송신자의 MAC주소와 수신자의 MAC 주소를 포함해서 보낸다.
'Computer Science > 네트워크' 카테고리의 다른 글
[4. Link Layer] MAC Address, ARP, Switch (0) | 2023.05.08 |
---|---|
[4. Link Layer] Multiple Access Protocol, CSMA/CD (0) | 2023.05.08 |
[3. Network Layer] Routing Algorithm - Link State and Distance Vector (0) | 2023.05.05 |
[3. Network Layer] NAT and DHCP (0) | 2023.05.01 |
[3. Network Layer] IP 주소, CIDR, Subnet (0) | 2023.05.01 |