Wireless and Mobile Networks
상위 문서: 컴퓨터 네트워크
개요

Figure 1은 무선 데이터 통신과 모빌리티에 대한 환경을 보여준다. 무선 네트워크의 주요 도전 과제는 무선 통신(wireless)와 모빌리티(mobility)이다. 무선 통신은 무선 링크를 통한 통신을 의미하고, 모빌리티는 사용자가 네트워크 접속 지점을 이동하며 바꾸는 상황을 처리하는 것을 의미한다. 무선 네트워크에서는 아래와 같은 구성 요소들이 필요하다:

1. 무선 호스트 (Wireless hosts): 유선 네트워크의 경우와 마찬가지로, 호스트는 애플리케이션을 실행하는 종단 시스템 장치이다. 무선 호스트는 노트북, 태블릿, 스마트폰, 또는 데스크톱 컴퓨터일 수 있다. 이러한 호스트들은 모빌리티(mobility) 특성을 가지고 있기도 하다.
2. 무선 링크 (Wireless links): 호스트는 무선 통신 링크를 통해 기지국 또는 다른 무선 호스트에 연결된다. 다양한 무선 링크 기술은 다양한 전송 속도와 다양한 전송 거리들을 가지고 있다. Figure 2는 널리 사용되는 무선 네트워크 표준들의 두 가지 특성을 보여준다. Figure 1에서 무선 링크는 네트워크의 가장자리(edge)에 위치한 무선 호스트들을 네트워크 인프라에 연결한다. 이때 무선 링크는 비단 이러한 용도 뿐만이 아니라 네트워크 내에서 라우터, 스위치 및 기타 네트워크 장비를 연결하는 데에도 사용되기도 한다. 또한 figure 1에서 기지국은 네트워크에 연결되어 있으며, 무선 호스트와 외부 네트워크 사이의 통신에서 link layer를 중계하는 역할을 한다.
3. 기지국 (Base station): 기지국은 자신과 연결된 무선 호스트로부터 데이터를 송수신한다. 이때 어떤 기지국이 무선 호스트와 "연결"되어 있다는 것은, 해당 호스트가 기지국의 무선 통신 범위 내에 있으며 네트워크와 통신하기 위해서 해당 기지국을 사용한다는 뜻이다.
4. 네트워크 인프라(Network infrastructure): 무선 호스트가 통신하고자 하는 무선 네트워크이다.
기지국과 연결된 호스트는 인프라 모드(infrastructure mode)로 동작한다. 이는 호스트가 기지국을 통해서 유선 네트워크에 연결한다는 것을 의미한다. 애드 혹(ad hoc) 모드도 존재하는데, 해당 모드에는 기지국이 존재하지 않고, 노드가 링크 범위 내의 다른 노드와 직접 통신한다. 이 경우 노드들은 스스로 네트워크를 구성하고 경로를 설정한다. 이러한 인프라가 없는 경우, 호스트이 직접 라우팅, 주소 할당 등의 서비스를 자급자족해야 한다.
또한 무선네트워크를 분류하는 주요한 기준 두가지는 아래와 같다:
- 무선 네트워크 내에서 패킷이 정확히 한 번의 무선 홉(hop)을 통과하는가, 아니면 여러 번의 무선 홉을 통과하는가?
- 네트워크 내에 기지국과 같은 인프라가 존재하는가?
이를 바탕으로 아래와 같이 무선 네트워크의 네 가지 유형을 나눌 수 있다:
- 단일 홉, 인프라 기반(Single-hop, infrastructure-based): 호스크가 기지국을 통해서 인터넷에 연결된다.
- WiFi, WiMAX, 셀룰러 네트워크들이 이에 속한다.
- 다중 홉, 인프라 기반(Multi-hop, infrastructure-based): 여러 노드를 거쳐, 기지국을 통해 인터넷에 연결된다.
- 일부 무선 센서 네트워크와 무선 mesh 네트워크가 이에 해당한다.
- 단일 홉, 인프라 없음(Single-hop, infrastructure-less): 기지국에 연결되지 않으며, 단일 홉만을 통해 통신한다.
- 블루투스 네트워크와 애드 혹 네트워크가 이에 해당한다.
- 다중 홉, 인프라 없음(Multi-hop, infrastructure-less): 기지국에 연결되지 않으며, 여러 홉을 거쳐 통신한다.
- MANET(Mobile Ad-hoc NETwork), VANET(Vehicular Ad-hoc NETwork)이 이에 해당한다.
Wireless Link Characteristics
유선 링크와 무선 링크 사이에는 다음과 같은 여러 중요한 차이점들이 존재한다:
- 신호 세기 감소(Decreasing signal strength): 전파는 물질을 통과하면서 감쇠된다.
- 심지어 대기중에서도, 전자기파는 분산(disperse)하기 때문에, 송신자와 수신자 사이의 거리가 멀어질수록 신호 세기가 줄어들게 된다.
- 다른 소스로부터의 간섭(Interference from other sources): 같은 주파수 대역에서 송신하는 전파원들은 서로 간섭을 일으킨다.
- 예를 들어, 2.4 GHz 무선 전화기와 802.11b 무선 LAN은 동일한 주파수 대역에서 송신하며, 이는 성능 저하를 일으킬 수 있다.
- 다중 경로 전파(Multipath propagation): 전파의 일부가 물체나 지면에 반사되어 송신자와 수신자 사이를 서로 다른 경로로 도달할 때 발생한다.
위에서 다룬 무선 링크의 이러한 특징들은 비트 오류가 유선 링크 보다 무선 링크에서 더욱 흔하게 일어난다는 것을 시사한다. 이러한 이유로 802.11 프로토콜과 같은 무선 링크 프로토콜들은 CRC 오류 검출 코드뿐만 아니라, 손상된 프레임을 재전송하는 link-layer에서의 rdt 프로토콜도 함께 사용한다.

무선 신호를 수신하는 어떤 호스트를 고려하자. 이 호스트는 송신자가 보낸 원래에서 감쇠(decreased)되고, 여러 원인에 의해서 간섭된[1] 전파 신호를 수신한다. 이때 SNR(Signal-to-Noise-Ratio)는 수신된 신호의 세기와 잡음의 세기를 비교한 상대적인 지표이다. SNR은 일반적으로 데시벨(dB) 단위로 측정된다. SNR은 다음과 같이 정의된다.
20 * log10(수신 신호 진폭/노이즈 진폭)
이때 핵심은 SNR이 클수록 배경의 노이지로부터 전송된 실제 신호를 더 쉽게 추출할 수 있다는 것이다. Figure 3는 SNR과 BER(비트 오류율) 사이의 관계를 보여주며, SNR이 증가함에 따라 BER이 감소하는 것을 보여준다. 즉 SNR은 기본적으로 크면 클수록 좋다. 하지만, SNR을 증가시키기 위해서는 전송할 때 더 많은 전력이 필요하므로, 이를 무한정 늘리는 것은 불가능하다. 따라서 중요한 것은 SNR이 주어졌을 때, BER 요구 조건을 만족하는 physical layer를 선택하고, 이를 바탕으로 최대의 처리량(throughput)을 달성하는 것이다. 이때 모빌리티 특성을 가지는 호스트는 주어진 SNR이 변동할 수 있으므로, 동적으로 physical layer를 선택해야 한다.


무선 링크는 Hidden Terminal 문제를 가지고 있다. 이는 장애물이나 signal attenuation에 의해서 발생하며, 서로의 존재를 인식하지 못하기 때문에 생기는 간섭 문제이다. 두 원인 미치는 영향은 공통적으로, A와 B가 서로를 감지할 수 있고, B와 C가 서로를 감지하지만, A와 C가 서로를 감지할 수 없도록 한다. 이때 A와 C는 B에 대한 간섭을 인식하지 못하므로, A와 C가 동시에 전송하면 충돌이 발생할 가능성이 높아진다. 이는 figure 4, 5에 나타나 있다.
CDMA
CDMA는 채널 분할 방식(channel partitioning)의 프로토콜이며, 무선 LAN과 셀룰러 기술에서 널리 사용된다. CDMA는 각 사용자에게 고유한 코드(code)를 할당한다.[2] 즉, 채널을 주파수나 시간 단위로 나누는 것이 아니라, 코드 공간을 나누는 것이다. 모든 사용자는 동일한 주파수를 공유하며, 각 사용자는 자신만의 "chipping sequence"(고유 코드)를 사용하여 데이터를 인코딩하며,[3] 이를 통해 여러 사용자가 동시에 해당 채널에서 동시에 데이터를 보낼 수 있다.[4]
CDMA 프로토콜에서 전송되는 각 비트는 아래와 같이 인코딩된다.
위에서 연산자 x는 원소 간의 곱(element-wise multiplication)을 의미한다. 이때, chipping sequence란 CDMA에서 데이터 비트를 인코딩할 때 사용하는 고속의 이진 코드(sequence)를 의미한다. 일반적인 데이터 비트는 너무나 단순하므로, 여러 사용자가 동시에 보낼 경우 간섭이 쉽게 발생한다. 그래서 각 사용자는 고유한 코드 시퀸스로 chipping sequence를 사용하여, 데이터를 확장하여 전송한다. 또한, CDMA 프로토콜에서 디코딩되는 각 비트는 아래와 같이 내적(inner-product)을 통해 계산되어 원래의 데이터로 추출된다:

Figure 6는 단순한 CDMA 인코딩/디코딩 상황을 보여준다. 이때 아래와 같은 가정이 사용된다:
- 원래의 데이터 비트가 CDMA 인코더에 도달하는 속도를 시간단위로 정의한다.
- 이 경우 전송될 각 원래 데이터 비트는 하나의 비트 슬롯 시간 동안 전송된다.
- di는 i번째 비트 슬롯에 해당하는 데이터 비트의 값이다.
- 수학적 편의를 위해, 값이 0인 데이터 비트는 −1로 표현한다.
Figure 6에서, 각 비트 슬롯은 다시 M개의 미니 슬롯으로 나뉘며, 해당 figure 에서는 M = 8이지만, 실제로는 M이 훨씬 더 크다. 이때 송신자가 사용하는 CDMA 코드는 M개의 값으로 구성된 시퀀스이며, 각각은 +1 또는 −1 값을 가진다. Figure 6에서 송신자가 사용하는 M-비트 CDMA 코드는 (1, 1, 1, −1, 1, −1, −1, −1)이다.
CDMA가 어떻게 작동하는지 알아보기 위해, i 번째 데이터 비트 di에 주목한다. di의 비트 전송 시간 중 m번째 미니 슬롯에서 CDMA 인코더의 출력 Zi,m은 di와 할당된 CDMA 코드의 m번째 비트 cm을 곱한 값이다:
(1)
이때 간섭을 배제한다면, 수신자는 인코딩된 비트 Zi,m을 수신하고 다음 식을 이용해 원래의 데이터 비트 di를 복원할 수 있다:
(2)

하지만 현실 세계는 그리 녹록치 않기 때문에, CDMA는 다른 CDMA는 다른 송신자들이 각각 다른 코드로 데이터를 인코딩하고 전송하는 간섭 환경 속에서도 동작해야 한다. 그렇다면, 수신자는 어떻게 이러한 간섭 신호 속에서 특정 송신자의 원래 데이터 비트를 복원할 수 있을까? 이러한 문제를 해결하기 위해서, CDMA는 간섭 신호들이 가산적(additive) 이라는 가정을 기반으로 작동한다. 예를 들어, 세 명의 송신자가 1 값을 보내고 네 번째 송신자가 −1 값을 보낼 경우, 같은 미니 슬롯 동안 수신자들이 수신하는 신호 값은 2가 된다.[5] 다수의 송신자가 있을 경우, 송신자 s는 여전히 식 (1)과 동일한 방식으로 인코딩된 전송값 Zi,ms를 계산한다. 그러나 수신자가 i번째 비트 슬롯의 m번째 미니 슬롯에서 수신하는 값 Zi,m*은 해당 미니 슬롯에서 N명의 모든 송신자들이 전송한 비트의 합이다:
(3)
그리고 각 수신자는 식 (2)와 동일한 방식으로 특정 송신자의 코드를 사용하여, 전체 신호에서 해당 송신자의 데이터를 복원할 수 있다:
(4)
Figure 7은 두 송신자가 있는 CDMA 프로토콜이 적용되는 상황에서 첫 송신자의 원래 데이터 비트를 수신자가 복원하는 과정을 보여준다. 상단 송신자가 사용하는 M-비트 CDMA 코드는 (1, 1, 1, −1, 1, −1, −1, −1)이며, 하단 송신자는 (1, −1, 1, 1, 1, −1, 1, 1)을 사용한다.
비유하자면, CDMA 프로토콜은 시끄러운 회식자리에서 각기 다른 언어로 이야기하는 상황과 유사하다. 이런 상황에서 사람들은 자신이 이해할 수 있는 언어로 된 대화에 집중하고 나머지 대화는 걸러내는 데 능하다. 이와 같이 CDMA는 코드를 기준으로 분할하고, 각 노드에 코드 공간의 특정 부분을 할당하는 분할 프로토콜이다. 따라서 CDMA는 FDMA와는 달리 모든 대역폭을 공유하므로, 더욱 효율적이며, TDMA와 달리 시간 분할을 하지 않으므로, 모든 사용자가 동시에 채널을 사용가능하다.
WiFi: IEEE 802.11
무선 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 8은 802.11 무선 LAN 아키텍처의 주요 구성 요소들을 보여준다. 802.11 아키텍처의 기본적인 구성 단위는 BSS(Basic Service Set)이다.[6] 하나의 BSS는 하나 이상의 무선 호스트(스테이션)와 AP(access point)[7]를 포함한다. Figure 7은 두 개의 BSS 각각에 있는 AP가 인터커넥션 장치[8]에 연결되고, 이 장치를 통해 인터넷에 접속되는 모습을 보여준다.

이더넷 장치들과 마찬가지로, 각 802.11 무선 호스트는 6바이트짜리 MAC 주소를 가지고 있으며, 이 주소는 호스트의 어댑터의 펌웨어에 저장되어 있다. 각 AP 또한 무선 인터페이스에 대한 MAC 주소를 갖고 있다. 이더넷과 마찬가지로, 이러한 MAC 주소들은 IEEE에서 관리되며, 이론적으로는 전 세계적에서 고유하다.
AP가 배치된 무선 LAN은 infrastructure 무선 LAN이라고 불리며, 이때의 infrastructure는 AP와 이들을 상호 연결하는 유선 이더넷 인프라를 의미한다. 또한 figure 9은 IEEE 802.11 호스트들이 모여서 ad-hoc 네트워크, 즉 중앙 제어와 외부 네트워크와의 연결이 부재한 네트워크를 형성할 수도 있음을 보여준다. 하지만 해당 문서에서는 특별한 언급이 없는 이상, infrastructure 기반의 무선 LAN에 초점을 맞추어 설명한다.
Channels and Association
802.11에서, 각 무선 호스트는 network layer 데이터를 송수신하기 전에 AP(Access Point)와 연동(associate)해야 한다.[9] 네트워크 관리자가 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) 방식을 사용한다.

802.11 표준은 AP가 주기적으로 비콘 프레임(beacon frame)을 전송하도록 요구한다. 이 프레임에는 AP의 SSID와 MAC 주소가 포함되어 있다. 무선 장치는 AP들이 비콘 프레임을 보낸다는 사실을 알고 있기 때문에, 채널을 스캔하며 어떤 AP가 존재하는지 찾아본다. 이때 각 호스트들은 비콘 프레임을 통해 AP들을 인식한 후, 하나의 AP를 선택하여 연동한다. 802.11 표준은 어떤 AP와 연동할지를 선택하는 알고리즘을 명시하지 않으며, 장치는 일반적으로는 신호 세기가 가장 강한 비콘 프레임을 보낸 AP를 선택한다. 이렇게 이처럼 채널을 스캔하며 비콘 프레임을 수신하는 과정을 패시브 스캐닝(passive scanning)이라 하며, 이는 figure 10.a에 나타나 있다.
무선 호스트는 액티브 스캐닝(active scanning) 방식을 사용하기도 하는데, 해당 방식에서는 호스트가 탐색 프레임(probe frame)을 브로드캐스트하며, 이는 범위 내의 모든 AP에 수신된다. 각 AP는 탐색 요청 프레임에 대한 응답 프레임(probe response frame)을 전송하며, 무선 장치는 이 중에서 하나의 AP를 선택하여 연동한다. AP를 선택한 후, 무선 장치는 AP에게 연동 요청 프레임(association request frame)을 전송하고, AP는 이에 연동 응답 프레임(association response frame)으로 응답한다. 이 방식 또한 figure 10.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은 여러 충돌 회피 기법을 사용한다.