이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다.
또한 하기 설명에서는 구체적인 메시지 또는 신호 등과 같은 많은 특정(特定) 사항들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들 없이도 본 발명이 실시될 수 있음은 이 기술 분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명은 MN의 핸드오프 지연 시간을 줄이기 위하여 제안된 Mobile IPv6의 고속 핸드오프(fast handoff) 환경 하에서 MN이 핸드오프를 수행한 후 멀티캐스트 서비스를 제공받기 위해서 멀티캐스트 트리에 가입하는 절차를 고속 핸드오프 과정 중에 실시할 수 있는 시스템 및 방법을 제시한다. 따라서 하기에서 설명되는 본 발명에서는 멀티캐스트 그룹 관리 프로토콜 메시지 및 멀티캐스트 패킷 전달 방법이 구체적으로 설명될 것이다.
본 발명에서는 종래 기술에서 설명한 문제를 해결하기 위하여 MN에게 멀티캐스트 서비스를 제공해 주기 위하여 MN이 이동해간 새로운 네트워크의 액세스 라우터가 MN을 위하여 멀티캐스트 트리에 가입함을 전제로 한다. 멀티캐스트 그룹을 관리하기 위한 프로토콜로써 멀티캐스트 청취자 탐색 프로토콜(Multicast Listener Discovery : 이하 "MLD"라 함)을 기본적으로 사용한다고 가정한다.
MN이 빠른 핸드 오버 환경 하에서 멀티캐스트 서비스를 제공받으려면 각 액세스 라우터는 멀티캐스트 그룹 관리 프로토콜과 관련된 부분에 대한 이해를 할 수 있어야 한다. 또한 멀티캐스트 데이터를 전달하기 전에 주변 AR들과 터널을 맺은 상황에서는 해당하는 멀티캐스트 서비스에 대한 데이터를 터널로 전달해 주어야 한다. 그리고 멀티캐스트 그룹 관리 프로토콜의 관리 메시지를 터널을 통하여 전달하고 그에 대한 응답을 확인함으로써 터널과 멀티캐스트 전달(forwarding) 서비스를 관리하여야 한다. 이를 통해 고속 핸드오프를 효과적으로 수행하게 되어 멀티캐스트 데이터의 손실이나 지연 시간을 줄일 수 있게 된다. 만약 MN이 핸드오프를 완료한 후에도 이동한 네트워크의 액세스 라우터에서 멀티캐스트 가입 동작이 완료되지 않은 경우 완료될 때까지 데이터 손실을 줄이기 위해서 고속 핸드오프 과정에서 설 립된 터널을 통하여 이전 네트워크의 액세스 라우터에게서 데이터를 전달받게 된다.
프리딕티브 고속 핸드오버(predictive fast handoff)나 반응적인 고속 핸드오버(reactive fast handoff)에서 멀티캐스트 데이터를 이전 액세스 라우터 (PAR : previous access router)로부터 전송받을 것인지 아니면 새로운 액세스 라우터 (NAR : new access router)로부터 전송받을 것인지는 MN이 결정하게 된다. 이 과정에서 사용하는 것이 바로 MLD의 질의(query), 보고(report) 그리고 완료(done) 메시지이다. PAR은 MN을 위하여 MLD 질의 메시지를 터널을 통하여 전달하게 된다. 이 질의 메시지에 대하여 MN이 보고 메시지로 계속 응답을 하게 된다면 PAR은 멀티캐스트 데이터를 MN에게 계속 전달하게 된다. MN이 더 이상 PAR로부터 멀티캐스트 데이터를 전달받지 않고 NAR에게서 전달받고자 한다면 NAR에서의 MLD 질의 메시지에 대한 보고 메시지 응답을 하면서 PAR에서 터널로 전달되는 MLD 질의 메시지에 대한 완료 메시지로 응답하게 된다. PAR은 질의 메시지에 대한 완료 메시지로 응답이 왔으므로 더 이상 멀티캐스트 서비스를 제공해 주지 않게 된다. NAR은 멀티캐스트 서비스에 대한 가입이 완료된 후 자신의 네트워크에 멀티캐스트 서비스를 원하는 MN이 존재하는지 MLD 질의 메시지를 통하여 알아보게 된다. MN은 이러한 NAR의 질의 메시지에 보고 메시지로 응답함으로써 NAR에게서 멀티캐스트 데이터를 전달받을 수 있다. 그러면 이러한 동작을 수행하기 위한 네트워크의 구성과 그에 따른 각각의 노드들의 동작에 대하여 첨부된 도면을 참조하여 보다 상세히 살펴보도록 한다.
도 2는 본 발명에 따른 멀티캐스트 서비스 패킷을 전달하기 위한 시스템 구 성도이다. 이하 도 2를 참조하여 본 발명에 따른 멀티캐스트 서비스 패킷을 전달하기 위한 구성 및 개략적인 동작에 대하여 살펴보기로 한다.
멀티캐스트 서버(210)는 MN들로 멀티캐스트 서비스를 제공할 수 있는 서버로서 방송 서비스 또는 각종 스트리밍 데이터 등의 다양한 멀티캐스트 서비스를 제공할 수 있는 서버를 의미한다. 이와 같이 멀티캐스트 서비스를 제공할 수 있는 멀티캐스트 서버(210)는 특정한 MN으로부터 멀티캐스트 서비스 요구가 존재할 경우 이를 해당하는 억세스 라우터(Access Router : 이하 "AR"이라 함)로 전달함으로써 멀티캐스트 서비스를 요구한 MN으로 서비스를 제공할 수 있다. 이러한 멀티캐스트 서버(210)는 인터넷(Internet)(200)을 통해 연결된다.
또한 Mobile IP를 제공하기 위해 본 발명에 따른 멀티캐스트 서비스를 제공하는 제1라우터(220) 및 제2라우터(230)는 각각 다수의 액세스 라우터들(221, …, 222, 231, …, 232)의 상위에 위치하며, MN으로 멀티캐스트 서비스 데이터를 전송하는 동작을 수행한다. 상기 각 액세스 라우터들의 동작에 대하여는 이하에서 후술되는 신호 흐름도 및 제어 흐름도를 참조하여 더 상세히 설명하기로 한다. 또한 각 액세스 라우터들(221, …, 222, 231, …, 232)은 본 발명에 따라 프리딕티브 고속 핸드 오버(predictive fast handover)와 반응적인 고속 핸드 오버(reactive fast handoff)를 제공할 수 있는 라우터들이다. 그리고 이하의 설명에서 상기 각 라우터들은 Mobile IPv6를 지원하는 라우터들로 가정한다. 따라서 각 MN들(MN1, MN2)(240, 241)은 멀티캐스트 서비스를 제공받는 MN들로 가정한다.
도 3은 본 발명의 일 실시 예에 따라 멀티캐스트 서비스의 프리딕티브 고속 핸드오버 시의 신호 흐름도이다. 이하 도 3을 참조하여 본 발명에 따라 멀티캐스트 서비스의 프리딕티브 고속 핸드오버 시의 제어 과정에 대하여 설명하기로 한다.
상기 도 3에서 각 노드들은 도 2의 노드들을 의미하며, 동일한 참조부호를 사용하였다. 따라서 AR1(221)과 AR2(222)는 Mobile IPv6를 지원하는 액세스 라우터이고 고속 핸드오프를 지원한다. 또한 MN(240)이 요청한 멀티캐스트 서비스에 대해서 승낙(accept) 한다고 가정한다. 상기 MN(240)은 AR1(221)을 통해 멀티캐스트 서비스를 제공받는 것으로 가정하여 도시한 것이다. 따라서 MN은 300단계에서 멀티캐스트 서버(210)에서 제공되는 멀티캐스트 서비스 데이터를 제1라우터(220)와 AR1(221)을 통해 제공받는다. 이와 같이 멀티캐스트 서비스 데이터를 수신하는 중에 상기 도 2에 도시한 바와 같이 MN이 이동하여 AR2(222)의 영역으로 이동하는 경우가 발생할 수 있다. 따라서 MN(240)은 304단계에서 현재 멀티캐스트 서비스 데이터를 전송하고 있는 AR1(221)과 라우터 요청 메시지 / 대리 라우터 광고 메시지(RtSolPr/PrRtAdv : router solicitation for proxy / proxy router advertisement)를 교환한다. 이는 현재 AR1(221)로부터 수신되는 멀티캐스트 서비스 데이터를 AR2(222)로부터 수신하기 위해 필요한 정보들을 교환하기 위함이다. 이때, 상기 대리 라우터 광고 메시지(PrRtAdv)에 포함된 M 비트를 통하여 AR2(222)가 멀티캐스트를 지원한다는 사실을 알게 된다.
이와 같이 MN(240)은 AR2(222)가 멀티캐스트를 지원한다는 사실을 안 후 306단계로 진행하여 고속 바인딩 갱신(FBU : Fast Binding Update) 메시지를 AR1(221)로 전달한다. 또한 MN(240)은 M 비트와 이동성 헤더(mobility header)에 멀티캐스 트 옵션(multicast option)이 포함된 FBU 메시지를 AR1에게 전달하고 고속 핸드오프를 시작하게 된다. 그러면 FBU 메시지를 수신한 AR1(221)은 308단계로 진행하여 AR2(222)로 핸드오버 개시(HI : handover initiation) 메시지를 전달한다. 상기 HI 메시지에는 핸드오버를 수행하는 MN(240)의 멀티캐스트 정보 즉, 멀티캐스트 주소를 포함하여 전달하며, 상기 MN(240)으로부터 수신된 FBU 메시지에 포함된 멀티캐스트 옵션(multicast option)을 HI 메시지 내의 ICMPv6 멀티캐스트 옵션(multicast option)으로 AR2(222)에게 전달한다.
그러면 AR2(222)는 핸드오버 응답(HAck : Handover Acknowledgement) 메시지를 보내기 전인 310단계에서 제1라우터(220)를 통해 멀티캐스트 서버(210)로 멀티캐스트 그룹 가입 절차를 시작한다. 이는 AR2(222)에서 MN(240)으로 멀티캐스트 서비스 데이터를 수신하여 전달하기 위한 절차이다. 상기 도 3에서는 AR2(222)에서 멀티캐스트 그룹 가입 메시지를 전달한 이후의 가입 절차에 대하여는 본 발명에 따른 MN(240)의 핸드오버 처리와 크게 관련되지 않으므로 설명하지 않기로 한다. 그런 후 AR2(222)는 312단계로 진행하여 핸드오버 응답 메시지를 AR1(221)으로 전달한다. AR1(221)은 핸드오버 응답 메시지를 수신한 후 고속 바인딩 응답(fast binding acknowledgement : Fback) 메시지를 전송한다.
이와 같이 MN(240)이 AR2(222)의 네트워크로 도착하기 전에 멀티캐스트 그룹 가입이 완료될 수 있다. 이를 도 3에서는 점선으로 315단계에서 도시하였다. 이와 같이 MN(240)이 AR2(222)로 이동하는 시점보다 먼저 멀티캐스트 그룹 가입 완료가 된 경우 AR2(222)를 통해 멀티캐스트 서버(210)로부터 수신되는 데이터를 전달한 다. AR1(221)로부터 AR2(222)로 전달된 MLD 질의 메시지의 형태는 하기 <표 1>과 같이 도시할 수 있으며, MN(240)으로 전달하기 위한 멀티캐스트 데이터 중 AR1(221)로부터 AR2(222)를 거쳐 MN으로 전달된 데이터는 하기 <표 2>와 같은 형태로 전달된다. 상기 AR2(222)는 AR1(221)로부터 상기 <표 2>와 같은 형태의 패킷 데이터를 수신하면 디캡슐화(decapsulation)하여 MN(240)으로 전송한다. 이에 따라 MN(240) 또한 상기 수신된 메시지를 다시 디캡슐화(decapsulation)하여 멀티캐스트 그룹(Multicast Group)에서부터 온 패킷임을 알게된다.
Source : PCoA Destination : NCoA |
Source : PAR Destination : NCoA |
Source : link-local address of PAR Destination : link scoped all-noed multicast address |
MLD message |
Source : PCoA Destination : NCoA |
Source : PAR Destination : NCoA |
Source : multicast source Destination : multicast group |
Multicast Data |
상기 <표 1>은 이전 액세스 라우터(PAR)에서 다음 액세스 라우터(NAR)를 거쳐 MN으로 MLD 질의(Query) 메시지를 전송하는 경우의 메시지 구성이다. 상기 <표 1>에서는 설명의 편의를 위하여 IP 헤더의 소스 주소(source address)와 목적지 주소(destination address)만을 표시하였다. 상기 <표 1>에서 알 수 있듯이 가장 바 깥의 IP 헤더는 이전 의탁 주소(PCoA : previous care of address)와 새로운 의탁 주소 (NcoA : new care of address)로 캡슐화 (encapsulation)하게 된다. 상기 <표 1>과 같은 형태의 패킷이 NAR에 도착하게 되면 NAR은 MN을 대신하여 디캡슐화(decapsulation)를 수행한다. 그런 후 목적지 주소가 NCoA이므로 상기 패킷을 MN에게 전달할 수 있다. 따라서 MN은 상기 패킷에 대한 대한 소스(source)가 PAR이므로 메시지에 대한 응답을 PAR에게 해 줄 수 있게 된다. 이것은 상기 패킷을 직접 MN이 전송받게 되더라도 두 번의 디캡슐화 과정을 거치면 되므로 약간의 오버헤드(overhead)를 수반할 뿐 프로토콜의 동작에는 영향을 미치지 않는다.
또한 이러한 터널링을 통하여 PAR로부터 멀티캐스트 데이터가 전달되는 경우도 똑같은 방법으로 캡슐화(encapsulation) 된다. 즉, 상기 <표 2>와 같이 캡슐화가 이루어지는 것이다. 이와 같이 MLD 메시지를 전송할 때와 마찬가지 문제가 NAR에서 발생할 수 있다. 한 번의 캡슐화(encapsulation)로는 NAR에서 어떤 MN에게 전달하여야 하는 패킷인지 알 수가 없다. 따라서 PAR에서는 MLD 메시지를 전달할 때와 마찬가지로 MN에게 전달될 수 있도록 하기 위하여 한번의 캡슐화를 더 하게 된다.
다시 도 3을 참조하여 설명하면, MN(240)은 AR2(222)의 네트워크로 완전히 이동하게 되면, MN(240)은 316단계에서 고속 인접 광고 메시지(Fast Neighbor advertisement : FNA)를 통하여 AR2(222)에게 자신이 AR2(222)의 네트워크와 연결되었음을 알리게 된다. 그러면 상기 AR2(222)는 상기 AR1(221)로부터 수신된 데이터를 상기 <표 2>와 같은 형태로 MN(240)으로 전달한다. 또한 상기 도 3에는 도시 하지 않았으나, AR1(221)은 MN(240)으로 MLD 질의 메시지를 전달한다.
그러면 MN(240)은 320단계에서 AR1(221)로부터 수신된 MLD 질의 메시지에 응답하는 MLD 보고 메시지를 생성하여 전달한다. 이러한 과정은 AR2(222)가 멀티캐스트 그룹에 가입이 완료되는 시점까지 계속하여 이루어진다. 또한 이와 같이 AR1(221)로 전달하기 위한 MLD 보고 메시지의 전송은 AR1(221)이 계속하여 멀티캐스트 서버(210)로부터 데이터를 수신하여 AR2(222)로 전달해 줄 것을 요구하기 위함이다. 이러한 MLD 보고 메시지는 하기 <표 3>과 같이 도시할 수 있다.
Source : NCoA Destination : PAR |
Source : link-local address of MN Destination : link scoped all-noed multicast address |
MLD message |
MN이 MLD 메시지를 PAR에게 전송하기 위해서는 캡슐화(encapsulation)를 통하여 메시지가 전송될 수 있도록 하는 과정이 필요하다. 이렇게 하기 위하여 MN은 MLD 원본 메시지에 추가로 아래 상기 <표 3>과 같은 IP 헤더를 덧붙이게 된다. 보고 메시지의 경우는 상기 <표 3>과 같이 구성할 수 있다. 따라서 PAR은 디캡슐화를 통해 메시지를 해석할 수 있다.
AR1(221)에서 수신된 데이터를 AR2(222)가 중계하여 MN(240)으로 전달하고, MN(240)은 이에 대하여 MLD 보고 메시지를 생성하여 전송하는 중에 AR2(222)가 멀티캐스트 그룹에 가입이 완료될 수 있다. 즉, 상기 도 3의 321단계에서 AR2(222)가 멀티캐스트 그룹 가입을 완료하면, 322단계로 진행하여 MN(240)으로 MLD 질의 메시 지를 생성하여 전달한다. 이와 같이 AR2(222)가 멀티캐스트 그룹에 가입이 완료되어 MN(240)으로 전달하는 MLD 질의 메시지는 하기 <표 4>와 같이 도시할 수 있다.
Source : link-local address of NAR Destination : link scoped all-noed multicast address |
MLD message |
상기 <표 4>와 같이 NAR이 멀티캐스트 서비스에 대한 가입을 완료한 후에는 NAR에서 MLD 질의 메시지 전송이 이루어지게 된다. 이러한 메시지는 일반적인 멀티캐스트 라우터의 동작과 같다. 그러므로 멀티캐스트 서비스를 제공받고자 하는 MN이 현재 NAR의 네트워크에 존재하므로 PAR에서와 같이 터널을 이용하여 전달하는 경우를 생각할 필요가 없다. 따라서 상기 <표 4>에 나타낸 바와 같이 기본적인 MLD의 메시지 형태(format) 그대로 전달되게 된다. 따라서 MN은 현재 전달받은 MLD가 PAR로부터 전송된 것인지 NAR로부터 전송된 것인지 쉽게 판단할 수 있다.
상기 <표 4>와 같은 MLD 질의 메시지를 수신하면, MN(240)은 324단계로 진행하여 MLD 질의에 응답하는 MLD 보고 메시지를 생성하여 AR2(222)로 전달한다. 또한 AR2(222)는 멀티캐스트 서버(210)로부터 제1라우터(220)를 통해 직접 데이터를 수신하게 된다. 이와 같이 멀티캐스트 서버(210)로부터 직접 수신되는 데이터는 하기 <표 5>와 같은 형태를 가진다.
Source : multicast source Destination : multicast group |
Multicast Data |
MN이 PAR로부터 MLD 질의 메시지를 받은 경우 NAR 네트워크에서 보고 메시지나 완료 메시지를 PAR에게 전송하기 위한 방법을 고려해 보면 다음과 같다. 먼저 MLD의 기본 메시지 형태는 전술한 도 1과 같은 형태를 가진다. 즉, 소스 IP 주소가 링크 로칼 주소(link local address)가 된다. 따라서 MN이 MLD 보고나 완료 메시지를 그냥 전송하게 되면 one-hop을 벗어날 수 없다. 따라서 MN이 MLD 메시지를 보내기 전에 추가로 처리를 해 주어야 한다.
또한 322단계에서 AR2(222)로부터 MLD 질의 메시지를 수신한 MN(240)은 324단계로 진행하여 상기 수신된 MLD 질의 메시지에 대한 보고 메시지를 AR2(222)로 보낸다. 또한 MLD 완료 응답 메시지를 생성하여 AR2(222)로 전달한다. 그러면 AR2(222)는 MLD 완료 응답 메시지를 다시 AR1(221)로 전달함으로써 AR1(221)에서는 더 이상 MN(240)을 위해 수행하던 동작들을 종료할 수 있다. 또한 상기 MN(240)이 상기 AR1(221)로 전달하기 위해 AR2(222)로 전송하는 MLD 완료 메시지는 전술한 <표 1>의 MLD 질의 메시지에 대한 응답 메시지로 하기 <표 6>과 같이 구성할 수 있다.
Source : NCoA Destination : PAR |
Source : link-local address of MN Destination : link scoped all-routers multicast address |
MLD message |
상기 <표 6>의 MLD 완료 메시지는 전술한 <표 3>의 MLD 보고 메시지와 유사 한 형태이다. 상기 <표 6>의 MLD 완료 메시지의 경우 PAR은 디캡슐화(decapsulation)를 통하여 메시지를 해석할 수 있고, 또한 NCoA를 알고 있으므로 그에 따른 데이터 전달(forwarding) 등의 동작을 수행할 수 있다.
이후의 과정은 AR2(222)에 MN(240)이 포함되어 있는 경우이므로 일반적으로 멀티캐스트 서비스를 제공하는 경우와 동일하게 동작할 수 있다.
도 4는 본 발명의 다른 실시 예에 따라 멀티캐스트 서비스의 반응적인 고속 핸드 오버(reactive fast handoff) 시의 신호 흐름도이다. 이하 도 4를 참조하여 본 발명에 따라 멀티캐스트 서비스의 반응적인 고속 핸드오버 시의 제어 과정에 대하여 설명하기로 한다.
상기 도 4에서도 전술한 도 3과 동일한 가정 하에서 동작하는 것으로 설명한다. 따라서 상기 MN(240)은 AR1(221)을 통해 멀티캐스트 서비스를 제공받는 것으로 가정하여 도시한 것이다. 따라서 MN은 400단계에서 멀티캐스트 서버(210)에서 제공되는 멀티캐스트 서비스 데이터를 제1라우터(220)와 AR1(221)을 통해 제공받는다. 이와 같이 멀티캐스트 서비스 데이터를 수신하는 중에 상기 도 2에 도시한 바와 같이 MN이 이동하여 AR2(222)의 영역으로 이동하는 경우가 발생할 수 있다. 따라서 MN(240)은 404단계에서 현재 멀티캐스트 서비스 데이터를 전송하고 있는 AR1(221)과 라우터 요청 메시지 / 대리 라우터 광고 메시지(RtSolPr/PrRtAdv : router solicitation for proxy / proxy router advertisement)를 교환한다. 이는 현재 AR1(221)로부터 수신되는 멀티캐스트 서비스 데이터를 AR2(222)로부터 수신하기 위해 필요한 정보들을 교환하기 위함이다. 상기 대리 라우터 광고 메시지(PrRtAdv)에 포함된 M 비트를 통하여 AR2(222)가 멀티캐스트를 지원한다는 사실을 알게 된다.
이와 같이 MN(240)은 AR2(222)가 멀티캐스트를 지원한다는 사실을 안 후 406단계로 진행하여 FBU 메시지를 포함하는 FNA 메시지를 AR2(222)로 전달한다. 이때 FBU에는 멀티캐스트 옵션(multicast option)이 포함되게 된다. AR2(222)는 이 메시지를 통하여 MN(240)이 가입하고자 하는 멀티캐스트 그룹에 대한 정보를 얻을 수 있으므로 408단계로 진행하여 해당 멀티캐스트 그룹 가입 절차를 시작하게 된다. 또한 상기 AR2(222)는 410단계로 진행하여 AR1(221)과 FBU 메시지 및 FBack 메시지 교환을 수행한다. 이러한 교환이 이루어지면, AR1(221)과 AR2(222)간은 412단계에 도시한 바와 같이 터널을 설립할 수 있다. 만일 멀티캐스트 그룹 가입이 완료된 경우라면, 멀티캐스트 서버(210)로부터 제1라우터(220)를 통해 전달되는 데이터를 MN(240)으로 전달할 수 있다.
그러나 만일 멀티캐스트 그룹의 가입이 완료되기 전이라면, AR1(221)은 AR2(222)와 설립한 터널을 통해 상기 <표 2>와 같은 형태로 멀티캐스트 데이터를 AR2(222)로 전달한다. 따라서 AR2(222)는 터널을 통해 수신된 데이터를 디캡슐화(decapsulation)하고 이를 414단계에서 MN(4240)으로 전달한다.
또한 상기 도 4에는 도시하지 않았으나, AR1(221)로부터 AR2(222)를 통해 MN(240)으로 MLD 질의 메시지를 전달한다. 이때 AR2(222)는 상기 질의 메시지에 대하여도 디캡슐화를 수행하여 MN(240)으로 전달한다. 이와 같이 AR1(221)에서 전달하는 MLD 질의 메시지는 상기 <표 1>과 같은 메시지 형태가 된다. 따라서 MN(240)은 AR2(222)에서 디캡슐화하여 수신된 메시지를 다시 디캡슐화함으로써 멀티캐스트 그룹에서부터 수신된 패킷임을 알 수 있다.
그러면 MN(240)은 416단계로 진행하여 AR2(222)를 통해 AR1으로 MLD 보고 메시지를 전달한다. 상기 MLD 보고 메시지는 전술한 <표 3>과 같은 메시지 형태를 가진다.
이때 AR2(222)가 멀티캐스트 그룹에 가입이 완료되면, 즉 도 4의 418단계와 같이 멀티캐스트 그룹에 가입이 완료되면, AR2(222)는 420단계로 진행하여 MN(240)으로 MLD 질의 메시지를 생성하여 전송한다. 이러한 MLD 질의 메시지는 전술한 <표 4>와 같은 형태를 가진다. 그러면 MN(240)은 422단계에서 상기 수신된 질의 메시지에 응답하는 MLD 보고 메시지를 AR2(222)로 전송한다. 그리고 424단계에서 AR1(221)로 핸드오버 완료를 알리기 위한 MLD 완료 메시지를 생성하여 전송한다. 상기 MLD 완료 메시지는 전술한 <표 6>과 같은 형태의 메시지가 된다. 따라서 상기 AR2(222)는 MLD 완료 메시지가 수신되면 이를 AR1(221)로 전달한다. 이를 통해 AR1(221)은 상기 MN(240)의 서비스를 위한 동작을 중지할 수 있다. 그리고 AR2(222)는 이후 멀티캐스트 서버(210)로부터 수신되는 데이터를 직접 MN(240)으로 전달할 수 있다.
도 5는 본 발명에 따른 MN이 고속 핸드오프 환경 하에서 멀티캐스트 동작 및 MLD 메시지 전송을 위한 제어 흐름도이다. 이하 도 5를 참조하여 본 발명에 따른 MN이 고속 핸드오프 환경 하에서 멀티캐스트 동작 및 MLD 메시지 전송을 수행하기 위한 제어 과정을 상세히 설명한다.
상기 도 5는 MN이 고속 핸드오프를 수행하는 경우에 대한 동작이다. 이러한 경우 MN은 502단계에서 자신이 멀티캐스트 서비스를 받고 있는지 검사한다. 상기 502단계의 검사결과 멀티캐스트 서비스를 받고 있는 경우 MN은 506단계로 진행하고, 그렇지 않은 경우 504단계로 진행하여 일반적인 고속 핸드오프 절차를 수행한다.
반면에 MN이 멀티캐스트 서비스를 제공받고 있는 경우 MN은 502단계에서 506단계로 진행하여 핸드오프를 수행할 대상 AR로부터 수신된 대리 라우터 광고((PrRtAdv : proxy router advertisement) 메시지의 M 비트를 통하여 새로운 액세스 라우터(NAR : new access router)가 멀티캐스트를 지원하는지 검사한다. 상기 MN은 506단계의 검사결과 NAR이 멀티캐스트를 지원하지 않는 경우 512단계로 진행하고, 멀티캐스트 서비스를 지원하는 경우 508단계로 진행한다. 상기 506단계의 검사결과 NAR이 멀티캐스트를 지원하지 않는 경우 즉 512단계로 진행하는 경우 MN은 PAR로부터 수신된 MLD 질의 메시지에 응답하기 위한 보고 메시지를 생성하여 전송한다. 그리고, MN은 PAR로부터 멀티캐스트 데이터를 전달받게 된다.
반면에 상기 506단계의 검사결과 NAR이 멀티캐스트를 지원하는 경우 MN은 508단계로 진행하여 NAR이 멀티캐스트 그룹에 가입을 시작한다. 그리고 MN은 510단계로 진행하여 NAR로부터 MLD 질의 메시지를 수신하였는가를 검사한다. 상기 검사결과 NAR로부터 MLD 질의 메시지를 수신하면 516단계로 진행하고, 그렇지 않은 경우 514단계로 진행한다. 먼저 514단계로 진행하는 경우 MN은 PAR로부터 수신된 MLD 질의 메시지에 대한 응답으로 MLD 보고 메시지를 생성하여 NAR을 통해 PAR로 전달한다. 그리고 PAR로부터 수신되는 멀티캐스트 서비스 데이터를 수신한다. 이러한 MLD 질의 메시지가 PAR로부터 수신될 때, MN이 PAR로 MLD 보고 메시지를 생성하여 전송하는 것은 이미 전술한 도 2 및 도 3에서 살핀 바와 같은 동작이다. 따라서 MN은 PAR로부터 MLD 질의 메시지가 수신될 때마다 이를 생성하여 보고한다. 그리고 510단계의 검사에서와 같이 NAR로부터 MLD 질의 메시지가 수신되기까지는 MN은 PAR로 이러한 동작을 수행한다. 이와 같이 동작하는 이유는 앞에서 살펴본 바와 같이 PAR에서 동작하는 MLD 프로토콜은 자신이 전달(forwarding)해 주어야 하는 멀티캐스트 수신기(receiver) 즉, MN에 대한 정보를 가지고 있다. 또한 이러한 수신기(receiver)가 외부 네트워크에 존재하여 PAR과 터널이 설립되어 있는 경우 이 터널을 통하여 MLD의 질의 메시지를 전송하게 된다. 따라서 MN의 입장에서는 이렇게 전달된 주기적인 MLD 질의 메시지에 대한 보고 메시지를 응답함으로써 PAR로부터 멀티캐스트 데이터가 계속해서 전달되도록 할 수 있다. 왜냐하면, MN은 NAR에서 멀티캐스트 서비스가 완료되기 전에는 PAR로부터 데이터를 전달받아야 하기 때문이다. 즉, NAR이 멀티캐스트 그룹 가입이 완료될 때까지는 514단계를 계속 수행하는 것이다. 그리고 510단계에서 그룹 가입이 완료된 이후에는 516상태로 천이하여 PAR에 MLD done 메시지를 전송하게 된다. PAR은 이러한 done message를 받고서 MN에게 멀티캐스트 데이터 forwarding을 중단하게 된다.
반면에 상기 510단계에서 NAR로부터 MLD 질의 메시지가 수신되어 516단계로 진행하는 경우 MN은 PAR로 MLD 완료 메시지를 생성하여 전송한다. 또한 상기 도 2 및 도 3에서 살핀 바와 같이 NAR로 MLD 보고 메시지를 생성하여 전송한다. 이와 같이 PAR로 MLD 완료 메시지를 전송하면, PAR은 MN으로 전송하던 멀티캐스트 서비스 를 완료할 수 있게 된다.