Wireless and Mobile Networks: 두 판 사이의 차이
| (같은 사용자의 중간 판 66개는 보이지 않습니다) | |||
| 25번째 줄: | 25번째 줄: | ||
#* MANET(Mobile Ad-hoc NETwork), VANET(Vehicular Ad-hoc NETwork)이 이에 해당한다. | #* 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 프로토콜도 함께 사용한다. | |||
[[파일:BER and SNR.png|섬네일|257x257픽셀|Figure 3. BER and SNR]] | |||
무선 신호를 수신하는 어떤 호스트를 고려하자. 이 호스트는 송신자가 보낸 원래에서 감쇠(decreased)되고, 여러 원인에 의해서 간섭된<ref>여러 잡음이 섞여 있는</ref> 전파 신호를 수신한다. 이때 SNR(Signal-to-Noise-Ratio)는 수신된 신호의 세기와 잡음의 세기를 비교한 상대적인 지표이다. SNR은 일반적으로 데시벨(dB) 단위로 측정된다. SNR은 다음과 같이 정의된다. | |||
'''20 * log<sub>10</sub>(수신 신호 진폭/노이즈 진폭)''' | |||
이때 핵심은 SNR이 클수록 배경의 노이지로부터 전송된 실제 신호를 더 쉽게 추출할 수 있다는 것이다. Figure 3는 SNR과 BER(비트 오류율) 사이의 관계를 보여주며, '''SNR이 증가함에 따라 BER이 감소'''하는 것을 보여준다. 즉 SNR은 기본적으로 크면 클수록 좋다. 하지만, SNR을 증가시키기 위해서는 전송할 때 더 많은 전력이 필요하므로, 이를 무한정 늘리는 것은 불가능하다. 따라서 중요한 것은 SNR이 주어졌을 때, BER 요구 조건을 만족하는 physical layer를 선택하고, 이를 바탕으로 최대의 처리량(throughput)을 달성하는 것이다. 이때 모빌리티 특성을 가지는 호스트는 주어진 SNR이 변동할 수 있으므로, 동적으로 physical layer를 선택해야 한다. | |||
[[파일:Hidden terminal problem.png|섬네일|200x200픽셀|Figure 4. Obstacle]] | |||
[[파일:Signal attenuation.png|섬네일|200x200픽셀|Figure 5. Signal attenuation]] | |||
무선 링크는 Hidden Terminal 문제를 가지고 있다. 이는 장애물이나 signal attenuation에 의해서 발생하며, 서로의 존재를 인식하지 못하기 때문에 생기는 간섭 문제이다. 두 원인 미치는 영향은 공통적으로, A와 B가 서로를 감지할 수 있고, B와 C가 서로를 감지하지만, A와 C가 서로를 감지할 수 없도록 한다. 이때 A와 C는 B에 대한 간섭을 인식하지 못하므로, A와 C가 동시에 전송하면 충돌이 발생할 가능성이 높아진다. 이는 figure 4, 5에 나타나 있다. | |||
==CDMA/CA== | |||
CDMA는 채널 분할 방식(channel partitioning)의 프로토콜이며, 무선 LAN과 셀룰러 기술에서 널리 사용된다. CDMA는 각 사용자에게 고유한 코드(code)를 할당한다.<ref>이 때문에 code set partitioning이라고 불린다.</ref> 즉, '''채널을 주파수나 시간 단위로 나누는 것이 아니라, 코드 공간을 나누는 것'''이다. 모든 사용자는 동일한 주파수를 공유하며, 각 사용자는 자신만의 "chipping sequence"(고유 코드)를 사용하여 데이터를 인코딩하며,<ref>코드들이 직교(orthogonal) 관계일 경우 간섭을 최소화할 수 있다.</ref> 이를 통해 여러 사용자가 동시에 해당 채널에서 동시에 데이터를 보낼 수 있다.<ref>이러한 특성을 coexistence라고 한다.</ref> | |||
CDMA 프로토콜에서 전송되는 각 비트는 아래와 같이 인코딩된다. | |||
<math>(encoded\,\, signal) = (original\,\, data) \times (chipping\,\, sequence)</math> | |||
위에서 연산자 x는 원소 간의 곱(element-wise multiplication)을 의미한다. 이때, chipping sequence란 CDMA에서 데이터 비트를 인코딩할 때 사용하는 고속의 이진 코드(sequence)를 의미한다. 일반적인 데이터 비트는 너무나 단순하므로, 여러 사용자가 동시에 보낼 경우 간섭이 쉽게 발생한다. 그래서 각 사용자는 고유한 코드 시퀸스로 chipping sequence를 사용하여, 데이터를 확장하여 전송한다. 또한, CDMA 프로토콜에서 디코딩되는 각 비트는 아래와 같이 내적(inner-product)을 통해 계산되어 원래의 데이터로 추출된다: | |||
<math>(decoded\,\, data) = (encoded\,\, signal) \cdot (chipping\,\, sequence)</math> | |||
[[파일:A simple CDMA example.png|섬네일|Figure 6. A simple CDMA example ]] | |||
Figure 6는 단순한 CDMA 인코딩/디코딩 상황을 보여준다. 이때 아래와 같은 가정이 사용된다: | |||
* 원래의 데이터 비트가 CDMA 인코더에 도달하는 속도를 시간단위로 정의한다. | |||
** 이 경우 전송될 각 원래 데이터 비트는 하나의 비트 슬롯 시간 동안 전송된다. | |||
* d<sub>i</sub>는 i번째 비트 슬롯에 해당하는 데이터 비트의 값이다. | |||
* 수학적 편의를 위해, 값이 0인 데이터 비트는 −1로 표현한다. | |||
Figure 6에서, 각 비트 슬롯은 다시 M개의 미니 슬롯으로 나뉘며, 해당 figure 에서는 <code>M = 8</code>이지만, 실제로는 M이 훨씬 더 크다. 이때 송신자가 사용하는 CDMA 코드는 M개의 값으로 구성된 시퀀스이며, 각각은 +1 또는 −1 값을 가진다. Figure 6에서 송신자가 사용하는 M-비트 CDMA 코드는 <code>(1, 1, 1, −1, 1, −1, −1, −1)</code>이다.<br> | |||
CDMA가 어떻게 작동하는지 알아보기 위해, i 번째 데이터 비트 d<sub>i</sub>에 주목한다. d<sub>i</sub>의 비트 전송 시간 중 m번째 미니 슬롯에서 CDMA 인코더의 출력 <code>Z<sub>i</sub>,m</code>은 d<sub>i</sub>와 할당된 CDMA 코드의 m번째 비트 cm을 곱한 값이다: | |||
<math>Z_{i,m} = d_i \cdot c_m</math> (1) | |||
이때 간섭을 배제한다면, 수신자는 인코딩된 비트 Z<sub>i</sub>,m을 수신하고 다음 식을 이용해 원래의 데이터 비트 d<sub>i</sub>를 복원할 수 있다: | |||
<math>d_i = \frac{\Sigma_{m=1}^{M}{Z_{i,m} \cdot c_m}}{M}</math> (2) | |||
[[파일:A two-sender CDMA example.png|섬네일|Figure 7. A two-sender CDMA example ]] | |||
하지만 현실 세계는 그리 녹록치 않기 때문에, CDMA는 다른 CDMA는 다른 송신자들이 각각 다른 코드로 데이터를 인코딩하고 전송하는 간섭 환경 속에서도 동작해야 한다. 그렇다면, 수신자는 어떻게 이러한 간섭 신호 속에서 특정 송신자의 원래 데이터 비트를 복원할 수 있을까? 이러한 문제를 해결하기 위해서, CDMA는 간섭 신호들이 가산적(additive) 이라는 가정을 기반으로 작동한다. 예를 들어, 세 명의 송신자가 1 값을 보내고 네 번째 송신자가 −1 값을 보낼 경우, 같은 미니 슬롯 동안 수신자들이 수신하는 신호 값은 2가 된다.<ref>1 + 1 + 1 − 1 = 2</ref> 다수의 송신자가 있을 경우, 송신자 s는 여전히 식 (1)과 동일한 방식으로 인코딩된 전송값 Z<sub>i</sub>,m<sub>s</sub>를 계산한다. 그러나 수신자가 i번째 비트 슬롯의 m번째 미니 슬롯에서 수신하는 값 Z<sup>*</sup><sub>i,m</sub>은 해당 미니 슬롯에서 N명의 모든 송신자들이 전송한 비트의 합이다: | |||
<math>Z^*_{i,m} =\Sigma_{s=1}^{N}{Z^*_{i,m_s}}</math> (3) | |||
그리고 각 수신자는 식 (2)와 동일한 방식으로 특정 송신자의 코드를 사용하여, 전체 신호에서 해당 송신자의 데이터를 복원할 수 있다: | |||
<math>d_i = \frac{\Sigma_{m=1}^{M}{Z^*_{i,m} \cdot c_m}}{M}</math> (4) | |||
Figure 7은 두 송신자가 있는 CDMA 프로토콜이 적용되는 상황에서 첫 송신자의 원래 데이터 비트를 수신자가 복원하는 과정을 보여준다. 상단 송신자가 사용하는 M-비트 CDMA 코드는 <code>(1, 1, 1, −1, 1, −1, −1, −1)</code>이며, 하단 송신자는 <code>(1, −1, 1, 1, 1, −1, 1, 1)</code>을 사용한다. | |||
비유하자면, CDMA 프로토콜은 시끄러운 회식자리에서 각기 다른 언어로 이야기하는 상황과 유사하다. 이런 상황에서 사람들은 자신이 이해할 수 있는 언어로 된 대화에 집중하고 나머지 대화는 걸러내는 데 능하다. 이와 같이 CDMA는 코드를 기준으로 분할하고, 각 노드에 코드 공간의 특정 부분을 할당하는 분할 프로토콜이다. 따라서 CDMA는 FDMA와는 달리 모든 대역폭을 공유하므로, 더욱 효율적이며, TDMA와 달리 시간 분할을 하지 않으므로, 모든 사용자가 동시에 채널을 사용가능하다. | |||
==[[WiFi: IEEE 802.11]]== | |||
자세한 내용은 [[WiFi: IEEE 802.11]] 문서를 참조하십시오. | |||
==[[Cellular Internet access]]== | |||
자세한 내용은 [[Cellular Internet access]] 문서를 참조하십시오. | |||
==Mobility== | |||
모바일 노드(Mobile node)란 시간이 지남에 따라 네트워크에서 자신의 액세스 포인트(access point)를 변경하는 노드를 말한다. | |||
[[파일:Various degrees of mobility.png|섬네일|350x350픽셀|Figure 8. Various degrees of mobility ]] | |||
이때 '모빌리티'라는 용어는 여러 가지 의미로 사용되기 때문에, 모빌리티가 어떠한 의미를 가지고 있는지 살펴보아야 한다. Figure 8은 network layer에서 모빌리티의 스펙트럼을 나타낸다. Figure 8에서의 왼쪽 끝에서는, 사용자가 무선 네트워크 인터페이스 카드를 장착한 노트북을 들고 건물 안을 돌아다닐 수 있는 수준의 모빌리티를 의미한다. 이는 network layer 관점에서 모바일(mobile)하지 않으며, 사용자가 위치와 관계없이 동일한 액세스 포인트에 연결된다면 link layer 관점에서도 모바일하지 않다. Figure 8에서의 오른쪽 끝은 고속도로를 주행하면서도, 서버와의 TCP 연결을 유지할 수 있는 수준의 모빌리티이다. 이는 확실히 모바일하다. 이 극단의 사이에는, 노트북을 사무실에서 카페로 이동하면서 새로운 위치에서 네트워크에 연결하는 것을 지원하는 수준의 모빌리티이다. 이는 확실히 덜 모바일하지만, 여전히 모바일 사용자이며, 이동 중에는 연결을 유지할 필요가 없다. | |||
모바일 전화의 경우에는, 전화번호<ref>사실상 network layer의 IP 주소에 해당한다.</ref>는 사용자가 서로 다른 제공자의 이동 통신망을 넘나들어도 동일하게 연결된다. 하지만 노트북이 IP 네트워크 간을 이동할 때 동일한 IP 주소를 유지하는지에 대한 질문의 답은 상황에 따라 다르다. | |||
# 고속도로를 달리는 자동차 내에서 TCP 연결을 끊김 없이 유지하기 위해서는, IP 주소가 그대로 유지되는 것이 유리하다. 이때 모바일 엔티티가 이동 중에도 IP 주소가 변하지 않는다면, 애플리케이션 관점에서 모빌리티는 투명(transparent)하다고 한다.<ref>애플리케이션 관점에서 엔티티의 모빌리티를 감지할 수 없다는 뜻이다.</ref> Mobile IP는 투명성을 제공하여, 모바일 노드가 네트워크 사이를 이동하면서도 영구 IP 주소를 유지할 수 있도록 한다. | |||
# 반면에, 노트북을 꺼서 집으로 가져가고, 집에서 켜서 사용하는 경우에는 상황은 다르다. 이 경우 노트북은 주로 클라이언트로 작동하며 IP 주소가 무엇이든 큰 문제가 되지 않는다. 특히 이러한 경우에는 ISP가 임시로 할당한 주소를 사용해도 문제가 없으며, 이는 DHCP 프로토콜에 의해서 지원된다. | |||
[[파일:Initial elements of a mobile network architecture.png|섬네일|Figure 9. Initial elements of a mobile network architecture ]] | |||
아래는 모빌리티를 설명하기 위해 사용할 기본적인 용어에 대한 설명이다: | |||
* Home Network(홈 네트워크): 모바일 사용자가 기본적으로 소속된 네트워크이며, 영구 IP 주소(permanent address)가 이 네트워크에 속한다. | |||
* Permanent Address(영구 IP 주소): 모바일 장치의 고정된 IP 주소이며, 이동하더라도 이 주소는 변하지 않는다. | |||
* Home Agent(HA): 홈 네트워크 내의 에이전트로, 모바일 단말이 떨어져 있어도 이를 대신하여 모빌리티 관리 기능을 수행한다. | |||
* Visited Network(방문 네트워크): 모바일 단말이 현재, 실제로 접속된 네트워크를 의미한다. | |||
* Care-of Address(임시 IP 주소): 방문 네트워크 내에서 임시로 부여되는 IP 주소를 의미한다. | |||
* Foreign Agent(FA): 방문 네트워크에 위치하며, 모바일 장치를 대신해 모빌리티 관리 기능을 수행한다. 이때 다음의 두 가지 주요 역할을 수행한다: | |||
** 모바일 노드를 위한 임시 IP 주소를 생성한다. | |||
** 해당 모바일 기기의 HA에게 해당 모바일 노드가 자신의 네트워크에 있고, 지금의 임시 IP 주소를 사용하고 있다는 사실을 알려준다. | |||
* Correspondent(통신 상대자): 모바일 장치와 통신하려는 엔티티이다. | |||
===Addressing=== | |||
모바일 기기의 모빌리티가 네트워크 애플리케이션에 대해 투명하게 보이도록 하려면, 모바일 노드가 네트워크 간을 이동하더라도 IP 주소를 유지해야 한다. 이를 위해서는 모바일 노드가 방문 네트워크에 위치할 때, 해당 노드의 영구 IP 주소로 전송된 모든 트래픽은 이제 방문 네트워크로 라우팅되어야 한다. 이를 구현하기 위한 한가지 방법은 방문 네트워크가 다른 모든 네트워크에 해당 모바일 노드가 자신에게 속해 있다고 광고(advertise)하는 것이다. 즉, 방문 네트워크는 모바일 노드의 영구 IP 주소에 대한 매우 구체적인 경로를 이웃 네트워크에 알리기만 하면 된다. 하지만 이는 확장성(scalabillity) 측면에서 문제가 있다. 모빌리티 관리가 네트워크 라우터의 책임이라면, 라우터들은 잠재적으로 수백만 개의 모바일 노드에 대한 포워딩 테이블 항목을 유지하고, 노드가 이동할 때마다 이 항목들을 갱신해야 한다. 즉 사실상 불가능하며, 실제로 쓰이는 방식이 아니다. | |||
이러한 문제에 대한 대안적인 접근법은 모빌리티의 구현을 네트워크 코어가 아닌 네트워크 엣지에서 하는 것이다. 이를 위해 모바일 노드의 홈 네트워크를 이용하며, 모바일 노드의 HA는 모바일 노드가 어느 외부 네트워크에 위치해 있는지를 추적한다. 이를 구현하기 위해서는 모바일 노드<ref>또는 이를 대신하는 외부 에이전트</ref>와 HA 사이에 위치 갱신을 위한 프로토콜이 필요하다. | |||
이때 모바일 노드의 위치를 아는 것은 HA뿐이고 네트워크 전반의 라우터는 모르므로, 단순히 데이터그램을 모바일 노드의 영구 IP 주소로 지정해 네트워크 계층 인프라로 보내는 것만으로는 충분하지 않다. 이러한 문제를 해결하기 위해서, 간접 라우팅(indirect routing)과 직접 라우팅(direct routing)이라는 두가지 접근법이 사용된다. | |||
===Indirect Routing to a Mobile Node=== | |||
[[파일:Indirect routing to a mobile node.png|섬네일|350x350픽셀|Figure 10. Indirect routing to a mobile node ]] | |||
어떤 통신 상대(correspondent)가 어떤 모바일 노드에 데이터그램을 보내고자 한다고 가정하자. 간접 라우팅(Indirect routing)에서는 통신 상대가 단순히 데이터그램을 모바일 노드의 영구 IP 주소를 통해 네트워크로 보낸다. 이 통신 상대는 모바일 노드가 현재 홈 네트워크에 있는지, 외부 네트워크에 있는지 전혀 모르며, 모빌리티는 통신 상대에게 완전히 투명하다. 이러한 데이터그램은 일반적인 라우팅을 통해 모바일 노드의 홈 네트워크로 먼저 전달된다. 이는 figure 10의 단계 1에 해당한다. | |||
[[파일:Encapsulation and decapsulation.png|섬네일|350x350픽셀|Figure 11. Encapsulation and decapsulation ]] | |||
패킷을 받은 HA는 FA와 상호작용하여 모바일 노드의 임시 IP 주소를 추적할 뿐 아니라, 홈 네트워크 소속이지만 현재는 방문 네트워크에 있는 모바일 노드에게 향한 데이터그램을 감지하여 처리하는 기능을 있다. HA는 단계 1에서 받은 데이터그램을 두 단계로 forwarding한다. 먼저 모바일 노드의 임시 IP 주소를 사용하여 FA로 데이터그램을 forwarding하고, FA는 그것을 모바일 노드로 forwarding한다. 이는 figure 10의 단계 2, 3에 해당한다. | |||
단계 2, 3을 좀 더 자세히 살펴보자. HA는 network layer가 데이터그램을 방문 네트워크로 forwarding하도록 모바일 노드의 임시 IP 주소를 사용해 데이터그램을 주소 지정해야 한다. 하지만 데이터그램을 수신하는 애플리케이션은 HA를 경유했다는 사실을 알아서는 안되므로, 통신 상대의 원래 데이터그램을 그대로 유지해야할 필요가 있다. 이를 달성하기 위해 HA는 통신 상대의 원래 데이터그램을 더 큰 새로운 데이터그램 안에 캡슐화(encapsulation) 하여 보낸다. 이는 임시 IP 주소로 지정되어 전송되어. FA를 이 캡슐화된 데이터그램을 수신하고, 원래의 데이터그램을 추출(decapsulation) 하여 모바일 노드로 전달한다. 이는 [[Internet Protocol#IPv6|IPv4를 기반으로 IPv6를 구현하기 위해 터널링(tunneling)]]을 통해 지원하는 방식과 유사하다. 이는 figure 11에 나타나 있다. | |||
모바일 노드가 통신 상대에게 데이터그램을 경우는 매우 간단하다. 모바일 노드는 자신의 영구 IP 주소를 출발지 주소(source)로, 통신 상대의 주소를 목적지 주소(destination)로 하여 직접 데이터그램을 전송하면 된다. 이는 figure 10의 단계 4에 해당하며, 해당 figure에서 알 수 있듯이 HA를 경유할 필요가 없다. | |||
하지만 이는 triangle routing 문제를 초래할 수 있다. 이는 통신 상대자와 모바일 노드가 같은 네트워크에 있는데도 HA를 경유하여 비효율성과 지연을 초래하는 문제이다. | |||
===Direct Routing to a Mobile Node=== | |||
[[파일:Direct routing to a mobile user.png|섬네일|350x350픽셀|Figure 12. Direct routing to a mobile user ]] | |||
직접 라우팅(direct routing) 은 삼각 라우팅 문제의 비효율성을 극복하지만, 더 복잡하게 구현된다. 직접 라우팅 방식에서는, 통신 상대 네트워크에 있는 상대 에이전트(correspondent agent)가 먼저 모바일 노드의 임시 IP 주소를 알아내야 한다. 이는 상대 에이전트가 HA에게 질의하여 모바일 노드의 임시 IP 주소를 얻는 방식으로 가능하다.<ref>이때 모바일 노드는 자신의 임시 주소를 홈 에이전트에 최신 상태로 저장해두어야 한다.</ref> 이는 figure 12의 단계 1, 2에 잘 나타나 있다. 그리고 상대 에이전트는 이후에 데이터그램을 모바일 노드의 임시 IP 주소로 터널링하여 전송한다. 이는 간접 라우팅 방식에서 HA가 수행하는 터널링과 유사하다. 이는 figure 12의 단계 3, 4에 잘 나타나 있다. | |||
이때 모바일 노드가 한 외부 네트워크에서 다른 외부 네트워크로 이동할 경우, 데이터를 어떻게 새로운 외부 네트워크로 전달할 것인지는 또 다른 문제이다. 간접 라우팅의 경우에는 HA에 저장된 임시 IP 주소를 갱신하는 것만으로 해결된다. 하지만 직접 라우팅에서는 상대 에이전트가 세션 시작 시점에 한 번만 HA에 임시 IP 주소를 질의하므로, HA에서 COA를 갱신하는 것만으로는 새로운 외부 네트워크로 데이터그램을 전달하는 문제를 해결할 수 없다. | |||
[[파일:Mobile transfer between networks with direct routing.png|섬네일|350x350픽셀|Figure 13. Mobile transfer between networks with direct routing ]] | |||
이에 대한 문제를 해결하기 위해서 사용되는 방식을 알아보기 위해 데이터가 현재, 세션이 처음 시작될 때 모바일 노드가 위치했던 외부 네트워크로 전달되고 있는 상황을 가정하자. 이는 figure 13의 단계 1에 해당한다. 이때 모바일 노드가 처음에 있었던 외부 네트워크의 FA를 '''anchor FA'''라고 한다. 이후 모바일 노드는 새로운 외부 네트워크로 이동하며(단계 2), 모바일 노드는 새로운 FA에 등록되고(단계 3), 새로운 FA는 anchor FA에게 모바일 노드의 새로운 임시 IP 주소를 전송한다(단계 4). anchor FA는 모바일 노드가 떠났다는 것을 알고, 캡슐화된 데이터그램을 수신하면, 이를 다시 캡슐화한 후 새로운 임시 IP 주소를 사용하여 모바일 노드에게 전달한다(단계 5). 이후에도 모바일 노드가 또 다른 새로운 외부 네트워크로 이동한다면, 새롭게 방문한 네트워크의 FA는 다시 anchor FA와 연락하여 이 새로운 외부 네트워크로 전달 경로(forwarding path)를 설정한다. | |||
==Mobile IP== | |||
모바일 IP(Mobile IP)는 모빌리티를 지원하기 위한 인터넷 아키텍쳐와 프로토콜이다. 모바일 IP 표준은 다음의 세 가지 주요 요소로 구성된다: | |||
* 에이전트 발견(Agent Discovery): 모바일 IP는 에이전트가 모바일 노드에게 자신을 광고하는 데 사용하는 프로토콜과, 모바일 노드가 이러한 에이전트를 찾기 위해 사용하는 프로토콜을 정의한다. | |||
* HA 등록(Registration with the Home Agent): 모바일 노드(혹은 FA)가 임시 IP 주소를 모바일 노드의 HA에 등록하거나 해지하는 데 사용하는 프로토콜을 정의한다. | |||
* 데이터그램의 간접 라우팅(Indirect Routing of Datagrams): HA가 모바일 노드에게 데이터그램을 전달하는 방식, 오류 처리 규칙, 다양한 캡슐화 형식 등을 정의한다. | |||
===Registration with the Home Agent=== | |||
새로운 네트워크에 도착한 모바일 IP 노드는 해당 네트워크의 FA/HA에 대해서 알아야 한다. 새로운 FA를 발견하면, 모바일 노드는 비로소 새로운 외부 네트워크로 이동했다는 사실을 인식한다. 이 과정을 에이전트 발견(agent discovery)이라고 한다. 이는 에이전트 광고(agent advertisement)와 에이전트 요청(agent solicitation)이라는 두 가지 방식을 통해 구현된다. | |||
[[파일:ICMP router discovery message with mobility agent advertisement extension.png|섬네일|Figure 10. ICMP router discovery message with agent advertisement extension ]] | |||
먼저 에이전트 광고(agent advertisement)는 기존의 라우터 발견 프로토콜을 확장하여 FA/HA가 메시지를 주기적으로 브로드캐스트하여 자신의 서비스를 광고하는 방식이다. 이 메시지는 [[Network Layer#ICMP: The Internet Control Message Protocol|ICMP]] 형식이고, type 필드 값은 9(라우터 디스커버리)이다. 이 메시지에는 라우터(즉, 에이전트)의 IP 주소가 포함되어 있으며, 이 주소를 통해 모바일 노드는 에이전트의 IP 주소를 알 수 있다. 또한 이 메시지는 여러 필드들을 추가로 가지고 있으며, figure 10은 주요 필드들을 보여준다: | |||
* HA 비트(H): 해당 에이전트가 자신이 위치한 네트워크의 HA임을 나타냄. | |||
* FA 비트(F): 해당 에이전트가 FA임을 나타냄. | |||
* 등록 요구 비트(R): 이 네트워크에 있는 모바일 사용자가 FA에 등록해야 함을 나타냄. | |||
** 특히, 모바일 노드가 DHCP로 임시 IP 주소를 얻고 스스로 FA 기능을 수행하려는 경우, 반드시 FA에 등록해야 한다는 것을 의미한다. | |||
* COA(임시 IP 주소) 필드: FA가 제공하는 하나 이상의 COA 목록. | |||
그리고 에이전트 요청(agent solicitation) 방식은, 에이전트의 광고 메시지를 기다리지 않고 모바일 노드가 직접 ICMP type 값 10의 에이전트 요청 메시지를 브로드캐스트 전송하는 방식이다. 에이전트를 수신한 에이전트는 모바일 노드에게 직접 유니캐스트로 에이전트 광고 메시지를 보내며, 이후의 과정은 에이전트 광고 방식과 동일하다. | |||
===Registration with the Home Agent=== | |||
[[파일:Agent advertisement and mobile IP registration.png|섬네일|Figure 11. Agent advertisement and mobile IP registration ]] | |||
모바일 IP 노드가 임시 IP 주소를 받은 뒤에는, 그 주소를 HA에 등록해야 한다. 이 등록은 FA를 통해 수행될 수도 있고, 모바일 IP 노드 자체에 의해 직접 수행될 수도 있다. 해당 문서에서는 전자의 경우에 대해 설명한다. FA에 의해 수행되는 방식은 다음의 네 단계로 이루어진다: | |||
1. 모바일 노드는 FA 광고(foreign agent advertisement) 메시지를 받은 후, FA에게 모바일 IP 등록 메시지를 보낸다. 이 등록 메시지는 UDP 데이터그램 내에 담겨 포트 434번으로 전송된다. 이 데이터그램은 임시 IP 주소/영구 IP 주소, HA의 주소, 요청된 등록의 유효 시간, 64비트 등록 식별자(registration identification) 등의 정보들을 포함한다.<br> | |||
2. FA는 등록 메시지를 수신한 후, 모바일 노드의 영구 IP 주소를 기록한다. 이 시점부터 FA는 "목적지가 이 영구 IP 주소인 캡슐화된 데이터그램을 나중에 수신하게 될 것"이라는 사실을 인식한다. 왜냐하면 HA는 앞으로 이 모바일 노드에게 가는 패킷을 임시 주소로 터널링해서 보내므로, FA가 앞으로 이 모바일 노드에게 전송된 캡슐화된 패킷을 받고, 이를 디캡슐화하여 모바일 노드에게 전달할 책임을 지기 때문이다. 그리고 FA는 모바일 IP 등록 메시지를 UDP 데이터 그램에 담아 HA의 포트 434번으로 전송한다. 이 데이터그램은 임시 IP 주소, 영구 IP 주소, HA의 주소, 요청된 캡슐화 형식, 요청된 등록 유효 시간, 등록 식별자 등의 정보들을 포함한다.<br> | |||
3. HA는 등록 요청을 수신한 뒤, authenticity와 correctness를 검사한다. 이후 HA는 모바일 노드의 영구 IP 주소를 임시 IP 주소와 바인딩(binding)한다. 이 시점 이후로는 HA로 도착한 모바일 노드를 목적지로 하는 데이터그램은 임시 IP 주소로 터널링되어 FA로 전송된다. HA는 등록 응답 메시지를 전송하며, 이 메시지에는 HA의 주소, 영구 IP 주소, 실제 등록 유효 시간, 해당 응답이 만족시키는 등록 요청의 등록 식별자가 포함된다.<br> | |||
4. FA는 등록 응답을 수신하고, 이를 모바일 노드에게 전달한다. 이 시점에서 등록이 완료되며, 모바일 노드는 자신의 영구 IP 주소로 전송된 데이터그램을 수신할 수 있게 된다. 이는 figure 11에 잘 나타나 있다. | |||
모바일 노드가 FA의 네트워크를 떠날 경우, FA가 임시 IP 주소를 명시적으로 해제할 필요는 없으며, 이는 모바일 노드가 새로운 네트워크에 이동하여 새 임시 IP 주소를 등록할 때 자동으로 처리된다. | |||
==Managing Mobility in Cellular Networks== | |||
해당 문서는 셀룰러 네트워크에서의 모빌리티 관리에 초점을 맞추며, 이에 대해 GSM 셀룰러 네트워크를 기준으로 설명한다. Mobile IP와 마찬가지로, GSM은 간접 라우팅(indirect routing) 방식을 채택한다. 이 방식에서는 상대방(correspondent)의 호출을 먼저 먼저 모바일 사용자의 홈 네트워크로 라우팅한 후, 거기서 방문 네트워크(visited network)로 전달한다. GSM 용어에서는 모바일 사용자의 홈 네트워크를 home PLMN(home public land mobile network)라고 부르며, 해당 문서에서는 이를 '홈 네트워크'라는 용어로 통일한다. 이때 '''홈 네트워크는 모바일 노드가 가입된 셀룰러 사업자에 의해 운영되는 네트워크'''를 의미한다. 또한, 방문 네트워크<ref>GSM 용어로는 visited PLMN이라고 한다.</ref>(visited network)는 모바일 노드가 현재 위치한 네트워크를 의미한다. 모바일 IP와 마찬가지로, 홈 네트워크와 방문 네트워크의 책임은 상당히 다르다. | |||
홈 네트워크는 '''HLR(Home Location Register)'''라는 데이터베이스를 관리하는데, 이 안에는 각 가입자의 영구 휴대전화 번호와 가입자 프로필 정보가 저장되어 있다. 이때 중요한 점은, '''HLR이 이들 가입자의 현재 위치 정보도 저장'''한다는 것이다. 즉, 모바일 사용자가 다른 사업자의 셀룰러 네트워크에서 로밍 중이라면, HLR은 그 모바일 사용자에게 전화를 걸 때 호출이 라우팅되어야 할 방문 네트워크 내의 주소 정보를 포함한다. 홈 네트워크 안에는 GMSC(Gateway Mobile Services Switching Center)라는 특수한 스위치가 있고, 상대방이 모바일 사용자에게 전화를 걸면 이 GSMC가 호출된다. | |||
방문 네트워크는 VLR(Visitor Lacation Register)이라는 데이터베이스를 유지한다. VLR에는 현재 해당 네트워크 영역에 위치한 모바일 사용자에 대한 항목이 저장된다. 이때 모바일 사용자가 들어오고 나갈 때마다 VLR 항목은 생성되고 제거된다. 일반적으로 VLR은 MSC(Mobile Switching Center)와 함께 위치한다. | |||
===Routing Calls to a Mobile User=== | |||
[[파일:Placing a call to a mobile user- Indirect routing.png|섬네일|Figure 12. Placing a call to a mobile user: Indirect routing ]] | |||
Figure 12는 간단한 예제를 통해 GSM 모바일 사용자에게 호출을 연결하는 과정을 설명한다: | |||
1. 상대방이 모바일 사용자의 전화번호를 누른다. 이 번호 자체는 어떤 특정한 전화선이나 위치를 의미하지 않는다. 하지만, 이 번호의 앞자리 숫자들만으로도 전 세계적으로 해당 모바일의 홈 네트워크를 식별할 수 있다. 호출은 상대방으로부터 일반적인 유선 전화망인 PSTN을 거쳐 모바일의 홈 네트워크에 있는 GMSC로 라우팅된다.<br> | |||
2. GMSC는 호출을 수신하고, 모바일 사용자의 위치를 확인하기 위해 HLR을 조회한다. 가장 단순한 경우에는 HLR이 로밍 번호인 MSRN(Mobile Station Roaming Number)을 반환한다. MSRN은 모바일 사용자의 영구적인 전화번호와는 다르며, 모바일이 방문 네트워크에 진입할 때 임시로 부여되는 번호이며, 모바일 IP의 임시 IP 주소와 비슷한 역할을 한다.<ref>이 번호는 상대방이나 모바일 사용자에게는 보이지 않는다.</ref> 만약 HLR에 로밍 번호가 없다면 HLR은 방문 네트워크의 VLR 주소를 반환하며, GMSC는 이를 통해 VLR에 모바일 사용자의 MSRN을 질의한다.<br> | |||
3. 홈 MSC는 로밍 번호를 얻은 후, 방문 네트워크의 MSC로 두 번째 구간 호출을 설정한다. 호출은 다음과 같이 완성된다: | |||
상대방 → GMSC → 방문 네트워크의 MSC → 기지국(Base Station) → 모바일 사용자 | |||
이것이 모든 과정을 매끄럽게 설명하는 것은 아니다. 그 이유는 HLR이 모바일 사용자의 위치 정보<ref>모바일 사용자가 위치한 방문 네트워크의 정보</ref>를 어떻게 얻는지가 설명되지 않았기 때문이다. 모바일 전화기가 켜지거나 새로운 VLR이 관리하는 방문 네트워크 영역에 들어오면, 모바일은 방문 네트워크에 등록(register) 해야 한다. 이 등록은 모바일과 VLR 사이에 시그널링 메시지를 교환함으로써 이루어진다. 이후 VLR은 모바일의 HLR로 위치 갱신(location update) 요청 메시지를 전송한다. 이 메시지에는 다음 중 하나가 포함된다: | |||
* 해당 모바일을 연결할 수 있는 로밍 번호(MSRN) | |||
* 혹은 이후에 로밍 번호를 얻도록 조회하기 위해 사용되는 VLR의 주소 | |||
또한 이 절차의 일부분으로서, VLR은 HLR로부터 모바일 사용자의 가입자 정보를 얻고, 방문 네트워크에서 어떤 서비스가 허용되어야 하는지 결정한다. | |||
===Handoffs in GSM=== | |||
[[파일:Handoff scenario between BSes with a common MSC.png|섬네일|Figure 13. Handoff scenario between BSes with a common MSC]] | |||
'''핸드오프(handoff)는 모바일 장치가 통화 중에 하나의 기지국에서 다른 기지국으로 연결을 바꾸는 것'''이다. Figure 13에서 처럼, 통화중이던 모바일 노드는 처음에는 이전의 기지국(old BS)을 통해 라우팅되고, 핸드오프 이후에는 새 기지국(new BS)를 통해 라우팅된다. 핸드오프가 일어나면 단순히 새로운 기지국으로 무선 송수신을 바꾸는 것뿐만 아니라, 네트워크 내부의 스위칭 지점에서 통화 경로 자체도 재설정된다. 우선 이전의 기지국과 새 기지국이 같은 MSC를 공유한다고 가정하자. 이 경우 핸드오프는 해당 MSC에서 라우팅만 바꾸면 된다. | |||
핸드오프가 발생하는 이유는 여러 가지가 있다. 하나는 현재 기지국과 모바일 간 신호가 약해져서 통화가 끊길 위험이 있는 경우이고, 다른 하나는 특정 셀에 통화가 몰려 과부하가 걸린 경우이다. 핸드오프의 필요성을 측정하기 위해 모바일 노드는 연결된 기지국의 비콘(beacon) 신호 세기뿐만 아니라 근처 기지국에서 들리는 비콘 신호도 주기적으로 측정한다. 이 측정은 1초에 한두 번 이루어지며, 모바일 노드가 속한 기지국으로 보고된다. 기지국은 아래의 정보를 바탕으로 핸드오프의 수행을 결정한다: | |||
* 수신 신호 강도 | |||
* 인근 셀의 부하 상황 등... | |||
[[파일:Steps in accomplishing a handoff between BSes with a common MSC.png|섬네일|Figure 14. Steps in accomplishing a handoff between BSes with a common MSC]] | |||
Figure 14에 나타나 있듯이, 핸드오프의 절차는 아래와 같다: | |||
# 이전 기지국이 방문 MSC에 핸드오프가 필요함을 알리고, 모바일을 넘길 수 있는 후보 기지국들을 통보한다. | |||
# 방문 네트워크의 MSC는 새로운 기지국으로 경로 설정(path setup)을 시작하고, 필요한 자원을 할당하며, 새 기지국에게 핸드오프가 임박했음을 알린다. | |||
# 새 기지국은 사용할 무선 채널을 할당하고 활성화한다. | |||
# 새 기지국은 방문 네트워크의 MSC와 이전 기지국에 경로가 준비되었음을 알리고, 모바일 노드에 필요한 정보를 함께 제공한다. | |||
# 모바일에게 핸드오프 수행 요청을 보낸다.<ref>이 시점 전까지 모바일 노드는 네트워크가 미리 핸드오프를 준비한 사실을 인식하지 못한다.</ref> | |||
# 모바일 노드와 새 기지국은 무선 채널 활성화를 위한 메시지를 주고받는다. | |||
# 모바일은 "핸드오프 완료(handoff complete)" 메시지를 새 기지국에 전송한다.<ref>이전 기지국과의 연결을 위해서 사용되던 자원의 할당은 해제된다.</ref> | |||
# "핸드오프 완료(handoff complete)" 메시지는 다시 방문 네트워크의 MSC로 전달된다. | |||
[[파일:Rerouting via the anchor MSC.png|가운데|섬네일|500x500픽셀|Figure 15. Rerouting via the anchor MSC ]] | |||
하지만 위 절차는 모바일 노드가 통화 중 같은 MSC에 연결된 기지국 사이에서 이동하는 경우를 가정한 것이다. 따라서 통화 중 다른 MSC에 속한 기지국 사이에서 이동하는 경우를 해결하기 위해서, GSM은 anchor MSC라는 개념을 정의한다. Anchor MSC는 통화가 시작될 때 모바일 노드가 처음 연결한 MSC이며, 통화 중에는 변하지 않는다. 즉, 모바일 노드가 여러 MSC로 이동하더라도, 통화는 항상 다음과 같은 흐름을 따른다: | |||
GMSC → 앵커 MSC → 현재 방문 MSC → 기지국 → 모바일 노드 | |||
따라서 통화 중에는 항상 최대 3개의 MAC만이 통화 경로에 관여하며, 이는 figure 15에 잘 나타나 있다. 아래는 GSM 모빌리티 관리와 Mobile IP 모빌리티 관리의 구조적 공통점을 보여주는 표이다. | |||
{| class="wikitable" | |||
|+ | |||
!GSM 요소 | |||
!설명(GSM 기준) | |||
!Mobile IP 요소 | |||
|- | |||
|Home system | |||
|모바일 사용자의 '''영구 전화번호'''가 소속된 네트워크 | |||
|Home network | |||
|- | |||
|GMSC, HRL | |||
|'''Home MSC''': 모바일에게 라우팅 가능한 주소를 얻기 위한 연락 지점 | |||
'''HLR''': 사용자의 영구 번호, 프로필, 현재 위치, 가입 정보 등을 저장하는 '''홈 시스템 내의 DB''' | |||
|Home agent | |||
|- | |||
|Visited system | |||
|사용자가 '''현재 위치한 네트워크''', 홈 네트워크가 아님 | |||
|Visited network | |||
|- | |||
|MSC, VLR | |||
|'''Visited MSC''': 현재 셀에 있는 모바일 노드의 통화 설정 관리 | |||
'''VLR''': 방문 시스템에서 모바일 사용자 정보(일시적)를 보관 | |||
|Foreign Agent | |||
|- | |||
|MSRN | |||
|홈 MSC와 방문 MSC 사이에서 통화를 라우팅할 수 있는 '''임시 번호''' | |||
|Care-of Address | |||
|} | |||
==Wireless and Mobility: Impact on Higher-Layer Protocols== | |||
해당 문서에서는 무선 네트워크를 구현하기 위해서 link/network layer가 유선 네트워크의 그것과 상당히 다르게 구현되는 것을 설명하였다. 하지만 직관적으로, 무선 네트워크와 유선 네트워크 사이의 차이점은 application/transport layer에서는 잘 드러나지 않는다. 그 이유는 network layer가 유선과 무선 모두에서 상위 계층에 동일한 best-effort 데이터 전달 모델을 제공하기 때문이다. 또한, 프로토콜 스택의 각 layer는 분리되어 있으므로, TCP나 UDP 같은 프로토콜이 유선 및 무선 네트워크 모두에게 transport layer 서비스를 제공하기 때문이다. | |||
하지만, transport layer, 특히 TCP 프로토콜의 관점에서 무선 네트워크는 성능에 매우 큰 영향을 준다. 모바일 노드들의 경우, 패킷 손실은 네트워크 혼잡, 핸드오프 등의 여러 상황에서 발생할 수 있다. 이때 모든 경우에서 TCP의 ACK은 단지 세그먼트가 온전하게 수신되지 않았음을 송신자에게 알려줄 뿐이며, 송신자는 세그먼트 손실이 혼잡, 핸드오프, 혹은 비트 오류 때문인지 알 수 없다. 따라서 모든 경우에서 송신측 호스트의 반응은 세그먼트를 재전송하는 것이다. 또한 이 경우, TCP는 congestion에 대처하기 위해서 패킷 손실이 일어났을 때 항상 자신의 [[TCP Congestion Control|cwnd]]를 줄인다. 이때, 무선 네트워크에서는 비트 오류 발생률이 유선 네트워크보다 훨씬 더 높지만, 실제로는 TCP 송신자가 cwnd(전송률)를 줄일 이유는 없다. 물론, 무선 네트워크 자체의 대역폭 한계로 인한 속도의 한계는 덤이다. | |||
==각주== | ==각주== | ||
2025년 6월 18일 (수) 00:52 기준 최신판
상위 문서: 컴퓨터 네트워크
개요

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/CA
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번째 미니 슬롯에서 수신하는 값 Z*i,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
자세한 내용은 WiFi: IEEE 802.11 문서를 참조하십시오.
Cellular Internet access
자세한 내용은 Cellular Internet access 문서를 참조하십시오.
Mobility
모바일 노드(Mobile node)란 시간이 지남에 따라 네트워크에서 자신의 액세스 포인트(access point)를 변경하는 노드를 말한다.

이때 '모빌리티'라는 용어는 여러 가지 의미로 사용되기 때문에, 모빌리티가 어떠한 의미를 가지고 있는지 살펴보아야 한다. Figure 8은 network layer에서 모빌리티의 스펙트럼을 나타낸다. Figure 8에서의 왼쪽 끝에서는, 사용자가 무선 네트워크 인터페이스 카드를 장착한 노트북을 들고 건물 안을 돌아다닐 수 있는 수준의 모빌리티를 의미한다. 이는 network layer 관점에서 모바일(mobile)하지 않으며, 사용자가 위치와 관계없이 동일한 액세스 포인트에 연결된다면 link layer 관점에서도 모바일하지 않다. Figure 8에서의 오른쪽 끝은 고속도로를 주행하면서도, 서버와의 TCP 연결을 유지할 수 있는 수준의 모빌리티이다. 이는 확실히 모바일하다. 이 극단의 사이에는, 노트북을 사무실에서 카페로 이동하면서 새로운 위치에서 네트워크에 연결하는 것을 지원하는 수준의 모빌리티이다. 이는 확실히 덜 모바일하지만, 여전히 모바일 사용자이며, 이동 중에는 연결을 유지할 필요가 없다.
모바일 전화의 경우에는, 전화번호[6]는 사용자가 서로 다른 제공자의 이동 통신망을 넘나들어도 동일하게 연결된다. 하지만 노트북이 IP 네트워크 간을 이동할 때 동일한 IP 주소를 유지하는지에 대한 질문의 답은 상황에 따라 다르다.
- 고속도로를 달리는 자동차 내에서 TCP 연결을 끊김 없이 유지하기 위해서는, IP 주소가 그대로 유지되는 것이 유리하다. 이때 모바일 엔티티가 이동 중에도 IP 주소가 변하지 않는다면, 애플리케이션 관점에서 모빌리티는 투명(transparent)하다고 한다.[7] Mobile IP는 투명성을 제공하여, 모바일 노드가 네트워크 사이를 이동하면서도 영구 IP 주소를 유지할 수 있도록 한다.
- 반면에, 노트북을 꺼서 집으로 가져가고, 집에서 켜서 사용하는 경우에는 상황은 다르다. 이 경우 노트북은 주로 클라이언트로 작동하며 IP 주소가 무엇이든 큰 문제가 되지 않는다. 특히 이러한 경우에는 ISP가 임시로 할당한 주소를 사용해도 문제가 없으며, 이는 DHCP 프로토콜에 의해서 지원된다.

아래는 모빌리티를 설명하기 위해 사용할 기본적인 용어에 대한 설명이다:
- Home Network(홈 네트워크): 모바일 사용자가 기본적으로 소속된 네트워크이며, 영구 IP 주소(permanent address)가 이 네트워크에 속한다.
- Permanent Address(영구 IP 주소): 모바일 장치의 고정된 IP 주소이며, 이동하더라도 이 주소는 변하지 않는다.
- Home Agent(HA): 홈 네트워크 내의 에이전트로, 모바일 단말이 떨어져 있어도 이를 대신하여 모빌리티 관리 기능을 수행한다.
- Visited Network(방문 네트워크): 모바일 단말이 현재, 실제로 접속된 네트워크를 의미한다.
- Care-of Address(임시 IP 주소): 방문 네트워크 내에서 임시로 부여되는 IP 주소를 의미한다.
- Foreign Agent(FA): 방문 네트워크에 위치하며, 모바일 장치를 대신해 모빌리티 관리 기능을 수행한다. 이때 다음의 두 가지 주요 역할을 수행한다:
- 모바일 노드를 위한 임시 IP 주소를 생성한다.
- 해당 모바일 기기의 HA에게 해당 모바일 노드가 자신의 네트워크에 있고, 지금의 임시 IP 주소를 사용하고 있다는 사실을 알려준다.
- Correspondent(통신 상대자): 모바일 장치와 통신하려는 엔티티이다.
Addressing
모바일 기기의 모빌리티가 네트워크 애플리케이션에 대해 투명하게 보이도록 하려면, 모바일 노드가 네트워크 간을 이동하더라도 IP 주소를 유지해야 한다. 이를 위해서는 모바일 노드가 방문 네트워크에 위치할 때, 해당 노드의 영구 IP 주소로 전송된 모든 트래픽은 이제 방문 네트워크로 라우팅되어야 한다. 이를 구현하기 위한 한가지 방법은 방문 네트워크가 다른 모든 네트워크에 해당 모바일 노드가 자신에게 속해 있다고 광고(advertise)하는 것이다. 즉, 방문 네트워크는 모바일 노드의 영구 IP 주소에 대한 매우 구체적인 경로를 이웃 네트워크에 알리기만 하면 된다. 하지만 이는 확장성(scalabillity) 측면에서 문제가 있다. 모빌리티 관리가 네트워크 라우터의 책임이라면, 라우터들은 잠재적으로 수백만 개의 모바일 노드에 대한 포워딩 테이블 항목을 유지하고, 노드가 이동할 때마다 이 항목들을 갱신해야 한다. 즉 사실상 불가능하며, 실제로 쓰이는 방식이 아니다.
이러한 문제에 대한 대안적인 접근법은 모빌리티의 구현을 네트워크 코어가 아닌 네트워크 엣지에서 하는 것이다. 이를 위해 모바일 노드의 홈 네트워크를 이용하며, 모바일 노드의 HA는 모바일 노드가 어느 외부 네트워크에 위치해 있는지를 추적한다. 이를 구현하기 위해서는 모바일 노드[8]와 HA 사이에 위치 갱신을 위한 프로토콜이 필요하다.
이때 모바일 노드의 위치를 아는 것은 HA뿐이고 네트워크 전반의 라우터는 모르므로, 단순히 데이터그램을 모바일 노드의 영구 IP 주소로 지정해 네트워크 계층 인프라로 보내는 것만으로는 충분하지 않다. 이러한 문제를 해결하기 위해서, 간접 라우팅(indirect routing)과 직접 라우팅(direct routing)이라는 두가지 접근법이 사용된다.
Indirect Routing to a Mobile Node

어떤 통신 상대(correspondent)가 어떤 모바일 노드에 데이터그램을 보내고자 한다고 가정하자. 간접 라우팅(Indirect routing)에서는 통신 상대가 단순히 데이터그램을 모바일 노드의 영구 IP 주소를 통해 네트워크로 보낸다. 이 통신 상대는 모바일 노드가 현재 홈 네트워크에 있는지, 외부 네트워크에 있는지 전혀 모르며, 모빌리티는 통신 상대에게 완전히 투명하다. 이러한 데이터그램은 일반적인 라우팅을 통해 모바일 노드의 홈 네트워크로 먼저 전달된다. 이는 figure 10의 단계 1에 해당한다.

패킷을 받은 HA는 FA와 상호작용하여 모바일 노드의 임시 IP 주소를 추적할 뿐 아니라, 홈 네트워크 소속이지만 현재는 방문 네트워크에 있는 모바일 노드에게 향한 데이터그램을 감지하여 처리하는 기능을 있다. HA는 단계 1에서 받은 데이터그램을 두 단계로 forwarding한다. 먼저 모바일 노드의 임시 IP 주소를 사용하여 FA로 데이터그램을 forwarding하고, FA는 그것을 모바일 노드로 forwarding한다. 이는 figure 10의 단계 2, 3에 해당한다.
단계 2, 3을 좀 더 자세히 살펴보자. HA는 network layer가 데이터그램을 방문 네트워크로 forwarding하도록 모바일 노드의 임시 IP 주소를 사용해 데이터그램을 주소 지정해야 한다. 하지만 데이터그램을 수신하는 애플리케이션은 HA를 경유했다는 사실을 알아서는 안되므로, 통신 상대의 원래 데이터그램을 그대로 유지해야할 필요가 있다. 이를 달성하기 위해 HA는 통신 상대의 원래 데이터그램을 더 큰 새로운 데이터그램 안에 캡슐화(encapsulation) 하여 보낸다. 이는 임시 IP 주소로 지정되어 전송되어. FA를 이 캡슐화된 데이터그램을 수신하고, 원래의 데이터그램을 추출(decapsulation) 하여 모바일 노드로 전달한다. 이는 IPv4를 기반으로 IPv6를 구현하기 위해 터널링(tunneling)을 통해 지원하는 방식과 유사하다. 이는 figure 11에 나타나 있다.
모바일 노드가 통신 상대에게 데이터그램을 경우는 매우 간단하다. 모바일 노드는 자신의 영구 IP 주소를 출발지 주소(source)로, 통신 상대의 주소를 목적지 주소(destination)로 하여 직접 데이터그램을 전송하면 된다. 이는 figure 10의 단계 4에 해당하며, 해당 figure에서 알 수 있듯이 HA를 경유할 필요가 없다.
하지만 이는 triangle routing 문제를 초래할 수 있다. 이는 통신 상대자와 모바일 노드가 같은 네트워크에 있는데도 HA를 경유하여 비효율성과 지연을 초래하는 문제이다.
Direct Routing to a Mobile Node

직접 라우팅(direct routing) 은 삼각 라우팅 문제의 비효율성을 극복하지만, 더 복잡하게 구현된다. 직접 라우팅 방식에서는, 통신 상대 네트워크에 있는 상대 에이전트(correspondent agent)가 먼저 모바일 노드의 임시 IP 주소를 알아내야 한다. 이는 상대 에이전트가 HA에게 질의하여 모바일 노드의 임시 IP 주소를 얻는 방식으로 가능하다.[9] 이는 figure 12의 단계 1, 2에 잘 나타나 있다. 그리고 상대 에이전트는 이후에 데이터그램을 모바일 노드의 임시 IP 주소로 터널링하여 전송한다. 이는 간접 라우팅 방식에서 HA가 수행하는 터널링과 유사하다. 이는 figure 12의 단계 3, 4에 잘 나타나 있다.
이때 모바일 노드가 한 외부 네트워크에서 다른 외부 네트워크로 이동할 경우, 데이터를 어떻게 새로운 외부 네트워크로 전달할 것인지는 또 다른 문제이다. 간접 라우팅의 경우에는 HA에 저장된 임시 IP 주소를 갱신하는 것만으로 해결된다. 하지만 직접 라우팅에서는 상대 에이전트가 세션 시작 시점에 한 번만 HA에 임시 IP 주소를 질의하므로, HA에서 COA를 갱신하는 것만으로는 새로운 외부 네트워크로 데이터그램을 전달하는 문제를 해결할 수 없다.

이에 대한 문제를 해결하기 위해서 사용되는 방식을 알아보기 위해 데이터가 현재, 세션이 처음 시작될 때 모바일 노드가 위치했던 외부 네트워크로 전달되고 있는 상황을 가정하자. 이는 figure 13의 단계 1에 해당한다. 이때 모바일 노드가 처음에 있었던 외부 네트워크의 FA를 anchor FA라고 한다. 이후 모바일 노드는 새로운 외부 네트워크로 이동하며(단계 2), 모바일 노드는 새로운 FA에 등록되고(단계 3), 새로운 FA는 anchor FA에게 모바일 노드의 새로운 임시 IP 주소를 전송한다(단계 4). anchor FA는 모바일 노드가 떠났다는 것을 알고, 캡슐화된 데이터그램을 수신하면, 이를 다시 캡슐화한 후 새로운 임시 IP 주소를 사용하여 모바일 노드에게 전달한다(단계 5). 이후에도 모바일 노드가 또 다른 새로운 외부 네트워크로 이동한다면, 새롭게 방문한 네트워크의 FA는 다시 anchor FA와 연락하여 이 새로운 외부 네트워크로 전달 경로(forwarding path)를 설정한다.
Mobile IP
모바일 IP(Mobile IP)는 모빌리티를 지원하기 위한 인터넷 아키텍쳐와 프로토콜이다. 모바일 IP 표준은 다음의 세 가지 주요 요소로 구성된다:
- 에이전트 발견(Agent Discovery): 모바일 IP는 에이전트가 모바일 노드에게 자신을 광고하는 데 사용하는 프로토콜과, 모바일 노드가 이러한 에이전트를 찾기 위해 사용하는 프로토콜을 정의한다.
- HA 등록(Registration with the Home Agent): 모바일 노드(혹은 FA)가 임시 IP 주소를 모바일 노드의 HA에 등록하거나 해지하는 데 사용하는 프로토콜을 정의한다.
- 데이터그램의 간접 라우팅(Indirect Routing of Datagrams): HA가 모바일 노드에게 데이터그램을 전달하는 방식, 오류 처리 규칙, 다양한 캡슐화 형식 등을 정의한다.
Registration with the Home Agent
새로운 네트워크에 도착한 모바일 IP 노드는 해당 네트워크의 FA/HA에 대해서 알아야 한다. 새로운 FA를 발견하면, 모바일 노드는 비로소 새로운 외부 네트워크로 이동했다는 사실을 인식한다. 이 과정을 에이전트 발견(agent discovery)이라고 한다. 이는 에이전트 광고(agent advertisement)와 에이전트 요청(agent solicitation)이라는 두 가지 방식을 통해 구현된다.

먼저 에이전트 광고(agent advertisement)는 기존의 라우터 발견 프로토콜을 확장하여 FA/HA가 메시지를 주기적으로 브로드캐스트하여 자신의 서비스를 광고하는 방식이다. 이 메시지는 ICMP 형식이고, type 필드 값은 9(라우터 디스커버리)이다. 이 메시지에는 라우터(즉, 에이전트)의 IP 주소가 포함되어 있으며, 이 주소를 통해 모바일 노드는 에이전트의 IP 주소를 알 수 있다. 또한 이 메시지는 여러 필드들을 추가로 가지고 있으며, figure 10은 주요 필드들을 보여준다:
- HA 비트(H): 해당 에이전트가 자신이 위치한 네트워크의 HA임을 나타냄.
- FA 비트(F): 해당 에이전트가 FA임을 나타냄.
- 등록 요구 비트(R): 이 네트워크에 있는 모바일 사용자가 FA에 등록해야 함을 나타냄.
- 특히, 모바일 노드가 DHCP로 임시 IP 주소를 얻고 스스로 FA 기능을 수행하려는 경우, 반드시 FA에 등록해야 한다는 것을 의미한다.
- COA(임시 IP 주소) 필드: FA가 제공하는 하나 이상의 COA 목록.
그리고 에이전트 요청(agent solicitation) 방식은, 에이전트의 광고 메시지를 기다리지 않고 모바일 노드가 직접 ICMP type 값 10의 에이전트 요청 메시지를 브로드캐스트 전송하는 방식이다. 에이전트를 수신한 에이전트는 모바일 노드에게 직접 유니캐스트로 에이전트 광고 메시지를 보내며, 이후의 과정은 에이전트 광고 방식과 동일하다.
Registration with the Home Agent

모바일 IP 노드가 임시 IP 주소를 받은 뒤에는, 그 주소를 HA에 등록해야 한다. 이 등록은 FA를 통해 수행될 수도 있고, 모바일 IP 노드 자체에 의해 직접 수행될 수도 있다. 해당 문서에서는 전자의 경우에 대해 설명한다. FA에 의해 수행되는 방식은 다음의 네 단계로 이루어진다:
1. 모바일 노드는 FA 광고(foreign agent advertisement) 메시지를 받은 후, FA에게 모바일 IP 등록 메시지를 보낸다. 이 등록 메시지는 UDP 데이터그램 내에 담겨 포트 434번으로 전송된다. 이 데이터그램은 임시 IP 주소/영구 IP 주소, HA의 주소, 요청된 등록의 유효 시간, 64비트 등록 식별자(registration identification) 등의 정보들을 포함한다.
2. FA는 등록 메시지를 수신한 후, 모바일 노드의 영구 IP 주소를 기록한다. 이 시점부터 FA는 "목적지가 이 영구 IP 주소인 캡슐화된 데이터그램을 나중에 수신하게 될 것"이라는 사실을 인식한다. 왜냐하면 HA는 앞으로 이 모바일 노드에게 가는 패킷을 임시 주소로 터널링해서 보내므로, FA가 앞으로 이 모바일 노드에게 전송된 캡슐화된 패킷을 받고, 이를 디캡슐화하여 모바일 노드에게 전달할 책임을 지기 때문이다. 그리고 FA는 모바일 IP 등록 메시지를 UDP 데이터 그램에 담아 HA의 포트 434번으로 전송한다. 이 데이터그램은 임시 IP 주소, 영구 IP 주소, HA의 주소, 요청된 캡슐화 형식, 요청된 등록 유효 시간, 등록 식별자 등의 정보들을 포함한다.
3. HA는 등록 요청을 수신한 뒤, authenticity와 correctness를 검사한다. 이후 HA는 모바일 노드의 영구 IP 주소를 임시 IP 주소와 바인딩(binding)한다. 이 시점 이후로는 HA로 도착한 모바일 노드를 목적지로 하는 데이터그램은 임시 IP 주소로 터널링되어 FA로 전송된다. HA는 등록 응답 메시지를 전송하며, 이 메시지에는 HA의 주소, 영구 IP 주소, 실제 등록 유효 시간, 해당 응답이 만족시키는 등록 요청의 등록 식별자가 포함된다.
4. FA는 등록 응답을 수신하고, 이를 모바일 노드에게 전달한다. 이 시점에서 등록이 완료되며, 모바일 노드는 자신의 영구 IP 주소로 전송된 데이터그램을 수신할 수 있게 된다. 이는 figure 11에 잘 나타나 있다.
모바일 노드가 FA의 네트워크를 떠날 경우, FA가 임시 IP 주소를 명시적으로 해제할 필요는 없으며, 이는 모바일 노드가 새로운 네트워크에 이동하여 새 임시 IP 주소를 등록할 때 자동으로 처리된다.
Managing Mobility in Cellular Networks
해당 문서는 셀룰러 네트워크에서의 모빌리티 관리에 초점을 맞추며, 이에 대해 GSM 셀룰러 네트워크를 기준으로 설명한다. Mobile IP와 마찬가지로, GSM은 간접 라우팅(indirect routing) 방식을 채택한다. 이 방식에서는 상대방(correspondent)의 호출을 먼저 먼저 모바일 사용자의 홈 네트워크로 라우팅한 후, 거기서 방문 네트워크(visited network)로 전달한다. GSM 용어에서는 모바일 사용자의 홈 네트워크를 home PLMN(home public land mobile network)라고 부르며, 해당 문서에서는 이를 '홈 네트워크'라는 용어로 통일한다. 이때 홈 네트워크는 모바일 노드가 가입된 셀룰러 사업자에 의해 운영되는 네트워크를 의미한다. 또한, 방문 네트워크[10](visited network)는 모바일 노드가 현재 위치한 네트워크를 의미한다. 모바일 IP와 마찬가지로, 홈 네트워크와 방문 네트워크의 책임은 상당히 다르다.
홈 네트워크는 HLR(Home Location Register)라는 데이터베이스를 관리하는데, 이 안에는 각 가입자의 영구 휴대전화 번호와 가입자 프로필 정보가 저장되어 있다. 이때 중요한 점은, HLR이 이들 가입자의 현재 위치 정보도 저장한다는 것이다. 즉, 모바일 사용자가 다른 사업자의 셀룰러 네트워크에서 로밍 중이라면, HLR은 그 모바일 사용자에게 전화를 걸 때 호출이 라우팅되어야 할 방문 네트워크 내의 주소 정보를 포함한다. 홈 네트워크 안에는 GMSC(Gateway Mobile Services Switching Center)라는 특수한 스위치가 있고, 상대방이 모바일 사용자에게 전화를 걸면 이 GSMC가 호출된다.
방문 네트워크는 VLR(Visitor Lacation Register)이라는 데이터베이스를 유지한다. VLR에는 현재 해당 네트워크 영역에 위치한 모바일 사용자에 대한 항목이 저장된다. 이때 모바일 사용자가 들어오고 나갈 때마다 VLR 항목은 생성되고 제거된다. 일반적으로 VLR은 MSC(Mobile Switching Center)와 함께 위치한다.
Routing Calls to a Mobile User

Figure 12는 간단한 예제를 통해 GSM 모바일 사용자에게 호출을 연결하는 과정을 설명한다:
1. 상대방이 모바일 사용자의 전화번호를 누른다. 이 번호 자체는 어떤 특정한 전화선이나 위치를 의미하지 않는다. 하지만, 이 번호의 앞자리 숫자들만으로도 전 세계적으로 해당 모바일의 홈 네트워크를 식별할 수 있다. 호출은 상대방으로부터 일반적인 유선 전화망인 PSTN을 거쳐 모바일의 홈 네트워크에 있는 GMSC로 라우팅된다.
2. GMSC는 호출을 수신하고, 모바일 사용자의 위치를 확인하기 위해 HLR을 조회한다. 가장 단순한 경우에는 HLR이 로밍 번호인 MSRN(Mobile Station Roaming Number)을 반환한다. MSRN은 모바일 사용자의 영구적인 전화번호와는 다르며, 모바일이 방문 네트워크에 진입할 때 임시로 부여되는 번호이며, 모바일 IP의 임시 IP 주소와 비슷한 역할을 한다.[11] 만약 HLR에 로밍 번호가 없다면 HLR은 방문 네트워크의 VLR 주소를 반환하며, GMSC는 이를 통해 VLR에 모바일 사용자의 MSRN을 질의한다.
3. 홈 MSC는 로밍 번호를 얻은 후, 방문 네트워크의 MSC로 두 번째 구간 호출을 설정한다. 호출은 다음과 같이 완성된다:
상대방 → GMSC → 방문 네트워크의 MSC → 기지국(Base Station) → 모바일 사용자
이것이 모든 과정을 매끄럽게 설명하는 것은 아니다. 그 이유는 HLR이 모바일 사용자의 위치 정보[12]를 어떻게 얻는지가 설명되지 않았기 때문이다. 모바일 전화기가 켜지거나 새로운 VLR이 관리하는 방문 네트워크 영역에 들어오면, 모바일은 방문 네트워크에 등록(register) 해야 한다. 이 등록은 모바일과 VLR 사이에 시그널링 메시지를 교환함으로써 이루어진다. 이후 VLR은 모바일의 HLR로 위치 갱신(location update) 요청 메시지를 전송한다. 이 메시지에는 다음 중 하나가 포함된다:
- 해당 모바일을 연결할 수 있는 로밍 번호(MSRN)
- 혹은 이후에 로밍 번호를 얻도록 조회하기 위해 사용되는 VLR의 주소
또한 이 절차의 일부분으로서, VLR은 HLR로부터 모바일 사용자의 가입자 정보를 얻고, 방문 네트워크에서 어떤 서비스가 허용되어야 하는지 결정한다.
Handoffs in GSM

핸드오프(handoff)는 모바일 장치가 통화 중에 하나의 기지국에서 다른 기지국으로 연결을 바꾸는 것이다. Figure 13에서 처럼, 통화중이던 모바일 노드는 처음에는 이전의 기지국(old BS)을 통해 라우팅되고, 핸드오프 이후에는 새 기지국(new BS)를 통해 라우팅된다. 핸드오프가 일어나면 단순히 새로운 기지국으로 무선 송수신을 바꾸는 것뿐만 아니라, 네트워크 내부의 스위칭 지점에서 통화 경로 자체도 재설정된다. 우선 이전의 기지국과 새 기지국이 같은 MSC를 공유한다고 가정하자. 이 경우 핸드오프는 해당 MSC에서 라우팅만 바꾸면 된다.
핸드오프가 발생하는 이유는 여러 가지가 있다. 하나는 현재 기지국과 모바일 간 신호가 약해져서 통화가 끊길 위험이 있는 경우이고, 다른 하나는 특정 셀에 통화가 몰려 과부하가 걸린 경우이다. 핸드오프의 필요성을 측정하기 위해 모바일 노드는 연결된 기지국의 비콘(beacon) 신호 세기뿐만 아니라 근처 기지국에서 들리는 비콘 신호도 주기적으로 측정한다. 이 측정은 1초에 한두 번 이루어지며, 모바일 노드가 속한 기지국으로 보고된다. 기지국은 아래의 정보를 바탕으로 핸드오프의 수행을 결정한다:
- 수신 신호 강도
- 인근 셀의 부하 상황 등...

Figure 14에 나타나 있듯이, 핸드오프의 절차는 아래와 같다:
- 이전 기지국이 방문 MSC에 핸드오프가 필요함을 알리고, 모바일을 넘길 수 있는 후보 기지국들을 통보한다.
- 방문 네트워크의 MSC는 새로운 기지국으로 경로 설정(path setup)을 시작하고, 필요한 자원을 할당하며, 새 기지국에게 핸드오프가 임박했음을 알린다.
- 새 기지국은 사용할 무선 채널을 할당하고 활성화한다.
- 새 기지국은 방문 네트워크의 MSC와 이전 기지국에 경로가 준비되었음을 알리고, 모바일 노드에 필요한 정보를 함께 제공한다.
- 모바일에게 핸드오프 수행 요청을 보낸다.[13]
- 모바일 노드와 새 기지국은 무선 채널 활성화를 위한 메시지를 주고받는다.
- 모바일은 "핸드오프 완료(handoff complete)" 메시지를 새 기지국에 전송한다.[14]
- "핸드오프 완료(handoff complete)" 메시지는 다시 방문 네트워크의 MSC로 전달된다.

하지만 위 절차는 모바일 노드가 통화 중 같은 MSC에 연결된 기지국 사이에서 이동하는 경우를 가정한 것이다. 따라서 통화 중 다른 MSC에 속한 기지국 사이에서 이동하는 경우를 해결하기 위해서, GSM은 anchor MSC라는 개념을 정의한다. Anchor MSC는 통화가 시작될 때 모바일 노드가 처음 연결한 MSC이며, 통화 중에는 변하지 않는다. 즉, 모바일 노드가 여러 MSC로 이동하더라도, 통화는 항상 다음과 같은 흐름을 따른다:
GMSC → 앵커 MSC → 현재 방문 MSC → 기지국 → 모바일 노드
따라서 통화 중에는 항상 최대 3개의 MAC만이 통화 경로에 관여하며, 이는 figure 15에 잘 나타나 있다. 아래는 GSM 모빌리티 관리와 Mobile IP 모빌리티 관리의 구조적 공통점을 보여주는 표이다.
| GSM 요소 | 설명(GSM 기준) | Mobile IP 요소 |
|---|---|---|
| Home system | 모바일 사용자의 영구 전화번호가 소속된 네트워크 | Home network |
| GMSC, HRL | Home MSC: 모바일에게 라우팅 가능한 주소를 얻기 위한 연락 지점
HLR: 사용자의 영구 번호, 프로필, 현재 위치, 가입 정보 등을 저장하는 홈 시스템 내의 DB |
Home agent |
| Visited system | 사용자가 현재 위치한 네트워크, 홈 네트워크가 아님 | Visited network |
| MSC, VLR | Visited MSC: 현재 셀에 있는 모바일 노드의 통화 설정 관리
VLR: 방문 시스템에서 모바일 사용자 정보(일시적)를 보관 |
Foreign Agent |
| MSRN | 홈 MSC와 방문 MSC 사이에서 통화를 라우팅할 수 있는 임시 번호 | Care-of Address |
Wireless and Mobility: Impact on Higher-Layer Protocols
해당 문서에서는 무선 네트워크를 구현하기 위해서 link/network layer가 유선 네트워크의 그것과 상당히 다르게 구현되는 것을 설명하였다. 하지만 직관적으로, 무선 네트워크와 유선 네트워크 사이의 차이점은 application/transport layer에서는 잘 드러나지 않는다. 그 이유는 network layer가 유선과 무선 모두에서 상위 계층에 동일한 best-effort 데이터 전달 모델을 제공하기 때문이다. 또한, 프로토콜 스택의 각 layer는 분리되어 있으므로, TCP나 UDP 같은 프로토콜이 유선 및 무선 네트워크 모두에게 transport layer 서비스를 제공하기 때문이다.
하지만, transport layer, 특히 TCP 프로토콜의 관점에서 무선 네트워크는 성능에 매우 큰 영향을 준다. 모바일 노드들의 경우, 패킷 손실은 네트워크 혼잡, 핸드오프 등의 여러 상황에서 발생할 수 있다. 이때 모든 경우에서 TCP의 ACK은 단지 세그먼트가 온전하게 수신되지 않았음을 송신자에게 알려줄 뿐이며, 송신자는 세그먼트 손실이 혼잡, 핸드오프, 혹은 비트 오류 때문인지 알 수 없다. 따라서 모든 경우에서 송신측 호스트의 반응은 세그먼트를 재전송하는 것이다. 또한 이 경우, TCP는 congestion에 대처하기 위해서 패킷 손실이 일어났을 때 항상 자신의 cwnd를 줄인다. 이때, 무선 네트워크에서는 비트 오류 발생률이 유선 네트워크보다 훨씬 더 높지만, 실제로는 TCP 송신자가 cwnd(전송률)를 줄일 이유는 없다. 물론, 무선 네트워크 자체의 대역폭 한계로 인한 속도의 한계는 덤이다.
각주
- ↑ 여러 잡음이 섞여 있는
- ↑ 이 때문에 code set partitioning이라고 불린다.
- ↑ 코드들이 직교(orthogonal) 관계일 경우 간섭을 최소화할 수 있다.
- ↑ 이러한 특성을 coexistence라고 한다.
- ↑ 1 + 1 + 1 − 1 = 2
- ↑ 사실상 network layer의 IP 주소에 해당한다.
- ↑ 애플리케이션 관점에서 엔티티의 모빌리티를 감지할 수 없다는 뜻이다.
- ↑ 또는 이를 대신하는 외부 에이전트
- ↑ 이때 모바일 노드는 자신의 임시 주소를 홈 에이전트에 최신 상태로 저장해두어야 한다.
- ↑ GSM 용어로는 visited PLMN이라고 한다.
- ↑ 이 번호는 상대방이나 모바일 사용자에게는 보이지 않는다.
- ↑ 모바일 사용자가 위치한 방문 네트워크의 정보
- ↑ 이 시점 전까지 모바일 노드는 네트워크가 미리 핸드오프를 준비한 사실을 인식하지 못한다.
- ↑ 이전 기지국과의 연결을 위해서 사용되던 자원의 할당은 해제된다.