본문

Fast-handovers for Mobile IPv6(FMIPv6)

[그림 1] FMIPv6 구조 및 기본 동작[출처 1, 그림 11]


RFC4068 : Fast Handovers for Mobile IPv6

RFC5268 : Mobile IPv6 Fast Handovers

RFC5568 : Mobile IPv6 Fast Handovers


MIPv6는 handoer시 nCoA를 생성하고 이에 대한 등록이 완료되기 전까지 이동 검출(Movement Detection), IP 주소 구성(IP Address Configuration), 위치 갱신(Location Update)과 같은 필연적인 지연 요소를 가지게 된다. handover시 발생하는 delay는 위의 각 과정에서 발생한 delay들이 결합된 총 delay로서 어는 과정도 수행되지 않고 그냥 넘어갈 수 없는 필연적인 요소들이다.


따라서 FMIPv6는 link layer(L2)의 handover 정보를 사용하여(L2계층에서의 MD란 IEEE 802.11.b같은 L2 프로토콜에서 엑세스 포인트 사이의 이동을 탐지하는 것을 말한다) 미리 handover를 감지하여 이를 IP 계층 handover에 이용함으로서 handover 시간을 단축할 수 있도록 한다. MN이 현재 접속된 네트워크에서 접속이 종료되기 전에 이동할 서브넷을 예측하기 때문에, MN은 현재 접속된 서브넷의 라우터와 3계층의 핸드오버 시그널링을 주고받는다. FMIPv6는 MN이 2계층 핸드오버인 L2 핸드오버 이전에 3계층 핸드오버인 L3핸드오버를 수행하기 위해 L2 트리거 신호를 반드시 필요로 하며 이를 바탕으로 L2 계층에서 MN의 핸드오버와 이동을 예측한다. 


[그림 5] MIPv6 handover vs. FMIPv6 handover[출처 20-그림{4-6, 4-7}]


MN이 이동 중에 한 네트워크에서 멀어지고 있으면 데이터링크(L2) 계층에서 현재 네트워크에서 멀어지고 있음을 의미하는 Signal Down 트리거를 올려 준다. 그러면 MN은 다음에 옮겨갈 네트워크를 예측하고 해당 네트워크에서 사용할 nCoA를 미리 만들어 해당 네트워크에 등록을 해 놓는다. 이렇게 미리 등록한 CoA는 실제로 데이터링크 계층에서 핸드 오버가 일어나면 바로 사용할 수 있기 때문에 Mobile IP에서 수행하는 주소 생성 및 중복 검사과정에서 발생하는 지연 시간을 단축할 수 있다.


FMIPv6의 동작모드는 Predictive Mode와 Reactive Mode 두가지로 구분된다. MN의 이동시 pAR과 nAR간에 임시 터널을 생성한 후 데이터를 버퍼링하여 손실을 줄여주는 프로토콜. 이 방법을 적용하게 되면 유실되는 데이터 패킷의 수를 줄일 수 있다. 이동노드가 2계층 핸드오버 전에 이전 서브넷에서 FBAck메시지를 수신했을 경우는 Predictive모드, 새로 이동한 서브넷에서 FBAck 메시지를 수신한 경우는 Reactive 모드로 동작한다. 




[그림 2, 3] Predictive / Reactive Mode FMIPv6의 신호 흐름도[출처 8-그림 3.2.1, 3.2.2]


* [그림 2]로 알아보는 FMIPv6의 과정
1. MN은 새로운 서브넷으로 이동하기 전 2계층에서 L2 트리거 신호를 통해 미리 이동성을 예측한다. 
2. L2 트리거 신호를 통해 MN의 이동이 감지되면 MN은 pAR에 RtSolPR 메시지를 보내고 그 응답으로 PrRtAdv메시지를 받는다. 
* MN이 아닌 pAR이 MN의 이동을 감지한다면 pAR은 RtSolPR없이 nAR에 대한 정보를 담은 PrRtAdv메시지를 MN에게 전달한다
3. DAD를 위해 pAR에게 FBU메시지를 보낸다. (nCoA생성, FBU 메시지 전송)
4. FBU를 받은 pAR은 nAR에게 HI 메시지로 nCoA를 보내 DAD 수행과 터널 설정을 요청한다. (FBU수신 -> HI 전송)
5. 이를 받은 nAR은 DAD결과와 HI에 대한 응답으로 HAck를 pAR에게 보낸다.(HI 수신->HAck 전송)
6. 이를 받은 pAR은 DAD결과를 MN에게 FBAck 메시지를 통해 보내고 nAR에게도 역시 FBAck 메시지를 보낸다.
7. pCoA로 전달되는 패킷은 pAR에서 인터셉트하여 설정된 터널을 통해 nAR로 패킷을 포워딩한다.
8. nAR은 pAR로부터 전송된 패킷을 MN이 자신의 네트워크로 이동해올때까지 버퍼링한다. (패킷 수신)
9. MN이 nAR의 영역으로 이동하면(새로운 링크가 형성되면) RS메시지에 FNA를 담아 nAR에게 보내 자신이 nAR의 네트워크에 접속했음을 알린다.(RS+FNA 전송)
* 만일 MN이 FBAck를 받지 못하였다면 RA 메시지를 통해 MN은 NCoA에 대한 확인을 nAR에게 요청하며 nAR은 NAAck옵션을 가지는 RA를 통하여 nCoA를 확인한다.
10. nAR은 이를 받아 MN의 nCoA 확인 후 RA 메시지로 응답하고 pAR로부터 전송된 패킷을 MN에게 전송한다.(RS+FNA 수신 -> RA 전송, 패킷 전송)
11. nAR로부터 RA를 받은 MN은 HA와 CN에 등록을 위해 BU 메시지를 전송하고 응답을 받은 후 CN으로부터 패킷을 전송받아 핸드오버를 완료한다.(RA 수신, BU 양측으로 전송 -> BAck 수신, CN으로부터 패킷 수신)
* 만일 MN이 nAR에 머무르는 시간이 BU에 충분치 않다면 pAR이 앵커 역할을 그대로 수행하고 양방향 터널의 종점을 nAR이 아닌 또다른 nAR로 이동시키는 삼자간 핸드오버 방법(Three-party Handover Method)이 사용될 수 있다. 이 경우 앵커 액세스 라우터에 대한 정보는 nAR에서 또다른 nAR로 HTT(Handover to third) 메시지를 이용하여 전달되며 새로운 양방향 터널(pAR과 또다른 NAR간)이 생성된 후 이전 양방향 터널(pAR과 이전 nAR간)은 제거된다.

* Predictive Mode의 핸드오버 절차(pAR과 링크 유지)
Predictive Mode에서는 MN의 핸드오버를 준비하기 위해 주변의 네트워크를 탐색하는 1. 주변 네트워크 탐색 단계 (nAR발견 단계)와 이동할 네트워크와 핸드오버 절차를 준비하는 2. 핸드오버 준비 단계, 그리고 이동 후 수행하는 3. 핸드오버 완료 단계로 구분된다. pAR은 FBAck메시지를 지속적으로 MN과 주변의 nAR에게 보내어 L2의 trigger를 모니터링 함으로써 MN의 disconnection을 감시하도록 한다. MN의 연결이 끊길 경우 pAR은 HA로부터 전달받은 패킷들을 nAR에게 터널링하여 전달하는 동시에 nAR은 패킷을 버퍼링한다. MN이 FNA메시지를 nAR에게 전송하고 새로운 연결이 맺어지면 nAR이 버퍼링하고 있던 패킷들은 MN에게 전송된다.

* Reactive Mode의 핸드오버 절차(이동 예측이 잘못되었을 경우, pAR과 링크유지 실패)
핸드오버 이전에 MN이 FBU를 전송하지 못했거나, 전송하였더라도 FBAck 메시지를 수신하기 전에 핸드오버를 개시하였다면 MN는 핸드오버 이후 Reactive Mode로 동작한다. (Predictive mode와 달리 FBAck메시지를 이용한 핸드오버 상황 예측과정이 수행되지 않는다) 이 경우 MN는 FBAck를 받지 못해 pAR측에 FBU가 제대로 도착했는지 알 수 없으므로, FNA 메시지에 FBU를 캡슐화(Encapsulation)하여 전송한다. 
nAR이 MN으로부터 FNA를 받으면 nCoA가 해당 네트워크에서 사용 중인 주소와 중복되지 않은지를 확인한다. 주소가 중복되지 않으면 nAR은 FNA에 포함된 FBU를 pAR에게 전송하고 FBAck가 도착하면 pCoA와 nCoA간에 터널을 생성하고, 터널링 된 패킷을 최종적으로 MN에게 전달한다. 이때, FBAck의 목적지는 nCoA이므로 터널링 되는 패킷들과 함께 MN에게 전달된다. 만일 nCoA가 이미 사용 중이면, nAR은 MN에게 NAACK(Neighbor Advertisement Acknowledgment) 옵션을 포함한 라우터 광고 메시지를 MN에게 전송하고 FBU 메시지는 폐기한다. 

[그림 4] FMIPv6에서 잘못된 예측 => Reactive Mode [출처 21-그림 1]


[그림 6] 상세한 FMIPv6 핸드오버 절차(Predictive Mode) [출처 1, 그림 12]



* Predictive mode의 상세 3단계
1. 주변 네트워크 탐색 단계 (nAR 발견 단계)
MN이 새로운 무선 링크 및 기지국 (Base Station, BS)을 감지하게 되면, 발견된 기지국과 연관된 nAR의 정보를 얻기 위해 pAR에 RtSolPr메시지를 전송한다. pAR은 RtSolPr메시지로부터 추출된 정보를 바탕으로 nAR의 정보를 검색하여 nAR의 IP 주소, MAC 주소 및 프리픽스 정보를 포함한 PrRtAdv 메시지로 MN에게 답신한다. MN은 PrRtAdv에 포함된 프리픽스 정보를 이용하여 nAR에서 사용가능한 nCoA를 생성하고, 현재 사용하는 pCoA와 nCoA의 바인딩을 위하여 pAR에게 FBU 메시지를 전송한다.

2. 핸드오버 준비 단계
핸드오버가 예측되면  MN은 pCoA와 nCoA의 바인딩을 위하여 pAR에게 FBU를 보낸다. 이때, MN이 핸드오버 이전에 pAR로부터 FBU 메시지에 대한 FBAck메시지를 성공적으로 수신하게 되면 이 시점 이후로 MN은 Predictive Mode로 동작한다. 만약 MN이 핸드오버 개시 이전에 FBU를 전송하지 못하거나, 전송하더라도 FBAck 메시지 수신을 하지 못했다면 핸드오버 이후 Reactive Mode로 동작한다.
한편, pAR은 MN으로부터 FBU 메시지를 수신하면(Predictive) nAR과 HI및 HAck 메시지를 교환하여 nAR망에서 사용가능한 nCoA를 MN에게 할당하고 pCoA와 nCoA간의 터널을 생성한다. 터널이 생성된 시점부터 pCoA로 향하고 있는 모든 패킷은 nCoA로 터널링 된다. 한편 nAR은 터널링되어 전달되는 패킷을 가로채어 버퍼링하고 있다가 이동을 완료한 MN으로부터 FNA를 수신하면, 그 동안 버퍼링한 패킷을 모두 MN(보다 정확히 말하자면 nCoA)에게 전달한다. 이로써 모든 핸드오버 절차는 마무리 된다.

3. 핸드오버 완료 단계
nAR은 MN을 대신하여 터널링된 패킷들을 버퍼링하고 있다가 이동을 완료한 MN으부터 FNA를 수신하면, 버퍼링했던 패킷을 모두 MN에게 전달한다. 이로써 모든 FMIPv6의 핸드오버 절차는 마무리 된다.한편, 이와 동시에 MN은 이동한 네트워크에서 BU를 HA에 전송하여 위치 등록 절차를 수행한다. HA의 Binding Cache가 제대로 갱신되기 전까지 CN이 보낸 패킷은 pAR에서 가로채어져 nAR을 통해 최종적으로 MN에 도착한다. MIPv6 절차에 따른 위치 등록이 성공적으로 수행이 되었다면 패킷은 pAR을 거치지 않고 곧바로 nAR로 전송된다.

* FMIPv6의 단점 : 
1. 링크계층에서 L2 Trigger 핸드오버 신호가 반드시 감지되어야 L3계층에서 핸드오버가 가능하며 이를 제대로 처리하지 못했을 경우 생기는 지연 역시 연결 단절과 패킷 손실을 유발한다.
2. MN의 이동속도가 매우 빠르거나 이동 경로가 예측과 다르면 더 긴 핸드오버 지연이 발생하는 단점이 있다. 
3. 터널링을 이용하여 패킷을 전송하는 과정에서 pAR을 경유해서 터널링을 통해 먼저 전송된 패킷이 이보다 늦게 MN으로 직접전송 패킷 패킷보다 늦게 도착해 패킷의 순서가 뒤바뀌는 문제가 발생할 수 있다. 
4. 또한 MN이 둘 이상의 네트워크망이 중첩된 지역에 계속 머무르며 짧은 시간 내 망 사이를 옮겨 다닐 경우 잦은 핸드오버 발생으로 ping-pong과 연관된 지연이 생기고 MN의 경우 자원낭비가 이루어진다. 
5, 핸드오버 완료 전에 다른 서브넷으로 이동하면 터널을 통한 패킷 전송 과정에서 망의 복잡성을 야기하거나 패킷 손실 및 순서 뒤바뀜 문제가 발생한다. 
6. MN이 nAR의 서브넷에 늦게 도착할 경우 nAR이 pAR로부터 전송받아 버퍼링하던 패킷의 overflow 현상이 발생해 패킷 손실의 문제가 있다
7. L2와 L3에서의 핸드오버 과정 표준화 기구가 다르기 때문에 L2핸드오버에 대한 고려 없이 L3핸드오버 기법이 제안되어 특정 어플리케이션(VoIP, Real-time Streaming)의 조건에 맞는 서비스를 제공하기 어렵다
8. 또한 L2 계층의 트리거 정보를 이용해 예측 기법을 사용하기 때문에 가변적인 링크 특성으로 예측한 정보가 정확하지 않을 수 있다. 이경우 불필요한 지연과 버퍼 공간을 낭비하게 된다.
9. nCoA으로의 터널링 구성 도중 AR간의 복잡한 메시지 교환이 많은 오버헤드를 초래한다.
10. MN이 여러개의 AR을 거치며 장시간 통신을 할 경우에 패킷이 다수의 AR을 거쳐서 MN에게 도달하게 되므로 핸드오버 지연시간이 누적되어 증가하게 된다.

* 용어정리 :
Router Solicitation for Proxy Advertisement(RtSolPr) : 핸드오버에 필요한 정보를 얻기위해 MN이 pAR에게 보내는 메시지. NAR에 대한 정보를 요청하는 메시지(NAR에 대한 링크계층 ID 포함. 무선랜의 경우 NAR의 (B)SSID가 될 수 있다) => "Mobile Initiated"
Proxy Router Advertisement(PrRtAdv) : pAR주위 AR에대한 정보를 포함하여 pAR이 MN에게 전송하는 메시지(이때 pAR과 nAR은 서로 통신할 수 있으며 서로에 대한 정보를 공유하고 있다고 가정한다) => "Network Initiated"

Handover Initiate(HI) : PAR->NAR로의 터널생성 및 NCoA에 대한 검증을 NAR에 요청하는 메시지
Handover Acknowledge(HAck) : 양방향 터널 구성에 대한 & NCoA에 대한 확인(DAD)의 응답.

Fast Neighbor Advertisement(FNA) : L2 핸드오버 완료 메시지. MN 자신의 존재를 알리고, nCoA를 사용하겠다며 nAR에게 전송
Fast Binding Update(FBU) : pAR-nAR 터널을 생성하기 위해 MN이 pAR에게 보내는 메시지
Fast Binding Acknowledge(FBAck) : 
Neighbor Advertisement Acknowledge(NAAck) : 


* 상세한 predictive, reactive의 세가지 시나리오  : IEEE 802.11에서의 FMIPv6 적용 :: Es la vida~pmj0403

댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.