KR102060907B1 - 데이터 이름 기반 네트워크에서의 fib 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템 - Google Patents

데이터 이름 기반 네트워크에서의 fib 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템 Download PDF

Info

Publication number
KR102060907B1
KR102060907B1 KR1020180169668A KR20180169668A KR102060907B1 KR 102060907 B1 KR102060907 B1 KR 102060907B1 KR 1020180169668 A KR1020180169668 A KR 1020180169668A KR 20180169668 A KR20180169668 A KR 20180169668A KR 102060907 B1 KR102060907 B1 KR 102060907B1
Authority
KR
South Korea
Prior art keywords
bloom filter
face
request packet
node
received
Prior art date
Application number
KR1020180169668A
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 KR1020180169668A priority Critical patent/KR102060907B1/ko
Application granted granted Critical
Publication of KR102060907B1 publication Critical patent/KR102060907B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

데이터 이름 기반 네트워크에서의 FIB 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템이 개시된다. 데이터 이름 기반 네트워크 시스템은 콘텐츠 생성자로부터 이름 프리픽스 정보를 수신하여 FIB 테이블을 생성하고, 상기 FIB 테이블을 이용하여 블룸 필터를 생성하며, 이웃 노드에게 상기 블룸 필터를 전송하는 연결 노드; 및 상기 연결 노드의 이웃 노드이고, 상기 블룸 필터가 수신된 페이스의 페이스 정보를 상기 블룸 필터와 매칭하여 저장하며, 상기 블룸 필터가 수신된 페이스를 제외한 다른 페이스를 통하여 상기 블룸 필터를 다른 이웃 노드로 전송하는 내부 노드를 포함할 수 있다.

Description

데이터 이름 기반 네트워크에서의 FIB 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템{Method for sharing an FIB table in Named Data Networking and Named Data Network system}
본 발명은 데이터 이름 기반 네트워크 시스템에서 FIB 테이블 공유하는 방법에 관한 것이다.
현재 인터넷은 송수신 호스트 간의 대화로 설계된 방식을 사용하므로, 데이터를 전송할 때, 데이터가 무엇이든 상관없이 송수신 호스트의 IP주소를 사용하여 데이터를 전송한다. 여러 호스트가 동일한 콘텐츠를 요청하는 경우, IP 주소를 사용하는 현재 인터넷 전송 방식에서는 동일한 데이터들이 네트워크상에 사용자끼리의 연결 수만큼 반복적으로 전송되기 때문에, 많은 대역폭이 낭비된다. 이러한 비효율적인 전송 방식을 사용하고 있는 현재 인터넷의 문제점을 극복하고자, 데이터 이름 기반 네트워크 (Named Data Networking, NDN)’ 혹은 ‘콘텐츠 중심 네트워크(Content Centric Networking, CCN)와 같은 정보 중심 네트워크(Information-Centric Network, ICN)가 개발되고 있다.
종래의 데이터 이름 기반 네트워크는 콘텐츠의 이름(What)를 기반으로 포워딩과 라우팅을 수행한다.
이때, 데이터 이름 기반 네트워크에 포함된 노드는 이름 프리픽스와 이 프리픽스가 연결된 페이스 정보를 저장하고 있는 FIB 테이블을 포함하고, 요청 패킷을 수신한 경우, FIB 테이블에서 요청 패킷에 대응하는 목적지를 검색하여 포워딩할 수 있다. 그러나, 이름 프리픽스는 IP 주소에 비하여 도메인 이름 이하로 축약하기 어려우므로, IP 주소를 사용하는 네트워크에 비하여 FIB 테이블의 크기가 커서 메모리 사용량이 증가된 실정이다.
그리고, 현재 인터넷에서 사용되는 것과 같은 링크 스테이트(link state) 알고리즘을 사용하는 경우, 데이터 이름 기반 네트워크 전체에 이름 프리픽스와 이 프리픽스에 해당하는 페이스 정보를 전달하여야 하기 때문에 라우팅을 위하여 필요한 트래픽도 크다는 문제가 있다.
따라서, 데이터 이름 기반 네트워크에서 노드들 각각이 연결 정보를 저장하기 위하여 사용하는 메모리 사용량 및 트래픽을 감소시킬 수 있는 방법이 요청되고 있다.
본 발명은 FIB 테이블을 이용하여 생성된 블룸 필터를 노드들에게 전송하고, 노드들이 수신한 블룸 필터를 이용하여 요청 패킷을 전송할 페이스를 검색하도록 함으로써, 라우팅에 필요한 트래픽을 감소시키는 장치 및 방법을 제공할 수 있다.
또한, 본 발명은 블룸 필터를 생성하는 연결 노드만 연결 정보를 포함하는 FIB 테이블을 저장하고, 내부 노드들은 FIB 테이블을 기초로 생성되어 FIB 테이블에 비하여 용량이 적으면서 연결 정보를 포함하고 있는 블룸 필터를 저장함으로써, 노드들 각각이 연결 정보를 저장하기 위하여 사용하는 메모리 사용량을 감소시키는 장치 및 방법을 제공할 수 있다.
본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템은 콘텐츠 생성자로부터 이름 프리픽스 정보를 수신하여 FIB 테이블을 생성하고, 상기 FIB 테이블을 이용하여 블룸 필터를 생성하며, 이웃 노드에게 상기 블룸 필터를 전송하는 연결 노드; 및 상기 연결 노드의 이웃 노드이고, 상기 블룸 필터가 수신된 페이스의 페이스 정보를 상기 블룸 필터와 매칭하여 저장하며, 상기 블룸 필터가 수신된 페이스를 제외한 다른 페이스를 통하여 상기 블룸 필터를 다른 이웃 노드로 전송하는 내부 노드를 포함할 수 있다.
본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템의 내부 노드는, 수신한 블룸 필터와 서로 다른 블룸 필터가 상기 페이스 정보에 매칭되어 저장되어 있는지 확인하고, 상기 다른 블룸 필터가 상기 페이스 정보에 매칭되어 저장된 경우, 상기 다른 블룸 필터와 상기 수신한 블룸 필터의 합을 상기 페이스 정보와 매칭하여 저장할 수 있다.
본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템의 내부 노드는, 요청 패킷을 수신한 경우, 상기 블룸 필터를 이용하여 상기 요청 패킷을 전송할 페이스를 검색하고, 검색된 페이스를 통하여 상기 요청 패킷을 전송할 수 있다.
본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템의 내부 노드는, 상기 블룸 필터를 이용하여 검색된 페이스가 복수인 경우, 검색된 복수의 페이스들 각각을 통하여 상기 요청 패킷을 전송하고, 상기 복수의 페이스들을 통하여 수신한 데이터 패킷을 기초로 보조 FIB 테이블을 업데이트하며, 상기 요청 패킷을 재수신하여 상기 복수의 페이스들이 재 검색되는 경우, 보조 FIB 테이블에 따라 선택한 페이스를 통하여 상기 요청 패킷을 전송할 수 있다.
본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템의 내부 노드는 가장 길게 일치하는 이름 프리픽스를 찾기 위해 페이스들 각각에 대응하는 블룸 필터에 대하여 상기 요청 패킷에 포함된 콘텐츠 이름 전체가 포함되었는지 여부를 검색하고, 콘텐츠 이름 전체가 포함된 블룸 필터가 검색되지 않는 경우, 콘텐츠 이름을 구성하는 컴포넌트의 수를 순차적으로 감소시키고, 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 블룸 필터를 검색하는 과정을 반복하며, 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 블룸 필터가 검색된 경우, 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 블룸 필터에 대응하는 페이스를 상기 요청 패킷을 전송할 페이스로 결정할 수 있다.
본 발명의 일실시예에 따른 연결 노드의 FIB 테이블 공유 방법은 콘텐츠 생성자로부터 이름 프리픽스 정보를 수신하는 단계; 상기 이름 프리픽스 정보를 기초로 FIB 테이블을 생성하는 단계; 상기 FIB 테이블을 이용하여 블룸 필터를 생성하는 단계; 및 이웃 노드에게 상기 블룸 필터를 전송하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 내부 노드의 FIB 테이블 공유 방법은 외부 네트워크와 연결된 연결 노드, 또는 다른 내부 노드로부터 블룸 필터를 수신하는 단계; 상기 블룸 필터가 수신된 페이스의 페이스 정보를 상기 블룸 필터와 매칭하여 저장하는 단계; 및 상기 블룸 필터가 수신된 페이스를 제외한 다른 페이스를 통하여 상기 블룸 필터를 다른 이웃 노드로 전송하는 단계를 포함하고, 상기 블룸 필터는, 이름 프리픽스 정보를 기초로 생성한 FIB 테이블을 기초로 상기 연결 노드에서 생성되어 전송될 수 있다.
본 발명의 일실시예에 따른 내부 노드의 FIB 테이블 공유 방법의 저장하는 단계는, 수신한 블룸 필터와 서로 다른 블룸 필터가 상기 페이스 정보에 매칭되어 저장되어 있는지 확인하는 단계; 상기 페이스 정보에 매칭된 블룸 필터가 저장되어 있지 않은 경우, 상기 페이스 정보와 수신한 블룸 필터를 매칭하여 저장하는 단계; 및 상기 다른 블룸 필터가 상기 페이스 정보에 매칭되어 저장된 경우, 상기 다른 블룸 필터와 상기 수신한 블룸 필터의 합을 상기 페이스 정보와 매칭하여 저장하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 데이터 이름 기반 네트워크에 포함된 노드의 패킷 처리 방법은 요청 패킷을 수신하는 단계; 블룸 필터를 이용하여 상기 요청 패킷을 전송할 페이스를 검색하는 단계; 및 검색된 페이스로 상기 요청 패킷을 전송하는 단계를 포함하고, 상기 블룸 필터는, 데이터 이름 기반 네트워크에서 외부 네트워크와 연결된 연결 노드가 콘텐츠 생성자로부터 수신한 이름 프리픽스 정보를 기초로 생성한 FIB 테이블을 이용하여 생성되며, 상기 연결 노드로부터 상기 데이터 이름 기반 네트워크에 포함된 노드들로 전송되고, 상기 노드들 각각에서 페이스 정보와 매칭되어 저장될 수 있다.
본 발명의 일실시예에 따른 데이터 이름 기반 네트워크에 포함된 노드의 패킷 처리 방법은 상기 블룸 필터를 이용하여 검색된 페이스가 복수인 경우, 검색된 복수의 페이스들에게 각각 상기 요청 패킷을 전송하는 단계; 상기 복수의 페이스들로부터 수신한 데이터 패킷을 기초로 보조 FIB 테이블을 업데이트하는 단계를 더 포함하고, 상기 페이스를 검색하는 단계는, 상기 요청 패킷을 재수신하여 상기 복수의 페이스들이 재 검색되는 경우, 상기 보조 FIB 테이블에 따라 상기 요청 패킷을 전송할 페이스를 선택할 수 있다.
본 발명의 일실시예에 따른 데이터 이름 기반 네트워크에 포함된 노드의 패킷 처리 방법의 페이스를 검색하는 단계는, 가장 길게 일치하는 이름 프리픽스를 찾기 위해 페이스들 각각에 대응하는 블룸 필터에 대하여 상기 요청 패킷에 포함된 콘텐츠 이름 전체가 포함되었는지 여부를 검색하는 단계; 콘텐츠 이름 전체가 포함된 블룸 필터가 검색되지 않는 경우, 콘텐츠 이름을 구성하는 컴포넌트의 수를 순차적으로 감소시키는 단계; 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 블룸 필터를 검색하는 단계; 및 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 블룸 필터가 검색되는 경우, 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 블룸 필터에 대응하는 페이스를 상기 요청 패킷을 전송할 페이스로 결정하는 단계를 포함할 수 있다.
본 발명의 일실시예에 의하면, FIB 테이블을 이용하여 생성된 블룸 필터를 노드들에게 전송하고, 노드들이 수신한 블룸 필터를 이용하여 요청 패킷을 전송할 페이스를 검색하도록 함으로써, FIB 테이블을 전송하고, FIB 테이블을 이용하여 요청 패킷을 전송할 페이스를 검색하는 기존의 데이터 이름 기반 네트워크 시스템에 비하여 라우팅에 필요한 트래픽을 감소시킬 수 있다.
또한, 본 발명의 일실시예에 의하면, 블룸 필터를 생성하는 연결 노드만 연결 정보를 포함하는 FIB 테이블을 저장하고, 내부 노드들은 FIB 테이블을 기초로 생성되어 FIB 테이블에 비하여 용량이 적으면서 연결 정보를 포함하고 있는 블룸 필터를 저장함으로써, 노드들 각각이 연결 정보를 저장하기 위하여 사용하는 메모리 사용량을 감소시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템을 나타내는 도면이다.
도 2는 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템에 포함된 노드의 구조를 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크에서의 FIB 테이블 공유 과정의 일례이다.
도 4는 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크의 노드가 요청 패킷을 수신한 경우의 동작 일례이다.
도 5는 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크의 노드가 데이터 패킷을 수신한 경우의 동작 일례이다.
도 6은 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크의 노드가 블룸 필터들을 합하는 과정의 일례이다.
도 7은 콘텐츠를 수신하기 위하여 소요되는 홉의 수가 본 발명의 일실시예에 따라 생성한 블룸 필터의 크기에 따라 변화하는 일례이다.
도 8은 콘텐츠 요청을 위하여 소요되는 요청 패킷의 수가 본 발명의 일실시예에 따라 생성한 블룸 필터의 크기에 따라 변화하는 일례이다.
도 9는 노드의 메모리 사용량이 본 발명의 일실시예에 따라 생성한 블룸 필터의 크기에 따라 변화하는 일례이다.
도 10은 데이터 이름 기반 네트워크의 방식에 따른 메모리 사용량의 변화 일례이다.
도11은 본 발명의 일실시예에 따라 라우팅에 필요한 트래픽 양의 일례이다.
도 12는 본 발명의 일실시예에 따른 연결 노드의 FIB 테이블 공유 방법을 도시한 플로우차트이다.
도 13은 본 발명의 일실시예에 따른 내부 노드의 FIB 테이블 공유 방법을 도시한 플로우차트이다.
도 14는 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템에 포함된 노드의 패킷 처리 방법을 도시한 플로우차트이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명의 일실시예에 따른 FIB 테이블 공유 방법 및 패킷 처리 방법은 데이터 이름 기반 네트워크 시스템에 의해 수행될 수 있다. ]
도 1은 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템을 나타내는 도면이다.
데이터 이름 기반 네트워크 시스템(100)은 도 1에 도시된 바와 같이 적어도 하나의 연결 노드(110) 및 내부 노드(120)들로 구성될 수 있다. 이때, 연결 노드(110)와 내부 노드(120)는 외부 네트워크와의 연결 여부에 따라 분류된 노드이며 하드웨어 구성은 동일할 수 있다. 따라서, 상황에 따라 내부 노드(120)가 외부 네트워크와 연결되어 연결 노드(110)로 동작할 수도 있다. 또한, 연결 노드(110)가 다른 연결 노드로부터 블룸 필터와 페이스 정보를 수신하는 경우, 내부 노드(120)와 동일한 과정으로 수신한 블룸 필터를 처리할 수도 있다.
연결 노드(110)는 데이터 이름 기반 네트워크 시스템(100)에 포함된 노드들 중 외부 네트워크(101)와 연결된 노드일 수 있다. 이때, 연결 노드(110)는 외부 네트워크(101)의 콘텐츠 생성자로부터 이름 프리픽스 정보를 수신하여 FIB 테이블을 생성할 수 있다. 다음으로, 연결 노드(110)는 생성한 FIB 테이블을 이용하여 블룸 필터를 생성할 수 있다. 그리고, 연결 노드(110)는 이웃 노드에게 블룸 필터를 전송할 수 있다.
이때, 연결 노드(110)의 이웃 노드는 도 1에 도시된 바와 같이 적어도 하나의 내부 노드(120)일 수 있다. 또한, 연결 노드(110)의 이웃 노드는 연결 노드와 연결된 다른 연결 노드일 수도 있다.
내부 노드(120)는 데이터 이름 기반 네트워크 시스템(100)에 포함된 노드들 중 외부 네트워크(101)와 연결되지 않은 노드이며, 연결 노드(110), 또는 다른 내부 노드의 이웃 노드일 수 있다. 이때, 내부 노드(120)는 연결 노드(110), 또는 다른 내부 노드로부터 블룸 필터를 수신하고, 내부 노드(120)의 페이스들 중에서 블룸 필터가 수신된 페이스의 페이스 정보를 수신한 블룸 필터와 매칭하여 저장할 수 있다. 그리고, 내부 노드(120)는 내부 노드(120)의 페이스들 중에서 블룸 필터가 수신된 페이스를 제외한 다른 페이스를 통하여 블룸 필터를 다른 이웃 노드로 전송할 수 있다.
이때, 연결 노드(110)와 내부 노드(120)는 각각 이웃 노드와 패킷 송수신을 위한 적어도 하나의 페이스를 포함할 수 있다. 예를 들어, 페이스는 인터페이스, 가상 인터페이스, 어플리케이션과 같이 연결 노드(110)와 내부 노드(120)가 각각 이웃 노드와 패킷 송수신하기 위하여 사용하는 수단일 수 있다. 또한, 연결 노드(110)와 내부 노드(120)가 복수의 페이스들을 포함하는 경우, 각각의 페이스는 서로 다른 이웃 노드와 연결될 수 있다.
예를 들어, 도 1의 연결 노드(110)는 외부 네트워크와 연결되기 위한 페이스, 2개의 내부 노드(120)와 각각 연결되기 위한 2개의 페이스를 포함할 수 있다. 그리고, 페이스 정보는 연결 노드(110)와 내부 노드(120)에 포함된 페이스를 식별하기 위한 정보일 수 있다.
또한, 요청 패킷을 수신한 경우, 내부 노드(120)는 블룸 필터를 이용하여 요청 패킷을 전송할 페이스를 검색하고, 검색된 페이스로 요청 패킷을 전송할 수 있다.
즉, 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템(100)은 FIB 테이블을 이용하여 생성된 블룸 필터를 전송하고, 수신한 블룸 필터를 이용하여 요청 패킷을 전송할 페이스를 검색하도록 함으로써, FIB 테이블을 전송하고, FIB 테이블을 이용하여 요청 패킷을 전송할 페이스를 검색하는 기존의 데이터 이름 기반 네트워크 시스템에 비하여 라우팅에 필요한 트래픽을 감소시킬 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템(100)은 블룸 필터를 생성하는 연결 노드(110)만 연결 정보를 포함하는 FIB 테이블을 저장하고, 내부 노드(120)들은 FIB 테이블을 기초로 생성되어 FIB 테이블에 비하여 용량이 적으면서 연결 정보를 포함하고 있는 블룸 필터를 저장함으로써, 노드들 각각이 연결 정보를 저장하기 위하여 사용하는 메모리 사용량을 감소시킬 수 있다.
도 2는 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템에 포함된 노드의 구조를 나타내는 도면이다.
노드(200)는 도 2에 도시된 바와 같이 수신부(201), CS 처리부(202), PIT 처리부(203), FIB 처리부(204), 블룸 필터 생성부(205), 블룸 필터 검색부(206), 및 전송부(207)를 포함할 수 있다. 이때, 수신부(201)와 전송부(207)는 통신기이고, CS 처리부(202), PIT 처리부(203), FIB 처리부(204), 블룸 필터 생성부(205), 블룸 필터 검색부(206), 및 전송부(207)는 서로 다른 프로세스, 또는 하나의 프로세스에서 수행되는 프로그램에 포함된 각각의 모듈일 수 있다. 또한, 수신부(201)와 전송부(207)는 서로 다른 통신 회로, 또는 통신 장치일 수도 있고, 하나의 통신기에서 패킷을 수신하기 위한 구성과 전송하기 위한 구성일 수도 있다.
도 2에 도시된 노드(200)는 데이터 이름 기반 네트워크 시스템(100)이 동일한 구조의 노드들로 구성된 경우, 상황에 따라 연결 노드(110), 또는 내부 노드(120) 중 하나로 동작하기 위한 구조일 수 있다. 따라서, 연결 노드(110)로만 동작하는 노드나 내부 노드(120)로만 동작하는 노드는 각각 도2에 포함된 구성 들 중 일부만 포함할 수도 있다. 예를 들어, 연결 노드(110)는 FIB 테이블을 포함하고 있으므로, 블룸 필터를 이용하여 페이스를 검색할 필요가 없을 수 있다. 따라서, 연결 노드(110)로만 동작하는 노드는 블룸 필터 검색부(206)를 포함하지 않을 수 있다. 또한, 내부 노드(120)는 FIB 테이블을 포함하지 않으므로, 내부 노드(120)로만 동작하는 노드는 FIB 처리부(204)와 블룸 필터 생성부(205)를 포함하지 않을 수 있다. 다만, 내부 노드(120)가 보조 FIB 테이블을 포함하는 경우, 내부 노드(120)는 보조 FIB 테이블을 처리하기 위한 FIB 처리부(204)를 포함할 수도 있다.
수신부(201)는 노드(200)와 연결된 이웃 노드들 각각에 대응하는 페이스들을 포함할 수 있다. 그리고, 수신부(201)는 페이스를 통하여 외부 네트워크(101)의 콘텐츠 생성자로부터 이름 프리픽스 정보를 수신하거나, 노드(200)의 이웃 노드로부터 블룸 필터를 수신할 수 있다. 또한, 수신부(201)는 페이스를 통하여 외부 네트워크(101)의 사용자, 또는 노드(200)의 이웃 노드로부터 요청 패킷(interest packet)을 수신하거나, 콘텐츠가 저장된 노드, 또는 이웃 노드로부터 콘텐츠가 포함된 데이터 패킷을 수신할 수도 있다.
CS 처리부(202)는 네트워크 캐시 역할을 하는 CS(Content Store)를 포함할 수 있다. 그리고, 수신부(201)가 요청 패킷을 수신한 경우, CS 처리부(202)는 CS에 요청 패킷에 대응하는 콘텐츠가 저장되었는지 여부를 확인할 수 있다.
그리고, CS에 요청 패킷에 대응하는 콘텐츠가 저장된 경우, CS 처리부(202)는 요청 패킷을 전송한 이웃 노드, 또는 사용자를 항하여 콘텐츠가 포함된 데이터 패킷을 전송하도록 전송부(207)에게 요청할 수 있다.
PIT 처리부(203)는 노드(200)가 포워딩(Forwarding)한 요청 패킷과 수신부(201)에서 해당 요청 패킷이 수신된 페이스의 페이스 정보가 매칭되어 저장된 PIT(Pending Interest Table)를 포함할 수 있다.
그리고, CS에 요청 패킷에 대응하는 콘텐츠가 저장되지 않은 경우, PIT 처리부(203)는 수신부(201)가 수신한 요청 패킷이 PIT에 기 저장되어 있는지 여부를 확인할 수 있다.
수신부(201)가 수신한 요청 패킷이 PIT에 기 저장된 경우, 다른 이웃 노드가 수신부(201)가 수신한 요청 패킷에 대응하는 콘텐츠를 먼저 요청한 상태일 수 있다. 따라서, PIT 처리부(203)는 PIT에 기 저장된 요청 패킷에 수신부(201)에서 요청 패킷이 수신된 페이스의 페이스 정보를 추가로 매칭할 수 있다. 그리고, 요청 패킷에 대응하는 데이터 패킷을 수신한 경우, PIT 처리부(203)는 요청 패킷에 매칭된 페이스 정보들 각각에 대응하는 전송부(207)의 페이스들을 통하여 데이터 패킷을 전송함으로써, 콘텐츠를 먼저 요청한 이웃 노드와 수신부(201)가 수신한 요청 패킷을 전송한 이웃 노드에게 모두 데이터 패킷을 포워딩할 수 있다. 또한, 수신부(201)가 수신한 요청 패킷이 PIT에 기 저장되지 않은 경우, PIT 처리부(203)는 수신부(201)가 수신한 요청 패킷을 수신부(201)에서 요청 패킷이 수신된 페이스의 페이스 정보와 매칭하여 저장할 수 있다.
그리고, 수신부(201)가 데이터 패킷을 수신한 경우, PIT 처리부(203)는 PIT에서 데이터 패킷에 대응하는 요청 패킷을 검색하고, 검색한 요청 패킷에 매칭된 페이스 정보를 확인할 수 있다. 다음으로, PIT 처리부(203)는 페이스 정보에 따라 요청 패킷을 전송한 이웃 노드, 또는 사용자를 항하여 데이터 패킷을 전송하도록 전송부(207)에게 요청할 수 있다.
FIB 처리부(204)는 요청 패킷, 또는 데이터 패킷을 전송해야 하는 목적지가 저장된 FIB(Forwarding Information Base) 테이블을 포함할 수 있다.
그리고, FIB 처리부(204)는 수신부(201)가 수신한 이름 프리픽스 정보 및 이름 프리픽스 정보가 수신된 페이스의 페이스 정보를 기초로 FIB 테이블을 생성할 수 있다. 또한, 노드(200)가 연결 노드(110)이고, 수신부(201)가 수신한 요청 패킷이 PIT에 기 저장되지 않은 경우, FIB 처리부(204)는 FIB에 따라 요청 패킷을 전송할 이웃 노드를 결정할 수 있다.
블룸 필터 생성부(205)는 FIB 처리부(204)가 생성한 FIB 테이블을 이용하여 블룸 필터를 생성할 수 있다. 이때, 블룸 필터 생성부(205)가 생성한 블룸 필터는 FIB 테이블의 정보를 포함하고 있는 블룸 필터이며, S-BF(summary Bloom filter)로 정의할 수 있다.
수신부(201)가 블룸 필터를 수신한 경우, 블룸 필터 검색부(206)는 블룸 필터가 수신된 수신부(201)의 페이스를 수신한 블룸 필터와 매칭하여 저장할 수 있다. 이때, 페이스와 매칭된 블룸 필터는 F-BF(forwarding Bloom filter)로 정의할 수 있다.
그리고, 블룸 필터 검색부(206)는 F-BF를 이용하여 수신부(201)가 수신한 요청 패킷을 전송할 전송부(207)의 페이스를 검색할 수 있다.
구체적으로, 수신부(201)가 수신한 요청 패킷이 PIT에 기 저장되지 않은 경우, 블룸 필터 검색부(206)는 F-BF에 대하여 요청 패킷에 포함된 콘텐츠 이름 전체가 포함되었는지 여부를 검색할 수 있다. 그리고, 콘텐츠 이름 전체가 포함된 F-BF가 검색되지 않는 경우, 블룸 필터 검색부(206)는 콘텐츠 이름을 구성하는 컴포넌트의 수를 순차적으로 감소시키고, 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 F-BF를 검색하는 과정을 반복할 수 있다. 또한, 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 F-BF가 검색된 경우, 블룸 필터 검색부(206)는 검색된 F-BF에 대응하는 페이스를 요청 패킷을 전송할 페이스로 결정할 수 있다. 이때, F-BF에 대응하는 페이스는 F-BF에서 블룸 필터와 매칭되어 저장된 페이스일 수 있다.
전송부(207)는 노드(200)와 연결된 이웃 노드들 각각에 대응하는 페이스들을 포함할 수 있다. 이때, 전송부(207)의 페이스들은 각각 수신부(201)의 페이스들에 대응할 수 있다. 그리고, 전송부(207)는 CS처리부(202)의 요청에 따라 데이터 패킷을 이웃 노드, 또는 사용자를 향하여 전송할 수 있다. 또한, 수신부(201)가 블룸 필터를 수신한 경우, 전송부(207)는 페이스들 중에서 블룸 필터가 수신된 페이스를 제외한 다른 페이스를 통하여 블룸 필터를 노드(200)의 이웃 노드로 전송하는 포워딩을 수행할 수도 있다. 또한, 수신부(201)가 요청 패킷, 또는 데이터 패킷 중 하나를 수신한 경우, 전송부(207)는 수신한 요청 패킷, 또는 데이터 패킷을 CS 처리부(202), PIT 처리부(203), 블룸 필터 검색부(206) 중 하나가 선택한 페이스를 통하여 노드(200)의 이웃 노드로 전송하는 포워딩을 수행할 수도 있다. 그리고, 블룸 필터 생성부(205)가 블룸 필터를 생성한 경우, 전송부(207)는 블룸 필터 생성부(205)가 생성한 블룸 필터를 노드(200)의 이웃 노드로 전송할 수도 있다.
도 3은 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크에서의 FIB 테이블 공유 과정의 일례이다.
연결 노드(320)들은 도 3에 도시된 바와 같이 외부 네트워크의 콘텐츠 생성자(310)들로부터 각각 이름 프리픽스 정보와 콘텐츠 생성자(310)들의 페이스 정보를 수신할 수 있다. 그리고, 연결 노드(320)들은 각각 수신한 정보들을 이용하여 FIB 테이블(321)을 생성할 수 있다. 다음으로, 연결 노드(320)들은 생성한 FIB 테이블을 이용하여 블룸 필터(S-BF)(322)를 생성할 수 있다. 그리고, 연결 노드(110)는 이웃 노드에게 블룸 필터(S-BF)(322) 및 블룸 필터에 대응하는 페이스 정보를 전송할 수 있다.
예를 들어, 연결 노드(320)들 중 r3은 이웃 노드인 r7과 r2 및 r4에게 블룸 필터(S-BF)(322)를 전송할 수 있다. 이때, r2는 블룸 필터(S-BF)(322)를 블룸 필터(S-BF)(322)가 수신된 페이스 1의 페이스 정보와 매칭하여 F-BF로 저장할 수 있다. 그리고, r2는 r2의 페이스들 중에서 페이스 1이 아닌 페이스 2와 페이스 3를 통하여 블룸 필터(S-BF)(322)를 r1 및 r4로 포워딩할 수 있다.
또한, r4는 블룸 필터(S-BF)(322)를 블룸 필터(S-BF)(322)가 수신된 페이스 1의 페이스 정보와 매칭하여 F-BF로 저장할 수 있다. 그리고, r4는 r4의 페이스들 중에서 페이스 1이 아닌 페이스 2와 페이스 3를 통하여 블룸 필터(S-BF)(322)를 r2 및 r4로 포워딩할 수 있다.
그리고, r7은 블룸 필터(S-BF)(322)를 블룸 필터(S-BF)(322)가 수신된 페이스 3의 페이스 정보와 매칭하여 F-BF로 저장할 수 있다. 그리고, r7은 r7의 페이스들 중에서 페이스 3이 아닌 페이스 2를 통하여 블룸 필터(S-BF)(322)를 포워딩할 수 있다. 즉, 연결 노드(320)인 r7도 이웃 노드로부터 블룸 필터를 수신한 경우, 내부 노드(330)과 동일한 방식으로 동작할 수 있다.
또한, r7이 생성한 블룸 필터(S-BF)(322)는 r3에서 r1로 포워딩 될 수 있다. 이때, r1은 페이스 1을 통하여 서로 다른 블룸 필터인r3이 생성한 블룸 필터와 r7이 생성한 블룸 필터를 수신할 수 있다. 이때, r1은 페이스 1을 통하여 수신된 r3이 생성한 블룸 필터와 r7이 생성한 블룸 필터의 합 집합을 생성할 수 있다. 그리고, r1은 생성한 블룸 필터들의 합 집합을 페이스 1과 매칭하여 F-BF로 저장할 수 있다.
예를 들어, 데이터 이름 기반 네트워크에 포함된 연결 노드(320), 또는 내부 노드(330)는 표 1에 표시된 코드에 따라 이웃 노드로부터 수신한 블룸 필터(S-BF)(322)를 처리할 수 있다.
Figure 112018130535752-pat00001
본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템은 도 3에 도시된 바와 같이 연결 노드(310)만 FIB 테이블(321)을 저장하고, 내부 노드(120)들은 연결 노드(310)들이 FIB 테이블(321)을 기초로 생성하여 FIB 테이블(321)에 비하여 용량이 적으면서 FIB 테이블(321)와 같은 연결 정보를 포함하고 있는 블룸 필터(322)를 저장함으로써, 데이터 이름 기반 네트워크 시스템에 포함된 모든 노드에서 연결 정보를 저장하기 위하여 사용하는 메모리 사용량의 합을 감소시킬 수 있다.
도 4는 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크의 노드가 요청 패킷을 수신한 경우의 동작 일례이다.
단계(410)에서 CS 처리부(202)는 CS에 요청 패킷에 대응하는 콘텐츠가 저장되었는지 여부를 확인할 수 있다. CS에 요청 패킷에 대응하는 콘텐츠가 저장된 경우, CS 처리부(202)는 요청 패킷을 수신한 페이스를 통하여 콘텐츠가 포함된 데이터 패킷을 전송할 수 있다.
CS에 요청 패킷에 대응하는 콘텐츠가 저장되지 않은 경우, 단계(420)에서 PIT 처리부(203)는 수신부(201)가 수신한 요청 패킷이 PIT에 기 저장되어 있는지 여부를 확인할 수 있다. 수신부(201)가 수신한 요청 패킷이 PIT에 기 저장된 경우, PIT 처리부(203)는 PIT에 기 저장된 요청 패킷에 수신부(201)에서 요청 패킷이 수신된 페이스의 페이스 정보를 추가로 매칭할 수 있다. 또한, 수신부(201)가 수신한 요청 패킷이 PIT에 기 저장되지 않은 경우, PIT 처리부(203)는 수신부(201)가 수신한 요청 패킷을 수신부(201)에서 요청 패킷이 수신된 페이스의 페이스 정보와 매칭하여 저장한 후 단계(430)의 수행을 요청할 수 있다.
단계(430)에서 블룸 필터 검색부(206)는 F-BF를 이용하여 수신부(201)가 수신한 요청 패킷을 전송할 전송부(207)의 페이스를 검색할 수 있다. 이때, 블룸 필터 검색부(206)는 F-BF에 대하여 요청 패킷에 포함된 콘텐츠 이름 전체가 포함되었는지 여부를 검색할 수 있다. 그리고, 콘텐츠 이름 전체가 포함된 F-BF가 검색되지 않는 경우, 블룸 필터 검색부(206)는 콘텐츠 이름을 구성하는 컴포넌트의 수를 순차적으로 감소시키고, 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 F-BF를 검색하는 과정을 반복할 수 있다. 또한, 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 F-BF가 검색된 경우, 블룸 필터 검색부(206)는 검색된 F-BF에 대응하는 페이스를 요청 패킷을 전송할 페이스로 결정할 수 있다.
예를 들어, 블룸 필터 검색부(206)는 표 2에 표시된 코드에 따라 요청 패킷을 전송할 전송부(207)의 페이스를 검색할 수 있다.
Figure 112018130535752-pat00002
또한, 블룸 필터는 거짓 양성을 가질 수 있다. 따라서, 블룸 필터를 이용하여 복수의 페이스가 검색된 경우, 하나의 페이스로 패킷을 전송하면, 패킷이 손실되거나 최단경로에서 벗어나 전송 지연이 크게 발생할 수 있다.
따라서, 패킷의 손실, 또는 전송 지연을 방지하기 위하여 FIB 처리부(204)가 보조 FIB 테이블을 생성할 수 있다. FIB 처리부(204)는 F-BF를 이용하여 검색된 모든 페이스를 통하여 요청 패킷을 전송할 수 있다. 그리고, 각각의 페이스로부터 요청 패킷에 대한 응답으로 데이터 패킷을 수신할 수 있다. 이때, FIB 처리부(204)는 수신한 데이터 패킷을 바탕으로 보조 FIB 테이블을 업데이트할 수 있다. 구체적으로, FIB 처리부(204)는 데이터 패킷의 응답이 다른 페이스에 비하여 지연되거나, 데이터 패킷이 수신되지 않는 페이스를 검색하여 보조 FIB 테이블에 저장할 수 있다.
그리고, 단계(440)에서 FIB 처리부(204)는 단계(430)에서 검색된 페이스들 중에서 보조 FIB 테이블에 포함된 페이스가 있는지 여부를 확인할 수 있다. 보조 FIB 테이블에 포함된 페이스는 패킷의 손실, 또는 전송 지연이 발생하는 페이스이므로, FIB 처리부(204)는 단계(430)에서 검색된 페이스들 중에서 보조 FIB 테이블에 포함되지 않은 페이스를 요청 패킷을 전송할 전송부(207)의 페이스로 결정할 수 있다.
예를 들어, 데이터 이름 기반 네트워크의 노드는 표 3에 표시된 코드에 따라 요청 패킷을 전송할 전송부(207)의 페이스를 검색할 수 있다.
Figure 112018130535752-pat00003
도 5는 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크의 노드가 데이터 패킷을 수신한 경우의 동작 일례이다.
단계(510)에서 PIT 처리부(203)는 PIT를 이용하여 수신한 데이터 패킷이 노드에서 전송한 요청 패킷에 대응하는 데이터 패킷인지 여부를 확인할 수 있다. 수신한 데이터 패킷이 요청 패킷에 대응하는 데이터 패킷이 아닌 경우, PIT 처리부(203)는 수신한 데이터 패킷을 요청된 적이 없는 데이터로 판단하고, 수신한 데이터 패킷을 삭제(Discaed data)할 수 있다.
그리고, 데이터 패킷이 노드에서 전송한 요청 패킷에 대응하는 데이터 패킷인 경우, PIT 처리부(203)는 요청 패킷에 매칭된 페이스 정보를 확인할 수 있다. 다음으로, PIT 처리부(203)는 페이스 정보에 따라 요청 패킷을 전송한 이웃 노드, 또는 사용자를 항하여 데이터 패킷을 전송하도록 전송부(207)에게 요청할 수 있다.
도 4에서 F-BF를 이용하여 검색된 모든 페이스를 통하여 요청 패킷을 전송한 경우, 단계(520)가 수행될 수 있다. 단계(520)에서 FIB 처리부(204)는 수신한 데이터 패킷을 바탕으로 보조 FIB 테이블을 업데이트할 수 있다. 구체적으로, FIB 처리부(204)는 데이터 패킷의 응답이 다른 페이스에 비하여 지연되거나, 데이터 패킷이 수신되지 않는 페이스를 검색하여 보조 FIB 테이블에 저장할 수 있다.
단계(530)에서 CS 처리부(202)는 수신한 데이터 패킷을 CS에 저장(cached)할 수 있다.
예를 들어, 데이터 이름 기반 네트워크의 노드는 수신한 데이터 패킷을 표 4에 표시된 코드에 따라 처리할 수 있다.
Figure 112018130535752-pat00004
도 6은 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크의 노드가 블룸 필터들을 합하는 과정의 일례이다.
블룸 필터는 입력데이터가 주어진 집합의 원소인지 아닌지를 판단하는 공간 효율적인 데이터 구조이며, 단순한 구조 때문에 최근 다양한 어플리케이션에서 널리 사용되고 있다.
블룸 필터는 주어진 집합의 정보를 축약하여 저장하는 m-비트의 배열이다. 데이터를 저장하는 프로그래밍(programming)은 먼저 블룸 필터의 모든 비트를 0으로 초기화 하는 것부터 시작한다. 그 다음 주어진 집합의 원소에 해당하는 k개의 해시 색인 값을 구한다. 구해진 k개의 해시 색인의 값으로 해당하는 비트 값을 1로 변경한다. 이러한 과정을 반복하여 집합에 포함된 원소들을 프로그래밍 한다.
쿼링(querying)은 입력 데이터가 집합의 원소인지를 확인하는 과정이다. 입력 데이터에 대하여 프로그래밍시 사용했던 것과 같은 해시 함수를 사용하여 해시 색인을 구한다. 구해진 해시 색인에 해당하는 비트 값을 확인하여, k개의 비트의 값이 모두 1이면 양성(positive)으로 판단하며, 이는 입력 데이터가 주어진 집합의 원소임을 의미한다. 하지만 값이 0인 비트가 하나라도 있으면 음성(negative)으로 판단하며, 이는 입력 데이터는 주어진 집합에 속하지 않음을 의미한다.
그리고, 블룸 필터는 집합에 포함된 원소가 아님에도 양성으로 판단하는 거짓 양성(false positive)을 발생시킬 수 있으나, 거짓 음성은 발생시키지 않는다는 특징을 가진다.
블룸 필터의 크기, 사용된 해시 함수와 해시 인덱스의 개수가 동일하다면, 두 집합 S_A와 S_B의 합집합에 해당하는 블룸 필터 BF(SA∪SB)는 각 집합의 블룸 필터 BF(SA), BF(SB)를 비트별로 OR을 수행한 것과 동일하다.
따라서, 노드(200)가 동일한 페이스를 통하여 서로 다른 블룸 필터인 BF(SA)(610)와 BF(SB)(620)를 수신한 경우, 노드(200)가 생성하는 BF(SA)와 BF(SB)의 합 집합(630)은 도 6에 도시된 바와 같을 수 있다.
도 7은 표5에 도시된 네트워크 토폴로지에서 콘텐츠를 수신하기 위하여 소요되는 홉의 수가 본 발명의 일실시예에 따라 생성한 블룸 필터의 크기에 따라 변화하는 일례이다.
Figure 112018130535752-pat00005
데이터 이름 기반 네트워크(100)는 도 7에 도시된 바와 같이 서로 다른 4가지 네트워크 토롤로지들 각각에서 블룸 필터의 크기가 증가할수록 콘텐츠를 수신하기 위하여 소요되는 홉의 수가 감소될 수 있다.
또한, 데이터 이름 기반 네트워크(100)는 도 8에 도시된 바와 같이 서로 다른 4가지 네트워크 토롤로지들 각각에서 블룸 필터의 크기가 증가할수록 콘텐츠 요청을 위하여 소요되는 요청 패킷의 수가 BestRoute 방식에서 소요되는 요청 패킷의 수에 수렴될 수 있다. 이때, BestRoute 방식은 링크 스테이트 알고리즘을 사용하여 항상 한 개의 최적의 페이스로만 전달되는 방식일 수 있다.
도 9는 노드의 메모리 사용량이 본 발명의 일실시예에 따라 생성한 블룸 필터의 크기에 따라 변화하는 일례이다. 이때, 도 9의 mem 1은 보조 FIB 테이블에 저장되는 이름 프리픽스로 저장되는 경우의 메모리 사용량이고, mem 2는 이름 프리픽스를 128-비트로 압축하여 표현하였을 경우의 메모리 사용량이다. 메모리 사용량은 보조 FIB 테이블과 F-BF의 메모리 사용량의 합이다.
블룸 필터의 크기가 증가할 수록 보조 FIB 테이블의 엔트리 수가 급격히 감소하므로, 보조 FIB 테이블을 저장하기 위한 메모리 사용량은 감소할 수 있다. 그러나, 블룸 필터의 크기가 증가할 수록 블룸 필터와 페이스 정보가 매칭된 F-BF를 저장하기 위한 메모리 사용량이 증가할 수 있다.
따라서, 블룸 필터 생성부(205)는 mem 1과 mem 2 두 경우 모두에서 메모리 사용량이 최소가 되는 2K비트를 블룸 필터 생성부(205)가 생성하는 블룸 필터의 크기로 결정할 수 있다. 또한, 실시예에 따라 메모리 사용량이 최소가 되는 비트가 변경되는 경우, 블룸 필터 생성부(205)는 메모리 사용량이 최소가 되는 비트를 검색하고, 검색 결과에 따라 블룸 필터 생성부(205)가 생성하는 블룸 필터의 크기를 결정할 수 있다.
도 10은 데이터 이름 기반 네트워크의 방식에 따른 메모리 사용량의 변화 일례이다.
데이터 이름 기반 네트워크의 방식 중 모든 노드가 전체 이름 프리픽스에 대한 정보를 다 저장하고 있는 BestRoute 방식은 도 10에 도시된 바와 같이 모든 토폴로지에서 가장 많은 메모리를 사용할 수 있다.
또한, 데이터 이름 기반 네트워크의 방식 중 자신이 요청한 적이 있는 이름 프리픽스에 대한 정보만을 저장하는 Flooding방식은 도 10에 도시된 바와 같이 BestRoute방식보다는 적은 메모리를 사용할 수 있다.
그러나, 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크(100)의 방식(Proposed)은 연결 노드를 제외한 나머지 노드에서는 FIB 테이블을 저장하지 않고 있으므로, 도 10에 도시된 바와 같이 가장 적은 메모리를 사용할 수 있다.
도11은 본 발명의 일실시예에 따라 라우팅에 필요한 트래픽 양의 일례이다.
데이터 이름 기반 네트워크의 방식 중 BestRoute 방식은 연결 노드(110)로부터 데이터 이름 기반 네트워크(100) 내의 모든 내부 노드(120)이 이름 프리픽스와 그에 해당하는 연결 정보를 전송받기 때문에 많은 네트워크 트래픽이 낭비된다.
또한, 데이터 이름 기반 네트워크의 방식 중 Flooding 방식은 별도의 라우팅 과정을 거치지 않기 때문에 도11에서 비교하지 않았다. 그러나, Flooding 방식은 라우팅 과정 없이 요청 패킷을 모든 페이스로 전달하고, 그에 대한 응답으로 도착한 데이터 패킷으로 FIB 테이블을 구성하기 때문에 데이터 패킷을 전송하기 위한 매우 큰 네트워크 트래픽이 낭비된다.
반면, 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크(100)의 방식(Proposed)은 블룸 필터를 이용하여 연결 정보에 대한 요약 정보를 전달하고 있다. 따라서, 데이터 이름 기반 네트워크(100)의 방식(Proposed)은 도 10에 도시된 바와 같이 이름 프리픽스와 연결 정보를 그대로 전송하는 BestRoute방식에 비하여 라우팅에 필요한 트래픽 량이 적을 수 있다.
도 12는 본 발명의 일실시예에 따른 연결 노드의 FIB 테이블 공유 방법을 도시한 플로우차트이다.
단계(1210)에서 수신부(201)는 외부 네트워크(101)의 콘텐츠 생성자로부터 이름 프리픽스 정보를 수신할 수 있다.
단계(1220)에서 FIB 처리부(204)는 단계(1210)에서 수신한 이름 프리픽스 정보 및 이름 프리픽스 정보가 수신된 페이스의 페이스 정보를 기초로 FIB 테이블을 생성할 수 있다.
단계(1230)에서 블룸 필터 생성부(205)는 단계(1220)에서 생성한 FIB 테이블을 이용하여 블룸 필터를 생성할 수 있다. 이때, 블룸 필터 생성부(205)가 생성한 블룸 필터는 FIB 테이블의 정보를 포함하고 있는 블룸 필터이며, S-BF(summary Bloom filter)로 정의할 수 있다.
단계(1240)에서 전송부(207)는 단계(1220)에서 생성한 블룸 필터를 노드(200)의 이웃 노드로 전송할 수도 있다.
도 13은 본 발명의 일실시예에 따른 내부 노드의 FIB 테이블 공유 방법을 도시한 플로우차트이다.
단계(1310)에서 수신부(201)는 이웃 노드로부터 블룸 필터를 수신할 수 있다.
단계(1320)에서 블룸 필터 검색부(206)는 단계(1310)에서 수신한 블룸 필터가 해당 페이스를 통하여 최초로 수신한 블룸 필터인지 여부를 확인할 수 있다. 구체적으로, 블룸 필터 검색부(206)는 단계(1310)에서 수신한 블룸 필터와 서로 다른 블룸 필터가 단계(1310)에서 블룸 필터가 수신된 페이스의 페이스 정보에 매칭되어 저장되어 있는지 확인할 수 있다. 그리고, 다른 블룸 필터가 해당 페이스 정보에 매칭되어 저장된 경우, 블룸 필터 검색부(206)는 단계(1310)에서 수신한 블룸 필터가 해당 페이스를 통하여 최초로 수신한 블룸 필터가 아닌 것으로 판단하여 단계(1340)를 수행할 수 있다. 또한, 다른 블룸 필터가 해당 페이스 정보에 매칭되어 저장되지 않은 경우, 블룸 필터 검색부(206)는 단계(1310)에서 수신한 블룸 필터가 해당 페이스를 통하여 최초로 수신한 블룸 필터인 것으로 판단하여 단계(1330)를 수행할 수 있다.
단계(1330)에서 블룸 필터 검색부(206)는 단계(1310)에서 블룸 필터가 수신된 페이스의 페이스 정보를 단계(1310)에서 수신한 블룸 필터와 매칭하여 저장할 수 있다.
단계(1340)에서 블룸 필터 검색부(206)는 페이스 정보에 매칭되어 기 저장된 다른 블룸 필터와 단계(1310)에서 수신한 블룸 필터의 합을 단계(1310)에서 블룸 필터가 수신된 페이스의 페이스 정보와 매칭하여 저장할 수 있다.
단계(1350)에서 전송부(207)는 페이스들 중에서 단계(1310)에서 블룸 필터가 수신된 페이스를 제외한 다른 페이스를 통하여 블룸 필터를 노드(200)의 이웃 노드로 전송하는 포워딩을 수행할 수도 있다.
도 14는 본 발명의 일실시예에 따른 데이터 이름 기반 네트워크 시스템에 포함된 노드의 패킷 처리 방법을 도시한 플로우차트이다.
단계(1410)에서 수신부(201)는 외부 네트워크(101)의 사용자, 또는 노드(200)의 이웃 노드로부터 요청 패킷을 수신할 수도 있다.
단계(1420)에서 CS 처리부(202)는 CS에 단계(1410)에서 수신한 요청 패킷에 대응하는 콘텐츠가 저장되었는지 여부를 확인할 수 있다. CS에 단계(1410)에서 수신한 요청 패킷에 대응하는 콘텐츠가 저장된 경우, 단계(1430)이 수행되고, CS에 단계(1410)에서 수신한 요청 패킷에 대응하는 콘텐츠가 저장되지 않은 경우, 단계(1440)이 수행될 수 있다.
단계(1430)에서 CS 처리부(202)는 요청 패킷을 전송한 이웃 노드, 또는 사용자를 항하여 콘텐츠가 포함된 데이터 패킷을 전송하도록 전송부(207)에게 요청할 수 있다.
단계(1440)에서 블룸 필터 검색부(206)는 블룸 필터를 이용하여 수신부(201)가 수신한 요청 패킷을 전송할 전송부(207)의 페이스를 검색할 수 있다.
단계(1450)에서 블룸 필터 검색부(206)는 블룸 필터를 이용하여 검색된 페이스가 복수인지 여부를 확인할 수 있다. 블룸 필터를 이용하여 검색된 페이스가 복수인 경우 단계(1470)를 수행하고, 블룸 필터를 이용하여 검색된 페이스가 단수인 경우 단계(1460)를 수행할 수 있다.
단계(1460)에서 블룸 필터 검색부(206)는 단계(1440)에서 검색된 페이스를 통하여 이웃 노드로 요청 패킷을 포워딩할 수 있다.
단계(1470)에서 블룸 필터 검색부(206)는 보조 FIB 테이블에 따라 선택한 페이스를 통하여 이웃 노드로 요청 패킷을 포워딩할 수 있다.
단계(1480)에서 블룸 필터 검색부(206)는 단계(1440)에서 검색된 복수의 페이스들 각각을 통하여 요청 패킷을 전송할 수 있다.
단계(1490)에서 수신부(201)는 복수의 페이스들을 통하여 단계(1480)에서 전송한 요청 패킷에 대한 응답인 데이터 패킷을 수신할 수 있다. 그리고, FIB 처리부(204)는 수신한 데이터 패킷을 이용하여 보조 FIB 테이블을 업데이트할 수 있다. 구체적으로, FIB 처리부(204)는 데이터 패킷의 응답이 다른 페이스에 비하여 지연되거나, 데이터 패킷이 수신되지 않는 페이스를 검색하여 보조 FIB 테이블에 저장할 수 있다.
본 발명은FIB 테이블을 이용하여 생성된 블룸 필터를 노드들에게 전송하고, 노드들이 수신한 블룸 필터를 이용하여 요청 패킷을 전송할 페이스를 검색하도록 함으로써, FIB 테이블을 전송하고, FIB 테이블을 이용하여 요청 패킷을 전송할 페이스를 검색하는 기존의 데이터 이름 기반 네트워크 시스템에 비하여 라우팅에 필요한 트래픽을 감소시킬 수 있다.
또한, 본 발명은 블룸 필터를 생성하는 연결 노드만 연결 정보를 포함하는 FIB 테이블을 저장하고, 내부 노드들은 FIB 테이블을 기초로 생성되어 FIB 테이블에 비하여 용량이 적으면서 연결 정보를 포함하고 있는 블룸 필터를 저장함으로써, 노드들 각각이 연결 정보를 저장하기 위하여 사용하는 메모리 사용량을 감소시킬 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
100: 데이터 이름 기반 네트워크 시스템
110: 연결 노드
120: 내부 노드

Claims (11)

  1. 콘텐츠 생성자로부터 이름 프리픽스 정보를 수신하여 FIB 테이블을 생성하고, 상기 FIB 테이블을 이용하여 블룸 필터를 생성하며, 이웃 노드에게 상기 블룸 필터를 전송하는 연결 노드; 및
    상기 연결 노드의 이웃 노드이고, 상기 블룸 필터가 수신된 페이스의 페이스 정보를 상기 블룸 필터와 매칭하여 저장하며, 상기 블룸 필터가 수신된 페이스를 제외한 다른 페이스를 통하여 상기 블룸 필터를 다른 이웃 노드로 전송하는 내부 노드
    를 포함하고,
    상기 내부 노드는,
    요청 패킷을 수신한 경우, 상기 블룸 필터를 이용하여 상기 요청 패킷을 전송할 페이스를 검색하고, 검색된 페이스를 통하여 상기 요청 패킷을 전송하며,
    상기 블룸 필터를 이용하여 검색된 페이스가 복수인 경우, 검색된 복수의 페이스들 각각을 통하여 상기 요청 패킷을 전송하고, 상기 복수의 페이스들을 통하여 수신한 데이터 패킷을 기초로 보조 FIB 테이블을 업데이트하며,
    상기 요청 패킷을 재수신하여 상기 복수의 페이스들이 재 검색되는 경우, 보조 FIB 테이블에 따라 선택한 페이스를 통하여 상기 요청 패킷을 전송하는 데이터 이름 기반 네트워크 시스템.
  2. 제1항에 있어서,
    상기 내부 노드는,
    수신한 블룸 필터와 서로 다른 블룸 필터가 상기 페이스 정보에 매칭되어 저장되어 있는지 확인하고, 상기 다른 블룸 필터가 상기 페이스 정보에 매칭되어 저장된 경우, 상기 다른 블룸 필터와 상기 수신한 블룸 필터의 합을 상기 페이스 정보와 매칭하여 저장하는 데이터 이름 기반 네트워크 시스템.
  3. 삭제
  4. 삭제
  5. 콘텐츠 생성자로부터 이름 프리픽스 정보를 수신하여 FIB 테이블을 생성하고, 상기 FIB 테이블을 이용하여 블룸 필터를 생성하며, 이웃 노드에게 상기 블룸 필터를 전송하는 연결 노드; 및
    상기 연결 노드의 이웃 노드이고, 상기 블룸 필터가 수신된 페이스의 페이스 정보를 상기 블룸 필터와 매칭하여 저장하며, 상기 블룸 필터가 수신된 페이스를 제외한 다른 페이스를 통하여 상기 블룸 필터를 다른 이웃 노드로 전송하는 내부 노드
    를 포함하고,
    상기 내부 노드는,
    요청 패킷을 수신한 경우, 상기 블룸 필터를 이용하여 상기 요청 패킷을 전송할 페이스를 검색하고, 검색된 페이스를 통하여 상기 요청 패킷을 전송하며,
    가장 길게 일치하는 이름 프리픽스를 찾기 위해 페이스들 각각에 대응하는 블룸 필터에 대하여 상기 요청 패킷에 포함된 콘텐츠 이름 전체가 포함되었는지 여부를 검색하고, 콘텐츠 이름 전체가 포함된 블룸 필터가 검색되지 않는 경우, 콘텐츠 이름을 구성하는 컴포넌트의 수를 순차적으로 감소시키고, 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 블룸 필터를 검색하는 과정을 반복하며, 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 블룸 필터가 검색된 경우, 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 블룸 필터에 대응하는 페이스를 상기 요청 패킷을 전송할 페이스로 결정하는 데이터 이름 기반 네트워크 시스템.
  6. 데이터 이름 기반 네트워크에 포함된 노드들 중 외부 네트워크와 연결된 연결 노드가 수행하는 FIB 테이블 공유 방법에 있어서,
    콘텐츠 생성자로부터 이름 프리픽스 정보를 수신하는 단계;
    상기 이름 프리픽스 정보를 기초로 FIB 테이블을 생성하는 단계;
    상기 FIB 테이블을 이용하여 블룸 필터를 생성하는 단계;
    이웃 노드에게 상기 블룸 필터를 전송하는 단계;
    요청 패킷을 수신한 경우, 상기 블룸 필터를 이용하여 상기 요청 패킷을 전송할 페이스를 검색하는 단계;
    상기 블룸 필터를 이용하여 검색된 페이스가 복수인 경우, 검색된 복수의 페이스들 각각을 통하여 상기 요청 패킷을 전송하는 단계; 및
    상기 복수의 페이스들을 통하여 수신한 데이터 패킷을 기초로 보조 FIB 테이블을 업데이트하는 단계
    를 포함하고,
    상기 요청 패킷은
    상기 요청 패킷을 재수신하여 상기 복수의 페이스들이 재 검색되는 경우, 보조 FIB 테이블에 따라 선택한 페이스를 통하여 전송되는 연결 노드의 FIB 테이블 공유 방법.
  7. 데이터 이름 기반 네트워크에 포함된 내부 노드가 수행하는 FIB 테이블 공유 방법에 있어서,
    외부 네트워크와 연결된 연결 노드, 또는 다른 내부 노드로부터 블룸 필터를 수신하는 단계;
    상기 블룸 필터가 수신된 페이스의 페이스 정보를 상기 블룸 필터와 매칭하여 저장하는 단계;
    상기 블룸 필터가 수신된 페이스를 제외한 다른 페이스를 통하여 상기 블룸 필터를 다른 이웃 노드로 전송하는 단계;
    요청 패킷을 수신한 경우, 상기 블룸 필터를 이용하여 상기 요청 패킷을 전송할 페이스를 검색하는 단계;
    상기 블룸 필터를 이용하여 검색된 페이스가 복수인 경우, 검색된 복수의 페이스들 각각을 통하여 상기 요청 패킷을 전송하는 단계; 및
    상기 복수의 페이스들을 통하여 수신한 데이터 패킷을 기초로 보조 FIB 테이블을 업데이트하는 단계
    를 포함하고,
    상기 블룸 필터는,
    이름 프리픽스 정보를 기초로 생성한 FIB 테이블을 기초로 상기 연결 노드에서 생성되어 전송되며,
    상기 요청 패킷은
    상기 요청 패킷을 재수신하여 상기 복수의 페이스들이 재 검색되는 경우, 보조 FIB 테이블에 따라 선택한 페이스를 통하여 전송되는 내부 노드의 FIB 테이블 공유 방법.
  8. 제7항에 있어서,
    상기 저장하는 단계는,
    수신한 블룸 필터와 서로 다른 블룸 필터가 상기 페이스 정보에 매칭되어 저장되어 있는지 확인하는 단계;
    상기 페이스 정보에 매칭된 블룸 필터가 저장되어 있지 않은 경우, 상기 페이스 정보와 수신한 블룸 필터를 매칭하여 저장하는 단계; 및
    상기 다른 블룸 필터가 상기 페이스 정보에 매칭되어 저장된 경우, 상기 다른 블룸 필터와 상기 수신한 블룸 필터의 합을 상기 페이스 정보와 매칭하여 저장하는 단계
    를 포함하는 내부 노드의 FIB 테이블 공유 방법.
  9. 요청 패킷을 수신하는 단계;
    블룸 필터를 이용하여 상기 요청 패킷을 전송할 페이스를 검색하는 단계; 및
    상기 블룸 필터를 이용하여 검색된 페이스가 복수인 경우, 검색된 복수의 페이스들에게 각각 상기 요청 패킷을 전송하는 단계;
    상기 복수의 페이스들로부터 수신한 데이터 패킷을 기초로 보조 FIB 테이블을 업데이트하는 단계;
    를 포함하고,
    상기 블룸 필터는,
    데이터 이름 기반 네트워크에서 외부 네트워크와 연결된 연결 노드가 콘텐츠 생성자로부터 수신한 이름 프리픽스 정보를 기초로 생성한 FIB 테이블을 이용하여 생성되며, 상기 연결 노드로부터 상기 데이터 이름 기반 네트워크에 포함된 노드들로 전송되고, 상기 노드들 각각에서 페이스 정보와 매칭되어 저장되며,
    상기 페이스를 검색하는 단계는,
    상기 요청 패킷을 재수신하여 상기 복수의 페이스들이 재 검색되는 경우, 상기 보조 FIB 테이블에 따라 상기 요청 패킷을 전송할 페이스를 선택하는 데이터 이름 기반 네트워크에 포함된 노드의 패킷 처리 방법.
  10. 삭제
  11. 요청 패킷을 수신하는 단계;
    블룸 필터를 이용하여 상기 요청 패킷을 전송할 페이스를 검색하는 단계; 및
    검색된 페이스로 상기 요청 패킷을 전송하는 단계
    를 포함하고,
    상기 블룸 필터는,
    데이터 이름 기반 네트워크에서 외부 네트워크와 연결된 연결 노드가 콘텐츠 생성자로부터 수신한 이름 프리픽스 정보를 기초로 생성한 FIB 테이블을 이용하여 생성되며, 상기 연결 노드로부터 상기 데이터 이름 기반 네트워크에 포함된 노드들로 전송되고, 상기 노드들 각각에서 페이스 정보와 매칭되어 저장되고,
    상기 페이스를 검색하는 단계는,
    가장 길게 일치하는 이름 프리픽스를 찾기 위해 페이스들 각각에 대응하는 블룸 필터에 대하여 상기 요청 패킷에 포함된 콘텐츠 이름 전체가 포함되었는지 여부를 검색하는 단계;
    콘텐츠 이름 전체가 포함된 블룸 필터가 검색되지 않는 경우, 콘텐츠 이름을 구성하는 컴포넌트의 수를 순차적으로 감소시키는 단계;
    컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 블룸 필터를 검색하는 단계; 및
    컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 블룸 필터가 검색되는 경우, 컴포넌트의 수가 감소된 콘텐츠 이름이 포함된 블룸 필터에 대응하는 페이스를 상기 요청 패킷을 전송할 페이스로 결정하는 단계
    를 포함하는 데이터 이름 기반 네트워크에 포함된 노드의 패킷 처리 방법.
KR1020180169668A 2018-12-26 2018-12-26 데이터 이름 기반 네트워크에서의 fib 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템 KR102060907B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180169668A KR102060907B1 (ko) 2018-12-26 2018-12-26 데이터 이름 기반 네트워크에서의 fib 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180169668A KR102060907B1 (ko) 2018-12-26 2018-12-26 데이터 이름 기반 네트워크에서의 fib 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템

Publications (1)

Publication Number Publication Date
KR102060907B1 true KR102060907B1 (ko) 2019-12-30

Family

ID=69103075

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180169668A KR102060907B1 (ko) 2018-12-26 2018-12-26 데이터 이름 기반 네트워크에서의 fib 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템

Country Status (1)

Country Link
KR (1) KR102060907B1 (ko)

Similar Documents

Publication Publication Date Title
KR102301353B1 (ko) 컨텐츠 중심 네트워크에서 컨텐츠 소유자 및 노드의 패킷 전송 방법
US9825860B2 (en) Flow-driven forwarding architecture for information centric networks
KR102072203B1 (ko) 컨텐츠 중심 네트워크에 계층적 이름의 변화에 강인한 단축 이름을 생성하는 방법 및 노드
JP5624331B2 (ja) コンピュータ実施方法
US9998354B2 (en) Server selection for content distribution
JP5525273B2 (ja) 階層的に構造化された可変長識別子を有するパケットを転送するためのシステム
CN1969525B (zh) 用于减少通信网络上的传输量的通信服务器、方法和系统
US10587513B2 (en) Method, apparatus and system for determining content acquisition path and processing request
US20140280823A1 (en) Wire-speed pending interest table
EP2339797B1 (en) Terminal device based on content name, and method for routing based on content name
US10581741B2 (en) Method and system for interest groups in a content centric network
JP6601784B2 (ja) 情報指向ネットワークにおいてコンテキスト認識型コンテンツ要求をサポートするための方法、ネットワークコンポーネント、およびプログラム
WO2018036254A1 (zh) 报文转发方法及装置
US9268813B2 (en) Terminal device based on content name, and method for routing based on content name
US20210112004A1 (en) Apparatus and method for forwarding a packet in content centric network
US10587515B2 (en) Stateless information centric forwarding using dynamic filters
US10404598B1 (en) Managing next hop groups in routers
JP2016082479A (ja) 通信装置、通信方法およびプログラム
US7330469B2 (en) Internet protocol address lookup system and method using three-layer table architecture
US20060153193A1 (en) Network routing control method and apparatus
US20170012874A1 (en) Software router and methods for looking up routing table and for updating routing entry of the software router
EP3482558B1 (en) Systems and methods for transmitting and receiving interest messages
KR102060907B1 (ko) 데이터 이름 기반 네트워크에서의 fib 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템
CN114285907B (zh) 数据传输方法、装置、电子设备及存储介质
US9444731B2 (en) Methods and systems for data packet routing

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant