WiFi: IEEE 802.11: 두 판 사이의 차이

youngwiki
편집 요약 없음
32번째 줄: 32번째 줄:


== 802.11 LAN architecture ==
== 802.11 LAN architecture ==
[[파일:IEEE 802.11 LAN architecture.png|섬네일|Figure 8. IEEE 802.11 LAN architecture ]]
[[파일:IEEE 802.11 LAN architecture.png|섬네일|Figure 1. IEEE 802.11 LAN architecture ]]
Figure 8은 802.11 무선 LAN 아키텍처의 주요 구성 요소들을 보여준다. 802.11 아키텍처의 기본적인 구성 단위는 BSS(Basic Service Set)이다.<ref>Cell이라고도 불린다.</ref> 하나의 BSS는 하나 이상의 무선 호스트(스테이션)와 AP(access point)<ref>중앙 기지국을 의미한다.</ref>를 포함한다. Figure 7은 두 개의 BSS 각각에 있는 AP가 인터커넥션 장치<ref>스위치나 라우터 등이 이에 해당한다.</ref>에 연결되고, 이 장치를 통해 인터넷에 접속되는 모습을 보여준다.  
Figure 1은 802.11 무선 LAN 아키텍처의 주요 구성 요소들을 보여준다. 802.11 아키텍처의 기본적인 구성 단위는 BSS(Basic Service Set)이다.<ref>Cell이라고도 불린다.</ref> 하나의 BSS는 하나 이상의 무선 호스트(스테이션)와 AP(access point)<ref>중앙 기지국을 의미한다.</ref>를 포함한다. Figure 7은 두 개의 BSS 각각에 있는 AP가 인터커넥션 장치<ref>스위치나 라우터 등이 이에 해당한다.</ref>에 연결되고, 이 장치를 통해 인터넷에 접속되는 모습을 보여준다.  
[[파일:An IEEE 802.11 ad hoc network.png|섬네일|213x213픽셀|Figure 9. An IEEE 802.11 ad hoc network ]]
[[파일:An IEEE 802.11 ad hoc network.png|섬네일|213x213픽셀|Figure 2. An IEEE 802.11 ad hoc network ]]
이더넷 장치들과 마찬가지로, 각 802.11 무선 호스트는 6바이트짜리 MAC 주소를 가지고 있으며, 이 주소는 호스트의 어댑터의 펌웨어에 저장되어 있다. 각 AP 또한 무선 인터페이스에 대한 MAC 주소를 갖고 있다. 이더넷과 마찬가지로, 이러한 MAC 주소들은 IEEE에서 관리되며, 이론적으로는 전 세계적에서 고유하다.
이더넷 장치들과 마찬가지로, 각 802.11 무선 호스트는 6바이트짜리 MAC 주소를 가지고 있으며, 이 주소는 호스트의 어댑터의 펌웨어에 저장되어 있다. 각 AP 또한 무선 인터페이스에 대한 MAC 주소를 갖고 있다. 이더넷과 마찬가지로, 이러한 MAC 주소들은 IEEE에서 관리되며, 이론적으로는 전 세계적에서 고유하다.


AP가 배치된 무선 LAN은 infrastructure 무선 LAN이라고 불리며, 이때의 infrastructure는 AP와 이들을 상호 연결하는 유선 이더넷 인프라를 의미한다. 또한 figure 9은 IEEE 802.11 호스트들이 모여서 ad-hoc 네트워크, 즉 중앙 제어와 외부 네트워크와의 연결이 부재한 네트워크를 형성할 수도 있음을 보여준다. 하지만 해당 문서에서는 특별한 언급이 없는 이상, infrastructure 기반의 무선 LAN에 초점을 맞추어 설명한다.
AP가 배치된 무선 LAN은 infrastructure 무선 LAN이라고 불리며, 이때의 infrastructure는 AP와 이들을 상호 연결하는 유선 이더넷 인프라를 의미한다. 또한 figure 2는 IEEE 802.11 호스트들이 모여서 ad-hoc 네트워크, 즉 중앙 제어와 외부 네트워크와의 연결이 부재한 네트워크를 형성할 수도 있음을 보여준다. 하지만 해당 문서에서는 특별한 언급이 없는 이상, infrastructure 기반의 무선 LAN에 초점을 맞추어 설명한다.


===Channels and Association===
===Channels and Association===
43번째 줄: 43번째 줄:


WiFi 정글(WiFi jungle)이란 하나의 물리적 위치에서 한 무선 스테이션이 두 개 이상의 AP로부터 충분히 강한 신호를 수신할 수 있는 상황이다. 예를 들어, 세종시의 많은 카페에서는 한 무선 장치가 여러 인근 AP의 신호를 잡을 수 있다. 그 중 하나는 카페에서 운영하는 AP일 수 있고, 나머지 AP들은 근처 아파트에 설치된 것일 수 있다. 각각의 AP는 서로 다른 IP 서브넷에 속하며, 독립적으로 채널이 할당되어 있다. 이때 해당 카페(WiFi 정글)에 들어간다면, 해당 카페에서 인터넷 접속을 하기 위해서는 여러 AP 중 단 하나의 AP와 연동해야만 한다. 연동한다는 것은 무선 장치와 AP 사이에 가상의 전선을 생성하는 것과 같다. 이는 해당 AP만이 연동된 장치에 데이터그램을 전송할 수 있고, 연동된 장치도 인터넷으로의 모든 패킷을 연동된 AP를 통해서만 전송할 수 있기 때문이다. 이때 무선 호스트들은 특정 AP와 연결하기 위해서 패시브 스캐닝(passive scanning) 혹은 액티브 스캐닝(actice scanning) 방식을 사용한다.
WiFi 정글(WiFi jungle)이란 하나의 물리적 위치에서 한 무선 스테이션이 두 개 이상의 AP로부터 충분히 강한 신호를 수신할 수 있는 상황이다. 예를 들어, 세종시의 많은 카페에서는 한 무선 장치가 여러 인근 AP의 신호를 잡을 수 있다. 그 중 하나는 카페에서 운영하는 AP일 수 있고, 나머지 AP들은 근처 아파트에 설치된 것일 수 있다. 각각의 AP는 서로 다른 IP 서브넷에 속하며, 독립적으로 채널이 할당되어 있다. 이때 해당 카페(WiFi 정글)에 들어간다면, 해당 카페에서 인터넷 접속을 하기 위해서는 여러 AP 중 단 하나의 AP와 연동해야만 한다. 연동한다는 것은 무선 장치와 AP 사이에 가상의 전선을 생성하는 것과 같다. 이는 해당 AP만이 연동된 장치에 데이터그램을 전송할 수 있고, 연동된 장치도 인터넷으로의 모든 패킷을 연동된 AP를 통해서만 전송할 수 있기 때문이다. 이때 무선 호스트들은 특정 AP와 연결하기 위해서 패시브 스캐닝(passive scanning) 혹은 액티브 스캐닝(actice scanning) 방식을 사용한다.
[[파일:Active and passive scanning for APs.png|섬네일|400x400픽셀|Figure 10. Active and passive scanning for APs]]
[[파일:Active and passive scanning for APs.png|섬네일|400x400픽셀|Figure 3. Active and passive scanning for APs]]
802.11 표준은 AP가 주기적으로 비콘 프레임(beacon frame)을 전송하도록 요구한다. 이 프레임에는 AP의 SSID와 MAC 주소가 포함되어 있다. 무선 장치는 AP들이 비콘 프레임을 보낸다는 사실을 알고 있기 때문에, 채널을 스캔하며 어떤 AP가 존재하는지 찾아본다. 이때 각 호스트들은  비콘 프레임을 통해 AP들을 인식한 후, 하나의 AP를 선택하여 연동한다. 802.11 표준은 어떤 AP와 연동할지를 선택하는 알고리즘을 명시하지 않으며, 장치는 일반적으로는 신호 세기가 가장 강한 비콘 프레임을 보낸 AP를 선택한다. 이렇게 이처럼 채널을 스캔하며 비콘 프레임을 수신하는 과정을 패시브 스캐닝(passive scanning)이라 하며, 이는 figure 10.a에 나타나 있다.
802.11 표준은 AP가 주기적으로 비콘 프레임(beacon frame)을 전송하도록 요구한다. 이 프레임에는 AP의 SSID와 MAC 주소가 포함되어 있다. 무선 장치는 AP들이 비콘 프레임을 보낸다는 사실을 알고 있기 때문에, 채널을 스캔하며 어떤 AP가 존재하는지 찾아본다. 이때 각 호스트들은  비콘 프레임을 통해 AP들을 인식한 후, 하나의 AP를 선택하여 연동한다. 802.11 표준은 어떤 AP와 연동할지를 선택하는 알고리즘을 명시하지 않으며, 장치는 일반적으로는 신호 세기가 가장 강한 비콘 프레임을 보낸 AP를 선택한다. 이렇게 이처럼 채널을 스캔하며 비콘 프레임을 수신하는 과정을 패시브 스캐닝(passive scanning)이라 하며, 이는 figure 3.a에 나타나 있다.


무선 호스트는 액티브 스캐닝(active scanning) 방식을 사용하기도 하는데, 해당 방식에서는 호스트가 탐색 프레임(probe frame)을 브로드캐스트하며, 이는 범위 내의 모든 AP에 수신된다. 각 AP는 탐색 요청 프레임에 대한 응답 프레임(probe response frame)을 전송하며, 무선 장치는 이 중에서 하나의 AP를 선택하여 연동한다. AP를 선택한 후, 무선 장치는 AP에게 연동 요청 프레임(association request frame)을 전송하고, AP는 이에 연동 응답 프레임(association response frame)으로 응답한다. 이 방식 또한 figure 10.b에 나타나 있다.  
무선 호스트는 액티브 스캐닝(active scanning) 방식을 사용하기도 하는데, 해당 방식에서는 호스트가 탐색 프레임(probe frame)을 브로드캐스트하며, 이는 범위 내의 모든 AP에 수신된다. 각 AP는 탐색 요청 프레임에 대한 응답 프레임(probe response frame)을 전송하며, 무선 장치는 이 중에서 하나의 AP를 선택하여 연동한다. AP를 선택한 후, 무선 장치는 AP에게 연동 요청 프레임(association request frame)을 전송하고, AP는 이에 연동 응답 프레임(association response frame)으로 응답한다. 이 방식 또한 figure 3.b에 나타나 있다.  


===The 802.11 MAC Protocol===
===The 802.11 MAC Protocol===
59번째 줄: 59번째 줄:
* 설령 동시에 송·수신이 가능하다 해도, "hidden terminal 문제"나 페이딩(fading)으로 인해 모든 충돌을 감지하는 것은 여전히 불가능하다.
* 설령 동시에 송·수신이 가능하다 해도, "hidden terminal 문제"나 페이딩(fading)으로 인해 모든 충돌을 감지하는 것은 여전히 불가능하다.
따라서 802.11 무선 LAN은 충돌 감지를 사용하지 않으며, 프레임 전송을 시작하면 반드시 끝까지 전송한다. 따라서 충돌이 빈번한 상황에서 긴 프레임을 통째로 전송하면 다중 접근 프로토콜의 성능이 크게 저하될 수 있다. 이를 방지하기 위해 802.11은 여러 충돌 회피 기법을 사용한다.
따라서 802.11 무선 LAN은 충돌 감지를 사용하지 않으며, 프레임 전송을 시작하면 반드시 끝까지 전송한다. 따라서 충돌이 빈번한 상황에서 긴 프레임을 통째로 전송하면 다중 접근 프로토콜의 성능이 크게 저하될 수 있다. 이를 방지하기 위해 802.11은 여러 충돌 회피 기법을 사용한다.
[[파일:802.11 uses link-layer acknowledgments.png|섬네일|313x313픽셀|Figure 11. 802.11 uses link-layer acknowledgments ]]
[[파일:802.11 uses link-layer acknowledgments.png|섬네일|313x313픽셀|Figure 4. 802.11 uses link-layer acknowledgments ]]
우선, 무선 LAN에서 스테이션이 프레임을 보낼 때, 다양한 이유로 프레임이 수신지에 도달하지 못할 수 있다. 이러한 실패 가능성에 대응하기 위해서, 802.11 MAC 프로토콜은 link layer 수준의 확인 프레임(acknowledgment frame)을 사용한다. Figure 11에서 보듯이, 수신 스테이션이 CRC 검사에 통과한 프레임을 수신하면, SIFS(Short Inter-frame Spacing)을 기다린 뒤 확인 프레임을 전송한다. 전송 스테이션은 일정 시간 안에 이 확인 프레임을 받지 못하면, 오류가 발생했다고 간주하고 CSMA/CA 프로토콜을 통해 채널을 다시 점유하여 프레임을 재전송한다. 정해진 횟수만큼 재전송해도 확인을 받지 못하면, 해당 프레임은 버려진다(discard).
우선, 무선 LAN에서 스테이션이 프레임을 보낼 때, 다양한 이유로 프레임이 수신지에 도달하지 못할 수 있다. 이러한 실패 가능성에 대응하기 위해서, 802.11 MAC 프로토콜은 link layer 수준의 확인 프레임(acknowledgment frame)을 사용한다. Figure 4에서 보듯이, 수신 스테이션이 CRC 검사에 통과한 프레임을 수신하면, SIFS(Short Inter-frame Spacing)을 기다린 뒤 확인 프레임을 전송한다. 전송 스테이션은 일정 시간 안에 이 확인 프레임을 받지 못하면, 오류가 발생했다고 간주하고 CSMA/CA 프로토콜을 통해 채널을 다시 점유하여 프레임을 재전송한다. 정해진 횟수만큼 재전송해도 확인을 받지 못하면, 해당 프레임은 버려진다(discard).


이제 CSMA/CA 프로토콜의 동작 과정을 이해할 수 있다. 아래는 스테이션이 전송할 프레임을 가지고 있을 때, 동작 단계이다:
이제 CSMA/CA 프로토콜의 동작 과정을 이해할 수 있다. 아래는 스테이션이 전송할 프레임을 가지고 있을 때, 동작 단계이다:
72번째 줄: 72번째 줄:


=== Dealing with Hidden Terminals: RTS and CTS ===
=== Dealing with Hidden Terminals: RTS and CTS ===
[[파일:Hidden terminal example.png|섬네일|200x200픽셀|Figure 12. Hidden terminal example ]]
[[파일:Hidden terminal example.png|섬네일|200x200픽셀|Figure 5. Hidden terminal example ]]
802.11 MAC 프로토콜은 hidden terminal이 존재하는 상황에서도 충돌을 피할 수 있도록 도와주는 예약 기법을 사용한다. 이를 이해하기 위해서 figure 12를 살펴보자. 해당 figure는 두개의 무선 스테이션과 하나의 AP를 포함한다. 두 무선 스테이션은 AP의 범위 안에 있고, 둘 다 AP와 연동된 상태이다. 하지만 페이딩(fading)으로 인해서, 무선 스테이션의 신호 범위는 그림에서의 작은 원 내부로 제한된다.  따라서 각 스테이션은 서로의 존재를 감지할 수 없지만, 둘 다 AP와는 통신 가능하다. 즉, 서로에게 숨은 단말(hidden terminals)이다.<br>
802.11 MAC 프로토콜은 hidden terminal이 존재하는 상황에서도 충돌을 피할 수 있도록 도와주는 예약 기법을 사용한다. 이를 이해하기 위해서 figure 5를 살펴보자. 해당 figure는 두개의 무선 스테이션과 하나의 AP를 포함한다. 두 무선 스테이션은 AP의 범위 안에 있고, 둘 다 AP와 연동된 상태이다. 하지만 페이딩(fading)으로 인해서, 무선 스테이션의 신호 범위는 그림에서의 작은 원 내부로 제한된다.  따라서 각 스테이션은 서로의 존재를 감지할 수 없지만, 둘 다 AP와는 통신 가능하다. 즉, 서로에게 숨은 단말(hidden terminals)이다.<br>
스테이션 H1이 프레임을 전송 중이고, 전송이 절반쯤 진행되었을 때, 스테이션 H2가 AP에 프레임을 전송하려고 한다고 하자. H2는 H1의 전송을 들을 수 없기 때문에, 채널이 비었다고 판단하고, DIFS 간격을 기다린 후 전송을 시작한다. 따라서 이는 충돌을 야기한다. 즉, hidden terminal은 문제의 원인이다.<br>
스테이션 H1이 프레임을 전송 중이고, 전송이 절반쯤 진행되었을 때, 스테이션 H2가 AP에 프레임을 전송하려고 한다고 하자. H2는 H1의 전송을 들을 수 없기 때문에, 채널이 비었다고 판단하고, DIFS 간격을 기다린 후 전송을 시작한다. 따라서 이는 충돌을 야기한다. 즉, hidden terminal은 문제의 원인이다.<br>
이 문제를 해결하기 위해 IEEE 802.11 프로토콜은 RTS/CTS 프레임을 통한 채널 예약 기능을 제공한다. 송신자가 DATA 프레임을 보내기 전에, RTS(Request to Send) 제어 프레임을 AP로 보내고, 이때 DATA 프레임과 그에 대한 ACK 프레임 전송에 필요한 전체 시간을 함께 명시한다. AP는 RTS 프레임을 수신한 뒤, CTS(Clear to Send) 프레임을 브로드캐스트한다. 따라서 이 CTS 프레임은 두 가지 목적을 가진다:
이 문제를 해결하기 위해 IEEE 802.11 프로토콜은 RTS/CTS 프레임을 통한 채널 예약 기능을 제공한다. 송신자가 DATA 프레임을 보내기 전에, RTS(Request to Send) 제어 프레임을 AP로 보내고, 이때 DATA 프레임과 그에 대한 ACK 프레임 전송에 필요한 전체 시간을 함께 명시한다. AP는 RTS 프레임을 수신한 뒤, CTS(Clear to Send) 프레임을 브로드캐스트한다. 따라서 이 CTS 프레임은 두 가지 목적을 가진다:
* 송신자에게 전송 권한을 부여한다.
* 송신자에게 전송 권한을 부여한다.
* 다른 스테이션들에게 해당 시간 동안 전송하지 말 것을 알린다.
* 다른 스테이션들에게 해당 시간 동안 전송하지 말 것을 알린다.
[[파일:Collision avoidance using the RTS and CTS frames.png|섬네일|Figure 13. Collision avoidance using the RTS and CTS frames ]]
[[파일:Collision avoidance using the RTS and CTS frames.png|섬네일|Figure 6. Collision avoidance using the RTS and CTS frames ]]
Figure 13와 같이, H1은 DATA 프레임 전송 전에 RTS 프레임을 브로드캐스트하며, 이는 AP를 포함한 자기 범위 내 모든 스테이션에게 도달한다. AP는 CTS 프레임으로 응답하며, 이 프레임은 H1과 H2를 포함한 자신의 범위 내 모든 스테이션이 수신하게 된다. H2는 CTS 프레임을 들었기 때문에, 해당 시간 동안 전송을 자제한다. 또한 figure 13은 RTS, CTS, DATA, ACK 프레임의 시퀀스가 나타나 있다. 이러한 메커니즘은 두가지 장점을 가진다:
Figure 6와 같이, H1은 DATA 프레임 전송 전에 RTS 프레임을 브로드캐스트하며, 이는 AP를 포함한 자기 범위 내 모든 스테이션에게 도달한다. AP는 CTS 프레임으로 응답하며, 이 프레임은 H1과 H2를 포함한 자신의 범위 내 모든 스테이션이 수신하게 된다. H2는 CTS 프레임을 들었기 때문에, 해당 시간 동안 전송을 자제한다. 또한 figure 6은 RTS, CTS, DATA, ACK 프레임의 시퀀스가 나타나 있다. 이러한 메커니즘은 두가지 장점을 가진다:
* Hidden terminal 문제 완화: DATA 프레임은 채널이 미리 예약된 후에만 전송되므로 충돌을 방지할 수 있다.
* Hidden terminal 문제 완화: DATA 프레임은 채널이 미리 예약된 후에만 전송되므로 충돌을 방지할 수 있다.
* RTS, CTS 프레임은 그 길이가 짧으므로 전송 시간이 짧다. 따라서 이들끼리 충돌해도 짧은 시간만 낭비된다.
* RTS, CTS 프레임은 그 길이가 짧으므로 전송 시간이 짧다. 따라서 이들끼리 충돌해도 짧은 시간만 낭비된다.
85번째 줄: 85번째 줄:


== Mobility in the Same IP Subnet ==
== Mobility in the Same IP Subnet ==
[[파일:Mobility in the same subnet.png|섬네일|Figure 14. Mobility in the same subnet ]]
[[파일:Mobility in the same subnet.png|섬네일|Figure 7. Mobility in the same subnet ]]
무선 LAN의 물리적 범위를 확장하기 위해, 기업이나 대학에서는 같은 IP 서브넷 내에 여러 개의 BSS(Basic Service Set)를 배치하는 경우가 많다.  이런 경우, BSS 간의 이동성 문제, 즉 무선 스테이션이 TCP 연결을 유지한 채로 한 BSS에서 다른 BSS로 원활히 이동할 수 있어야 한다. Figure 14는 서로 연결된 두 개의 BSS와, BSS1에서 BSS2로 이동 중인 호스트 H1을 보여준다. 이 예제에서는 두 BSS를 연결하는 장치가 라우터가 아니기 때문에, 두 BSS의 모든 스테이션(AP 포함)은 같은 IP 서브넷에 속한다. 따라서 H1이 BSS1에서 BSS2로 이동해도 IP 주소를 유지할 수 있고, 기존에 맺었던 TCP 연결들도 계속 유지될 수 있다. 만약 이 장치가 라우터였다면, H1은 이동한 새로운 서브넷에서 새로운 IP 주소를 받아야 했을 것이고, 이 IP 주소의 변경으로 인해 기존의 TCP 연결을 끊어진다.  
무선 LAN의 물리적 범위를 확장하기 위해, 기업이나 대학에서는 같은 IP 서브넷 내에 여러 개의 BSS(Basic Service Set)를 배치하는 경우가 많다.  이런 경우, BSS 간의 이동성 문제, 즉 무선 스테이션이 TCP 연결을 유지한 채로 한 BSS에서 다른 BSS로 원활히 이동할 수 있어야 한다. Figure 7는 서로 연결된 두 개의 BSS와, BSS1에서 BSS2로 이동 중인 호스트 H1을 보여준다. 이 예제에서는 두 BSS를 연결하는 장치가 라우터가 아니기 때문에, 두 BSS의 모든 스테이션(AP 포함)은 같은 IP 서브넷에 속한다. 따라서 H1이 BSS1에서 BSS2로 이동해도 IP 주소를 유지할 수 있고, 기존에 맺었던 TCP 연결들도 계속 유지될 수 있다. 만약 이 장치가 라우터였다면, H1은 이동한 새로운 서브넷에서 새로운 IP 주소를 받아야 했을 것이고, 이 IP 주소의 변경으로 인해 기존의 TCP 연결을 끊어진다.  


실제로 H1이 AP1로부터 멀어지면, AP1의 신호 세기가 약해지는 것을 감지하고 더 강한 신호를 찾기 위해 스캔을 시작한다. H1은 AP2로부터 비콘 프레임을 수신하고, AP1과의 연동을 해제(disassociate) 한 후, AP2와 새롭게 연동(associate)한다. 이 과정에서 H1은 IP 주소를 유지하고, TCP 연결도 계속 유지된다.
실제로 H1이 AP1로부터 멀어지면, AP1의 신호 세기가 약해지는 것을 감지하고 더 강한 신호를 찾기 위해 스캔을 시작한다. H1은 AP2로부터 비콘 프레임을 수신하고, AP1과의 연동을 해제(disassociate) 한 후, AP2와 새롭게 연동(associate)한다. 이 과정에서 H1은 IP 주소를 유지하고, TCP 연결도 계속 유지된다.

2025년 5월 30일 (금) 05:45 판

상위 문서: Wireless and Mobile Networks

개요

무선 LAN(Wireless LAN)은 오늘날 인터넷에서 가장 중요한 access network 기술 중 하나이다. 그 기술 중, 사실상 표준이 된 기술이 있는데, 이것이 바로 IEEE 802.11 무선 LAN, 즉 WiFi이다. IEEE 802.11(WiFi) 프로토콜에는 무선 LAN 기술을 구현하기 위한 여러 가지 802.11 표준이 있으며, 이들은 아래 표에 요약되어 있다:

Standard Frequency Range Data Rate
802.11b 2.4 GHz up to 11 Mbps
802.11a 5 GHz up to 54 Mbps
802.11g 2.4 GHz up to 54 Mbps
802.11n 2.4 GHz and 5 GHz up to 450 Mbps
802.11ac 5 GHz up to 1300 Mbps

이들은 몇가지 공통적인 특징을 가진다. 가장 중요한 것은, 모두 동일한 media access 프로토콜인 CSMA/CA를 사용한다. 또한 이들은 link layer에 동일한 프레임 구조를 사용한다. 또한 기지국을 요구하며, ad-hoc 네트워크를 구현하기 위한 사항도 갖추고 있다.

802.11 LAN architecture

Figure 1. IEEE 802.11 LAN architecture

Figure 1은 802.11 무선 LAN 아키텍처의 주요 구성 요소들을 보여준다. 802.11 아키텍처의 기본적인 구성 단위는 BSS(Basic Service Set)이다.[1] 하나의 BSS는 하나 이상의 무선 호스트(스테이션)와 AP(access point)[2]를 포함한다. Figure 7은 두 개의 BSS 각각에 있는 AP가 인터커넥션 장치[3]에 연결되고, 이 장치를 통해 인터넷에 접속되는 모습을 보여준다.

Figure 2. An IEEE 802.11 ad hoc network

이더넷 장치들과 마찬가지로, 각 802.11 무선 호스트는 6바이트짜리 MAC 주소를 가지고 있으며, 이 주소는 호스트의 어댑터의 펌웨어에 저장되어 있다. 각 AP 또한 무선 인터페이스에 대한 MAC 주소를 갖고 있다. 이더넷과 마찬가지로, 이러한 MAC 주소들은 IEEE에서 관리되며, 이론적으로는 전 세계적에서 고유하다.

AP가 배치된 무선 LAN은 infrastructure 무선 LAN이라고 불리며, 이때의 infrastructure는 AP와 이들을 상호 연결하는 유선 이더넷 인프라를 의미한다. 또한 figure 2는 IEEE 802.11 호스트들이 모여서 ad-hoc 네트워크, 즉 중앙 제어와 외부 네트워크와의 연결이 부재한 네트워크를 형성할 수도 있음을 보여준다. 하지만 해당 문서에서는 특별한 언급이 없는 이상, infrastructure 기반의 무선 LAN에 초점을 맞추어 설명한다.

Channels and Association

802.11에서, 각 무선 호스트는 network layer 데이터를 송수신하기 전에 AP(Access Point)와 연동(associate)해야 한다.[4] 네트워크 관리자가 AP를 설치할 때, 관리자는 해당 AP에 1~2단어의 서비스 세트 식별자(SSID)와, 채널 번호를 지정한다.

WiFi 정글(WiFi jungle)이란 하나의 물리적 위치에서 한 무선 스테이션이 두 개 이상의 AP로부터 충분히 강한 신호를 수신할 수 있는 상황이다. 예를 들어, 세종시의 많은 카페에서는 한 무선 장치가 여러 인근 AP의 신호를 잡을 수 있다. 그 중 하나는 카페에서 운영하는 AP일 수 있고, 나머지 AP들은 근처 아파트에 설치된 것일 수 있다. 각각의 AP는 서로 다른 IP 서브넷에 속하며, 독립적으로 채널이 할당되어 있다. 이때 해당 카페(WiFi 정글)에 들어간다면, 해당 카페에서 인터넷 접속을 하기 위해서는 여러 AP 중 단 하나의 AP와 연동해야만 한다. 연동한다는 것은 무선 장치와 AP 사이에 가상의 전선을 생성하는 것과 같다. 이는 해당 AP만이 연동된 장치에 데이터그램을 전송할 수 있고, 연동된 장치도 인터넷으로의 모든 패킷을 연동된 AP를 통해서만 전송할 수 있기 때문이다. 이때 무선 호스트들은 특정 AP와 연결하기 위해서 패시브 스캐닝(passive scanning) 혹은 액티브 스캐닝(actice scanning) 방식을 사용한다.

Figure 3. Active and passive scanning for APs

802.11 표준은 AP가 주기적으로 비콘 프레임(beacon frame)을 전송하도록 요구한다. 이 프레임에는 AP의 SSID와 MAC 주소가 포함되어 있다. 무선 장치는 AP들이 비콘 프레임을 보낸다는 사실을 알고 있기 때문에, 채널을 스캔하며 어떤 AP가 존재하는지 찾아본다. 이때 각 호스트들은 비콘 프레임을 통해 AP들을 인식한 후, 하나의 AP를 선택하여 연동한다. 802.11 표준은 어떤 AP와 연동할지를 선택하는 알고리즘을 명시하지 않으며, 장치는 일반적으로는 신호 세기가 가장 강한 비콘 프레임을 보낸 AP를 선택한다. 이렇게 이처럼 채널을 스캔하며 비콘 프레임을 수신하는 과정을 패시브 스캐닝(passive scanning)이라 하며, 이는 figure 3.a에 나타나 있다.

무선 호스트는 액티브 스캐닝(active scanning) 방식을 사용하기도 하는데, 해당 방식에서는 호스트가 탐색 프레임(probe frame)을 브로드캐스트하며, 이는 범위 내의 모든 AP에 수신된다. 각 AP는 탐색 요청 프레임에 대한 응답 프레임(probe response frame)을 전송하며, 무선 장치는 이 중에서 하나의 AP를 선택하여 연동한다. AP를 선택한 후, 무선 장치는 AP에게 연동 요청 프레임(association request frame)을 전송하고, AP는 이에 연동 응답 프레임(association response frame)으로 응답한다. 이 방식 또한 figure 3.b에 나타나 있다.

The 802.11 MAC Protocol

무선 장치가 AP와 연동되면, AP로부터 프레임을 보내고 받을 수 있게 된다. 하지만 여러 무선 장치들 또는 여러 AP들이 동시에 같은 채널을 통해 프레임을 전송하려고 할 수 있기 때문에, 다중 접근 프로토콜(multiple access protocol)이 필요하다. 이에 대해 설명하기 위해 무선 호스트들과 AP들을 모두 무선 스테이션(station)이라고 칭하며, 이들은 다중 접근 채널을 공유한다고 가정한다.

MAC 프로토콜 문서에 나와 있듯이, 다중 접근 프로토콜은 채널 분할 방식, 무작위 접근(random access), 그리고 순번 방식(taking turns)으로 나뉜다. 이때 802.11 무선 LAN은 무작위 접근 방식을 채택하며, 이렇게 정의된 프로토콜들을 CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)라고 한다. 이때 이더넷과 802.11은 둘 다 채널 감지 기반의 무작위 접근 방식을 사용하지만, 중요한 차이점이 있다:

  • 802.11은 충돌 감지(collision detection)를 사용하지 않고, 대신 충돌 회피(collision avoidance) 기법을 사용한다.
  • 무선 채널의 비트 오류율이 높기 때문에, 802.11은 링크 계층 수준의 확인/재전송(ARQ) 메커니즘을 사용한다.

이더넷 스테이션은 데이터를 전송하면서 채널을 동시에 청취(listen)한다. 만약 다른 스테이션도 전송 중임을 감지하면, 자신의 전송을 즉시 중단하고, 짧고 무작위한 시간을 기다린 후 재전송을 시도한다. 그러나 802.3 이더넷 프로토콜과 달리, 802.11 MAC 프로토콜은 충돌 감지를 구현하지 않는다. 그 이유는 다음과 같다:

  • 충돌을 감지하려면 스테이션은 동시에 전송(send)과 수신(receive)을 해야 한다. 그러나 802.11 어댑터는 송신 신호가 너무 강하고, 수신 신호는 매우 약하므로, 이를 동시에 처리하기 어렵다.
  • 설령 동시에 송·수신이 가능하다 해도, "hidden terminal 문제"나 페이딩(fading)으로 인해 모든 충돌을 감지하는 것은 여전히 불가능하다.

따라서 802.11 무선 LAN은 충돌 감지를 사용하지 않으며, 프레임 전송을 시작하면 반드시 끝까지 전송한다. 따라서 충돌이 빈번한 상황에서 긴 프레임을 통째로 전송하면 다중 접근 프로토콜의 성능이 크게 저하될 수 있다. 이를 방지하기 위해 802.11은 여러 충돌 회피 기법을 사용한다.

Figure 4. 802.11 uses link-layer acknowledgments

우선, 무선 LAN에서 스테이션이 프레임을 보낼 때, 다양한 이유로 프레임이 수신지에 도달하지 못할 수 있다. 이러한 실패 가능성에 대응하기 위해서, 802.11 MAC 프로토콜은 link layer 수준의 확인 프레임(acknowledgment frame)을 사용한다. Figure 4에서 보듯이, 수신 스테이션이 CRC 검사에 통과한 프레임을 수신하면, SIFS(Short Inter-frame Spacing)을 기다린 뒤 확인 프레임을 전송한다. 전송 스테이션은 일정 시간 안에 이 확인 프레임을 받지 못하면, 오류가 발생했다고 간주하고 CSMA/CA 프로토콜을 통해 채널을 다시 점유하여 프레임을 재전송한다. 정해진 횟수만큼 재전송해도 확인을 받지 못하면, 해당 프레임은 버려진다(discard).

이제 CSMA/CA 프로토콜의 동작 과정을 이해할 수 있다. 아래는 스테이션이 전송할 프레임을 가지고 있을 때, 동작 단계이다:

  1. 채널이 비어있다면, DIFS(Distributed Inter-frame Space)을 기다린 후 프레임을 전송한다.
  2. 채널이 사용 중이면, 스테이션은 이진 지수 백오프(binary exponential backoff) 알고리즘을 통해 무작위 백오프 값을 선택한다.
  3. 채널이 비어있을 때부터 백오프 카운터를 감소시킨다. 채널이 바쁘면 카운터는 멈춘 상태(frozen)를 유지한다.
  4. 카운터가 0이 되면, 스테이션은 전체 프레임을 전송한 후 확인 프레임을 기다린다.
  5. 확인을 수신한다면 해당 프레임이 성공적으로 도달했다는 것이다. 다음 프레임이 있다면 2단계부터 반복한다.
    • 확인을 못 받으면, 백오프 단계를 다시 수행하지만, 더 넓은 범위에서 무작위 값을 선택한다.

이더넷의 CSMA/CD에서는 채널이 비어있으면 즉시 전송을 시작하지만, CSMA/CA에서는 카운터가 0이 되기 전까지는 전송을 시작하지 않는다. 그 이유를 이해 하기 위해 세 개의 스테이션이 있다고 가정하자. 스테이션 A가 전송 중이고, B와 C는 대기 중이다. B와 C는 A의 전송이 끝나기를 기다리다가, A의 전송이 끝나자마자 동시에 전송을 시작할 수 있다. 이더넷의 경우, 이들은 서로의 전송을 감지하고 전송을 즉시 중단하고 나중에 다시 시도할 수 있기 때문에 큰 문제가 되지 않는다. 그러나 802.11에서는 충돌을 감지하지 못하고 프레임을 끝까지 전송하고, 이때 일어난 충돌은 성능 저하를 초래한다. 따라서 802.11에서는, B와 C가 채널이 바쁘다는 것을 감지하면, 각자 다른 백오프 값을 선택하고 기다리는 방식으로 충돌을 피한다. 백오프 값이 다르면, 채널이 비게 되었을 때 한 쪽이 먼저 전송을 시작하고, 나머지는 그 신호를 듣고 대기하게 된다. 물론, 두 스테이션이 서로의 존재를 모르는(hidden terminal) 경우나, 백오프 값이 너무 비슷한 경우에는 여전히 충돌이 발생한다.

Dealing with Hidden Terminals: RTS and CTS

Figure 5. Hidden terminal example

802.11 MAC 프로토콜은 hidden terminal이 존재하는 상황에서도 충돌을 피할 수 있도록 도와주는 예약 기법을 사용한다. 이를 이해하기 위해서 figure 5를 살펴보자. 해당 figure는 두개의 무선 스테이션과 하나의 AP를 포함한다. 두 무선 스테이션은 AP의 범위 안에 있고, 둘 다 AP와 연동된 상태이다. 하지만 페이딩(fading)으로 인해서, 무선 스테이션의 신호 범위는 그림에서의 작은 원 내부로 제한된다. 따라서 각 스테이션은 서로의 존재를 감지할 수 없지만, 둘 다 AP와는 통신 가능하다. 즉, 서로에게 숨은 단말(hidden terminals)이다.
스테이션 H1이 프레임을 전송 중이고, 전송이 절반쯤 진행되었을 때, 스테이션 H2가 AP에 프레임을 전송하려고 한다고 하자. H2는 H1의 전송을 들을 수 없기 때문에, 채널이 비었다고 판단하고, DIFS 간격을 기다린 후 전송을 시작한다. 따라서 이는 충돌을 야기한다. 즉, hidden terminal은 문제의 원인이다.
이 문제를 해결하기 위해 IEEE 802.11 프로토콜은 RTS/CTS 프레임을 통한 채널 예약 기능을 제공한다. 송신자가 DATA 프레임을 보내기 전에, RTS(Request to Send) 제어 프레임을 AP로 보내고, 이때 DATA 프레임과 그에 대한 ACK 프레임 전송에 필요한 전체 시간을 함께 명시한다. AP는 RTS 프레임을 수신한 뒤, CTS(Clear to Send) 프레임을 브로드캐스트한다. 따라서 이 CTS 프레임은 두 가지 목적을 가진다:

  • 송신자에게 전송 권한을 부여한다.
  • 다른 스테이션들에게 해당 시간 동안 전송하지 말 것을 알린다.
Figure 6. Collision avoidance using the RTS and CTS frames

Figure 6와 같이, H1은 DATA 프레임 전송 전에 RTS 프레임을 브로드캐스트하며, 이는 AP를 포함한 자기 범위 내 모든 스테이션에게 도달한다. AP는 CTS 프레임으로 응답하며, 이 프레임은 H1과 H2를 포함한 자신의 범위 내 모든 스테이션이 수신하게 된다. H2는 CTS 프레임을 들었기 때문에, 해당 시간 동안 전송을 자제한다. 또한 figure 6은 RTS, CTS, DATA, ACK 프레임의 시퀀스가 나타나 있다. 이러한 메커니즘은 두가지 장점을 가진다:

  • Hidden terminal 문제 완화: DATA 프레임은 채널이 미리 예약된 후에만 전송되므로 충돌을 방지할 수 있다.
  • RTS, CTS 프레임은 그 길이가 짧으므로 전송 시간이 짧다. 따라서 이들끼리 충돌해도 짧은 시간만 낭비된다.

하지만, RTS/CTS 교환은 충돌을 줄여주긴 하지만, 지연을 초래하고 채널 자원을 소모한다. 따라서 이 기능은 일반적으로 길이가 긴 DATA 프레임에만 사용된다. 실제로는, 각 무선 스테이션이 RTS 임계값(RTS threshold)을 설정해 놓고, 프레임 길이가 이 임계값보다 클 때만 RTS/CTS를 사용한다.

Mobility in the Same IP Subnet

Figure 7. Mobility in the same subnet

무선 LAN의 물리적 범위를 확장하기 위해, 기업이나 대학에서는 같은 IP 서브넷 내에 여러 개의 BSS(Basic Service Set)를 배치하는 경우가 많다. 이런 경우, BSS 간의 이동성 문제, 즉 무선 스테이션이 TCP 연결을 유지한 채로 한 BSS에서 다른 BSS로 원활히 이동할 수 있어야 한다. Figure 7는 서로 연결된 두 개의 BSS와, BSS1에서 BSS2로 이동 중인 호스트 H1을 보여준다. 이 예제에서는 두 BSS를 연결하는 장치가 라우터가 아니기 때문에, 두 BSS의 모든 스테이션(AP 포함)은 같은 IP 서브넷에 속한다. 따라서 H1이 BSS1에서 BSS2로 이동해도 IP 주소를 유지할 수 있고, 기존에 맺었던 TCP 연결들도 계속 유지될 수 있다. 만약 이 장치가 라우터였다면, H1은 이동한 새로운 서브넷에서 새로운 IP 주소를 받아야 했을 것이고, 이 IP 주소의 변경으로 인해 기존의 TCP 연결을 끊어진다.

실제로 H1이 AP1로부터 멀어지면, AP1의 신호 세기가 약해지는 것을 감지하고 더 강한 신호를 찾기 위해 스캔을 시작한다. H1은 AP2로부터 비콘 프레임을 수신하고, AP1과의 연동을 해제(disassociate) 한 후, AP2와 새롭게 연동(associate)한다. 이 과정에서 H1은 IP 주소를 유지하고, TCP 연결도 계속 유지된다.

이때, 스위치는 어떻게 H1이 어느 AP로 이동했는지 알 수 있을까? 스위치는 self-learning 기능을 가지고 있으며, 자동으로 forwarding table을 구축한다. 이러한 기능은 사용자가 다른 BSS로 낮은 빈도로 이동하는 경우에는 잘 작동한다. 하지만 높은 이동성을 가진 사용자를 위해서 설계된 것은 아니다. H1이 이동하기 전에는 스위치의 포워딩 테이블에 H1의 MAC 주소와 H1에 도달하기 위한 인터페이스(AP1과 연결된 스위치의 포트)가 등록되어 있다. 따라서 H1이 처음에 BSS1에 있을 경우, H1으로 향하는 데이터그램은 AP1을 통해 전달된다. 하지만 H1이 BSS2로 연동되면, 프레임은 AP2를 통해 전달되어야 한다. 이러한 문제를 해결하기 위한 방법 중 하나는, AP2가 H1의 MAC 주소를 포함한 브로드캐스트 이더넷 프레임을 전송하는 것이다. 스위치는 이 프레임을 수신하면, self-learning을 통해 forwarding table을 갱신하며, H1에 AP2를 통해 접근한다.

Power Management

전력은 모바일 장치에 있어서 생명줄과 같으므로, 802.11 표준은 전력 절약을 위한 기능들도 제공한다. 이는 802.11 노드가 수신 감지(sense), 송신(transmit), 수신(receive) 기능 및 기타 회로의 활성화된 시간을 최소화할 수 있도록 한다. 802.11에서 노드는 명시적으로 "수면(sleep)" 상태와 "활성(wake)" 상태를 오갈 수 있다. 노드는 802.11 프레임의 헤더에 있는 전력 관리 비트(power-management bit)를 1로 설정하여, 곧 수면 상태로 들어감을 AP에게 알린다. 그 후 노드 내부의 타이머가 작동하여, AP가 비콘 프레임(beacon frame)을 전송하기 직전에 노드를 깨우게 된다.[5] AP는 전력 비트가 설정된 프레임을 수신했기 때문에, 해당 노드가 수면 상태임을 알고 그 노드에게 프레임을 전송하지 않고, 대신 버퍼에 저장해 둔다. 노드는 비콘 프레임 전송 직전에 깨어나며,[6] AP가 보내는 비콘 프레임에는 버퍼에 저장된 프레임이 있는 노드들의 목록이 포함된다. 이때:

  • 만약 해당 노드에 대한 버퍼된 프레임이 없다면, 노드는 다시 수면 상태로 들어간다.
  • 반대로, 버퍼된 프레임이 있다면, 노드는 AP에 폴링 메시지(polling message)를 보내어 버퍼된 프레임을 전송해 줄 것을 요청한다.

이때, AP가 비콘 메시지를 보내는 간격이 100ms, 깨어나는 데 걸리는 시간은 250μs이고, 비콘을 받고 목록을 확인하는 데 드는 시간도 짧기 때문에, 보낼/받을 프레임이 없는 노드는 전체 시간의 99%를 수면 상태로 유지할 수 있으며, 그 결과 상당한 에너지 절약이 가능하다.

Personal Area Networks: Bluetooth and Zigbee

각주

  1. Cell이라고도 불린다.
  2. 중앙 기지국을 의미한다.
  3. 스위치나 라우터 등이 이에 해당한다.
  4. 해당 문서에서는 이 주제를 IEEE 802.11b/g 맥락에서 구체적으로 설명한다.
  5. 보통 AP는 100ms초마다 비콘 프레임을 전송한다.
  6. 250μs만에 완전히 깨어난다.