상기의 기술적 과제를 해결하기 위한 본 발명에 따른 IPv6에서의 효율적인 대역폭 사용을 위한 통신 방법의 일 실시예로 (a) 이동 노드가 상대 노드로 패킷 전송시 목적지 옵션 헤더(destination option header)의 홈 주소 옵션(home address option)을 생략할 것인지를 나타내는 바인딩 업데이트 메시지(binding update message)를 상기 상대 노드로 전송하는 단계; (b) 상기 바인딩 업데이트 메시지를 수신한 상대 노드가, 상기 이동 노드로부터 상기 홈 주소 옵션이 생략된 패킷을 수신하였을 경우 상기 패킷의 IPv6 기본 헤더의 소스 주소(source address)를 상기 이동 노드의 홈 주소(home address)로 복구 가능한가를 표시한 바인딩 응답 메시지(binding acknowledge message)를 상기 이동 노드로 전송하는 단계; (c) 상기 이동 노드가 전송할 패킷의 소스 주소를 상기 이동 노드의 임시 주소(care of address)로 변경하여 상기 상대 노드로 전송하는 단계; 및 (d) 상기 패킷을 수신한 상대 노드가 상기 패킷의 상기 소스 주소를 상기 이동 노드의 홈 주소로 복구하는 단계;를 포함한다.
상기의 기술적 과제를 해결하기 위한 본 발명에 따른 IPv6에서의 효율적인 대역폭 사용을 위한 통신 방법의 일 실시예로 (a) 이동 노드가 상대 노드로부터 타입2의 라우팅 헤더가 생략된 패킷을 수신하였을 경우 상기 패킷의 IPv6 기본 헤더의 목적지 주소를 상기 이동 노드의 홈 주소로 복구 가능한가를 표시한 바인딩 업데이트 메시지를 상기 상대 노드로 전송하는 단계; (b) 상기 바인딩 업데이트 메시지를 수신한 상기 상대 노드가, 상기 이동 노드로 패킷 전송시 상기 라우팅 헤더를 생략할 것인지 나타내는 바인딩 응답 메시지를 상기 이동 노드로 전송하는 단계; (c) 상기 상대 노드가 전송할 패킷의 상기 목적지 주소를 상기 이동 노드의 임시 주소로 변경하여 상기 이동 노드로 전송하는 단계; 및 (d) 상기 패킷을 수신한 이동 노드가 상기 패킷의 상기 목적지 주소를 상기 이동 노드의 홈 주소로 복구하는 단계;를 포함한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
도4는 RFC 3775에서 정의하고 있는 바인딩 업데이트 메시지의 구성도이다.
도4를 참조하면, 바인딩 업데이트 메시지는 이동 노드가 상대 노드에게 보내는 것으로 이동성 헤더 (mobility header; MH) 유형은 5이다. 일련 번호(sequence number) 필드(401)는 수신하는 노드에서는 바인딩 업데이트 메시지(binding update message)에 대한 순서를 확인하는데 사용되고, 송신하는 노드에서는 바인딩 업데이트 메시지(binding update message)와 바인딩 응답 메시지(binding acknowledge message)를 일치시키는데 사용된다.
응답(Acknowledge; A) 필드(402)는 바인딩 업데이트 메시지(binding update message)에 대한 응답을 받아야 하는지 아닌지를 나타내기 위한 필드이다. 따라서 그 필드가 1로 설정된 바인딩 업데이트 메시지(binding update message)를 받게 되면 상대 노드(CN)는 바인딩 응답 메시지(binding acknowledge message)를 보낸다. 홈 등록 (home registration; H) 필드(403)는 이 바인딩 업데이트 메시지(binding update message)가 홈 에이전트(home agent; HA)로 전송되고 있음을 나타내기 위해서 사용된다.
링크 로컬 주소 호환 (link-local address compatibility; L) 필드(404)는 이동 노드(MN)의 홈 주소(home address)의 인터페이스 아이디(interface ID)부분이 이동 노드(MN)의 링크 로컬 주소(link-local address)의 인터페이스 아이디(interface ID)와 동일함을 나타내기 위하여 사용한다.
키 관리 이동성 기능(key management mobility capability; K) 필드(405)는 이동 노드와 홈 에이전트 사이에 보안 연계(Security Association)가 이동 노드 (MN)이 이동할 때 마다 다시 이루어 져야 하는지를 나타내기 위해 사용되며 0으로 설정되게 되면 한번만 보안 연계(security association)가 이루어져 있으면 이동 후에도 다시 할 필요가 없으며 1로 설정되어 있으면 이동 노드(MN)이 이동할 때마다 매번 보안 연계가 이루어 져야 함을 나타낸다.
예비(reserved, 406) 필드는 추후 정의를 위하여 사용되지 않고 남겨져 있는 필드이다. 유효 시간(lifetime) 필드(407)는 바인딩(binding) 정보를 유지할 수 있는 시간을 표시하고, 바인딩 정보의 삭제를 요구하기 위하여 서는 이 값을 0으로 설정하여 보낸다. 여기에 표시되는 시간은 실제 시간이 아니라 단위당 4초를 나타내는 단위 시간이다.
이동성 옵션(mobility option)(408)은 Binding Authorization 옵션, Nonce Index 옵션, Alternate Care-of Address 옵션이 사용될 수 있다. 실제적으로 사용될 옵션이 없다면 4 바이트의 채우기(padding)가 필요하며 헤더 길이 (Header Length) 필드는 1로 설정한다.
도5는 본 발명에 따른 R 필드가 추가된 바인딩 업데이트 메시지의 일 실시예의 구성도이다.
도5를 참조하면, 도4에서 정의된 필드와 동일한 이름을 가지는 각 필드는 모두 도4에서 정의된 필드와 동일한 기능을 수행하며, 이동 노드(MN) 자신이 주소 복구 기능을 가지고 있으며 상대 노드(CN)가 주소 복구 기능을 가지고 있는지를 확인하기 위한 R (restoration capability, 506) 플래그가 새롭게 정의된다.
R이 1로 설정되어 있으면 이동 노드(MN) 자신이 주소 복구 기능을 가지고 있으며 상대방 노드가 주소 복구 기능을 가지고 있는지를 상대 노드(CN)에게 묻는다. 바인딩 업데이트 메시지(binding update message)를 상대 노드(CN)가 받게 되면 바인딩 캐시 엔트리(binding cache entry)를 추가하며 바인딩 업데이트 메시지(binding update message)에 A 플래그(502)가 설정되어 있으면 이동 노드(MN)로 바인딩 응답 메시지(binding acknowledge message)를 보내게 되며 이때 R 플래그가 설정되어 있으며 상대 노드(CN) 자신의 주소 복구 능력을 확인하여 바인딩 응답 메시지(binding acknowledge message)의 R 플래그를 표시하여야 한다.
도6는 RFC 3775에서 정의하고 있는 바인딩 응답 메시지의 구성도이다.
도6을 참조하면, 바인딩 응답 메시지는 이동 노드로부터 수신된 바인딩 업데이트 메시지에 대하여 상대 노드가 응답으로 보내는 메시지로, 이동성 헤더 (mobility header; MH) 유형은 6으로 설정된다.
키 관리 이동성 기능(key management mobility capability; K) 필드(602)는 바인딩 업데이트 메시지(binding update message)에서의 K 플래그(505)와 동일한 역할을 수행한다. 즉, 0으로 설정되게 되면 한번만 보안 연계(security association)가 이루어져 있으면 이동 후에 다시 보안 연계를 할 필요가 없으며 1로 설정되어 있으면 이동 노드(MN)가 이동할 때마다 매번 보안 연계가 이루어 져야 함을 나타낸다.
일련 번호(sequence number) 필드(604)와 유효 시간(lifetime) 필드(605) 역시 바인딩 업데이트 메시지(binding update message)에서의 동일한 이름을 가지는 필드와 동일한 역할을 수행한다.
이동성 옵션(mobility option)(606)으로는 Binding Authorization 옵션, Binding Refresh Advice 옵션이 사용 가능 하다. 이러한 옵션은 RFC3775에서 정의하는 바와 동일하다. 또한, 바인딩 업데이트 메시지(binding update message)에서와 같이 사용할 옵션이 없다면 4 바이트의 채우기(padding)가 필요하며 헤더 길 이(header length)는 1로 설정한다.
도7는 본 발명에 따른 R 필드가 추가된 바인딩 응답 메시지의 일 실시예의 구성도이다.
도7을 참조하면, 도6에서 정의된 기본적인 바인딩 응답 메시지에 바인딩 업데이트 메시지(binding update message)에서와 같이 R (restoration capability)플래그(703)를 정의한다. 도7은 도6에서 정의된 바인딩 응답 메시지에 본 발명에 의한 추가 적인 필드를 정의한 것을 보여주고 있다.
이동 노드(MN)로부터 전달된 바인딩 업데이트 메시지(binding update message)의 R 플래그가 1로 설정되어 있는 경우 상대 노드(CN) 역시 자신이 주소 복구 기능을 가지고 있음을 나타내기 위하여 R (restoration capability) 플래그를 정의한다. R이 1로 설정되어 있으면 상대 노드(CN) 자신이 주소 복구 기능을 가지고 있기 때문에 이동 노드(MN)은 상대 노드(CN)로 데이터를 보낼 때 이동 노드(MN)의 care-of address를 소스 주소로 사용하며 자신의 홈 주소(home address)를 위하여 별도로 목적지 옵션 헤더(destination option header)의 홈 주소 옵션(home address option)을 별도로 사용할 필요가 없음을 나타내며 상대 노드(CN) 자신 역시 이동 노드(MN)으로 데이터를 보낼 때 이동 노드(MN)의 care-of address를 기본 헤더의 목적지 주소로 사용하며 이동 노드(MN)의 홈 주소(home address)를 위하여 별도로 routing type이 2인 라우팅 헤더 (routing header type 2)를 사용하지 않음을 나타낸다.
도8는 본 발명에 따른 바인딩 캐시 테이블의 일 실시예의 구성도이다.
도8을 참조하면, 바인딩 캐시 테이블은 필수 구성 요소로서 홈 주소 필드(801), 임시 주소 필드(802), 일련 번호 필드(803), 유효 시간 필드(804), 바인딩 업데이트 메시지 및 바인딩 응답 메시지에 정의된 A, H, K, L, R 플래그(805)를 포함된다.
바인딩 캐시 테이블은 상대 노드에 구축되는 것으로, 각 엔트리에 존재하는 필드는 바인딩 업데이트 메시지(binding update message) 및 바인딩 응답 메시지(binding acknowledge message)에 포함된 필드로 구성이 됨을 알 수 있다. 특히 기존의 IPv6 이동성 제공 방법에서 제공되는 필드에 본 발명에서 제안하는 R 플래그가 각 노드의 주소 복구 능력에 따라서 설정이 되거나 되지 않을 수 있다. 본 발명이 제안하는 방법을 사용하지 않는 노드의 경우 R 플래그를 무시하기 때문에 본 발명에서 제공하는 방법을 지원하는 단말과 그렇지 않은 단말의 호환성에는 문제가 없다.
도9는 본 발명에 따른 바인딩 업데이트 리스트의 일 실시예의 구성도이다.
도9를 참조하면, 바인딩 업데이트 리스트(binding update list ;BUL)는 필수 구성 요소로서 홈 주소 필드(901), 임시 주소 필드(902), 일련 번호 필드(903), 유효 시간 필드(904), 바인딩 업데이트 메시지 및 바인딩 응답 메시지에 정의된 A, H, K, L, R 플래그(905)를 포함된다.
바인딩 업데이트 리스트의 각 엔트리에 존재하는 필드는 바인딩 업데이트 메시지(binding update message)에 포함된 필드로 구성이 됨을 알 수 있다.
바인딩 캐시 테이블(binding cache table)과 마찬가지로 기존의 IPv6 이동성 제공 방법에서 제공되는 필드에 본 발명에서 제안하는 R 플래그가 각 노드의 주소 복구 능력에 따라서 설정이 되거나 되지 않을 수 있다.
도10는 본 발명에 따른 단말에서 패킷을 보내기 위한 절차의 일 실시예의 흐름도이다.
도10을 참조하면, 먼저 응용 프로그램과 같은 상위 계층을 통하여 데이터가 전달된다(1001). 이 전달된 데이터를 기반으로 기본 IPv6헤더를 구축하게 된다(1002). 이 때 기본적으로 구성된 IPv6의 헤더는 자기 단말 및 통신을 하고자 하는 상대방 단말의 홈 주소(home address)를 기반으로 생성된다.
바인딩 업데이트 리스트(binding update list; BUL)을 검색하여 바인딩 업데이트 리스트(BUL)의 엔트리에 설정된 HoA가 현재 구성된 IPv6 헤더의 소스 주소와 일치하는 엔트리가 존재하는지를 확인한다(1003). 만약 바인딩 업데이트 리스트의 엔트리가 하나라도 존재한다면 이는 본 단말이 이동을 하였음을 의미한다. 해당 엔트리가 존재하지 않는 경우 조금 뒤에 설명할 1007 단계로 진행한다.
해당 엔트리가 존재하는 경우 단말 자신이 본 발명에 의한 주소 복구 능력이 있는지 확인하기 위하여 해당 엔트리에 설정된 플래그 중 R 플래그를 검사한다(1004). R 플래그가 1로 설정되어 있다면 단말 자신의 CoA를 임시 변수인 Tmp_HOA에 저장한다(1005). 만약 R 플래그가 0으로 설정되어 있다면 단말 자신의 CoA를 IPv6의 확장 헤더인 목적지 옵션 헤더(destination option header)의 홈 주소 옵션(home address option)에 저장한다(1006). 본 발명에 의한 단말의 경우 실제 자신은 주소 복구 능력을 가지고 있는 것을 가정 함으로 1004과정이 필요 없이 1005과정으로 바로 진행할 수 있다.
이제 바인딩 캐시 테이블(binding cache table)의 엔트리 중 HoA 필드의 값이 목적지 주소와 일치하는 엔트리가 존재하는지를 확인한다(1007). 만약 그러한 엔트리가 존재한다면 이는 본 단말이 통신을 하고자 하는 상대방 단말이 이동을 하였음을 의미한다. 해당 엔트리가 존재하지 않는 경우 조금 뒤에 설명할 1010 단계로 진행한다.
해당 엔트리가 존재하는 경우 상대방 단말이 본 발명에 의한 주소 복구 능력이 있는지 확인하기 위하여 해당 엔트리에 설정된 플래그 중 R 플래그를 검사한다(1008). R 플래그가 1로 설정되어 있다면 1010과정으로 진행한다. 만약 R 플래그가 0으로 설정되어 있다면 해당 바인딩 캐시 테이블의 엔트리에 존재하는 상대방 단말에 대한 CoA를 routing type이 2인 라우팅 헤더 (routing header type 2)에 저장한다(1009).
1010 단계는 IPsec 과정이 필요한지를 확인하는 단계이다. 만약 IPsec이 필요하다면 1011단계에서 AH/ESP 헤더를 추가한다.
본 과정은 RFC 3775 및 관련 표준에 따른다. 만약 IPsec이 필요하지 않다면 목적지 옵션 헤더(destination option header)의 홈 주소 옵션(home address option)에 값이 존재하는지를 확인한다(1012). 만약 값이 존재 하지 않는다면 임시 변수인 Temp_HAO의 값에 값이 존재 하는지를 확인한다(1013). 만약 값이 존재한다면 그 값을 IPv6 기본 헤더의 소스 주소(source address)에 덮어 쓴다. 만약 Temp_HAO에 값이 존재하지 않는다면 1016과정을 수행한다. 1012과정에서 만약 목적 지 옵션 헤더(destination option header)의 홈 주소 옵션(home address option)에 값이 존재한다면 그 값을 IPv6의 기본 헤더의 소스 주소(source address)와 교환한다.
이제 1016 과정에서는 routing type이 2인 라우팅 헤더 (routing header type 2)에 값이 존재하는지를 확인한다. 만약 값이 존재한다면 그 값을 IPv6 기본 헤더의 목적지 주소(destination address)와 교환한다. 만약 값이 존재하지 않으면 1018과정을 수행한다.
1018과정은 상대 단말의 현 위치에 따라서 라우팅 정보를 참고하여 보내져야 하는 인터페이스를 결정한다. 최종적으로 1019과정은 패킷을 1018 과정에서 결정된 인터페이스를 통하여 패킷을 전송한다.
도11는 본 발명에 따른 단말에서 패킷을 수신하기 위한 절차의 일 실시예의 흐름도이다.
도11을 참조하면, 먼저 링크 계층으로부터 패킷이 수신된다(1101). 기본 IP 헤더에 대한 처리를 수행한다(1102).
Routing type이 2인 라우팅 헤더 (routing header type 2)가 존재하는지를 확인한다(1103). 존재하는 경우 IPv6 기본 헤더의 목적지 주소(destination address)와 routing type이 2인 라우팅 헤더 (routing header type 2)의 내용을 교환한다(1104).
Routing type이 2인 라우팅 헤더 (routing header type 2)가 존재하지 않는 경우 입력 패킷의 IPv6 기본 헤더의 목적지 주소가 바인딩 업데이트 리스트(binding update list; BUL)에 존재하는 엔트리 중에 CoA 필드와 일치하는 엔트리가 존재하는지를 검색한다(1105). 해당 엔트리가 존재 하지 않는 경우 1108과정으로 진행한다. 해당 엔트리가 존재하는 경우 패킷을 보낸 단말과의 통신에서 단말이 본 발명에 의한 주소 복구 기능을 수행하도록 되어 있는지를 확인하기 위하여 해당 엔트리에 설정된 플래그 중 R 플래그를 검사한다(1106).
R 플래그가 1로 설정되어 있지 않다면 1108과정으로 진행한다. R 플래그가 1로 설정되어 있다면 해당 BUL 엔트리의 HoA 필드의 값을 IPv6 기본 헤더의 목적지 주소에 덮어 쓴다(1107).
1108 과정에서는 목적지 옵션 헤더(destination option header)의 홈 주소 옵션(home address option)이 존재하는지를 확인한다. 만약 그 값이 존재하는 경우에는 IPv6 기본 헤더의 소스 주소를 그 값과 교환한다(1109).
1108과정에서 그 값이 존재하지 않는 경우에는 바인딩 캐시 테이블의 엔트리중 해당 엔트리의 care-of address 필드의 값이 IPv6 주소의 소스 주소와 일치하는 엔트리가 있는지 검색한다(1110). 만약 그러한 엔트리가 존재하지 않는다면 패킷을 보낸 노드로 바인딩 에러 메시지를 전송한다(1111). 만약 1110과정에서 해당 엔트리가 존재한다면 해당 바인딩 캐시 테이블의 엔트리에 R 플래그가 설정되어 있는지를 확인한다(1112).
R 플래그가 설정되어 있지 않다면 1114과정으로 진행한다. 만약 R 플래그가 설정되어 있다면 소스 주소와 해당 엔트리의 HoA값을 IPv6 기본 헤더의 소스 주조에 덮어 쓴다.
1114 과정은 IPsec이 필요한지를 확인한다. IPsec 과정이 필요하면 1115과정에서 AH/ESP 헤더를 검증한다. IPsec 과정이 필요하지 않다면 상위 계층으로 패킷을 전달한다(1116).
본 발명은 여기에서 설명되는 실시예에 한정되는 것은 아니며 다른 형태로 변형될 수 있다. 본 발명의 실시예는 당업계에서 평균의 지식을 가진 자에게 본 발명을 보다 완전히 이해시키기 위하여 제공되는 것임을 이해할 것이다.