KR100656479B1 - 모바일 IPv6 제공 장치 - Google Patents

모바일 IPv6 제공 장치 Download PDF

Info

Publication number
KR100656479B1
KR100656479B1 KR1020060002349A KR20060002349A KR100656479B1 KR 100656479 B1 KR100656479 B1 KR 100656479B1 KR 1020060002349 A KR1020060002349 A KR 1020060002349A KR 20060002349 A KR20060002349 A KR 20060002349A KR 100656479 B1 KR100656479 B1 KR 100656479B1
Authority
KR
South Korea
Prior art keywords
binding
mobile
node
packet
ipv6
Prior art date
Application number
KR1020060002349A
Other languages
English (en)
Inventor
임혜숙
김혜란
문주형
김원정
지서영
추하늘
권대형
문강영
김선기
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060002349A priority Critical patent/KR100656479B1/ko
Application granted granted Critical
Publication of KR100656479B1 publication Critical patent/KR100656479B1/ko
Priority to CNA2006101686004A priority patent/CN101001258A/zh
Priority to US11/645,636 priority patent/US20070160064A1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47JKITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
    • A47J37/00Baking; Roasting; Grilling; Frying
    • A47J37/04Roasting apparatus with movably-mounted food supports or with movable heating implements; Spits
    • A47J37/045Roasting apparatus with movably-mounted food supports or with movable heating implements; Spits with endless conveyors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/04Network layer protocols, e.g. mobile IP [Internet Protocol]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Food Science & Technology (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 모바일 IPv6 제공 장치에 관한 것으로, 수신한 패킷이 바인딩 패킷인지 데이터 패킷인지에 따라 이동 노드 및 상대 노드의 홈주소 또는 모빌리티 관련 헤더 정보를 출력하는 모바일수신 처리부; 이동 노드가 수신한 바인딩 정보를 저장하는 바인딩 캐쉬; 이동 노드가 송신한 바인딩 정보를 저장하는 바인딩 업데이트 저장부; 상대 노드가 생성한 바인딩 메시지를 수신하고, 상기 모바일수신 처리부로부터 이동 노드 및 상대 노드의 홈주소 정보를 수신하여, 상기 바인딩 메시지 관련 정보를 상기 바인딩 캐쉬와 상기 바인딩 업데이트 저장부로 제공하는 바인딩 수신부; 바인딩 메시지 생성 요청을 수신하고, 계산된 체크섬을 이용해 데이터를 조립하여 요청된 바인딩 메시지를 생성하여 출력하는 바인딩 송신부; 및 상기 바인딩 캐쉬, 상기 바인딩 업데이트 저장부 중 적어도 하나를 검색하여 얻은 획득주소를 통해 헤더의 종류를 결정하고, 상기 바인딩 송신부로부터 수신한 이동 노드 홈주소 및 상대 노드 홈주소 정보를 이용하여, 모바일 IPv6 헤더를 생성하여 출력하는 모바일송신 처리부를 포함하는 하드웨어를 통해 모바일 IPv6를 제공함으로써, 단말에서 신속한 이동성을 제공할 뿐 아니라, CPU의 부담 또한 감소시킬 수 있다.

Description

모바일 IPv6 제공 장치{Apparatus for Supplying Mobile IPv6}
도 1a, 도1b, 도1c는 무선망에서 노드가 이동하는 경우, IPv6를 통한 모바일 IP의 동작 흐름을 나타낸 도면.
도 2는 본 발명에 따른 IPv6 제공 장치의 블록 구성을 나타낸 도면.
도 3은 본 발명에 따른 IPv6 제공 장치에서의 데이터 패킷의 수신 흐름을 나타낸 도면.
도 4는 본 발명에 따른 IPv6 제공 장치에서의 데이터 패킷의 송신 흐름을 나타낸 도면.
도 5는 본 발명에 따른 IPv6 제공 장치에서의 바인딩 패킷의 전송 흐름을 나타낸 도면.
도 6은 본 발명에 따른 IPv6 제공 장치에서의 ICMP 패킷의 전송 흐름을 나타낸 도면.
*도면의 주요 부분에 대한 부호의 설명*
100 : 이동 노드 110 : 홈 에이전트
200 : 상대 노드 210 : 외부 에이전트
300 : IPv6 모바일 제공 장치 310 : 패킷 파싱부
302 : 바인딩 캐쉬 303 : 바인딩 업데이트 저장부
323 : 모바일수신 처리부 325 : 바인딩 수신부
382 : 바인딩 송신부 381 : 모바일송신 처리부
본 발명은 모바일 IPv6 제공 장치에 관한 것으로, 보다 구체적으로는 노드에 모빌리티를 제공하기 위한 모든 기능들을 하드웨어로 처리하는 하드웨어 기반의 모바일 IPv6 구현을 실현하는 모바일 IPv6 제공 장치에 관한 것이다.
모바일 IP는 이동 노드에 고유의 IP 주소를 부여함과 동시에, 이동한 링크에서도 새로운 주소를 부여 받아 두 개의 IP 주소를 이용하여 이동 중에도 연결이 끊기지 않고 통신을 지속할 수 있도록 하는 프로토콜이다. 기존의 IPv4를 사용한 모바일 IP는 IPv4의 주소 공간 체계를 사용하기 때문에 주소 공간의 한계에 부딪히고 있고, 삼각 라우팅 문제나 외부 에이전트(foreign agent)가 필요성에 따르는 단점이 있다. 기존의 모바일 IPv4의 단점을 극복한 것이 모바일 IPv6인데, 모바일 IPv6는 IPv6의 프로토콜을 기본으로 하며, 이동한 링크에서 스스로 새로운 주소를 생성하여 외부 에이전트를 필요로 하지 않는다. 따라서 모바일 기능을 지원하는 단말은 링크의 지원에 관계 없이 모바일 IPv6을 사용할 수 있게 된다. IPv6는 또한, 경로 최적화를 지원하여 경로에 따른 지연을 최소화하는 장점을 지닌다.
도 1a, 도1b, 도1c는 무선망에서 노드가 이동하는 경우, IPv6를 통한 모바일 IP의 동작 흐름을 나타낸다.
도 1a는 이동노드가 홈 링크에 위치할 때의 모습을 도시한다.
이동 노드가 도 1a에서와 같이 홈 링크에 위치하는 경우에는 일반적인 IPv6 노드로서 동작하며, 패킷은 홈 주소를 사용하는 일반적인 IP 라우팅 방법을 통해 전달된다. 이동 노드(mobile node, MN)(100)는 하나의 링크에서 다른 링크로 움직임이 가능한 노드를 말하는 것으로, 홈 주소를 이용해 다른 노드들과의 연결을 지속한다. 상대 노드(correspondent node, CN)(200)는 이동 노드와 통신을 하는 모든 노드를 지칭하며, 상대 노드는 이동 노드일 수도, 고정된 노드일 수도 있다. 여기서, 홈 주소(Home Address, HoA)는 홈 링크에서 이동 노드(100)에게 부여된 영구적인 주소로서, 상대 노드(200)는 홈 주소를 이용해 이동 노드와 통신할 수 있다. 또한, 홈 에이전트(Home Agent, HA)(110)는 홈 링크에 있는 라우터로서, 이동 노드(100)가 외부 링크로 이동하였을 때 현재의 위치를 등록하는 라우터이다.
도 1b는 이동 노드가 홈 링크에서 다른 위치로 이동한 경우의 패킷 흐름을 도시한다.
모바일 IPv6은 도 1b에서와 같이 이동 노드(100)가 외부 링크로 이동했을 때 적용된다. 외부 링크(Foreign Link)는 홈 링크를 제외하고 이동 노드(100)가 머무 르는 모든 링크를 말한다. 이동 노드(100)가 도 1b와 같이 외부 링크로 이동하면 먼저 외부 링크의 라우터로부터 프리픽스를 할당받아 획득 주소를 얻는다. 이동 노드(100)는 획득주소 정보를 알리기 위해 바인딩 업데이트 메시지를 홈 에이전트(110)로 전송한다. 여기서, 바인딩(binding)이란, 유효 시간 동안 이동 노드의 홈 주소와 획득 주소를 연결하는 정보로서, 바인딩 정보를 이용해 상대 노드(200)는 이동 노드(100)의 위치가 바뀌어도 홈 주소를 이용해 통신을 계속적으로 유지한다. 이동 노드(200)가 새로운 획득 주소를 얻거나 바인딩 정보를 유효 시간이 지나도록 유지하고 싶으면 바인딩을 업데이트 해야 한다.
이동 노드(100)로부터 바인딩 업데이트 메시지를 수신한 홈 에이전트(110)는 바인딩 응답 메시지를 이동 노드(100)로 전송하여 바인딩이 성립하였음을 알린다. 이렇게 바인딩이 성립되고 나면 홈 에이전트(110)는 상대 노드(200)가 이동 노드(100)의 홈 주소로 보내는 패킷을 대신 받아 이동 노드(100)의 획득 주소를 사용해서 터널링하여 이동 노드의 현재 위치로 보내준다. 또한 이동 노드(100)가 상대 노드(200)에게 패킷을 전송할 경우에도 생성된 패킷에 IP 헤더를 하나 더 붙여서 일단 홈 에이전트(110)에게 터널링 한 후 홈 에이전트(110)가 이 패킷에 덧씌워진 IP 헤더를 벗겨서 상대 노드(200)에게 전달한다. 이렇게 함으로써 이동 노드(100)는 상대 노드(200)와 통신을 지속할 수 있다. 홈 에이전트(110)는 이 정보를 이용하여 이동 노드(100)로 수신되는 패킷을 현재 이동 노드의 위치로 터널링하여 패킷을 전달한다. 이동 노드(100)는, 외부 링크로 이동한 경우 이동한 위치에서 부여되는 일시적인 주소인 획득 주소(Care-of address, CoA)를 이용하여 현재 위치를 홈 에이 전트(110)에게 알린다.
도 1c는 이동 노드가 홈 링크에서 다른 위치로 이동한 경우, 경로 최적화가 적용된 직접 통신 방법을 나타낸다.
모바일 IPv6에서는 도 1b에서 제시한 통신 방법 외에도 경로 최적화를 지원하여 상대 노드와 직접 통신을 가능하게 하는데, 그것이 바로 도 1c에서 보는 바와 같이 이동 노드와 상대 노드간의 직접 통신을 수행하는 방법이다. 도 1c에서는 이동 노드(100)가 터널링을 통해 상대 노드(200)로부터 온 패킷을 받게 되면 이동 노드(100)는 상대 노드(200)의 주소를 목적지로 하는 바인딩 업데이트 메시지를 전송한다. 바인딩 업데이트 메시지를 수신한 상대 노드(200)는 그에 상응하는 바인딩 응답 메시지를 전송하여 바인딩이 성립하였음을 알린다. 이런 식으로 이동 노드(100)와 상대 노드(200)간 바인딩이 성립되면, 두 노드간에는 홈 에이전트를 거치지 않고 직접 통신이 가능하다.
살펴본 바와 같이 모바일 IPv6은 노드가 이동 중에도 연결을 유지한 상대 노드와 통신을 지속할 수 있도록 한다. 즉, 모바일 노드가 새로운 링크로 이동할 때 신속히 이동을 감지하고, 새로운 바인딩을 성립시켜 사용자가 이동을 눈치채지 못하는 서비스를 지원하는 것은 모바일 IP에 있어 핵심이다. 이와 같은 모바일 IPv6 기능은 기존에는 단말의 소프트웨어를 통해 제공되는 것이 일반적이었다.
하지만, 소프트웨어를 사용하여 모바일 IP를 구현하는 경우, 단말의 이동을 감지하고, 새로운 바인딩을 위해 교환, 처리되어야 하는 패킷들을 신속히 생성하고 전송해야 하는 시점에서 CPU의 간섭 내지 제어를 받게 마련이다. 여기서, 링크의 이동에 보다 빨리 대응 할 수 있고 핸드오버로 인한 패킷의 손실을 최소화시킬 수 있는 모바일 구현 방법에 대한 필요성이 대두되었다.
본 발명은 상기의 문제점을 해결하기 위해, 단말의 CPU는 응용 프로그램에 전념하고 모바일 IPv6의 이동성 지원 기능은 별도의 하드웨어로 구현하도록 하는 모바일 IPv6 제공 장치 및 IPv6 이동 단말을 제공하는 것을 그 목적으로 한다.
상기의 목적을 달성하기 위한 본 발명의 일 측면에 따른 모바일 IPv6 수신 장치는, 수신한 패킷이 바인딩 패킷인지 데이터 패킷인지에 따라 이동 노드 및 상대 노드의 홈주소 또는 모빌리티 관련 헤더 정보를 출력하는 모바일수신 처리부; 이동 노드가 수신한 바인딩 정보를 저장하는 바인딩 캐쉬; 이동 노드가 송신한 바인딩 정보를 저장하는 바인딩 업데이트 저장부; 및 상대 노드가 생성한 바인딩 메시지를 수신하고, 상기 모바일수신 처리부로부터 이동 노드 및 상대 노드의 홈주소 정보를 수신하여, 상기 바인딩 메시지 관련 정보를 상기 바인딩 캐쉬와 상기 바인딩 업데이트 저장부로 제공하는 바인딩 수신부를 포함한다.
상기 바인딩 수신부는, 상기 바인딩 메시지가 바인딩 업데이트 메시지인 경우, 이동 노드의 홈주소, 상대 노드의 홈주소, 상대 노드의 획득주소, 시퀀스 넘 버, 유효시간 중 적어도 하나에 관한 정보를 상기 바인딩 캐쉬로 전송하고, 상기 바인딩 메시지가 바인딩 응답 메시지인 경우, 이동 노드의 홈주소, 이동 노드의 획득주소, 상대 노드의 홈주소, 시퀀스 넘버, 유효시간, 상태 정보 중 적어도 하나에 관한 정보를 상기 바인딩 업데이트 저장부로 전송한다.
상기 모바일 IPv6 수신 장치는, IPv6 헤더 프로세싱을 담당하는 IPv6 수신부를 더 포함할 수 있다.
상기 모바일수신 처리부는, 상기 수신 패킷이 바인딩 패킷이면 이동 노드 및 상대 노드의 홈주소를 바인딩 수신부로 전송하고, 상기 수신 패킷이 데이터 패킷이면 모바일 관련 부분이 제거된 IP 헤더를 상기 IPv6 수신부로 전송한다.
상기 모바일 IPv6 수신 장치는, 외부로부터 입력되는 패킷의 체크섬과 계산된 체크섬이 일치하는지 확인하는 체크섬 확인부를 더 포함할 수 있다.
상기 모바일수신 처리부는, 체크섬 계산을 위한 슈도 헤더(pseudo header)를 생성하여 상기 체크섬 확인부로 제공한다.
상기 모바일 IPv6 수신 장치는, 이동 노드가 현재 홈 링크에 위치하는지, 외부 링크에 위치하는지에 관한 노드의 현재 상태를 파악하는 노드상태 확인부를 더 포함하는 모바일 IPv6 수신 장치.
상기 모바일 IPv6 수신 장치는, 외부 MAC을 통해 수신되는 패킷의 헤더를 종류별로 분리하여 상기 모바일수신 처리부 또는 상기 바인딩 수신부로 전송하고, 헤더를 제외한 데이터는 분리하여 출력하는 패킷 파싱부를 더 포함할 수 있다.
상기 바인딩 캐쉬는, 상대 노드의 획득주소를 테이블의 형태로 저장한다.
본 발명의 다른 측면에 따른 모바일 IPv6 송신 장치는, 바인딩 메시지 생성 요청을 수신하고, 계산된 체크섬을 이용해 데이터를 조립하여 요청된 바인딩 메시지를 생성하여 출력하는 바인딩 송신부; 이동 노드가 수신한 바인딩 정보를 저장하는 바인딩 캐쉬; 이동 노드가 송신한 바인딩 정보를 저장하는 바인딩 업데이트 저장부; 및 상기 바인딩 캐쉬, 상기 바인딩 업데이트 저장부 중 적어도 하나를 검색하여 얻은 획득주소를 통해 헤더의 종류를 결정하고, 상기 바인딩 송신부로부터 수신한 이동 노드 홈주소 및 상대 노드 홈주소 정보를 이용하여, 모바일 IPv6 헤더를 생성하여 출력하는 모바일송신 처리부를 포함한다.
상기 모바일송신 처리부는, 생성할 메시지가 바인딩업데이트 메시지인 경우 상기 바인딩 캐쉬만을 검색하고, 바인딩응답 메시지인 경우에는 상기 바인딩 업데이트 저장부만을 검색한다.
상기 모바일 IPv6 송신 장치는, IPv6 헤더 프로세싱을 수행하고, IPv6 헤더를 상기 모바일송신 처리부로 출력하는 IPv6 송신부를 더 포함할 수 있다.
상기 모바일 IPv6 송신 장치는 또한, 헤더와 응용 프로그램 데이터를 조합하여 패킷을 생성하고, 외부 네트워크로 전송하는 네트워크 인터페이스를 더 포함할 수 있다.
본 발명의 또 다른 측면에 따른 모바일 IPv6 제공 장치는, 수신한 패킷이 바인딩 패킷인지 데이터 패킷인지에 따라 이동 노드 및 상대 노드의 홈주소 또는 모 빌리티 관련 헤더 정보를 출력하는 모바일수신 처리부; 이동 노드가 수신한 바인딩 정보를 저장하는 바인딩 캐쉬; 이동 노드가 송신한 바인딩 정보를 저장하는 바인딩 업데이트 저장부; 상대 노드가 생성한 바인딩 메시지를 수신하고, 상기 모바일수신 처리부로부터 이동 노드 및 상대 노드의 홈주소 정보를 수신하여, 상기 바인딩 메시지 관련 정보를 상기 바인딩 캐쉬와 상기 바인딩 업데이트 저장부로 제공하는 바인딩 수신부; 바인딩 메시지 생성 요청을 수신하고, 계산된 체크섬을 이용해 데이터를 조립하여 요청된 바인딩 메시지를 생성하여 출력하는 바인딩 송신부; 및 상기 바인딩 캐쉬, 상기 바인딩 업데이트 저장부 중 적어도 하나를 검색하여 얻은 획득주소를 통해 헤더의 종류를 결정하고, 상기 바인딩 송신부로부터 수신한 이동 노드 홈주소 및 상대 노드 홈주소 정보를 이용하여, 모바일 IPv6 헤더를 생성하여 출력하는 모바일송신 처리부를 포함한다.
상기 모바일 IPv6 제공 장치는, 외부 MAC을 통해 수신되는 패킷의 헤더를 종류별로 분리하여 상기 모바일수신 처리부 또는 상기 바인딩 수신부로 전송하고, 헤더를 제외한 데이터는 분리하여 출력하는 ; 헤더와 응용 프로그램 데이터를 조합하여 패킷을 생성하고, 외부 네트워크로 전송하는 네트워크 인터페이스를 더 포함할 수 있다.
상기 모바일 IPv6 제공 장치는 또한, IP 주소로부터 MAC 주소 검색, 디폴트 라우터 선택, 네이버 도달가능성(unreachability) 감지, 이동 감지를 수행하는 네이버 탐색부를 더 포함할 수 있다.
상기 네이버 탐색부는, 상기 패킷 파싱부로부터 ICMP 관련 메시지를 수신하 고, 이동 노드의 CPU로 필요한 정보를 전달하며, 네이버 탐색 또는 수신한 패킷에 문제가 발생한 경우 ICMP 패킷을 생성하여 상기 네트워크 인터페이스로 전송한다.
상기 모바일 IPv6 제공 장치는, 이동 단말의 CPU와의 사이에 교환되는 컨트롤 플로우 또는 데이터 플로우를 중계하는 호스트 인터페이스를 더 포함할 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 도면을 살펴보면서 구체적으로 설명하기로 한다.
도 2는 본 발명에 따른 IPv6 제공 장치의 블록 구성을 나타낸다.
본 발명에 따른 모바일 IPv6 제공 장치(300)는 크게 패킷 파싱부(Packet Parser)(310), IP_수신부(320), UDP 수신부(330), TCP 수신부(331), 수신_RAM(340), 호스트 인터페이스(350), 송신_RAM(360), UDP 수신부(370), TCP 수신부(371), IP_송신부(380), 네트워크 인터페이스(390) 등으로 구성된다.
패킷 파싱부(310)는 외부 MAC을 통해 수신되는 패킷의 헤더를 분리하여 모바일 IPv6 제공 장치(300) 내의 다른 블록들로 제공하고 데이터를 수신_RAM에 저장하는 역할을 담당한다. 네트워크 인터페이스(390)는 송신 측 블록들에서 생성된 헤더와 CPU(400)가 출력하는 응용 프로그램 데이터를 조합하여 패킷을 생성하고 외부로 전송하는 역할을 담당한다. 호스트 인터페이스(Host Interface)는 CPU(400)와 모바일 IPv6 제공 장치(300)와의 통신을 담당하는 블록이다.
IP_수신부(320)는 외부, 즉 무선 환경으로부터 패킷을 수신하여 처리하는 역 할을 담당하며, 패킷 파싱부(310)로부터 패킷을 입력받아 모바일 IPv6 프로세싱을 수행한다. IP_송신부(380)는 CPU(400)로부터 입력받은 응용 프로그램 데이터에 대하여 Mobile IPv6 프로세싱을 수행한 후 패킷을 재조합, 생성하여 외부로 전송한다.
한편, UDP 수신부(330), TCP 수신부(331), UDP 송신부(370), TCP 송신부(371) 블록들은 각 프로토콜에 해당하는 헤더 프로세싱을 담당한다. 수신_RAM(340)은 수신한 패킷의 응용 프로그램 데이터가 저장되고, 송신_RAM(360)은 CPU(400)로부터 외부로 전송되는 응용 프로그램 데이터를 저장한다. 수신_RAM(340)에 저장된 데이터는 호스트 인터페이스(350)를 통해 CPU(400)로 전송되고, 송신_RAM(360)에 저장된 데이터는 IP_송신부(380), TCP 송신부(371) 또는 UDP 송신부(370)에서 생성된 헤더들과 합쳐져 네트워크 인터페이스(390)를 통해 외부로 전송된다.
본 발명의 핵심이 되는 IP_수신부(320)와 IP_송신부(380)의 세부 구조에 대해서 좀더 자세히 살펴보기로 한다.
IP_수신부(320)는 세부 블록으로, 체크섬 확인부(321), 노드상태 확인부(322), 모바일수신 처리부(323), 바인딩 수신부(325) 등을 포함하고, IP_송신부(380)는 세부 블록으로 모바일송신 처리부(381), 바인딩 송신부(382), IPv6 송신부(383) 등을 포함한다. IP_수신부(320)와 IP_송신부(380)에 공통으로 포함되는 블록으로는 네이버 탐색부(301), 바인딩 캐쉬(302), 바인딩 업데이트 저장부(303)을 들 수 있다.
우선, IP_수신부(320)부터 살펴보자.
체크섬 확인부(321)는 입력된 패킷의 체크섬(Checksum)을 사용하여 패킷의 에러 여부를 확인한다. 체크섬 확인부(321)는 패킷 파싱부(310)로부터 패킷의 데이터에 대한 체크섬을 수신하고 모바일수신 처리부(323)로부터 슈도 헤더(pseudo header)를 수신하여, 외부로부터 입력된 패킷의 체크섬과 계산된 체크섬이 일치하는지 확인한다.
노드상태 확인부(322)는 이동 노드의 현재 상태를 파악하는 역할을 담당하는데, 노드가 홈 링크에 위치하는지 외부 링크에 위치하는지 파악한다. 이를 위해 노드상태 확인부(322)는, 네이버 탐색부(301)로부터 이동 노드가 외부 링크로 이동했는지, 홈 링크에 있는지에 대한 정보를 수신하여 이동 노드의 상태를 유지하며 그 상태를 다른 모바일 관련 블록에 전해주는 역할을 한다. 예를 들어, 노드 상태 확인부(322)는 이동 노드가 홈 링크에 있다가 외부 링크로 이동했다는 신호와 함께 이동 노드의 획득주소를 네이버 탐색부(301)로부터 수신하면, 바인딩 송신부(382)로 홈 에이전트에게 바인딩을 전송할 것을 요청한다. 또한, 새로운 링크로 다시 이동하게 되는 경우에는 바인딩업데이트 저장부(303)로 바인딩업데이트 저장부(303)를 업데이트하라는 명령 신호를 전송한다. 이동 노드가 다시 홈링크로 돌아오는 경우에는 바인딩업데이트 저장부(303)에게 모든 바인딩을 제거하라는 신호를 전송한다.
모바일수신 처리부(323)는 모바일 IPv6의 기능을 수행하는 블록으로, 패킷 파싱부(310)에서 모빌리티 헤더를 제외한 IP 헤더를 수신하고, 데이터를 처리하여 다른 블록으로 공급한다. 모바일수신 처리부(323)가 패킷 파싱부(310)로부터 데이터를 수신하면, 헤더의 길이와 다음 헤더(next header) 필드를 보고 헤더의 유형을 결정한다. 수신한 패킷의 마지막 다음 헤더 필드가 모빌리티 헤더, 즉 135이면 수신된 패킷은 바인딩 패킷이고, 그렇지 않은 경우에는 데이터 패킷이 된다. 수신된 패킷이 바인딩 패킷인 경우, 이동 노드의 홈주소, 상대 노드의 홈주소 정보를 바인딩 수신부(325)로 전달한다. 바인딩 수신부(325)로 입력되는 바인딩 메시지는 홈주소를 포함하고 있지 않으므로 모바일수신 처리부(323)에서 그 정보를 제공해 주어야 하기 때문이다. 만일, 수신된 패킷이 데이터 패킷이면 홈주소를 사용한 40 byte의 IP 헤더를 생성하여 IPv6_수신부(324)로 전달한다. 원칙적으로 상위 계층에서는 바인딩이나 획득주소에 대해 알고 있지 않으므로 모빌리티 관련 헤더는 IPv6_수신부(324)로 전달되지 않기 때문이다.
모바일수신 처리부(323)는 또한, 수신되는 모든 패킷에 대한 체크섬 계산을 위해 슈도 헤더 (pseudo header)를 생성하여 체크섬 확인부(321)로 전달한다.
모바일수신 처리부(323)의 또 다른 역할은, 터널링 된 패킷을 수신한 경우, 경로 최적화를 위하여, 바인딩 송신부(382)에게 바인딩 업데이트(Binding Update)를 전송할 것을 요청하는 것이다. 상대 노드가 이동 노드의 획득주소를 모르는 경우, 상대 노드가 전송하는 패킷은 홈 에이전트를 통하여 터널링 된 후 이동 노드에게 전달되는데, 모바일수신 처리부(323)는 터널링 된 패킷이 입력되면 경로 최적화를 위해 패킷을 보낸 상대 노드에게 획득 주소를 알려주기 위해 바인딩 업데이트 메시지를 보낸다.
바인딩 수신부(325)는 바인딩 메시지를 수신하여 처리하는 블록이다. 바인딩 메시지에는 바인딩 업데이트(Binding Update) 메시지와 바인딩응답(Binding Acknowledgement) 메시지가 있다. 바인딩 수신부(325)는 패킷 파싱부(310)로부터 모빌리티 헤더와 바인딩 메시지를 수신하는데, 모빌리티 헤더와 바인딩 메시지에는 홈주소에 대한 정보가 포함되어 있지 않으므로 모바일수신 처리부(323)로부터 이동노드의 홈주소와 상대노드의 홈주소를 제공받는다. 여기서, 모빌리티 헤더는 Mobile IPv6에서 정의하여 사용하는 것으로, 이동 노드, 상대 노드, 홈 에이전트에서 사용되는 바인딩에 관련된 모든 메시지와 확장 헤더이다. 모빌리티 헤더는, 모빌리티 헤더 다음에 오는 헤더의 타입을 지정하는 8 비트의 페이로드 프로토(Payload Proto), 헤더 길이, 모빌리티 헤더 타입(MH Type, 이하 MH Type이라 한다.), 메시지 데이터 등의 필드를 가진다. 메시지 데이터는 가변적인 길이의 필드로서 이동 헤더 타입에서 지정된 형식의 데이터를 포함한다.
바인딩 수신부(325)는 모빌리티 헤더의 MH type 필드를 분석하여, 바인딩업데이트 패킷인 경우에는 이동 노드의 홈주소, 상대 노드의 홈주소, 상대 노드의 획득주소, 시퀀스 넘버, 유효시간(lifetime)에 관한 정보를 바인딩 캐쉬(302)로 전송한다. 바인딩응답 패킷인 경우에는 이동 노드의 홈주소, 이동 노드의 획득주소, 상대 노드의 홈주소, 시퀀스 넘버, 유효시간(lifetime), 상태(status) 정보를 바인딩업데이트 저장부(303)(Binding Update List)에 제공한다.
한편, IPv6 수신부(324)는 IPv6 헤더에 관한 프로세싱을 담당한다.
다음으로, IP_송신부(380)를 살펴보자.
바인딩 송신부(382)는 바인딩 메세지를 생성하는 블록이다. 바인딩 메시지 생성 요청은 주변 4개의 블록에서 수신될 수 있는데, 링크를 이동한 경우 노드상태 확인부(322)로부터 바인딩업데이트 메시지의 생성 요청, 터널링 패킷을 받은 경우 모바일수신 처리부(323)로부터 경로 최적화를 위한 바인딩 업데이트 메시지 생성 요청, 바인딩업데이트 저장부(303)의 임의 엔트리의 유효시간이 임계 값에 도달했을 경우 바인딩업데이트 저장부(303)로부터 바인딩 업데이트 메시지에 대한 요청, 바인딩 업데이트 메시지를 수신한 경우 바인딩 캐쉬(302)로부터 바인딩 업데이트 요청 등이 그것이다.
이렇게 각 블록으로부터 수신한 바인딩 요청은 순차적으로 처리된다. 바인딩 메시지 생성 요청을 수신한 바인딩 송신부(382)는 해당 메세지를 각 헤더 필드에 저장하고 체크섬을 계산한다. 또한 메시지의 IP 헤더를 만들기 위해 모바일송신 처리부(381)에 헤더를 만들라고 요청한다. 체크섬 계산이 완료되면 데이터를 조립하여 네트워크 인터페이스(390)로 전달한다. 네트워크 인터페이스(390)로 데이터를 전송하겠다는 요청을 하여, 네트워크 인터페이스(390)로부터 응답을 받으면, 한 클럭에 2 바이트씩을 전달하며, 마지막 2 바이트와 함께 end 신호를 띄워 데이터가 끝임을 알린다.
모바일송신 처리부(381)는 모바일 IP 헤더를 생성하는 블록이다. IPv6 송신부(383)로부터 IPv6 헤더를 수신하거나 바인딩 송신부(382)로부터 이동 노드 홈주소, 상대 노드 홈주소, 길이 정보 등을 수신하여 모바일 IPv6 헤더를 생성한다. 각 블록에서 오는 데이터의 진원지, 목적지 주소는 홈주소이므로 바인딩 캐쉬(302), 바인딩업데이트 저장부(303) 검색을 통해 획득주소를 얻고 헤더의 형태를 결정하여야 한다. IP 블록에서 온 데이터의 경우에는 바인딩업데이트 저장부(303), 바인딩 캐쉬(302)를 모두 검색하여 획득주소에 대한 정보를 얻는다. 수신한 메시지가 바인딩 메시지 중 바인딩 업데이트 메시지이면 이미 이동 노드의 획득주소는 결정된 상태이므로 바인딩 캐쉬(302)만을 검색한다. 만일, 바인딩응답 메시지이면 상대노드의 획득주소에 대한 바인딩응답 패킷이므로 바인딩업데이트 저장부(303)만 검색하여 이동노드의 획득주소를 사용할지를 결정한다. 그리고 현재 이동 노드가 홈 링크에 있으면 바인딩 캐쉬(302)만 검색하고 바인딩업데이트 저장부(303)는 검색하지 않는다.
상술한 바와 같이, 모바일송신 처리부(381)는 입력된 데이터와 검색 결과에 따라 헤더의 형태를 결정하고 모바일 헤더를 생성하여 네트워크 인터페이스(390)로 전송한다. 또한 모바일송신 처리부(381)는 MAC 헤더를 만들기 위하여 네이버 탐색부(301)에게 가장 외곽에 있는 목적지 주소를 전달한다.
한편, IPv6 송신부(384)는 IPv6 헤더에 관한 프로세싱을 담당한다.
다음으로, IP_수신부(320)와 IP_송신부(380)에 공통으로 적용되는 블록들에 대해 살펴본다.
바인딩 캐쉬(302)는 수신한 바인딩 업데이트를 저장하는 곳으로 상대 노드의 획득주소에 대한 정보를 테이블의 형태로 유지하고 있다. 바인딩 캐쉬(302)의 엔트리에는 이동 노드의 홈주소, 상대 노드의 홈주소, 상대 노드의 획득주소, 시퀀스 넘버, 유효시간(lifetime) 등이 있고, 각 엔트리의 유지를 위해서 Valid Bit, 유효시간 카운터(Lifetime Counter), Hit Bit 등의 엔트리를 갖고 있다.
바인딩 캐쉬(302)가 바인딩 수신부(325)로부터 바인딩 데이터를 수신면 이동 노드의 홈주소, 상대 노드의 홈주소로 일치하는 엔트리가 있는지 순차적으로 검색한다. 일치하는 엔트리가 있으면 시퀀스 넘버를 비교하여 입력된 숫자가 저장되어 있는 것보다 큰지 확인한 후, 해당 엔트리의 정보를 업데이트한다. 입력된 시퀀스 넘버가 엔트리에 저장되어 있는 것보다 크지 않으면 에러가 되고, 바인딩응답 패킷의 상태 필드에 "시퀀스 넘버 에러"라고 표시하여 전송한다. 일치하는 엔트리가 없으면 새로운 엔트리에 저장한다.
바인딩 캐쉬(302)는 이어서 수신한 바인딩 업데이트 메시지에 대한 바인딩응답을 보내기 위해 바인딩 송신부(382)에 바인딩응답 패킷을 생성, 전송할 것을 요청한다. 바인딩 송신부(382)는 패킷을 송신할 때 목적지 노드의 획득주소를 알고 있는지 확인하기 위해 바인딩 캐쉬(302) 검색을 의뢰한다. 바인딩 캐쉬(302)는 검색을 통해 일치하는 엔트리가 있으면 ACK, Match 신호와 함께 상대 노드의 획득주소를 바인딩 송신부(382)에 전달하고, 일치하는 엔트리가 없으면 ACK 신호만 보내준다.
바인딩 캐쉬(302)는 테이블의 엔트리 개수를 적당하게 유지하고 사용하지 않는 엔트리를 삭제하기 위해서 다음과 같은 과정을 백 그라운드 프로세싱으로 수행한다. 일단 테이블에 데이터가 저장되면 Valid 비트와 Hit 비트를 1로 설정하고 입력된 유효시간(lifetime)을 유효시간 카운터에 저장한다. 그리고 유효한 엔트리에 대해 유효시간 카운터를 하나씩 감소시키고 일정시간마다 Hit Bit을 0으로 설정한 다. 유효시간 카운터가 임계값보다 작아지고 Hit Bit이 설정되어 있으면 해당 엔트리를 계속 사용 중인 것으로 간주하여 바인딩 송신부(382)에 바인딩 리퀘스트(BR)을 요청하여 바인딩을 유지할 수 있다. 임계값보다 작으나 Hit Bit이 0인 경우에 그 엔트리는 사용되지 않는 것으로 간주하고, 유효시간 카운터가 0이 되면 엔트리를 삭제한다.
바인딩 업데이트 저장부(Binding Update List)(303)는 송신한 바인딩 정보를 저장하는 곳으로 이동 노드가 유지하는 정보이다. 바인딩 업데이트 저장부(303)는 바인딩을 송신한 노드의 주소와 이동 노드의 획득 주소, 유효 시간 등을 저장하고, 유효 시간이 만료될 즈음에는 다시 업데이트 메시지를 보낼 수 있다. 이동 노드는 리스트에 상대 노드의 주소가 있을 경우 획득 주소를 이용하여 홈 에이전트를 거치지 않고 곧바로 상대 노드에게 패킷을 전송할 수 있다. 바인딩업데이트 저장부(303)의 테이블 엔트리에는 상대 노드 홈주소, 이동 노드 획득주소, 이동 노드 홈주소, 시퀀스 넘버, 유효시간, H 비트를 저장하며, 각 엔트리의 유지를 위해서 Valid 비트, 유효 시간 카운터, Hit 비트를 갖고 있다. 그리고 응답 패킷을 기다리는 과정을 위해 각 엔트리마다 Retrans_times, Wait_Ack_카운터, State를 저장하고 있다.
바인딩 송신부(382)는 바인딩 업데이트를 전송한 후, 그 정보를 바인딩업데이트 저장부(303)에 전달한다. 바인딩업데이트 저장부(303)는 수신한 정보가 바인딩업데이트 저장부(303)로부터 요청된 것이면 해당 엔트리를 업데이트하고, 다른 블록에서 요청한 바인딩은 새로운 엔트리에 저장한다. 또한 송신한 바인딩업데이트 메시지에 대한 바인딩응답 패킷을 기다린다. State를 Wait_ACK 상태로 설정하고 Wait_Ack_카운터를 하나씩 증가시킨다. Wait_Ack_카운터가 정해놓은 시간을 넘어서게 되면 다시 업데이트 메세지를 전송하도록 바인딩 송신부(382)에 요청한다. 이러한 재전송은 기 설정된 횟수까지 반복하고 그 때까지 바인딩응답 패킷을 수신하지 않으면, 그 엔트리는 무효한 것으로 간주한다. 바인딩 수신부(325)로부터 바인딩응답 패킷을 받으면 바인딩응답 패킷에 해당하는 엔트리를 찾기 위해 이동 노드 홈주소, 상대 노드 홈주소를 사용하여 일치하는 엔트리가 있는지 순차적으로 검색한다. 일치하는 엔트리가 있으면 시퀀스 넘버를 비교하여 입력된 숫자가 저장된 것과 일치하는지 확인한 후, 일치하는 경우 해당 엔트리의 정보를 업데이트한다.
바인딩 송신부(382)는 패킷을 전송할 때 상대 노드가 이동 노드의 획득주소를 알고 있는지를 확인하기 위해 바인딩업데이트 저장부(303) 검색을 의뢰한다. 바인딩업데이트 저장부(303)는 검색을 통해 일치하는 엔트리가 있으면 Ack, Match 신호와 함께 이동 노드 획득주소를 바인딩 송신부(382) 블록으로 전달하고 일치하는 엔트리가 없으면 Ack 신호만 보내준다.
바인딩업데이트 저장부(303)는 바인딩업데이트 저장부(303) 테이블을 유지하기 위해서 유효한 엔트리에 대해 유효시간 카운터를 하나씩 감소시키고 일정시간마다 Hit bit을 0으로 설정한다. 유효시간 카운터가 임계 값 보다 작아지고 Hit bit이 설정되어 있으면 해당 엔트리를 계속 사용중인 것으로 간주하여 바인딩 송신부(382)에 바인딩 업데이트 메시지를 요청하여 바인딩을 유지할 수 있게 한다. 임계 값보다 작거나 Hit Bit이 0인 경우에 그 엔트리는 사용되지 않는 것으로 생각하고 유효시간 카운터가 0이 되면 엔트리를 삭제한다. 또한 네이버 탐색부(301)로부터 다른 링크로 이동했다는 신호를 수신하면 유효한 엔트리의 state를 move 상태로 하여 순차적으로 바인딩 업데이트를 보내 리스트를 업데이트하고 홈 링크로 돌아온 경우 state를 move 상태로 하되 전송하는 바인딩 업데이트의 유효시간을 0으로 하고 이동 노드 획득주소를 이동 노드 홈주소와 일치시켜 바인딩을 취소시킨다.
네이버 탐색부(301)는 목적지 IP 주소로 패킷을 전송할 때 거치게 되는 처음 홉의 MAC 주소를 찾아내는 기능을 수행한다. 또한 디폴트 라우터 선택, 네이버 도달가능성 감지(neighbor unreachability detection : NUD), 그리고 이동감지 (movement detection)를 수행한다. 네이버 탐색부(301)는 RxND, NDP, TxND 등의 세부 블록들로 구성된다. RxND는 패킷 파싱부(310)로부터 RA(Router Advertisement), NS(Neighbor Solicitation), 그리고 NA(Neighbor Advertisement) 패킷을 수신하여 패킷에 에러가 없는지를 확인한 후 입력된 메시지에 에러가 없는 경우에만 NDP에게 그 정보를 전달한다. TxND는 NDP의 명령에 따라 ND 메시지를 생성하여 네트워크 인터페이스(390)가 준비될 때까지 패킷을 저장해 놓았다가 네트워크 인터페이스(390)에게 전송하는는 역할을 한다. NDP는 주소 변환에 필요한 네이버 캐쉬 (neighbor cache)와 디폴트 라우터 리스트와 프리픽스 리스트를 관리한다. 그리고 ND 메시지를 전송하는 경우에는, TxND 블럭에게 ND 메시지를 생성하라는 신호를 전송한다.
네이버 탐색부(301)는 네이버 캐쉬의 정보를 관리하고 IP 주소의 변환을 수행한다. 네트워크 인터페이스(390)는 프리픽스 리스트의 프리픽스들과 목적지 주소를 비교하여, 목적지 주소가 같은 링크에 있는 경우(on-link)에 ND에게 알고자 하 는 IP 주소와 함께 요청 신호를 전송한다. 이 요청을 수신한 네이버 탐색부(301)는 네이버 캐쉬에서 일치하는 정보를 검색하고 해당 정보가 캐쉬에 존재하는 경우 MAC 주소에 대한 정보를 네트워크 인터페이스(390)로 전송한다. 캐쉬에 찾는 정보가 없는 경우 NS 패킷을 만들어 같은 링크상의 다른 모든 호스트들에게 전송한다. NS에 대한 응답으로 solicited NA가 수신되면, 이 패킷으로부터 원하는 주소 정보를 얻게 된다. 이 때 해당하는 네이버 캐쉬의 엔트리는 REACHALBE상태가 된다. 만약 unsolicited NA나 RA를 수신한 경우에는 네이버 캐쉬의 해당 엔트리는 STALE 상태가 된다. 또한 도달 시간(reachable time) 동안 요청을 받지 않은 네이버 캐쉬 엔트리는 도달 시간이 경과하면 REACHABLE 상태에서 STALE 상태로 변경된다. STALE 상태에서 요청을 받으면 DELAY 상태가 되며, 타이머를 DELAY FRIST PROBE TIME (5sec)으로 조정한다. DELAY FIRST PROBE TIME이 지나도록 해당 네이버로부터 패킷을 수신하지 못하면, DELAY 상태에서 PROBE 상태로 변경된다. PROBE 상태에서는 Retrans Timer마다 NS 패킷을 전송한다. MAX_UNICAST_SOLICIT보낸 후 도달 시간이 경과하도록 해당 노드로부터 패킷을 받지 못한다면, 그 네이버는 도달 가능하지 않은 것으로 판단한다. DELAY 혹은 PROBE 상태에서 해당 노드로부터 패킷을 수신하면, REACHABLE 상태로 변경된다. 사용되지 않는 엔트리는 삭제되는데, STALE 상태에서 10초 동안 사용되지 않으면, 그 네이버와는 통신하지 않는 것으로 판단하여 지우게 된다.
네이버 캐쉬는 20개의 엔트리를 가지며, 엔트리가 라우터인지 호스트인지를 나타내는 IsRouter와 state, IP 주소와 MAC 주소로 이루어져 있다. 디폴트 라우터 리스트는 RA를 수신할 때마다 업데이트 된다. 이동 노드가 홈링크가 아닌 다른 링크에 위치할 때 패킷을 전송하는 디폴트 라우터는 홈에이젼트 역할을 하는 라우터를 사용하게 된다. 디폴트 라우터 선택은 디폴트 라우터를 통한 통신이 실패할 때 수행되게 된다. 디폴트 라우터 리스트는 5개의 엔트리를 가지며, 각각의 엔트리는 홈 에이전트, 유효시간, 라우터 IP 주소로 이루어져 있다. 프리픽스 리스트는 RA의 옵션인 프리픽스 옵션을 통해 업데이트된다. 프리픽스 리스트는 5개의 엔트리를 가지며, 각 엔트리는 프리픽스, 프리픽스 길이로 이루어져 있다.
한편, 호스트 인터페이스(Host Interface)(350)는, CPU(400)와 모바일 IPv6 하드웨어와의 통신을 담당하는 블록으로, CPU(400)의 슬레이브 모드로 동작하고 컨트롤 플로우와 데이터 플로우로 나누어 설명될 수 있다. 컨트롤 플로우는 CPU(400)로부터 받는 버스 폭에 대한 정보와 웨이트(wait)에 관련된 정보, 하드웨어 블록들에 내려지는 명령이나 보내는 패킷을 위한 헤더 정보들과, 하드웨어 블록들로부터 CPU(400)로 전송되는 상태 정보 및 수신한 패킷의 헤더 정보 등 패킷의 송수신에 필요한 컨트롤 정보들이 포함되는데, 호스트 인터페이스(350) 내부의 Command/Status Register(CSR)을 통해 통신이 이루어진다. 데이터 플로우는 CPU(400)와 모바일 IPv6 제공 장치(300) 사이에서 데이터를 전달하는 역할을 하는데, 데이터를 수신하는 플로우와 데이터를 패킷으로 생성하여 전송하는 송신 플로우로 구분된다. 수신 플로우의 경우에는 수신_RAM(340)에 저장된 데이터를 읽어들여 내부 RxFIFO를 통해 CPU(400)가 읽어가도록 하고, 송신 플로우의 경우에는 CPU(400)로부터 전송할 데이터를 읽어와 내부의 TxFIFO를 통해 송신_RAM(360)에 저장하여 네트워크 인터페이스(390)가 읽어가 패킷을 생성하여 전송할 수 있도록 한다.
도 3은 본 발명에 따른 IPv6 제공 장치에서의 데이터 패킷의 수신 흐름을 도시한다.
도 3은 TCP, UDP 패킷 등과 같은 데이터 패킷의 수신 플로우를 보여준다. 데이터 패킷을 수신한 패킷 파싱부(310)는 IP 헤더를 모바일수신처리부(323)에 제공한다(S301). 모바일수신처리부(323)는 모바일 관련 기능을 제거한 40 바이트의 IP 헤더를 IPv6_수신부(324)로 전송한다(S302). 이를 수신한 IPv6_수신부(324)는 IP 헤더 프로세싱을 수행하고, 그 결과를 CPU(400)에게 제공한다(S303).
패킷의 TCP 데이터 혹은 UDP 데이터 부분은 패킷 파싱부(310)가 직접 수신_RAM(340)에 저장하여(S310), 호스트 인터페이스(350)를 통하여 CPU(400)가 읽어가도록 한다(S311).
도 4는 본 발명에 따른 IPv6 제공 장치에서의 데이터 패킷의 송신 흐름을 도시한다.
도 4는 TCP, UDP 패킷 등과 같은 데이터 패킷의 송신 플로우를 보여준다. 이동 노드가 전송하고자 하는 패킷이 있을 경우, 호스트 인터페이스(350)를 통해 입력되는 CPU의 명령에 따라(S401), IPv6_송신부(383)가 IP 헤더를 생성한다. IPv6_ 송신부(383)는 IP 헤더를 생성하여 모바일송신처리부(381)에게 전송한다(S402). 모바일송신 처리부(381)에서는 모바일 기능과 관련된 헤더를 만들어서 네트워크 인터페이스(390)로 전송한다.
전송하고자 하는 응용 프로그램 데이터는 호스트 인터페이스(350)를 통하여 송신_RAM(360)에 쓰여지게 되고(S410), 네트워크 인터페이스(390)는 송신_RAM(360)으로부터 데이터를 읽어, 헤더와 데이터를 순서에 맞게 조립하여 외부로 전송한다(S411).
도 5는 본 발명에 따른 IPv6 제공 장치에서의 바인딩 패킷의 전송 흐름을 도시한다.
바인딩 관련 패킷은 CPU(400)의 간섭 없이 모바일 관련 블록들에 의해 프로세싱되고, 또한 생성되어 전송된다.
바인딩 관련 패킷에는 바인딩업 데이트(BU), 바인딩 응답(BA) 패킷 등이 있고, 이러한 패킷은 IPv6의 모빌리티 헤더(mobility header)에 포함되어 전송된다. 이러한 패킷을 수신한 경우 패킷 파싱부(310)는, 모빌리티 헤더를 제외한 IP 헤더를 모바일수신 처리부(323)로 제공하고(S501), 모빌리티 헤더와 바인딩 관련 정보는 바인딩_수신부(325)로 전송한다. IP 헤더를 수신한 모바일수신 처리부(323)는 IP 헤더로부터 추출한 바인딩 관련 정보를 바인딩_수신부(325)로 전송한다(S502). 바인딩_수신부(325)는 수신한 바인딩 패킷이 바인딩 업데이트인 경우, 해당 패킷을 바인딩 캐쉬(302)로(S503), 바인딩응답인 경우 해당 패킷을 바인딩업데이트 저장부 (303)로 전송한다(S504).
바인딩 캐쉬(302) 또는 바인딩 업데이트 저장부(303)는 바인딩 업데이트를 수신하고, 그에 따르는 바인딩응답 또는 바인딩업데이트를 전송하고자 하는 경우, 바인딩_송신부(382)에 바인딩 패킷을 생성하여 전송하라는 요청을 한다(S505). 바인딩_송신부(382)는 모빌리티 헤더와 바인딩 정보를 생성한 후, 모바일송신처리부(381)에 IP 헤더를 생성하라는 요청을 한다(S506). 바인딩_송신부(382)와 모바일송신 처리부(381)에서 생성된 헤더 및 바인딩 정보는 네트워크 인터페이스로 전송되고(S507, S508), 네트워크 인터페이스는 패킷을 조립하여 전송한다.
도 6은 본 발명에 따른 IPv6 제공 장치에서의 ICMP 패킷의 전송 흐름을 도시한다.
ICMP(Internet Control Message Protocol) 관련 패킷 또한 CPU(400)의 간섭 없이 네이버 탐색부(301)에 의해 프로세싱, 생성되어 전송된다. ICMP 관련 패킷에는 네이버 디스커버리(Neighbor Discovery) 관련 패킷과 ICMP 에러 메시지가 있다. 패킷 파싱부(310)는 이러한 패킷을 수신한 경우 패킷을 네이버 탐색부(301)로 전송한다(S601). 네이버 탐색부(301)에서는 수신한 패킷 정보를 사용하여, 자신이 갖고 있는 리스트를 업데이트 시키거나 패킷에 대한 처리를 하고 CPU(400)에게 필요한 정보를 전달한다(S601). 네이버 탐색을 하고자 할 때나, 받은 패킷에 문제가 있을 경우 ICMP 패킷을 생성하여 외부로 전송하는데 이러한 경우에도 네이버 탐색부(301)에서 직접 패킷을 생성하여 네트워크 인터페이스(390)로 전송하고(S610), 필 요한 정보만 CPU(400)로 전송한다(S602).
본 발명은, 모바일 IPv6를 제공하는 하드웨어를 구현함으로써 이동 노드가 새로운 링크로 움직였을 때에 신속히 이동을 감지하고, 바인딩에 필요한 패킷들을 전송하고 그에 따르는 응답 패킷을 신속히 처리하므로 효율적인 이동성 지원이 가능하고, 이동성 지원을 위한 모든 기능이 CPU의 간섭없이 하드웨어에 의하여 처리되어 이동지원 처리속도가 매우 빠를 뿐만 아니라, CPU는 응용프로그램에 보다 충실할 수 있으므로, 단말의 전체적인 성능 향상을 기대할 수 있다.

Claims (21)

  1. 상대 노드와 IPv6 프로토콜을 사용해 통신하는 이동 노드의 모바일 IPv6 제공 장치에 있어서,
    수신한 패킷이 바인딩 패킷인지 데이터 패킷인지에 따라 이동 노드 및 상대 노드의 홈주소 또는 모빌리티 관련 헤더 정보를 출력하는 모바일수신 처리부;
    이동 노드가 수신한 바인딩 정보를 저장하는 바인딩 캐쉬;
    이동 노드가 송신한 바인딩 정보를 저장하는 바인딩 업데이트 저장부; 및
    상대 노드가 생성한 바인딩 메시지를 수신하고, 상기 모바일수신 처리부로부터 이동 노드 및 상대 노드의 홈주소 정보를 수신하여, 상기 바인딩 메시지 관련 정보를 상기 바인딩 캐쉬와 상기 바인딩 업데이트 저장부로 제공하는 바인딩 수신부를 포함하는 모바일 IPv6 수신 장치.
  2. 제 1항에 있어서,
    상기 바인딩 수신부는,
    상기 바인딩 메시지가 바인딩 업데이트 메시지인 경우, 이동 노드의 홈주소, 상대 노드의 홈주소, 상대 노드의 획득주소, 시퀀스 넘버, 유효시간 중 적어도 하나에 관한 정보를 상기 바인딩 캐쉬로 전송하고,
    상기 바인딩 메시지가 바인딩 응답 메시지인 경우, 이동 노드의 홈주소, 이 동 노드의 획득주소, 상대 노드의 홈주소, 시퀀스 넘버, 유효시간, 상태 정보 중 적어도 하나에 관한 정보를 상기 바인딩 업데이트 저장부로 전송하는 모바일 IPv6 수신 장치.
  3. 제 1항에 있어서,
    IPv6 헤더 프로세싱을 담당하는 IPv6 수신부를 더 포함하는 모바일 IPv6 수신 장치.
  4. 제 3항에 있어서,
    상기 모바일수신 처리부는,
    상기 수신 패킷이 바인딩 패킷이면 이동 노드 및 상대 노드의 홈주소를 바인딩 수신부로 전송하고, 상기 수신 패킷이 데이터 패킷이면 모바일 관련 부분이 제거된 IP 헤더를 상기 IPv6 수신부로 전송하는 모바일 IPv6 수신 장치.
  5. 제 1항에 있어서,
    외부로부터 입력되는 패킷의 체크섬과 계산된 체크섬이 일치하는지 확인하는 체크섬 확인부를 더 포함하는 모바일 IPv6 수신 장치.
  6. 제 5항에 있어서,
    상기 모바일수신 처리부는,
    체크섬 계산을 위한 슈도 헤더(pseudo header)를 생성하여 상기 체크섬 확인부로 제공하는 모바일 IPv6 수신 장치.
  7. 제 1항에 있어서,
    이동 노드가 현재 홈 링크에 위치하는지, 외부 링크에 위치하는지에 관한 노드의 현재 상태를 파악하는 노드상태 확인부를 더 포함하는 모바일 IPv6 수신 장치.
  8. 제 1항에 있어서,
    외부 MAC을 통해 수신되는 패킷의 헤더를 종류별로 분리하여 상기 모바일수신 처리부 또는 상기 바인딩 수신부로 전송하고, 헤더를 제외한 데이터는 분리하여 출력하는 패킷 파싱부를 더 포함하는 모바일 IPv6 수신 장치.
  9. 제 8항에 있어서,
    상기 패킷 파싱부로부터 분리되어 출력되는 데이터를 수신해 저장하는 수신_RAM을 더 포함하는 모바일 IPv6 수신 장치.
  10. 제 1항에 있어서,
    수신된 패킷에 대한 UDP 헤더 프로세싱을 수행하는 UDP 수신부; 와
    수신된 패킷에 대한 TCP 헤더 프로세싱을 수행하는 TCP 수신부를 더 포함하는 모바일 IPv6 수신 장치.
  11. 제 1항에 있어서,
    상기 바인딩 캐쉬는,
    상대 노드의 획득주소를 테이블의 형태로 저장하는 모바일 IPv6 수신 장치.
  12. 상대 노드와 IPv6 프로토콜을 사용해 통신하는 이동 노드의 모바일 IPv6 제공 장치에 있어서,
    바인딩 메시지 생성 요청을 수신하고, 계산된 체크섬을 이용해 데이터를 조립하여 요청된 바인딩 메시지를 생성하여 출력하는 바인딩 송신부;
    이동 노드가 수신한 바인딩 정보를 저장하는 바인딩 캐쉬;
    이동 노드가 송신한 바인딩 정보를 저장하는 바인딩 업데이트 저장부; 및
    상기 바인딩 캐쉬, 상기 바인딩 업데이트 저장부 중 적어도 하나를 검색하여 얻은 획득주소를 통해 바인딩 업데이트 또는 바인딩 응답을 위한 헤더의 형태를 결정하고, 상기 바인딩 송신부로부터 수신한 이동 노드 홈주소 및 상대 노드 홈주소 정보를 이용하여, 모바일 IPv6 헤더를 생성하여 출력하는 모바일송신 처리부를 포함하는 모바일 IPv6 송신 장치.
  13. 제 12항에 있어서,
    상기 모바일송신 처리부는,
    생성할 메시지가 바인딩업데이트 메시지인 경우 상기 바인딩 캐쉬만을 검색하고, 바인딩응답 메시지인 경우에는 상기 바인딩 업데이트 저장부만을 검색하는 모바일 IPv6 송신 장치.
  14. 제 12항에 있어서,
    IPv6 헤더 프로세싱을 수행하고, IPv6 헤더를 상기 모바일송신 처리부로 출력하는 IPv6 송신부를 더 포함하는 모바일 IPv6 송신 장치.
  15. 제 14항에 있어서,
    헤더와 응용 프로그램 데이터를 조합하여 패킷을 생성하고, 외부 네트워크로 전송하는 네트워크 인터페이스를 더 포함하는 모바일 IPv6 송신 장치.
  16. 제 12항에 있어서,
    전송할 패킷에 대한 UDP 헤더 프로세싱을 수행하는 UDP 수신부; 와
    전송할 패킷에 대한 TCP 헤더 프로세싱을 수행하는 TCP 수신부를 더 포함하는 모바일 IPv6 송신 장치.
  17. 상대 노드와 IPv6 프로토콜을 사용해 통신하는 이동 노드의 모바일 IPv6 제공 장치에 있어서,
    수신한 패킷이 바인딩 패킷인지 데이터 패킷인지에 따라 이동 노드 및 상대 노드의 홈주소 또는 모빌리티 관련 헤더 정보를 출력하는 모바일수신 처리부;
    이동 노드가 수신한 바인딩 정보를 저장하는 바인딩 캐쉬;
    이동 노드가 송신한 바인딩 정보를 저장하는 바인딩 업데이트 저장부;
    상대 노드가 생성한 바인딩 메시지를 수신하고, 상기 모바일수신 처리부로부터 이동 노드 및 상대 노드의 홈주소 정보를 수신하여, 상기 바인딩 메시지 관련 정보를 상기 바인딩 캐쉬와 상기 바인딩 업데이트 저장부로 제공하는 바인딩 수신부;
    바인딩 메시지 생성 요청을 수신하고, 계산된 체크섬을 이용해 데이터를 조립하여 요청된 바인딩 메시지를 생성하여 출력하는 바인딩 송신부; 및
    상기 바인딩 캐쉬, 상기 바인딩 업데이트 저장부 중 적어도 하나를 검색하여 얻은 획득주소를 통해 바인딩 업데이트 또는 바인딩 응답을 위한 헤더의 형태를 결정하고, 상기 바인딩 송신부로부터 수신한 이동 노드 홈주소 및 상대 노드 홈주소 정보를 이용하여, 모바일 IPv6 헤더를 생성하여 출력하는 모바일송신 처리부를 포함하는 모바일 IPv6 제공 장치.
  18. 제 17항에 있어서,
    외부 MAC을 통해 수신되는 패킷의 헤더를 종류별로 분리하여 상기 모바일수신 처리부 또는 상기 바인딩 수신부로 전송하고, 헤더를 제외한 데이터는 분리하여 출력하는 패킷 파싱부;
    헤더와 응용 프로그램 데이터를 조합하여 패킷을 생성하고, 외부 네트워크로 전송하는 네트워크 인터페이스를 더 포함하는 모바일 IPv6 제공 장치.
  19. 제 18항에 있어서,
    IP 주소로부터 MAC 주소 검색, 디폴트 라우터 선택, 네이버 도달가능성(unreachability) 감지, 이동 감지를 수행하는 네이버 탐색부를 더 포함하는 모바일 IPv6 제공 장치.
  20. 제 19항에 있어서,
    상기 네이버 탐색부는,
    상기 패킷 파싱부로부터 ICMP 관련 메시지를 수신하고, 이동 노드의 CPU로 필요한 정보를 전달하며, 네이버 탐색 또는 수신한 패킷에 문제가 발생한 경우 ICMP 패킷을 생성하여 상기 네트워크 인터페이스로 전송하는 네이버 탐색부를 더 포함하는 모바일 IPv6 제공 장치.
  21. 제 17항에 있어서,
    이동 단말의 CPU와의 사이에 교환되는 컨트롤 플로우 또는 데이터 플로우를 중계하는 호스트 인터페이스를 더 포함하는 모바일 IPv6 제공 장치.
KR1020060002349A 2006-01-09 2006-01-09 모바일 IPv6 제공 장치 KR100656479B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020060002349A KR100656479B1 (ko) 2006-01-09 2006-01-09 모바일 IPv6 제공 장치
CNA2006101686004A CN101001258A (zh) 2006-01-09 2006-12-22 支持移动因特网协议版本6(移动IPv6)的设备
US11/645,636 US20070160064A1 (en) 2006-01-09 2006-12-27 Device supporting mobile internet protocol version 6 (Mobile IPv6)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060002349A KR100656479B1 (ko) 2006-01-09 2006-01-09 모바일 IPv6 제공 장치

Publications (1)

Publication Number Publication Date
KR100656479B1 true KR100656479B1 (ko) 2006-12-11

Family

ID=37732984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060002349A KR100656479B1 (ko) 2006-01-09 2006-01-09 모바일 IPv6 제공 장치

Country Status (3)

Country Link
US (1) US20070160064A1 (ko)
KR (1) KR100656479B1 (ko)
CN (1) CN101001258A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100881659B1 (ko) 2007-05-14 2009-02-06 인제대학교 산학협력단 인터넷 프로토콜 변환 장치 및 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008053798A1 (fr) * 2006-10-30 2008-05-08 Panasonic Corporation Procédé de mise à jour de liaison, terminal mobile, agent local et système de mise à jour de liaison
KR20080073023A (ko) * 2007-02-05 2008-08-08 삼성전자주식회사 이동통신 시스템에서 홈 주소 인식을 위한 장치 및 방법
US7706304B2 (en) * 2007-06-21 2010-04-27 Telefonaktiebolaget L M Ericsson (Publ) Method and system for assigning routers to hosts
CN101350693B (zh) * 2007-07-20 2011-04-06 华为技术有限公司 一种传送协议信息的方法和装置
US9088608B2 (en) * 2013-03-12 2015-07-21 Cisco Technology, Inc. Throttling and limiting the scope of neighbor solicitation (NS) traffic
CN107251593B (zh) * 2015-04-10 2020-05-08 华为技术有限公司 数据包处理方法和相关设备
US10958554B2 (en) * 2018-08-22 2021-03-23 Hewlett Packard Enterprise Development Lp Monitoring flow activity on a network device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004015143A (ja) * 2002-06-04 2004-01-15 Fujitsu Ltd 移動通信システムにおけるハンドオーバ方法、および移動通信システムにおいて使用されるルータ装置
US7991854B2 (en) * 2004-03-19 2011-08-02 Microsoft Corporation Dynamic session maintenance for mobile computing devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100881659B1 (ko) 2007-05-14 2009-02-06 인제대학교 산학협력단 인터넷 프로토콜 변환 장치 및 방법

Also Published As

Publication number Publication date
CN101001258A (zh) 2007-07-18
US20070160064A1 (en) 2007-07-12

Similar Documents

Publication Publication Date Title
KR100656479B1 (ko) 모바일 IPv6 제공 장치
US7136365B2 (en) Mobile node adapted router and home agent router
KR100638380B1 (ko) IPv6 용 이동 라우터 지원
US8315218B2 (en) Method for supporting route optimization in 6LoWPAN based MANEMO environment
JP4607998B2 (ja) 異なるアドレス空間におけるモバイルIPv6のルート最適化
US7966018B2 (en) Transport efficiency optimization for mobile IPV6
KR100582731B1 (ko) 모바일 IPv6 망에서 이동 호스트를 이용한 트래픽 교환방법
US20060240825A1 (en) Mobile communication method, mobile communication apparatus, home agent apparatus, access router information server apparatus, and mobile communication system
US20090097453A1 (en) Method and system for fast handovers using dynamic router advertisements
JP2009529267A (ja) 移動通信システムでの移動ノード用のデフォルト・ルータの高速構成
WO2003067384A2 (en) Controlling hand-off in a mobile node with two mobile ip clients
EP1965562A2 (en) Connection of next generation mobile nodes across previous generation networks to next generation networks
US20100008300A1 (en) Routing optimization method and message transmission system based on proxy mobile agent
US7899055B2 (en) Method for route optimization with dual mobile IPv4 node in IPv6-only network
JP4317215B2 (ja) 移動端末管理装置及び移動端末並びに通信システム
US20080089251A1 (en) Packet Data Transmission
JPWO2005067228A1 (ja) 通信システム及び移動端末並びにアクセスルータ
KR100597432B1 (ko) 이웃탐색 프록시 기반의 아이피브이6 이동 네트워크에서의이동노드를 위한 경로최적화 방법
JP2007281721A (ja) 移動通信制御方法、移動通信システム及びルータ
JP2005027047A (ja) 移動ノード、移動通信システム、通信制御方法及びアクセスルータ
JP4008794B2 (ja) 移動端末、転送装置、通信システム、通信方法及びプログラム
JP4476844B2 (ja) 移動ネットワークの通信方法、移動通信制御装置
JP4228817B2 (ja) ネットワークシステム
KR100656486B1 (ko) IPv6 네트워크 및 모바일 IPv6 패킷 전송에서의손실 방지 방법
US7903649B2 (en) Mobile IPv6 network system and method for forwarding packet in the system

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121129

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131128

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141127

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151127

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161129

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171129

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee