KR101940753B1 - 네트워크 장치 및 그 통신 방법 - Google Patents
네트워크 장치 및 그 통신 방법 Download PDFInfo
- Publication number
- KR101940753B1 KR101940753B1 KR1020160025782A KR20160025782A KR101940753B1 KR 101940753 B1 KR101940753 B1 KR 101940753B1 KR 1020160025782 A KR1020160025782 A KR 1020160025782A KR 20160025782 A KR20160025782 A KR 20160025782A KR 101940753 B1 KR101940753 B1 KR 101940753B1
- Authority
- KR
- South Korea
- Prior art keywords
- network device
- node network
- packet
- message
- destination
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2854—Wide area networks, e.g. public data networks
- H04L12/2856—Access arrangements, e.g. Internet access
- H04L12/2858—Access network architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 네트워크 장치 및 그 통신 방법에 관한 것으로, 본 발명의 일 실시 예에 따른 네트워크 장치의 통신 방법은, 부모 노드 네트워크 장치로부터 패킷을 수신하는 단계; 상기 패킷의 목적지에 대응하는 라우팅 정보가 라우팅 테이블에 저장되어 있는지 확인하는 단계; 상기 패킷의 목적지에 대응하는 라우팅 정보가 상기 라우팅 테이블에 저장되어 있지 않은 경우, 자식 노드 네트워크 장치들에게 라우팅 정보를 생성하는데 필요한 정보를 요청하는 DIO 메시지를 전송하는 단계; 상기 자식 노드 네트워크 장치들로부터 상기 라우팅 정보가 포함된 DAO 메시지를 수신하는 단계; 및 상기 라우팅 정보에 따라 상기 패킷을 전송하는 단계를 포함할 수 있다.
Description
본 발명은 네트워크 장치 및 그 통신 방법에 관한 것이다.
국제 인터넷 표준화 기구 IETF(Internet Engineering Task Force)의 워킹 그룹(working group) 중 하나인 ROLL(Routing Over Low power and Lossy networks)에서는 저전력 로시 네트워크(LLN: Low power and Lossy Network) 영역에서의 라우팅 프로토콜에 대해 연구하고, 표준화를 진행하고 있다.
그리고, IETF RFC6550 표준 라우팅 프로토콜로 RPL(IPv6 Routing Protocol for Low power and Lossy Networks)이 있다. RPL은 제한된 환경 속에서 저전력 네트워크 장치들 간에 동작하는 라우팅 프로토콜이다. 특히, 저전력 로시 네트워크(LLN)를 지원하기 위한 RPL의 경우 저전력, 저용량 네트워크 장치들에 적합하도록 설계될 수 있다.
본 발명은 RPL(IPv6 Routing Protocol for Low power and Lossy Networks) 라우팅 프로토콜에서 루트(root) 노드 네트워크 장치로부터 일반 노드 네트워크 장치로 하향 통신 경로에 대한 정보가 설정되지 않은 경우, 해당 일반 노드 네트워크 장치로의 데이터 전송을 요청 받았을 때 발생하는 통신 실패를 최소화 하기 위해 DAO(Destination Advertisement Object) 메시지를 사용하는 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 하향 통신 경로가 제대로 설정되지 않은 경우에 하향 통신 경로를 빠르고 손쉽게 설정할 수 있는 방법 및 그 방법을 이용한 네트워크 장치를 제공하는 것을 목적으로 한다.
또한, RPL 라우팅 프로토콜의 하향 통신에 있어서 메시지의 드랍(drop)을 최소화 시킴으로써, 하향 통신의 성공율을 크게 증가시킬 수 있는 네트워크 통신 방법 및 네트워크 장치를 제공하는 것을 목적으로 한다. 뿐 만 아니라 상향 통신 경로의 유효성도 확인할 수 있으며, 이를 통해 상향 통신의 성공율도 증가시킬 수 있는 네트워크 통신 방법 및 네트워크 장치를 제공하는 것을 목적으로 한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위해 본 발명의 일 실시 예에 따른 네트워크 장치의 통신 방법은, 부모 노드 네트워크 장치로부터 패킷을 수신하는 단계; 상기 패킷의 목적지에 대응하는 라우팅 정보가 라우팅 테이블에 저장되어 있는지 확인하는 단계; 상기 패킷의 목적지에 대응하는 라우팅 정보가 상기 라우팅 테이블에 저장되어 있지 않은 경우, 자식 노드 네트워크 장치들에게 라우팅 정보를 생성하는데 필요한 정보를 요청하는 DIO(Destination-oriented directed acyclic graph Information Object) 메시지를 전송하는 단계; 상기 자식 노드 네트워크 장치들로부터 상기 라우팅 정보가 포함된 DAO(Destination Advertisement Object) 메시지를 수신하는 단계; 및 상기 라우팅 정보에 따라 상기 패킷을 전송하는 단계를 포함할 수 있다.
또한, 상기 DIO 메시지를 전송하는 단계는, 상기 네트워크 장치가 루트 노드 네트워크 장치인지 판단하는 단계; 상기 네트워크 장치가 루트 노드 네트워크 장치인 경우, 상기 자식 노드 네트워크 장치들에게 상기 DIO 메시지를 전송하는 단계를 포함할 수 있다.
또한, 상기 DIO 메시지를 전송하는 단계는, 상기 네트워크 장치가 루트 노드 네트워크 장치가 아닌 경우, 상기 패킷이 하향 통신 패킷이면 상기 자식 노드 네트워크 장치들에게 상기 DIO 메시지를 전송하는 단계를 더 포함할 수 있다.
또한, 상기 DIO 메시지를 전송하는 단계는, 상기 네트워크 장치가 루트 노드 네트워크 장치가 아니고, 상기 네트워크 장치가 홉-바이-홉(hop-by-hop) 옵션을 통해 상기 패킷이 상향 통신 패킷인지 또는 하향 통신 패킷인지 구별이 가능하고, 상기 패킷이 하향 통신 패킷인 경우, 상기 자식 노드 네트워크 장치들에게 상기 DIO 메시지를 전송하는 단계를 더 포함할 수 있다.
또한, 상기 패킷이 상향 통신 패킷인 경우, 상기 부모 노드 네트워크 장치에게 상기 패킷을 전송하는 단계를 더 포함할 수 있다.
또한, 상기 네트워크 장치가 상기 홉-바이-홉 옵션을 통해 상기 패킷이 상향 통신 패킷인지 또는 하향 통신 패킷인지 구별이 불가능한 경우, 부모 노드 네트워크 장치에게 상기 패킷을 전송하는 단계를 더 포함할 수 있다.
또한, 상기 DIO 메시지를 전송하는 단계는, 상기 DIO 메시지의 DTSN(Destination advertisement Trigger Sequence Number) 필드의 값을 증가시키고, 상기 DIO 메시지를 상기 자식 노드 네트워크 장치들에게 전송할 수 있다.
또한, 상기 목적을 달성하기 위해 본 발명의 일 실시 예에 따른 네트워크 장치는, 부모 노드 네트워크 장치로부터 패킷을 수신하는 통신부; 라우팅 테이블을 저장하는 저장부; 및 상기 제어부는, 상기 패킷의 목적지에 대응하는 라우팅 정보가 라우팅 테이블에 저장되어 있는지 확인하고, 상기 패킷의 목적지에 대응하는 라우팅 정보가 상기 라우팅 테이블에 저장되어 있지 않은 경우, 자식 노드 네트워크 장치들에게 라우팅 정보를 생성하는데 필요한 정보를 요청하는 DIO(Destination-oriented directed acyclic graph Information Object) 메시지를 전송하도록 상기 통신부를 제어하고, 상기 자식 노드 네트워크 장치들로부터 상기 라우팅 정보가 포함된 DAO(Destination Advertisement Object) 메시지를 상기 통신부가 수신하는 경우, 상기 라우팅 정보에 따라 상기 패킷을 전송하도록 상기 통신부를 제어할 수 있다.
또한, 상기 제어부는, 상기 네트워크 장치가 루트 노드 네트워크 장치인지 판단하고, 상기 네트워크 장치가 루트 노드 네트워크 장치인 경우, 상기 자식 노드 네트워크 장치들에게 상기 DIO 메시지를 전송하도록 상기 통신부를 제어할 수 있다.
또한, 상기 제어부는, 상기 네트워크 장치가 루트 노드 네트워크 장치가 아닌 경우, 상기 패킷이 하향 통신 패킷이면 상기 자식 노드 네트워크 장치들에게 상기 DIO 메시지를 전송하도록 상기 통신부를 제어할 수 있다.
또한, 상기 제어부는, 상기 네트워크 장치가 루트 노드 네트워크 장치가 아니고, 상기 네트워크 장치가 홉-바이-홉(hop-by-hop) 옵션을 통해 상기 패킷이 상향 통신 패킷인지 또는 하향 통신 패킷인지 구별이 가능하고, 상기 패킷이 하향 통신 패킷인 경우, 상기 자식 노드 네트워크 장치들에게 상기 DIO 메시지를 전송하도록 상기 통신부를 제어할 수 있다.
또한, 상기 제어부는, 상기 패킷이 상향 통신 패킷인 경우, 부모 노드 네트워크 장치에게 상기 패킷을 전송하도록 상기 통신부를 제어할 수 있다.
또한, 상기 제어부는, 상기 네트워크 장치가 상기 홉-바이-홉 옵션을 통해 상기 패킷이 상향 통신 패킷인지 또는 하향 통신 패킷인지 구별이 불가능한 경우, 부모 노드 네트워크 장치에게 상기 패킷을 전송하도록 상기 통신부를 제어할 수 있다.
또한, 상기 제어부는, 상기 DIO 메시지의 DTSN(Destination Advertisement Trigger Sequence Number) 필드의 값을 증가시키고, 상기 DIO 메시지를 상기 자식 노드 네트워크 장치들에게 전송하도록 상기 통신부를 제어할 수 있다.
본 발명에 따르면 RPL(IPv6 Routing Protocol for Low power and Lossy Networks) 라우팅 프로토콜에서 루트(root) 노드 네트워크 장치로부터 일반 노드 네트워크 장치로 하향 통신 경로에 대한 정보가 설정되지 않은 경우, 해당 일반 노드 네트워크 장치로의 데이터 전송을 요청 받았을 때 발생하는 통신 실패를 최소화 하기 위해 DAO(Destination Advertisement Object) 메시지를 사용하는 방법을 제공할 수 있다.
또한, 본 발명은 하향 통신 경로가 제대로 설정되지 않은 경우에 하향 통신 경로를 빠르고 손쉽게 설정할 수 있는 방법 및 그 방법을 이용한 네트워크 장치를 제공할 수 있다.
또한, RPL 라우팅 프로토콜의 하향 통신에 있어서 메시지의 드랍(drop)을 최소화 시킴으로써, 하향 통신의 성공율을 크게 증가시킬 수 있는 통신 방법 및 네트워크 장치를 제공할 수 있다. 뿐 만 아니라 상향 통신 경로의 유효성도 확인할 수 있으며, 이를 통해 상향 통신의 성공율도 증가시킬 수 있는 통신 방법 및 네트워크 장치를 제공할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시 예에 따른 네트워크 장치들의 연결 관계의 일 예를 도시한 도면이다.
도 2는 하향 통신 경로가 제대로 설정되지 않은 경우의 일 예를 도시한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 네트워크 장치의 통신 방법의 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 네트워크 장치의 블록 구성도이다.
도 2는 하향 통신 경로가 제대로 설정되지 않은 경우의 일 예를 도시한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 네트워크 장치의 통신 방법의 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 네트워크 장치의 블록 구성도이다.
이하, 본 명세서의 실시 예의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 명세서의 실시 예가 속하는 기술 분야에 익히 알려져 있고 본 명세서의 실시 예와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 명세서의 실시 예의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
본 명세서에서 어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있는 것을 의미할 수도 있고, 중간에 다른 구성 요소가 존재하는 것을 의미할 수도 있다. 아울러, 본 명세서에서 특정 구성을 "포함" 한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성들을 설명하는데 사용될 수 있지만, 상기 구성들은 상기 용어에 의해 한정되지 않는다. 상기 용어들은 하나의 구성을 다른 구성으로부터 구별하는 목적으로 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성은 제2 구성으로 명명될 수 있고, 유사하게 제2 구성도 제1 구성으로 명명될 수 있다.
그리고, 본 발명의 실시 예에 나타나는 구성부들은 서로 다른 특징적인 기능을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성 단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 하나의 구성부를 이루거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 각 구성부의 통합된 실시 예 및 분리된 실시 예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
하기에서 본 명세서의 실시 예를 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 명세서의 실시 예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 이하 첨부된 도면을 참조하여 본 명세서의 실시 예의 실시 예를 설명하기로 한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
국제 인터넷 표준화 기구 IETF(Internet Engineering Task Force) RFC6550 표준 라우팅 프로토콜인 RPL(IPv6 Routing Protocol for Low power and Lossy Networks)에서 통신은 크게 상향(Upward) 통신과 하향(Downward) 통신으로 나뉠 수 있다. 상향 통신은 네트워크를 구성하는 일반 노드 네트워크 장치로부터 네트워크의 루트(Root) 노드 네트워크 장치로 패킷 등 데이터가 전송되는 것이고, 하향 통신은 루트 노드 네트워크 장치로부터 네트워크의 다른 노드 네트워크 장치로 데이터가 전송되는 것이다.
그리고, 저전력 로시 네트워크(LLN: Low power and Lossy Network)에서의 통신은 대부분 루트 노드 네트워크 장치와 그 이외의 일반 노드 네트워크 장치 사이에 이루어 진다. 그리고, 일반 노드 네트워크 장치들 사이의 통신은 소스 노드 네트워크 장치(즉, 데이터를 전송하는 네트워크 장치)에서 루트 노드 네트워크 장치로의 상향 통신과, 루트 노드 네트워크 장치에서 목적지 노드 네트워크 장치(즉, 데이터를 수신할 네트워크 장치)로의 하향 통신을 조합하여 이루어 질 수 있다.
이때, RPL 표준에 따르면, 상향 통신은 새로운 노드 네트워크 장치가 네트워크에 참여하는 과정에서 자연스럽게 경로가 설정될 수 있다. 그러나, 하향 통신의 경우에는 라우팅 정보를 생성하는데 필요한 정보가 포함된 메시지를 이용해 하향 통신 경로에 대한 정보가 설정된 후에 노드 네트워크 장치들 사이에서 패킷 등의 데이터 전송이 가능하다. 이때, 상기 하향 통신 라우팅 정보를 생성하는데 필요한 정보가 포함된 메시지는 DAO(Destination Advertisement Object) 메시지일 수 있다.
이때, DAO 메시지가 자식 노드 네트워크 장치로부터 부모 노드 네트워크 장치에게 제대로 전달되지 않았거나 또는 노드 네트워크 장치가 리셋되는 등의 원인에 의해서, 네트워크 내 일부 노드 네트워크 장치로의 하향 통신 경로가 제대로 설정되지 않을 수 있다.
이에, 이하에서는 RPL 라우팅 프로토콜에서 DAO 메시지를 통해 루트 노드 네트워크 장치로부터 일반 노드 네트워크 장치로 하향 통신 경로에 대한 정보가 설정되지 않은 상태에서, 해당 일반 노드 네트워크 장치로의 데이터 전송을 요청 받았을 때 발생하는 통신 실패를 최소화 하기 위한 방법에 대해서 살펴보도록 한다.
도 1은 본 발명의 일 실시 예에 따른 네트워크 장치들의 연결 관계의 일 예를 도시한 도면이고, 도 2는 하향 통신 경로가 제대로 설정되지 않은 경우의 일 예를 도시한 도면이다.
도 1을 참고하면, RPL 라우팅 프로토콜은 루트 노드 네트워크 장치(100)를 기준으로 하여 목적지 지향 방향성 비사이클 그래프(DODAG: Destination-Oriented Directed Acyclic Graph)를 형성하고, 이를 기반으로 상향 통신 및/또는 하향 통신이 이루어진다.
이 경우, 각 노드 네트워크 장치들(100, 110, 120, 130, 140, 150, 160)은 주변 노드 네트워크 장치들(100, 110, 120, 130, 140, 150, 160)로부터 DIO(DODAG Information Object) 메시지를 수신하고, 이를 기반으로 최적의 부모 노드 네트워크 장치를 선택하여 네트워크에 참여하게 된다. 이렇게 함으로써, 선택된 부모 노드 네트워크 장치를 통해서 루트 노드 네트워크 장치(100)로의 상향 통신 경로가 형성될 수 있다. 한편, 상기 부모 노드 네트워크 장치는 루트 노드 네트워크 장치(100) 및 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160) 중 적어도 하나를 포함할 수 있다. 또한, 상기 부모 노드 네트워크 장치는 하나의 네트워크 장치에 국한되는 것은 아니고, 부모 노드 네트워크 장치 및 다수의 예비 부모 노드 네트워크 장치를 포함하는 네트워크 장치들이 집합된 집합 노드일 수 있다.
좀 더 구체적으로 살펴보면, DODAG의 생성 원리는, 최상위 노드 네트워크 장치인 루트(root) 노드 네트워크 장치(100)가 DIO 메시지를 제1 하부 노드 네트워크 장치들(110, 160)에게 보내게 되면, 제1 하부 노드 네트워크 장치들(110, 160)은 DIO 메시지를 제2 하부 노드 네트워크 장치들(120, 150)에게 전송하고, 제2 하부 노드 네트워크 장치들(120, 150)은 DIO 메시지를 제3 하부 노드 네트워크 장치(130)에게 전송하고, 이는 최하부 노드 네트워크 장치(140)에 도달할 때까지 이루어질 수 있다. 이렇게 함으로써 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)은 루트 노드 네트워크 장치(100)에 연결되어 네트워크에 참여하게 된다.
예를 들면, 루트 노드 네트워크 장치(100)는 제1 DIO 메시지를 제1 노드 네트워크 장치(110) 및 제6 노드 네트워크 장치(160)에게 전송할 수 있다. 그리고 상기 제1 DIO 메시지를 수신한 제1 노드 네트워크 장치(110) 및 제6 노드 네트워크 장치(160)는 네트워크에 참여하게 된다. 이후, 제1 노드 네트워크 장치(110)는 제2 DIO 메시지를 제2 노드 네트워크 장치(120) 및 제5 노드 네트워크 장치(150)에게 전송할 수 있다. 그리고 상기 제2 DIO 메시지를 수신한 제2 노드 네트워크 장치(120) 및 제5 노드 네트워크 장치(150)는 네트워크에 참여하게 된다. 그 후, 제2 노드 네트워크 장치(120)는 제3 노드 네트워크 장치(130)에게 제3 DIO 메시지를 전송하고, 제3 노드 네트워크 장치(130)는 제3 DIO 메시지를 수신하여 네트워크에 참여하고 제4 DIO 메시지를 제4 노드 네트워크 장치(140)에게 전송할 수 있다. 그리고 제4 노드 네트워크 장치(140)가 제4 DIO 메시지를 수신하여 네트워크에 참여할 수 있다. 이때, 제1 DIO 메시지 내지 제4 DIO 메시지는 서로 동일할 수도 있고, 또는 각각의 DIO 메시지는 이전 DIO 메시지에 따라 변형된 형태일 수 있다.
한편, 이와 같이 DIO 메시지를 통해 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)이 네트워크에 참여하는 과정은 상향 통신 경로를 확보하는 과정과 일치한다. 예를 들면, 상기 제1 DIO 메시지 내지 제4 DIO 메시지를 통해서 제4 노드 네트워크 장치(140)에서 제3 노드 네트워크 장치(130)-제2 노드 네트워크 장치(120)-제1 노드 네트워크 장치(110)-루트 노드 네트워크 장치(100) 방향으로 연결되는 상향 통신 경로가 형성될 수 있다. 따라서, 일반적으로 네트워크에 참여한 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)은 루트 노드 네트워크 장치(100)로의 상향 통신이 가능할 수 있다.
반면에, 루트 노드 네트워크 장치(100)로부터 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)로의 하향 통신은 별도의 프로세스를 통해 경로가 생성된다. 즉, 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)은 자신의 부모 노드 네트워크 장치에게 별도의 DAO 메시지를 전송하여 하향 통신 경로를 생성할 수 있다. 이와 같은 DAO 메시지는 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)이 자신의 위치를 알리는 메시지로, 자신의 존재를 부모 노드 네트워크 장치에게 알려주는 역할을 할 수 있다.
이때, 상기 DAO 메시지는 하향 통신 라우팅 정보를 생성하는데 필요한 정보가 포함될 수 있다. 예를 들면, 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)은, 자신 및 자신의 자식 노드 네트워크 장치를 목적지로 하는 패킷을 부모 노드 네트워크 장치가 수신한 경우, 해당 패킷을 자신에게 포워딩 할 것을 요청하는 정보가 포함된 DAO 메시지를 생성하여 상기 부모 노드 네트워크 장치에게 전송할 수 있다. 이때, DAO 메시지를 수신한 부모 노드 네트워크 장치는 수신한 패킷을 목적지 노드 네트워크 장치에게 포워딩 할 수 있도록 라우팅 테이블을 생성할 수 있다. 상기 라우터 테이블은 예를 들면, 이웃 캐시(neighbor cache) 또는 목적지 캐시(destination cache) 등을 포함할 수 있다.
예를 들면, 제4 DIO 메시지를 수신한 제4 노드 네트워크 장치(140)는 자신의 식별 정보가 포함된 제4 DAO 메시지를 제3 노드 네트워크 장치(130)에게 전송할 수 있다. 그리고 상기 제4 DAO 메시지는 제4 노드 네트워크 장치(140)를 목적지로 하는 패킷을 수신한 경우 이를 제4 노드 네트워크 장치(140)에게 포워딩해 줄 것을 요청하는 정보를 포함할 수 있다. 이를 수신한 제3 노드 네트워크 장치(130)는 제3 라우팅 테이블에 자신의 다음 노드 네트워크 장치의 정보로 제4 노드 네트워크 장치(140)의 식별 정보 또는 네트워크 주소 정보를 포함하여 저장할 수 있다.
그리고, 제3 DIO 메시지를 수신한 제3 노드 네트워크 장치(130)는 자신의 식별 정보가 포함된 제3 DAO 메시지를 제2 노드 네트워크 장치(120)에게 전송할 수 있다. 그리고 상기 제3 DAO 메시지는 제3 노드 네트워크 장치(130) 또는 자신의 자식 노드인 제4 노드 네트워크 장치(140)를 목적지로 하는 패킷을 수신한 경우 이를 제3 노드 네트워크 장치(130)에게 포워딩해 줄 것을 요청하는 정보를 포함할 수 있다. 이를 수신한 제2 노드 네트워크 장치(120)는 제2 라우팅 테이블에 자신의 다음 노드 네트워크 장치의 정보로 제3 노드 네트워크 장치(130) 및 제4 노드 네트워크 장치(140)의 식별 정보 또는 네트워크 주소 정보를 포함하여 저장할 수 있다. 이때, 제2 라우팅 테이블에는 제4 노드 네트워크 장치(140)로 전송될 패킷이 제3 노드 네트워크 장치(130)를 거쳐 전달될 것임을 나타내는 정보가 포함될 수 있다.
제2 DIO 메시지를 수신한 제2 노드 네트워크 장치(120)는 자신의 식별 정보가 포함된 제2 DAO 메시지를 제1 노드 네트워크 장치(110)에게 전송할 수 있다. 그리고 상기 제2 DAO 메시지는 제2 노드 네트워크 장치(120) 또는 자신의 자식 노드인 제3 노드 네트워크 장치(130), 제4 노드 네트워크 장치(140) 중 어느 하나를 목적지로 하는 패킷을 수신한 경우 이를 제2 노드 네트워크 장치(120)에게 포워딩해 줄 것을 요청하는 정보를 포함할 수 있다. 이를 수신한 제1 노드 네트워크 장치(110)는 제1 라우팅 테이블에 자신의 다음 노드 네트워크 장치의 정보로 제2 노드 네트워크 장치(120), 제3 노드 네트워크 장치(130) 및 제4 노드 네트워크 장치(140)의 식별 정보 또는 네트워크 주소 정보를 포함하여 저장할 수 있다. 이때, 제1 라우팅 테이블에는 제4 노드 네트워크 장치(140)로 전송될 패킷이 제2 노드 네트워크 장치(120) 및 제3 노드 네트워크 장치(130)를 거쳐 전달될 것임을 나타내는 정보가 포함될 수 있다.
유사하게, 제1 DIO 메시지를 수신한 제1 노드 네트워크 장치(110)는 자신의 식별 정보가 포함된 제1 DAO 메시지를 루트 노드 네트워크 장치(100)에게 전송할 수 있다. 그리고 상기 제1 DAO 메시지는 제1 노드 네트워크 장치(110) 또는 자신의 자식 노드인 제2 노드 네트워크 장치(120), 제3 노드 네트워크 장치(130), 제4 노드 네트워크 장치(140) 중 어느 하나를 목적지로 하는 패킷을 수신한 경우 이를 제1 노드 네트워크 장치(110)에게 포워딩해 줄 것을 요청하는 정보를 포함할 수 있다. 이를 수신한 루트 노드 네트워크 장치(100)는 루트 노드 라우팅 테이블에 자신의 다음 노드 네트워크 장치의 정보로 제1 노드 네트워크 장치(110), 제2 노드 네트워크 장치(120), 제3 노드 네트워크 장치(130) 및 제4 노드 네트워크 장치(140)의 식별 정보 또는 네트워크 주소 정보를 포함하여 저장할 수 있다. 그리고, 루트 노드 라우팅 테이블에는 제4 노드 네트워크 장치(140)로 전송될 패킷이 제1 노드 네트워크 장치(110), 제2 노드 네트워크 장치(120) 및 제3 노드 네트워크 장치(130)를 거쳐 전달될 것임을 나타내는 정보가 포함될 수 있다.
한편, 상기 루트 노드 라우팅 테이블, 제1 라우팅 테이블, 제2 라우팅 테이블, 제3 라우팅 테이블은 디폴트 라우터(default router) 정보로 자신의 부모 노드 네트워크 장치에 대한 정보를 더 포함할 수 있다. 예를 들면, 제1 라우팅 테이블은 디폴트 라우터 정보로 루트 노드 네트워크 장치(100)의 식별 정보 또는 네트워크 주소 정보를 포함할 수 있다. 그리고 제2 라우팅 테이블은 디폴트 라우터 정보로 제1 노드 네트워크 장치(110)의 식별 정보 또는 네트워크 주소 정보를 포함하고, 제3 라우팅 테이블은 디폴트 라우터 정보로 제2 노드 네트워크 장치(120)의 식별 정보 또는 네트워크 주소 정보를 포함할 수 있다. 루트 노드 라우팅 테이블은 디폴트 라우터 정보로 외부 네트워크 주소를 포함할 수 있다. 또한, 최하부 노드 네트워크 장치인 제4 노드 네트워크 장치(140)는 제4 라우팅 테이블에 리폴트 라우터 정보로 제3 노드 네트워크 장치(130)의 식별 정보 또는 네트워크 주소 정보를 포함하여 저장할 수 있다.
이와 같이 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160) 및 루트 노드 네트워크 장치(100)는 DAO 메시지를 수신하고 그에 따라 라우팅 테이블을 생성하여 저장함으로써, 하향 통신 경로를 생성할 수 있다.
일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)이 네트워크에 최초로 참여하는 과정은, 부모 노드 네트워크 장치로부터 DIO 메시지를 수신하여 상향 통신 경로가 설정되면, 부모 노드 네트워크 장치에게 DAO 메시지를 송신하고, 그에 대한 확인 메시지인 DAO-ACK(acknowledgement) 메시지를 수신함으로써, 부모 노드 네트워크 장치로부터 자신으로 전송되는 하향 통신 경로도 확보하게 된다.
그런데, LLN의 특성 상, 무선 멀티 홉(multi hop) 경로는 항상 유효한 것이 아닐 수 있다. 예를 들면, 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160) 중 일부의 배터리 소모로 인한 전원 꺼짐 또는 이상 작동으로 인한 리셋 등의 이유로, 하향 통신 경로 상에 있는 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160) 중 일부가 제 역할을 하지 못하는 경우가 발생할 수 있다. 이와 같은 경우에는 새로운 하향 통신 경로를 확보해야 하는 문제가 발생할 수 있다.
예를 들면, 도 2에 예시된 것과 같이 외부 네트워크(200)로부터 루트 노드 네트워크 장치(100), 제1 노드 네트워크 장치(110), 제2 노드 네트워크 장치(120), 제3 노드 네트워크 장치(130)를 거쳐 제4 노드 네트워크 장치(140)로 이어지는 하향 통신 경로가 형성되어 있을 수 있다. 이때, 제2 노드 네트워크 장치(120)가 리셋될 수 있다. 그에 따라서, 제2 노드 네트워크 장치(120)에 저장되어 있던 제2 라우팅 테이블이 모두 삭제될 수 있다.
이 경우, 제1 노드 네트워크 장치(110)가 제2 노드 네트워크 장치(120)에게 제4 노드 네트워크 장치(140)를 목적지로 하는 하향 데이터(패킷)을 전송할 수 있다. 그러나, 제2 노드 네트워크 장치(120)의 제2 라우팅 테이블이 모두 삭제되었기 때문에, 제2 노드 네트워크 장치(120)는 250으로 도시한 것과 같이 수신한 패킷을 제4 노드 네트워크 장치(140)의 부모 노드 네트워크 장치인 제3 노드 네트워크 장치(130)에게 전달할 수 없다. 그에 따라서, 리셋된 제2 노드 네트워크 장치(120)는 제4 노드 네트워크 장치(140)로 수신한 패킷을 전달할 수 없는 문제가 발생할 수 있다.
이때, 리셋된 제2 노드 네트워크 장치(120)가 수신한 패킷이 하향 통신으로 전달될 패킷임을 홉-바이-홉(hop-by-hop) 옵션을 사용하여 확인할 수 있는 경우, 제2 노드 네트워크 장치(120)는 하향 통신 경로가 더 이상 유효하지 않음을 알리는 정보가 포함된 DAO 메시지를 자신의 부모 노드인 제1 노드 네트워크 장치(110)에게 전송할 수 있다. 이때, DAO 메시지는 하향 통신 경로 삭제 요청 정보가 포함된 경로 삭제 메시지를 포함할 수 있다. 제2 노드 네트워크 장치(120)로부터 경로 삭제 메시지를 수신한 제1 노드 네트워크 장치(110)는 이를 자신의 부모 노드 네트워크 장치에게 전달하게 되고, 결국 루트 노드 네트워크 장치(100)까지 전달되게 된다. 루트 노드 네트워크 장치(100)는 경로 삭제 메시지에 따라서, 목적지 노드 네트워크 장치인 제4 노드 네트워크 장치(140)로의 하향 통신 경로가 아직 설정되지 않았음을 인지할 수 있다. 그리고, 루트 노드 네트워크 장치(100)는 해당 제4 노드 네트워크 장치(140)로 패킷을 전송하지 않고, 제4 노드 네트워크 장치(140)가 목적지인 패킷을 드랍(drop)시킬 수 있다.
한편, 리셋된 제2 노드 네트워크 장치(120)가 홉-바이-홉(hop-by-hop) 옵션을 사용하지 않는 경우에는, 제2 노드 네트워크 장치(120)는 수신한 패킷이 상향 통신으로 전달될 패킷인지, 하향 통신으로 전달된 패킷인지 구별을 할 수 없다. 이와 같은 상황에서 제2 노드 네트워크 장치(120)가 리셋되는 등의 이유로 제2 노드 네트워크 장치(120)에 저장된 제2 라우팅 테이블이 삭제되면, 이는 네트워크의 성능에 큰 악영향을 미칠 수 있다. 즉, 제2 노드 네트워크 장치(120)가 제1 노드 네트워크 장치(110)로부터 패킷을 전달받아서 다음 경유지를 결정하는 경우, 제2 라우팅 테이블에 목적지 노드 네트워크 장치(즉, 제4 노드 네트워크 장치(140))에 대한 정보가 없기 때문에, 제2 노드 네트워크 장치(120)는 디폴트 라우터(default router)인 자신의 부모 노드 네트워크 장치(즉 제1 노드 네트워크 장치(110))에게 해당 패킷을 되돌려 보내게 된다. 결국, 제2 노드 네트워크 장치(120)는 부모 노드 네트워크 장치인 제1 노드 네트워크 장치(110)와 해당 패킷을 홉 리미트(hop limit)에 의해 패킷이 드랍(drop)되기 전까지 수십 회 반복하여 주고 받게 된다(핑퐁 현상). 그리고 이러한 핑퐁 현상은 전체 네트워크의 부하로 연결되고, 주변 노드 네트워크 장치들의 통신에 크게 악영향을 미칠 수 있다.
이상에서 살펴본 것과 같이, 리셋된 제2 노드 네트워크 장치(120)가 홉-바이-홉(hop-by-hop) 옵션을 사용할 수 있는 경우에는, 네트워크에 미치는 악영향이 줄어들 수 있지만, 어떠한 경우든 하향 통신으로 전달될 패킷이 버려지는 문제점은 피할 수 없다.
이는, 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160) 및 루트 노드 네트워크 장치(100)가 하향 통신 경로 설정에 이용되는 DAO 메시지를 수신하는 것이 수동적으로 이루어지기 때문이다. 예를 들면, 제2 노드 네트워크 장치(120)가 리셋되어서, 목적지 노드 네트워크 장치(140)로의 경로를 확인하기 위한 라우팅 테이블이 삭제된 경우라도, 제2 노드 네트워크 장치(120)는 하향 통신 라우팅 정보를 생성하는데 필요한 정보를 요청하는 메시지, 즉 DAO 메시지를 자식 노드 네트워크 장치(즉, 제3 노드 네트워크 장치(130))에게 능동적으로 요청하지 않는다. 대신, 제2 노드 네트워크 장치(120)는 수동적으로 자식 노드 네트워크 장치인 제3 노드 네트워크 장치(130)들이 목적지 노드 네트워크 장치인 제4 노드 네트워크 장치(140)로의 경로 정보를 포함한 DAO 메시지를 전송해 주기를 기다리는 방식으로 동작을 하기 때문이다.
이에, 본 발명의 일 실시 예에 따른 네트워크 장치에서는 DIO 메시지를 이용해 능동적으로 DAO 메시지를 요청할 수 있다.
현재 표준에서 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160) 및 루트 노드 네트워크 장치(100)가 DAO 메시지를 능동적으로 요청하지 않는 이유는, 루트 노드 네트워크 장치(100)가 DAO 메시지를 수신하여 하향 통신이 가능한 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)을 먼저 확인하고, 그 이후에 하향 통신이 가능한 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)만을 대상으로 해서 하향 통신이 이루어질 것이라고 생각하고 있기 때문이다.
그런데, 루트 노드 네트워크 장치(100)는 IPv6 계층의 중복 주소 검출(DAD: Duplicate Address Detection) 과정에서, 자신이 구성한 DODAG 네트워크에 참여하고자 하는 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)로부터 그들이 사용하고자 하는 네트워크 주소(예를 들면, IPv6 주소)에 대한 요청을 받고, 이를 승인해 주는 과정을 거치게 된다. 그에 따라서 루트 노드 네트워크 장치(100)는 DAO 메시지의 수신 여부와 관계 없이, 사전에 이미 루트 노드 네트워크 장치(100)가 하향 통신으로 전달 가능한 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)의 리스트를 가지고 있게 된다.
즉, 루트 노드 네트워크 장치(100)는 이미 자신의 네트워크(DODAG)에 속해 있는 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)의 정보를 모두 알고 있게 된다. 그러나, 루트 노드 네트워크 장치(100)는 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)로의 하향 통신 경로 정보가 포함된 DAO 메시지를 수신하기 전까지는 해당 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)에게 데이터를 전달할 수 없는 상황이 발생할 수 있다. 다시 말해서, 루트 노드 네트워크 장치(100)의 응용 계층(application layer)에서는 네트워크에 참여한 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)의 정보를 확인하고 메시지(또는 패킷 등의 데이터)를 전송하고자 하지만, RPL 라우팅 프로토콜을 포함한 네트워크 스택(network stack)에서는 DAO 메시지의 수신을 통해 해당 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)로의 하향 통신 경로가 설정되기 전까지는 메시지(또는 패킷 등의 데이터)를 전달하지 못하고 버리게 된다(drop).
이러한 패킷 드랍(drop)으로 인한 데이터 전달률의 저하는 루트 노드 네트워크 장치(100)에서만 발생하는 것은 아니다. 상술한 것과 같이 예상치 못한 오류로 인하여 중간 경로 상의 일반 노드 네트워크 장치(예를 들면, 제2 노드 네트워크 장치(120))가 리셋되는 경우에, 루트 노드 네트워크 장치가(100)가 전송한 패킷 등의 데이터를 수신한 제2 노드 네트워크 장치(120)는 상기 데이터를 제대로 목적지 노드 네트워크 장치(예를 들면, 제4 노드 네트워크 장치(140))에게 전달하지 못하고 드랍(drop)하는 일이 발생할 수 있다.
이에, 본 발명의 일 실시 예에 따른 네트워크 장치는 하향 통신 경로 정보(즉, 라우팅 테이블)가 리셋 등의 이유로 삭제된 경우에, DIO 메시지를 자식 노드 네트워크 장치에게 전송하여, DAO 메시지를 능동적으로 요청할 수 있다. 이때, 상기 DIO 메시지에는 DAO 메시지의 전송을 요청하는 정보가 포함될 수 있다.
한편, DIO 메시지의 포맷에는 RPLInstanceID, Version Number, Rank, DTSN(Destination advertisement Trigger Sequence Number) 등이 포함될 수 있다. RPLInstanceID는 여러 개의 RPL이 동작할 때 각각의 RPL를 구별할 수 있는 식별자 역할을 하고, Version Number는 DODAG가 새로 구성되거나 일반 노드 네트워크 장치들의 탈퇴 등으로 DODAG를 새로 구성할 때 Version Number를 증가 시켜서 구별하는 역할을 하는 것이다. 그리고, Rank는 루프나 경로를 설정할 때 선호 부모 노트 네트워크 장치를 선택하는 값으로 Rank 값이 낮은 쪽으로 선호 부모 노트 네트워크 장치를 선택하게 된다.
이때, DTSN 필드는 부모 노드 네트워크 장치가 자식 노드 네트워크 장치에게 DAO 메시지를 능동적으로 요청하기 위해서 사용될 수 있다. 현재 표준에서는 DTSN 필드를 언제 어떻게 활용할 것인지에 대하여 정의하지 않고 있다. 이에, 본 발명에서는 부모 노드 네트워크 장치가 자식 노드 네트워크 장치에게 DTSN 값을 증가시킨 DIO 메시지를 전송함으로써, DAO 메시지를 요청할 수 있다. 즉, 부모 노드 네트워크 장치는 패킷을 수신하였으나, 수신한 패킷을 목적지 노드 네트워크 장치에게 전달하기 위한 다음 하향 통신 경로를 판별할 수 없는 경우, DTSN 값을 증가시킨 DIO 메시지를 자식 노드 네트워크 장치에게 전송함으로써 능동적으로 DAO 메시지를 요청할 수 있다.
이를 통해서 하향 통신에 있어서, 부모 노드 네트워크 장치는 자식 노드 네트워크 장치에게 새로운 하향 통신 라우팅 정보를 능동적으로 요청할 수 있고, 빠르게 해당 패킷의 목적지 노드 네트워크 장치로의 하향 통신 경로 정보를 획득함으로써, 패킷 드랍율을 최소화 할 수 있다.
한편, 실시 예에 따라서, 본 발명의 일 실시 예에 따른 네트워크 장치는 이웃 노드 네트워크 장치와 REACHABLE(양방향 통신 가능) 상태를 유지하기 위해서 DAO 메시지 및 DAO-ACK 메시지를 사용함으로써 하향 통신 경로를 확보할 수 있다. 즉, 네트워크 장치가 이웃 노드 네트워크 장치와 REACHABLE 상태를 유지하기 위해서 IPv6 계층(layer)에서 사용되는 NS(Neighbor Solicitation) 메시지 및 NA(Neighbor Advertisement) 메시지 대신에 DAO 메시지 및 DAO-ACK 메시지를 사용할 수 있다.
이웃 비도달성 검출(NUD: Neighbor Unreachability Detection) 과정에서 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160) 및 루트 노드 네트워크 장치(100)는 주기적으로 상향 통신에 사용되는 자신의 디폴트 라우터(default router)인 부모 노드 네트워크 장치와의 경로의 유효성을 확인할 수 있다. 이때, 네트워크 장치는 NS 메시지를 부모 노드 네트워크 장치에게 송신하고, 그에 따른 응답 메시지인 NA 메시지를 부모 노드 네트워크 장치로부터 수신할 수 있다.
이와 같이 NUD 과정에서 IPv6 계층의 NS 메시지 및 NA 메시지를 사용하였는데, 본 발명의 일 실시 예에 따른 네트워크 장치는 NUD 과정에서 사용되는 메시지를 RPL 계층의 DAO 메시지 및 DAO-ACK 메시지로 대체함으로써 NUD 기능에 하향 통신 경로 설정 기능을 추가할 수 있다.
즉, NUD 과정을 위해서, 네트워크 장치가 자신의 부모 노드 네트워크 장치에게 REACHABLE 상태가 유지되는지, 즉 네트워크 경로가 유효한지 확인하는 과정에서 NS 메시지를 전송하는 대신에 DAO 메시지를 전송할 수 있다. 이때, 상기 DAO 메시지는 상기 부모 노드 네트워크 장치와의 접속 상태가 유효한지 확인하는 정보를 포함할 수 있다. 그리고 DAO 메시지에는 하향 통신 경로 설정을 위한 하향 통신 라우팅 정보를 포함할 수 있다.
그리고 상기 DAO 메시지를 수신한 부모 노드 네트워크 장치는 DAO 메시지에 따라서 라우팅 테이블을 업데이트하고, 또한 네트워크 경로가 유효한지 확인하는 정보를 포함한 DAO-ACK 메시지를 DAO 메시지를 전송한 네트워크 장치에게 전송하여 줄 수 있다.
NNL 특성 상 상기 NUD 과정은 무선 링크의 유효성을 확인하기 위해서 주기적으로 자주 일어나게 된다. 따라서, 하향 통신이 자주 있지 않은 경우에도, DAO 메시지 및 DAO-ACK 메시지를 이용한 NUD 과정을 통해서 하향 통신 경로를 최신으로 유지하는데 도움을 줄 수 있다. 따라서, 하향 데이터(예를 들면, 패킷)의 경로 확인 불가로 인한 오류를 최소화 할 수 있다.
도 3은 본 발명의 일 실시 예에 따른 네트워크 장치의 통신 방법의 흐름도이다.
도 3을 참고하면, 310 단계에서 네트워크 장치는 패킷을 이웃 노드 네트워크 장치로부터 수신할 수 있다. 이때, 패킷은 목적지 노드 네트워크 장치에 대한 정보를 포함하고 있을 수 있다. 또한, 상기 이웃 노드 네트워크 장치는 외부 네트워크를 포함할 수 있다.
그 후, 315 단계에서 네트워크 장치는 라우팅 테이블을 확인할 수 있다.
그리고 320 단계에서 네트워크 장치는, 상기 310 단계에서 수신한 패킷의 목적지에 대응하는 라우팅 정보가 라우팅 테이블에 저장되어 있는지 확인할 수 이다. 즉, 네트워크 장치는 라우팅 테이블에 패킷의 목적지 노드 네트워크 장치로의 통신 경로에 포함되는 자식 노드 네트워크 장치들에 대한 정보가 저장되어 있는지 확인할 수 있다. 그리고, 라우팅 정보는 목적지 노드 네트워크 장치로의 통신 경로에 대한 정보를 포함할 수 있다.
상기 320 단계에서 판단 결과, 패킷의 목적지에 대응하는 라우팅 정보가 라우팅 테이블에 저장되어 있는 경우, 네트워크 장치는 325 단계에서 라우팅 테이블 정보에 따라 다음 홉(hop) 노드 네트워크 장치에게 상기 310 단계에서 수신한 패킷을 전달할 수 있다. 즉, 상기 수신한 패킷이 상향 통신 패킷에 해당하는 경우 패킷을 상향 통신 경로에 해당하는 부모 노드 네트워크 장치에게 전달할 수 있다. 그리고, 상기 수신한 패킷이 하향 통신 패킷에 해당하는 경우 패킷을 하향 통신 경로에 해당하는 자식 노드 네트워크 장치에게 전달할 수 있다.
반면, 상기 320 단계에서 판단 결과, 패킷의 목적지에 대응하는 라우팅 정보가 라우팅 테이블에 저장되어 있지 않은 경우, 네트워크 장치는 345 단계에서 DIO 메시지를 브로드캐스트(broadcast), 즉 자식 노드 네트워크 장치들에게 전송할 수 있다. 이때, 상기 DIO 메시지는 자식 노드 네트워크 장치들에게 DAO 메시지를 전송하여 줄 것을 요청하는 정보가 포함될 수 있다. 또한, 실시 예에 따라서 네트워크 장치는 DIO 메시지의 DTSN 필드의 값을 변경하여, 예를 들면 DTSN 값을 증가시켜서 브로드캐스트 할 수 있다.
한편, 루트 노드 네트워크 장치(100)의 경우에는 자신이 구성한 DODAG 네트워크의 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160) 전부를 알 수 있기 때문에, 상기 310 단계에서 수신한 패킷이 상향 통신(예를 들면, DODAG 네트워크 외부의 네트워크 장치로의 전송)인지 하향 통신(예를 들면, DODAG 네트워크에 참여하는 내부 노드 네트워크 장치로의 전송)인지 구별이 가능하다.
때문에, 실시 예에 따라서 330 단계에서 네트워크 장치는 자신이 해당 네트워크의 루트 노드 네트워크 장치(100)인지 확인할 수 있다. 그리고, 상기 330 단계에서 판단 결과 네트워크 장치가 루트 노드 네트워크 장치(100)인 경우에는 345 단계에서 DIO 메시지를 자식 노드 네트워크 장치들에게 브로드캐스트 하여, 항상 능동적으로 DAO 메시지를 요청할 수 있다.
그리고, 상기 330 단계에서 판단 결과 네트워크 장치가 루트 노드 네트워크 장치(100)가 아닌 경우, 즉 네트워크 장치가 일반 노드 네트워크 장치들(110, 120, 130, 140, 150, 160)의 경우에는 335 단계에서 네트워크 장치가 홉-바이-홉 옵션을 통해 상향 통신 패킷인지 또는 하향 통신 패킷인지 구별이 가능한지 여부를 판단할 수 있다.
상기 335 단계에서 판단 결과, 네트워크 장치가 홉-바이-홉 옵션을 통해 상향 통신 패킷인지 또는 하향 통신 패킷인지 구별이 가능한 경우에 340 단계에서 네트워크 장치는 상기 310 단계에서 수신한 패킷이 하향 통신 패킷에 해당하는지 여부를 판단할 수 있다.
상기 310 단계에서 수신한 패킷이 하향 통신 패킷에 해당하는 것으로 판단된 경우, 네트워크 장치는 345 단계에서 DIO 메시지를 브로드캐스트 할 수 있다. 그에 따라서, 목적지를 확인할 수 없는 하향 패킷을 수신한 일반 노드 네트워크 장치(110, 120, 130, 140, 150, 160)는 DTSN 값을 증가시킨 DIO 메시지를 자식 노드 네트워크 장치들에게 전송함으로써, 능동적으로 DAO 메시지를 요청하는 방식을 사용할 수 있다.
또한, 상기 340 단계에서 상기 310 단계에서 수신한 패킷이 하향 통신 패킷에 해당하지 않는 것, 즉 상향 통신 패킷에 해당하는 것으로 판단된 경우, 355 단계에서 네트워크 장치는 디폴트 라우터(default router)인 부모 노드 네트워크 장치에게 상기 310 단계에서 수신한 패킷을 전달할 수 있다.
그런데, 335 단계에서 판단 결과, 네트워크 장치가 홉-바이-홉 옵션을 통해 상향 통신 또는 하향 통신의 구별이 불가능한 경우에, 상기 310 단계에서 수신한 패킷이 상향 통신 패킷인지 하향 통신 패킷인지 확인할 수 없으므로, IP 계층의 라우팅 원칙대로, 355 단계에서 디폴트 라우터(default router)인 부모 노드 네트워크 장치에게 패킷을 전달할 수 있다.
345 단계에서 DIO 메시지를 자식 노드 네트워크 장치들에게 전송한 네트워크 장치는, 350 단계에서 자식 노드 네트워크 장치들이 송신하는 DAO 메시지를 수신하기 위해서 일정 시간 대기할 수 있다. 그리고 360 단계에서 네트워크 장치는 DAO 메시지가 수신되는지 여부를 확인할 수 있다.
상기 360 단계에서 네트워크 장치가 DAO 메시지를 수신하지 못한 경우에는, 상기 310 단계에서 수신한 패킷의 하향 통신 경로를 알 수 없으므로, 네트워크 장치는 355 단계에서 디폴트 라우터(default router)인 부모 노드 네트워크 장치에게 패킷을 전달할 수 있다.
반면, 상기 360 단계에서 네트워크 장치가 DAO 메시지를 수신한 경우, 370 단계에서 네트워크 장치는 라우팅 테이블을 업데이트 할 수 있다. 즉, 수신한 DAO 메시지에 따라서 하향 통신 경로를 설정하고 그 정보를 라우팅 테이블에 저장할 수 있다. 또한 네트워크 장치는 업데이트된 라우팅 테이블 정보에 따라서 다음 홉(hop) 노드 네트워크 장치, 즉 자식 노드 네트워크 장치에게 상기 310 단계에서 수신한 패킷을 전달할 수 있다.
한편, 도시되지 않았지만, 실시 예에 따라서, 상기 360 단계에서 네트워크 장치가 DAO 메시지를 수신한 경우, 네트워크 장치는 라우팅 테이블을 업데이트 한 후, 315 단계로 복귀하여 라우팅 테이블을 재확인 할 수도 있다. 그리고, 320 단계에서 재확인 한 라우팅 테이블에 상기 310 단계에서 수신한 패킷의 목적지에 대응하는 하향 통신 라우팅 정보가 저장되어 있는지 확인하고, 325 단계 내지 370 단계의 절차를 동일하게 수행할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 네트워크 장치의 블록 구성도이다.
도 4를 참고하면, 일 실시 예에 따른 네트워크 장치(400)는 제어부(410), 통신부(420), 및 저장부(430) 등을 포함할 수 있다.
통신부(420)는 상술한 실시예들 중 어느 하나의 동작에 따라 다른 네트워크 장치와 메시지를 송수신할 수 있다. 예를 들면, 통신부(420)는 부모 노드 네트워크 장치로부터 패킷을 수신하고, 자식 노드 네트워크 장치에게 수신한 패킷을 전송할 수 있다. 또한, 통신부(420)는 DAO 메시지의 전송을 요청하는 DIO 메시지를 자식 노드 네트워크 장치에게 전송하고, 그에 따른 DAO 메시지를 수신할 수 있다.
그리고, 저장부(430)는 하향 경로 라우팅 정보가 포함된 라우팅 테이블을 저장하고, 제어부(410)의 제어에 따라서 상기 라우팅 테이블을 변경하여 저장할 수 있다.
제어부(410)는 상술한 실시예들 중 어느 하나의 동작을 하도록 네트워크 장치(400)의 전반적인 동작을 제어할 수 있다. 예를 들면, 제어부(410)는 수신한 패킷의 목적지에 대응하는 하향 통신 라우팅 정보가 라우팅 테이블에 저장되어 있는지 확인할 수 있다. 그리고, 제어부(410)는 패킷의 목적지에 대응하는 하향 통신 라우팅 정보가 라우팅 테이블에 저장되어 있지 않은 경우, 자식 노드 네트워크 장치들에게 DAO 메시지를 전송하여 줄 것을 요청하는 정보가 포함된 DIO 메시지를 브로드캐스트 하고, 자식 노드 네트워크 장치들로부터 DAO 메시지를 수신하면 DAO 메시지에 포함된 하향 경로 라우팅 정보에 따라 라우팅 테이블을 업데이트 할 수 있다.
본 명세서와 도면에 개시된 실시 예는 기술 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
100: 루트 노드 네트워크 장치 110: 제1 노드 네트워크 장치
120: 제2 노드 네트워크 장치 130: 제3 노드 네트워크 장치
140: 제4 노드 네트워크 장치 150: 제5 노드 네트워크 장치
160: 제6 노드 네트워크 장치
120: 제2 노드 네트워크 장치 130: 제3 노드 네트워크 장치
140: 제4 노드 네트워크 장치 150: 제5 노드 네트워크 장치
160: 제6 노드 네트워크 장치
Claims (14)
- 부모 노드 네트워크 장치로부터 패킷을 수신하는 단계;
상기 패킷의 목적지에 대응하는 라우팅 정보가 라우팅 테이블에 저장되어 있는지 확인하는 단계;
상기 패킷의 목적지에 대응하는 라우팅 정보가 상기 라우팅 테이블에 저장되어 있지 않은 경우, 자식 노드 네트워크 장치들에게 라우팅 정보를 생성하는데 필요한 정보를 요청하는 DIO(Destination-oriented directed acyclic graph Information Object) 메시지를 전송하는 단계;
상기 자식 노드 네트워크 장치들로부터 상기 라우팅 정보가 포함된 DAO(Destination Advertisement Object) 메시지를 수신하는 단계; 및
상기 라우팅 정보에 따라 상기 패킷을 전송하는 단계를 포함하는 네트워크 장치의 통신 방법. - 제1 항에 있어서, 상기 DIO 메시지를 전송하는 단계는,
상기 네트워크 장치가 루트 노드 네트워크 장치인지 판단하는 단계;
상기 네트워크 장치가 루트 노드 네트워크 장치인 경우, 상기 자식 노드 네트워크 장치들에게 상기 DIO 메시지를 전송하는 단계를 포함하는 것을 특징으로 하는 네트워크 장치의 통신 방법. - 제2 항에 있어서, 상기 DIO 메시지를 전송하는 단계는,
상기 네트워크 장치가 루트 노드 네트워크 장치가 아닌 경우, 상기 패킷이 하향 통신 패킷이면 상기 자식 노드 네트워크 장치들에게 상기 DIO 메시지를 전송하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 장치의 통신 방법. - 제2 항에 있어서, 상기 DIO 메시지를 전송하는 단계는,
상기 네트워크 장치가 루트 노드 네트워크 장치가 아니고, 상기 네트워크 장치가 홉-바이-홉(hop-by-hop) 옵션을 통해 상기 패킷이 상향 통신 패킷인지 또는 하향 통신 패킷인지 구별이 가능하고, 상기 패킷이 하향 통신 패킷인 경우, 상기 자식 노드 네트워크 장치들에게 상기 DIO 메시지를 전송하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 장치의 통신 방법. - 제4 항에 있어서,
상기 패킷이 상향 통신 패킷인 경우, 상기 부모 노드 네트워크 장치에게 상기 패킷을 전송하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 장치의 통신 방법. - 제4 항에 있어서,
상기 네트워크 장치가 상기 홉-바이-홉 옵션을 통해 상기 패킷이 상향 통신 패킷인지 또는 하향 통신 패킷인지 구별이 불가능한 경우, 부모 노드 네트워크 장치에게 상기 패킷을 전송하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 장치의 통신 방법. - 제1 항에 있어서, 상기 DIO 메시지를 전송하는 단계는,
상기 DIO 메시지의 DTSN(Destination advertisement Trigger Sequence Number) 필드의 값을 증가시키고, 상기 DIO 메시지를 상기 자식 노드 네트워크 장치들에게 전송하는 것을 특징으로 하는 네트워크 장치의 통신 방법. - 부모 노드 네트워크 장치로부터 패킷을 수신하는 통신부;
라우팅 테이블을 저장하는 저장부; 및
상기 패킷의 목적지에 대응하는 라우팅 정보가 상기 라우팅 테이블에 저장되어 있는지 확인하고, 상기 패킷의 목적지에 대응하는 라우팅 정보가 상기 라우팅 테이블에 저장되어 있지 않은 경우, 자식 노드 네트워크 장치들에게 라우팅 정보를 생성하는데 필요한 정보를 요청하는 DIO(Destination-oriented directed acyclic graph Information Object) 메시지를 전송하도록 상기 통신부를 제어하고, 상기 자식 노드 네트워크 장치들로부터 상기 라우팅 정보가 포함된 DAO(Destination Advertisement Object) 메시지를 상기 통신부가 수신하는 경우, 상기 라우팅 정보에 따라 상기 패킷을 전송하도록 상기 통신부를 제어하는 제어부를 포함하는 것을 특징으로 하는 네트워크 장치. - 제8 항에 있어서, 상기 제어부는,
상기 네트워크 장치가 루트 노드 네트워크 장치인지 판단하고, 상기 네트워크 장치가 루트 노드 네트워크 장치인 경우, 상기 자식 노드 네트워크 장치들에게 상기 DIO 메시지를 전송하도록 상기 통신부를 제어하는 것을 특징으로 하는 네트워크 장치. - 제9 항에 있어서, 상기 제어부는,
상기 네트워크 장치가 루트 노드 네트워크 장치가 아닌 경우, 상기 패킷이 하향 통신 패킷이면 상기 자식 노드 네트워크 장치들에게 상기 DIO 메시지를 전송하도록 상기 통신부를 제어하는 것을 특징으로 하는 네트워크 장치. - 제9 항에 있어서, 상기 제어부는,
상기 네트워크 장치가 루트 노드 네트워크 장치가 아니고, 상기 네트워크 장치가 홉-바이-홉(hop-by-hop) 옵션을 통해 상기 패킷이 상향 통신 패킷인지 또는 하향 통신 패킷인지 구별이 가능하고, 상기 패킷이 하향 통신 패킷인 경우, 상기 자식 노드 네트워크 장치들에게 상기 DIO 메시지를 전송하도록 상기 통신부를 제어하는 것을 특징으로 하는 네트워크 장치. - 제11 항에 있어서, 상기 제어부는,
상기 패킷이 상향 통신 패킷인 경우, 부모 노드 네트워크 장치에게 상기 패킷을 전송하도록 상기 통신부를 제어하는 것을 특징으로 하는 네트워크 장치. - 제11 항에 있어서, 상기 제어부는,
상기 네트워크 장치가 상기 홉-바이-홉 옵션을 통해 상기 패킷이 상향 통신 패킷인지 또는 하향 통신 패킷인지 구별이 불가능한 경우, 부모 노드 네트워크 장치에게 상기 패킷을 전송하도록 상기 통신부를 제어하는 것을 특징으로 하는 네트워크 장치. - 제8 항에 있어서, 상기 제어부는,
상기 DIO 메시지의 DTSN(Destination Advertisement Trigger Sequence Number) 필드의 값을 증가시키고, 상기 DIO 메시지를 상기 자식 노드 네트워크 장치들에게 전송하도록 상기 통신부를 제어하는 것을 특징으로 하는 네트워크 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160025782A KR101940753B1 (ko) | 2016-03-03 | 2016-03-03 | 네트워크 장치 및 그 통신 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160025782A KR101940753B1 (ko) | 2016-03-03 | 2016-03-03 | 네트워크 장치 및 그 통신 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170103248A KR20170103248A (ko) | 2017-09-13 |
KR101940753B1 true KR101940753B1 (ko) | 2019-01-22 |
Family
ID=59967694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160025782A KR101940753B1 (ko) | 2016-03-03 | 2016-03-03 | 네트워크 장치 및 그 통신 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101940753B1 (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101208400B1 (ko) | 2011-10-28 | 2012-12-05 | 삼성에스디에스 주식회사 | Rpl 라우팅 프로토콜에서의 혼합 모드 라우팅 노드 및 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140023840A (ko) * | 2012-08-17 | 2014-02-27 | 한국전자통신연구원 | 경로 관리 패킷 처리 장치 및 방법 |
-
2016
- 2016-03-03 KR KR1020160025782A patent/KR101940753B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101208400B1 (ko) | 2011-10-28 | 2012-12-05 | 삼성에스디에스 주식회사 | Rpl 라우팅 프로토콜에서의 혼합 모드 라우팅 노드 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20170103248A (ko) | 2017-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7656851B1 (en) | Adaptive message routing for mobile ad HOC networks | |
US11233722B2 (en) | System and method for network topology management | |
JP4571666B2 (ja) | 無線マルチホップアドホックネットワークにおけるアドレス解決マッピングのための方法、通信デバイスおよびシステム | |
US7961626B2 (en) | Resilient network | |
US9276898B2 (en) | Method and device for link fault detecting and recovering based on ARP interaction | |
KR101031474B1 (ko) | 라우터 선택 방법 및 라우터 장치 | |
JP3665622B2 (ja) | ソースアドレス選択システム、ルータ装置、通信ノード及びソースアドレス選択方法 | |
EP2399370B1 (en) | Maximum transmission unit, MTU, size discovery method for data-link layers | |
JP4369459B2 (ja) | 複数のサービスノードへのディスジョイントなルートを発見する方法および装置 | |
TW201014396A (en) | Network utilities in wireless mesh communications networks | |
US9060322B2 (en) | Method and system for preventing loops in mesh networks | |
US20110013509A1 (en) | Network node and method for establishing network path and sending data | |
CN110073695B (zh) | 节点和由可在网状通信网络中操作的节点执行的用于向目的地路由接收的分组的方法 | |
JP2004336726A (ja) | ルーティング制御方法、ルータ装置、及び端末装置 | |
US8761176B2 (en) | Path control method adapted to autonomous system routing protocol for communication network | |
US20040233847A1 (en) | Routing system for establishing optimal route in wireless personal area network (WPAN) and method thereof | |
US8189510B2 (en) | Mobile IP communication system | |
US20080165692A1 (en) | Method and system for opportunistic data communication | |
Gopinath et al. | An experimental study of the cache-and-forward network architecture in multi-hop wireless scenarios | |
KR101940753B1 (ko) | 네트워크 장치 및 그 통신 방법 | |
Maekawa et al. | An ant-based routing protocol using unidirectional links for heterogeneous mobile ad-hoc networks | |
WO2023108328A1 (en) | Packet routing in a layer 2 mesh network | |
US7286542B2 (en) | Mobile communication network system, foreign agent router, address server and packet delivery method employed therein | |
JP4222188B2 (ja) | 通信端末および通信ネットワーク | |
CN101719878B (zh) | 优化路由通告与选路的方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |