상기와 같은 본 발명의 목적을 달성하기 위하여 본 발명의 게이트웨이는, 6LoWPAN 내부 망과 IPv6 외부 망을 중개하기 위한 게이트웨이에 있어서, 상기 게이트웨이가, 상기 6LoWPAN망과 접속하기 위한 제1 접속수단; 상기 IPv6망과 접속하기 위한 제2 접속수단; 상기 제1 접속수단으로부터 상기 6LoWPAN망으로부터 IPv6망으로 나가는 아웃바운드 트래픽이 발생되면, 압축된 IPv6헤더를 소정의 매핑 테이블에 의해 확장하고 분리된 패킷을 조합하여 상기 제2 접속수단으로 잔송하고, 상기 제2 접속수단으로부터 IPv6망으로부터 6LoWPAN망으로 들어오는 인바운드 트래픽이 발생되면, 소정의 매핑 테이블에 의해 IPv6 헤더를 압축하고 패킷을 분해하여 상기 제1 접속수단으로 전송하는 프로토콜 변환수단을 구비한 것을 특징으로 한다.
상기와 같은 본 발명의 목적을 달성하기 위하여 본 발명의 방법은, 게이트웨이를 이용하여 6LoWPAN망과 IPv6망을 상호 연동하기 위한 방법에 있어서, 64비트 인터페이스 식별자와 16비트 짧은 주소로 구성되어 상기 6LoWPAN 네트워크상의 모든 장치에 대한 매핑정보를 갖고 있는 내부 네트워크 장치 주소 매핑 테이블과, 128비트 IPv6 주소와 16비트 짧은 주소, 만료 시간(expiration time)으로 이루어진 외부 네트워크 장치 주소 매핑 테이블을 형성하는 단계; 패킷 전송을 요구하는 트래픽이 발생되면, 트래픽의 종류를 판별하여 외부 IPv6 망으로부터 6LoWPAN으로 들어오는 인바운드(inbound) 트래픽이면 상기 매핑 테이블을 참조하여 IPv6 헤더를 압축하고, 패킷을 분해한 후 6LoWPAN망으로 전송하는 단계; 및 트래픽의 종류를 판별하여 6LoWPAN으로부터 외부 IPv6망으로부터 나가는 아웃바운드(outbound) 트래픽이면 상기 매핑 테이블을 참조하여 압축된 IPv6 헤더를 확장하고, 패킷을 재조립한 후 외부의 IPv6망으로 전송하는 단계를 구비한 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 자세히 설명하기로 한다.
도 1은 본 발명에 따른 전체 네트워크의 구성을 도시한 도면이고, 도 2는 본 발명에 따른 게이트웨이의 프로토콜 스택을 도시한 도면이다.
본 발명에 따른 전체 네트워크는 도 1에 도시된 바와 같이, 6LoWPAN(1)과 IPv6네트워크(2) 및 6LoWPAN과 IPv6네트워크의 상호 운용성을 보장하기 위한 게이트웨이(40)로 구성된다.
6LoWPAN(1) 하나의 PAN 코디네이터(10)와, 다수의 코디네이터(20-1,20-2), 및 종단 장치(30-1,30-2)들로 이루어진다. IEEE 802.15.4 규격에 따르면, LoWPAN(1)의 디바이스들은 IEEE 802.15.4의 완전한 프로토콜 셋을 구현한 전기능 디바이스(Full Function Device:FFD)와, 라우터 기능을 가지지 않은 부분기능 디바이스(Reduced Function Device:RFD)로 구분되는데, PAN 코디네이터(10)와 코디네이 터들(20-1,20-2)은 FFD 디바이스이고, 종단장치(End Device; 30-1,30-2)는 RFD 디바이스이다.
그리고 IEEE 802.15.4 규격에 따른 LoWPAN의 디바이스들은 네트워크상에서 부모 디바이스와 자식 디바이스로 연결되는데, 자식 디바이스는 연관(Association)을 통해 부모 디바이스로부터 16비트의 짧은 주소를 동적으로 할당받는다. 즉, IEEE 802.15.4 장치는 부모장치라고도 불리는 이웃장치(또는 코디네이터)와의 연관(association) 동작 중에 16비트의 짧은 주소를 동적으로 할당받을 수 있고, 이 할당받은 짧은 주소만을 가지고 부모 또는 자식과 통신을 할 수 있다. 디어소시에이션(Disassociation)은 이웃 장치와의 존재하는 연관(association)을 제거하는 절차이다.
PAN 코디네이터(Coordinator:10)는 6LoWPAN의 가장 중요한 관리자가 되는 full-function device(FFD)로서, 비콘(beacon)의 전송을 통해 전체 6LoWPAN의 동기를 초기화할 수 있다.
종단장치(30-1,30-2)는 코디네이터(20-1,20-2)에 연결되어 다른 코디네이터에 연결된 종단장치와 통신할 수 있고, 코디네이터(20-1,20-2)는 종단장치 혹은 다른 코디네이터로부터 수신된 패킷을 라우팅한다.
IPv6네트워크(2)는 IPv6 프로토콜에 따라 IPv6 패킷을 전송할 수 있는 디바이스(50)들로 이루어진 근거리네트워크(LAN)이고, 게이트웨이(40)는 IPv6 네트워크(2)상의 IPv6 패킷을 적응 계층에서 압축 및 분해하여 6LoWPAN(1)으로 전송하고, 6LoWPAN 네트워크(1)상의 압축된 IPv6 패킷을 복원 및 재조합하여 IPv6 네트워 크(2)로 전송한다.
이를 위하여 본 발명에 따른 게이트웨이(40)는 도 2에 도시된 바와 같이, 6LoWPAN 네트워크(1)와 통신을 위한 프로토콜 스택과, IPv6 네트워크(2)와 통신하기 위한 프로토콜 스택을 구비하여 프로토콜 변환을 수행한다. 게이트웨이(40)에서 6LoWPAN 네트워크(1)와 통신을 위한 프로토콜 스택은 물리계층(41), 맥(MAC) 계층(42), 적응 계층(Adaption layer;43), IPv6 계층(44-1)로 이루어지고, IPv6 네트워크(2)와 통신하기 위한 프로토콜 스택은 LAN을 위한 물리계층(46), MAC(45), IPv6(44-2)로 이루어진다.
게이트웨이(40)에서 물리계층(41)과 MAC 계층(42)은 IEEE 802.15.4-2003 규격에 따르고, 적응 계층(43)은 IETF 인터넷 드래프트(montenegro-lowpan-ipv6-over-802.15.4)로 규격에 따르며, IPv6 계층(L4)는 RFC2460 및 관련 규격에 따른다. 그리고 물리계층(46)과 MAC 계층(45)는 통상의 LAN 규격에 따르고, IPv6 계층(44-2)는 RFC2460 및 관련 규격에 따른다.
6LoWPAN 네트워크(1)상의 디바이스들(10)은 IEEE 802.15.4-2003 규격에 따른 물리계층(11), 맥(MAC) 계층(12), 및 본 발명에 따른 압축된 IPv6 계층(13)으로 이루어지고, 압축된 IPv6(13) 위에 TCP(14), UDP(15), ICMP(16)를 거쳐 응용 계층(17)이 위치한다.
IPv6 네트워크(2)상의 디바이스들(50)은 통상의 LAN 규격에 따른 물리계층(51), 맥(MAC) 계층(52), IPv6 계층(53)으로 이루어지고, IPv6 계층(53) 위에 TCP(54), UDP(55), ICMP(56)를 거쳐 응용 계층(57)이 위치한다.
도 3은 일반적인 IPv6 헤더 포맷을 도시한 도면이고, 도 4는 도 2에 도시된 MAC/PHY 계층의 데이터 프레임 포맷의 예이다.
본 발명에 적용되는 IPv6 헤더 포맷은 도 3에 도시된 바와 같이, 10행 x 32비트= 40옥텟의 크기를 갖고 있고, 버전, 우선순위, 흐름레벨, 유료부하길이, 다음 헤더, 홉 제한, 128비트의 소스 주소, 128비트의 목적지 주소로 이루어진다.
또한 IEEE 802.15.4-2003 규격에 따른 프레임은 코디네이터에서 비콘을 송신하기 위한 비콘 프레임과, 데이터를 전송하기 위한 데이터 프레임, 프레임을 성공적으로 수신하면 이를 상대방에 알려주는 응답 프레임, MAC 커맨드 프레임으로 구분되는데, 데이터 프레임은 도 4에 도시된 바와 같이 물리계층의 패킷 포맷이 프리앰블(Preamble Sequence)과 프레임 시작 식별자(Start of Frame Delimiter), 프레임길이(Frame Length), MAC계층 데이터 유닛(MPDU)으로 이루어지고, 매체접근제어 계층의 패킷 포맷은 프레임 제어(Frame Control), 시퀀스번호(Sequence Number), 어드레싱 필드(Addressing Field), 데이터 페이로드(Data Payload), 프레임 체크 시퀀스(FCS)로 이루어진다.
도 5는 본 발명에 따른 게이트웨이에서 프로토콜 변환 절차를 도시한 순서도이다.
본 발명에 따른 게이트웨이(40)는 라우팅을 위한 매핑 테이블을 관리하고 있다(S1). 패킷 전송을 요구하는 트래픽이 발생되면, 트래픽의 종류를 판별하여 외부 IPv6 망(2)으로부터 6LoWPAN(1)으로 들어오는 인바운드(inbound) 트래픽이면 IPv6 헤더를 압축하고, 패킷을 분해한 후 6LoWPAN망(1)으로 전송한다(S2~S7). 트래픽의 종류를 판별하여 6LoWPAN(1)으로부터 외부 IPv6망(2)으로부터 나가는 아웃바운드(outbound) 트래픽이면 압축된 IPv6 헤더를 확장하고, 패킷을 재조립한 후 외부의 IPv6망으로 전송한다(S8~S11).
이와 같이 본 발명에 따른 IPv6 네트워크(2)와 6LoWPAN(1)과의 상호 운용성을 보장하기 위한 게이트웨이(40)는 외부 네트워크(external network)(2)로부터 6LoWPAN(1)으로 오가는 IPv6 패킷을 위한 sub-IP 상에서의 단편화와 재조합을 한다. 단편화와 재조합의 주요 기능은 외부 IPv6 네트워크로부터 오가는 트래픽을 제외하고, IETF 인터넷 드래프트 "montenegro-lowpan-ipv6-over-802.15.4"와 같다.
게이트웨이(40)는 IPv6 네트워크(2)와 6LoWPAN(1) 사이에서의 IPv6 패킷의 압축(compression) 및 압축 풀기(decompression)를 해야 한다. 압축은 IEEE 802.15.4를 위한 EUI-64 식별자(identifier)를 얻기 위해 외부 IPv6 네트워크(2)로부터 온 IPv6 패킷의 목적지 주소로부터 64비트 프리픽스(prefix)를 떼어내는 작업을 한다. 압축 풀기는 압축의 반대되는 과정을 수행하게 된다.
또한 게이트웨이(40)는 외부 IPv6 네트워크(2)와 6LoWPAN(1) 각각에 대해 16비트 짧은(short) 주소를 매핑하여 IPv6 패킷을 압축할 수도 있다. 상기 게이트웨이(40)는 이것을 위해서 매핑 테이블을 유지한다. 이 매핑 테이블의 기입 사항이 외부 IPv6 네트워크(2)와 6LoWPAN(1)이 서로 다르지만, 매핑은 두 네트워크에 대해 모두 적용된다. 다만, 주의할 것은 6LoWPAN의 16비트 짧은 주소의 매핑은 128비트 IPv6 주소로 하는 것이 아니고 64비트 식별자로 행해진다.
본 발명에서는 도 6 및 도 7에 나타낸 바와 같이, 외부 IPv6 네트워크(2)와 6LoWPAN(1)에 대한 두 가지 매핑 테이블 타입을 정의한다. 즉, 상기 외부 IPv6 네트워크(2)와 통신할 때는 두 가지 가능한 트래픽이 있다. 외부 IPv6 네트워크(2)에서 내부 6LoWPAN(1)로 들어오는 트래픽(inbound)과 내부 6LoWPAN(1)에서 외부 IPv6 네트워크(2)로 나가는 트래픽(outbound)이 그것이다.
[들어오는 트래픽](inbound)
들어오는 IPv6 패킷의 목적지 주소에 대해 게이트웨이(40)는 목적지 주소의 인터페이스 식별자(Interface identifier)에 해당하는 16비트 짧은 주소를 내부 네트워크 장치 주소 매핑 테이블을 사용해서 매핑한다. 본 발명에서는 인터페이스 식별자에 대한 16비트 짧은 주소 할당에 대해 다루진 않는다. 출발지 주소에 대해서 게이트웨이(40)는 외부 네트워크 장치 주소 매핑 테이블에서 16비트 짧은 주소를 할당하고 매핑한다. 외부 네트워크에 대한 짧은 주소는 이하에서 설명할 만료 시간(expiration time)이 지난 후에 삭제된다.
[나가는 트래픽](outbound)
외부 네트워크(2)로 나가는 트래픽은 다음 두 가지로 분류할 수 있다. 첫 번째는 위에 언급한 들어오는 트래픽에 대한 응답 트래픽이다. 이 경우에는 6LoWPAN 장치가 목적지와 출발지 주소 둘 다에 대해 16비트 짧은 주소를 사용할 수 있다. 이때에는 당연히 외부 네트워크 장치 주소 매핑 테이블에는 응답 트래픽에 대해 할당되어 있는 외부 네트워크 짧은 주소가 있다. 나가는 트래픽은 외부의 짧은 주소의 만료 시간이 다 되기 전에 게이트웨이(40)에 도착해야 한다. 두 번째는 처음으로 나가는 트래픽이다. 이 경우에는 외부 IPv6 네트워크(2)의 목적지에 대해 매핑 된 외부 짧은 주소가 없으므로 목적지에 대해 압축을 할 수 없다.
게이트웨이(40)는 6LoWPAN(1)의 모든 장치에 대한 매핑된 16비트 짧은 주소를 담고 있는 내부 네트워크 장치 매핑 테이블을 유지한다. 이 테이블을 셋업하기 위해 등록하는 과정이 필요하다.
한편, 게이트웨이(40)의 숫자는 제한되어 있지 않지만, 하나의 6LoWPAN 안에 단 하나의 게이트웨이가 있다고 가정하는 것이 바람직하다. 그러나 외부 네트워크와의 통신이 많아지면 많아질수록 게이트웨이에게 오버헤드가 커질 것이므로, 그 오버헤드를 줄일 방법 중 하나로 다중(Multiple) 게이트웨이를 통해 그 일을 분산시키는 것이 있을 수 있다. 상기 다중 게이트웨이에 의해 16비트 짧은 주소를 분산시키고, (AODV 또는 계층적) 라우팅, 게이트웨이 간의 터널링을 다룰 수 있다.
도 6은 본 발명에 따른 내부 네트워크 장치 주소 매핑 테이블을 나타낸 도면이고, 도 7은 본 발명에 따른 외부 네트워크 정치 주소 매칭 테이블을 나타낸 도면이다.
게이트웨이(40)는 내부/외부 네트워크 장치 주소 매핑 테이블을 가질 수 있는데, 상기 내부 네트워크 장치 주소 매핑 테이블은 도 6에 나타낸 바와 같이, 64비트 인터페이스 식별자와 16비트 짧은 주소로 구성되어 있다. 이 테이블은 6LoWPAN에 있는 모든 장치에 대한 매핑 정보를 담을 수 있어야 한다. 그러므로 매핑 테이블의 최대 사이즈는 216개의 엔트리(entry)를 수용할 수 있어야 한다.
도 6에 있어서, 상기 인터페이스 식별자(IID)는 각 6LoWPAN 장치에 할당된 64비트 인터페이스 식별자이고, 상기 짧은 주소(Short Addr.)는 각 6LoWPAN 장치에 할당된 16비트 짧은 주소이다.
또한 외부 네트워크 장치 주소 매핑 테이블은 도 7에 나타낸 바와 같이, 128비트 IPv6 주소와 16비트 짧은 주소, 만료 시간(expiration time)으로 이루어져 있다.
도 7에 있어서, IPv6 주소는 외부 네트워크 장치의 IPv6 주소이고, 상기 짧은 주소는 외부 장치의 IPv6 주소에 대한 16비트 짧은 주소이며, 상기 만료 시간은 해당 값의 만료 시간으로 만료 시간이 지나면 해당 값은 무효가 된다.
본 발명에 있어서, IETF 인터넷 드래프트 "montenegro-lowpan-ipv6-over-802.15.4" 와의 상호작용을 설명하면 다음과 같다.
IETF 인터넷 드래프트 "montenegro-lowpan-ipv6-over-802.15.4" 는 usb-IP 계층을 통해 IEEE 802.15.4 상에서 IPv6 패킷 전송 방법을 제공한다. 이 드래프트가 IEEE 802.15.4 상에서의 IP 상호 통신(connectivity)을 정의했지만, 외부 IPv6 네트워크와의 상호 운용 방법에 대해서는 정의하지 않았다. 이 드래프트에 나온 방법으로 내부 6LoWPAN(1)에 있는 장치가 외부 IPv6 네트워크(2)와 통신을 하려면 외부 네트워크의 장치에 할당된 IPv6 주소는 압축될 수가 없다. 상기한 게이트웨이 아키텍처는 이 드래프트에서도 외부 네트워크와의 상호 운용 방법에 대해 효과적으로 사용될 수 있을 것이다.
도 8은 본 발명에 따라 압축된 IPv6 헤더 포맷을 나타낸 도면이다.
IETF 인터넷 드래프트 "montenegro-lowpan-ipv6-over-802.15.4"는 IEEE802.15.4 MAC 헤더의 링크 계층 주소를 사용하고 sub-IP 계층의 정의를 통해 헤더를 압축하는 방법을 정의하고 있다.
본 발명에서는 IP 계층에서의 헤더 압축 방법을 기술한다. 이 드래프트와는 다르게 본 발명에 따른 IP 계층에서의 압축은 다음과 같은 이점이 있다.
첫 번째로, 6LoWPAN 장치는 IEEE 802.15.4 패킷 위에 올라간 긴 IPv6 헤더를 다루기 위해 압축과 압축 풀기를 수행할 필요가 없다. IP 계층에서의 압축은 게이트웨이(40)에서 하기 때문에, 6LoWPAN(1)과 외부 IPv6 네트워크(2) 사이의 통신은 IP 계층에서 긴 128비트의 IPv6 주소 대신 단지 16비트 짧은 주소로 전달될 수 있다.
두 번째로, IP 계층에서의 압축은 최종 목적지 또는 출발지 주소가 짧은 주소 형태로 IP 계층에 포함되어 있기 때문에 그 드래프트에 언급된 '최종 목적지 주소(final destination address)' 필드와 같은 부가적인 필드가 필요 없다.
도 8을 참조하면, 본 발명에 따른 압축된 IPv6 헤더 포맷은 IP encoding 필드와, 비압축 필드(non-compressed fields), Hop Limit 필드, 출발지 주소 필드, 목적지 주소 필드로 구성된다. 이 포맷에 나오는 'IP encoding' 필드는 IETF 인터넷 드래프트 "montenegro-lowpan-ipv6-over-802.15.4" 에서의 "HC1 encoding" 필드와 거의 비슷하다. 'IP encoding' 은 'non-compressed fields'와 출발지/ 목적지 주소에 대한 인코딩 정보를 갖고 있다.
도 8에 있어서, 'Hot Limit' 필드는 압축할 수 없다. 그 이유는 IETF 인터넷 드래프트 "montenegro-lowpan-ipv6-over-802.15.4"에서 언급한 바와 같고, 도 8에 나타낸 압축된 IPv6 헤더 포맷 각 필드의 정의는 다음과 같다.
도 8의 'IP encoding' 필드(비트0 ~ 비트7)는 출발지 주소 모드(비트 0과 1), 목적지 주소 모드(비트 2와 3), 트래픽 클래스(Traffic Class)와 플로우 라벨(Flow Label)(비트 4), 다음 헤더(Next Header)(비트 5와 6), 전송 인코딩(TRAN encoding)(비트 7)로 이루어진다.
먼저, 출발지 주소 모드는 비트 0 과 1로서, 다음 표1과 같이 '00'은 16비트 짧은 주소를 나타내고, '01'은 외부 네트워크를 나타내며, '10'은 64비트 확장된 주소를 나타내고, '11'은 128비트 IPv6 주소를 나타낸다.
00 : 16비트 짧은 주소 01 : 외부 네트워튼 10 : 64비트 확장된 주소 11 : 128비트 IPv6 주소 |
목적지 주소 모드는 비트 2 와 3으로서, 다음 표 2와 같이 '00'은 16비트 짧은 주소를 나타내고, '01'은 외부 네트워크에 대한 16비트 짧은 주소를 나타내며, '10'은 64비트 확장된 주소를 나타내고, '11'은 128비트 IPv6 주소를 나타낸다.
00 : 16비트 짧은 주소 01 : 외부 네트워크에 대한 16비트 짧은 주소 10 : 64비트 확장된 주소 11 : 128비트 IPv6 주소 |
트래픽 클래스(Traffic Class)와 플로우 라벨(Flow Label)은 비트 4로서, '0'은 압축되지 않음을 의미한다. 이때는 트래픽 클래스 8비트, 플로우 라벨 20비트를 'IP encoding' 다음에 나오는 'non-compressed' 필드에 담게 된다. 그리고 '1'은 트래픽 클래스와 플로우 라벨은 0 값을 갖는다.
다음 헤더(Next Header)는 비트 5와 6으로서, 다음 표 3과 같이 '00'은 압축되지 않음을 나타내는데, 다음 헤더 필드에 들어가는 8비트를 'non-compressed' 필드에 담는다. 그리고 '01'은 UDP를 나타내고, '10'은 ICMP를 나타내며, '11'은 TCP를 나타낸다.
00 : 압축되지 않음. 01 : UDP 10 : ICMP 11 : TCP |
전송 인코딩(TRAN encoding)은 비트 7로서, 다음 표 4와 같이, '0'은 더 이상 헤더 압축하는 비트가 없음을 나타내고, '1'은 IP 헤더 다음으로 전송계층 헤더의 압축이 있음을 나타내며, 전송 인코딩은 전송 계층의 압축 정보를 인코딩한다.
0 : 더 이상 헤더 압축하는 비트가 없음. 1 : IP 헤더 다음으로 전송계층 헤더의 압축이 있음. |
비압축 (Non-compressed fields) 필드는 'IP encoding'의 비트 5, 6, 7의 값에 따라 정의된다. 그러므로 이 필드의 길이는 0 ~ 36비트가 될 수 있다. 압축되지 않는 필드의 순서는 IPv6 헤더에 있는 필드 순과 같다.
홉 리밋(Hop Limit)필드는 8비트 양의 정수로서, 패킷이 지나가는 각각의 노드에 의해 1씩 감소된다. Hop Limit이 0이되면 그 패킷은 버려진다.
출발지 주소(Source Address) 필드는 'IP encoding'의 출발지 주소 모드 값에 따라 패킷을 보낸 장치의 16비트, 64 비트 또는 128비트 주소이고, 목적지 주소(Destination Address) 필드는 'IP encoding'의 목적지 주소 모드 값에 따라 패킷이 도착할 장치의 16비트, 64비트 또는 128비트 주소이다.