KR20170037818A - 작은 다중 경로 또는 단일 경로 포워딩 상태를 이용한 정보 중심 네트워킹 - Google Patents

작은 다중 경로 또는 단일 경로 포워딩 상태를 이용한 정보 중심 네트워킹 Download PDF

Info

Publication number
KR20170037818A
KR20170037818A KR1020160116650A KR20160116650A KR20170037818A KR 20170037818 A KR20170037818 A KR 20170037818A KR 1020160116650 A KR1020160116650 A KR 1020160116650A KR 20160116650 A KR20160116650 A KR 20160116650A KR 20170037818 A KR20170037818 A KR 20170037818A
Authority
KR
South Korea
Prior art keywords
interest
router
content
dart
determining
Prior art date
Application number
KR1020160116650A
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 팔로 알토 리서치 센터 인코포레이티드
Publication of KR20170037818A publication Critical patent/KR20170037818A/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/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • H04L45/507Label distribution
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/17Interaction among intermediate nodes, e.g. hop by hop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Abstract

본 발명의 하나의 실시예는 정보 중심 네트워크(ICN)에서 라우터를 제공한다. 라우터는 콘텐트의 부분에 대한 관심을 수신하도록 구성된 수신 모듈을 포함한다. 관심은 콘텐트의 부분과 연관된 이름을 나타낸다. 라우터는: 관심이 포워딩될 수 있는지의 여부를 결정하고; 관심이 제 2 라우터로 포워딩될 수 있다고 결정하는 것에 응답하여, 제 2 라우터에 특정한 라벨을 얻으며; 관심에 라벨을 부착하도록 구성된 관심 프로세싱 모듈을 더 포함한다. 라우터는 또한, 부착된 라벨에 따라 제 2 라우터로 관심을 포워딩하도록 구성된 포워딩 모듈을 포함한다.

Description

작은 다중 경로 또는 단일 경로 포워딩 상태를 이용한 정보 중심 네트워킹{INFORMATION-CENTRIC NETWORKING WITH SMALL MULTI-PATH OR SINGLE-PATH FORWARDING STATE}
본 발명은 일반적으로, 정보 중심 네트워크들(ICNs)에 관한 것이다. 더 구체적으로, 본 발명은 미결 관심 테이블(Pending Interest Table)을 데이터 응답 라우팅 테이블(Data Answer Routing Table; DART)로 대체하는 ICN 아키텍처(architecture)에 관한 것이다.
인터넷 및 전자상거래의 확산은 계속해서 네트워크 산업에서 혁신적 변화들을 불러 일으킨다. 오늘날, 온라인 영화 뷰잉(viewing)으로부터 매일의 뉴스 전달, 소매 판매, 및 인스턴트 메시징(instant messaging)까지의 상당한 수의 정보 교환들이 온라인으로 행해진다. 증가하는 수의 인터넷 애플리케이션들이 또한 모바일(mobile)이 되고 있다. 그러나, 현재 인터넷은 대체로 위치 기반 어드레싱 방식으로 동작한다. 2개의 가장 흔한(ubiquitous) 프로토콜들, 즉 인터넷 프로토콜(IP) 및 이더넷 프로토콜은 둘 모두 종단 호스트(end-host) 어드레스들에 기초한다. 즉, 콘텐트의 소비자는, 전형적으로 물리적 객체 또는 위치와 연관되는 어드레스(예로서, IP 어드레스 또는 이더넷 매체 액세스 제어(MAC) 어드레스)로부터 콘텐트를 명시적으로 요청함으로써 콘텐트를 단지 수신할 수 있다. 이 제한적 어드레싱 방식은 변화무쌍한 네트워크 요구들을 충족시키기 위해 계속해서 더 부적절해지고 있다.
최근에, 정보 중심 네트워크(ICN) 아키텍처들은, 콘텐트가 직접적으로 명명되고 어드레싱되는 산업에서 제안되었다. 콘텐트 중심 네트워킹(CCN) 및 명명된 데이터 네트워킹(NDN)은 가장 중요한 관심 기반 ICN 접근법들이다. CCN에서, 콘텐트가 이동하는 종단 간(end-to-end) 대화들에서와 같은 애플리케이션 레벨에서 네트워크 트래픽을 뷰잉하는 대신에, 콘텐트는 그것의 고유 이름에 기초하여 요청되거나 리턴되고, 네트워크는 제공자로부터 소비자로 콘텐트를 라우팅할 책임이 있다. 콘텐트가 텍스트, 이미지들, 비디오, 및/또는 오디오와 같은, 임의의 형태의 데이터를 포함하는, 통신 시스템에서 전송될 수 있는 데이터를 포함함에 주의한다. 소비자 및 제공자는 CCN 내부 또는 외부에서 컴퓨터 또는 자동화 프로세스에서의 사람일 수 있다. 콘텐트의 일부분은 전체 콘텐트 또는 콘텐트의 각각의 부분을 언급할 수 있다. 예를 들면, 신문 항목은 데이터 패킷들로서 구현된 콘텐트의 다수의 부분들에 의해 표현될 수 있다. 콘텐트의 일부분은 또한, 인증 데이터, 생성 날짜, 콘텐트 소유자, 등과 같은, 정보를 갖는 콘텐트의 부분을 설명하거나 증가시키는 메타데이터와 연관될 수 있다.
본 발명에서 사용된 용어들은 일반적으로, 다음과 같이 정의된다(그러나, 그들의 해석은 이러한 것으로 제한되지 않는다):
"HSVLI": 또한, 소위 이름인 계층적으로 구조화된 가변 길이 식별자. 그것은 가변 길이 옥텟 스트링(octet string)들일 수 있는 이름 구성요소들의 순서화된 목록이다. 인간 판독가능한 형태로, 그것은 ccnx:/path/part와 같은 포맷으로 표현될 수 있다. 또한, HSVLI는 인간 판독가능하지 않을 수 있다. 상기 언급된 바와 같이, HSVLI들은 콘텐트를 언급하고, 그들이 콘텐트에 대한 조직 구조들을 표현할 수 있으며 인간들에게 적어도 부분적으로 의미가 있는 것임이 바람직하다. HSVLI의 개별적인 구성요소는 임의의 길이를 가질 수 있다. 또한, HSVLI들은 명시적으로 제한된 구성요소들을 가질 수 있고, 바이트들의 임의의 를 포함할 수 있으며, 인간 판독가능한 문자들로 제한되지 않는다. 최장 접두부 매치 검색은 HSVLI들을 갖는 패킷들을 포워딩할 때에 중요하다. 예를 들면, "/parc/home/bob"에서 관심을 나타내는 HSVLI는 "/parc/home/bob/test.txt" 및 "/parc/home/bob/bar.txt" 둘 모두에 매칭할 것이다. 이름 구성요소들의 수에 관한 최장 매치는 최상으로 고려되는데, 이는 그것이 가장 특정하기 때문이다. HSVLI들의 상세한 설명들은 발명자들(제이콥슨, 반 엘(Jacobson, Van L.) 및 쏜튼, 제임스 디.(Thornton, James D.))에 의해 2009년 9월 23일에 출원된, 발명의 명칭이 "계층적으로 구조화된 가변 길이 식별자를 갖는 패킷을 포워딩하기 위한 시스템(SYSTEM FOR FORWARIDNG A PACKET WITH A HIERARCHICHALLY STRUCTURED VARIABLE-LENGTH IDENTIFIER)"인 미국 특허 번호 제 8,160,069 호에서 발견될 수 있다.
"관심": 콘텐트 객체에 대한 요청. 관심은 동일한 이름 접두부를 갖는 다수의 객체들 사이에서 선택하기 위해 사용될 수 있는 HSVLI 이름 접두부 및 다른 선택적 셀렉터(selector)들을 명시한다. 그 이름이 관심 이름 접두부(및 선택적으로, 공개자 키-ID 매치와 같은 다른 요청된 파라미터들)에 매칭하는 임의의 콘텐트 객체는 관심을 만족시킨다.
"콘텐트 객체": 관심에 응답하여 전송된 데이터 객체. 그것은 암호 서명을 통해 함께 결속되는 HSVLI 이름 및 콘텐트 페이로드를 갖는다. 선택적으로, 모든 콘텐트 객체들은 콘텐트 객체의 SHA-256 다이제스트(digest)로 구성된 암시적 터미널(terminal) 이름 구성요소를 갖는다. 하나의 실시예에서, 암시적 다이제스트는 와이어 상으로 전달되지 않지만, 필요하다면 각각의 홉에서 컴퓨팅(computing)된다. 본 발명에서, 용어 "콘텐트 객체" 및 용어 "명명된 데이터 객체(NDO)"는 교환가능하다.
"페이스(Face)": CCN에서, 용어 페이스는 인터페이스의 개념의 일반화이다. 페이스는 네트워크에 또는 직접적으로 애플리케이션 당사자에 대한 접속부일 수 있다. 페이스는 특정한 네트워크 인터페이스 상에서 방송 또는 멀티캐스트 패킷들을 전송 및 수신하도록, 또는 기초 전송에서 지점간 어드레싱을 사용하거나, 터널(예로서, TCP 터널)을 사용하여 패킷들을 전송하고 수신하도록 구성될 수 있다. 페이스는 또한, UDP와 같은 캡슐화 또는 OS 특정 프로세스 간 통신 경로를 통해, 동일한 기계 상에서 실행되는 단일 애플리케이션 프로세스에 대한 접속부일 수 있다. 모든 메시지들은 페이스를 통해 도달하고 페이스를 통해 전송된다. 본 발명에서, 용어 "이웃"은 용어 "페이스"와 상호교환가능하고, 이는 관심의 들어오거나(incoming) 나가는(outgoing) 인터페이스를 언급한다.
"접두부": 본 발명에서, 용어 "접두부"는 특정 콘텐트 객체의 이름 또는 콘텐트 객체에 대한 이름 접두부를 언급하기 위해 사용될 수 있다.
"앵커(Anchor)": 본 발명에서, 용어 "앵커"는 콘텐트를 광고하는 라우터를 언급하기 위해 사용된다. 더 구체적으로, 접두부에 대응하는 콘텐트의 일부 또는 전부에 대해 광고하는 라우터(또는 노드)는 접두부의 앵커로서 언급된다.
"다트(DART)": 본 발명에서, 대문자의 두문자어("DART")는 라우터들의 목적지 및 리턴 토큰(dart)과 페이스들 사이의 매핑을 저장하는 데이터 구조(table)를 언급한다.
"다트(dart)": 본 발명에서, 소문자어의 두문자어("dart")는 관심에 의해 운반된 목적지 및 리턴 토큰을 언급하고, 테이블("DART")과 혼동되어서는 안된다.
CCN 및 NDN을 포함하는 기존의 관심 기반 ICN 접근법들에서, 라우터들(또는 네트워크에서의 노드들)은 특정 명명된 데이터 객체들(NDOs)에 대한 관심들이 수신되는 인터페이스들 및 이러한 관심들이 포워딩(forwarding)되는 인터페이스들을 포함하는, 관심 상태를 저장하기 위해 미결 관심 테이블(PIT)을 유지할 필요가 있다. PIT는 관심들을 만족시키는 NDO들이 원래 요청자들의 계정(identity)을 숨기면서 원래 요청자들로 다시 역 경로를 따르는 것을 허용한다. 그러나, 라우터에 의해 취급된 관심들의 수가 증가함에 따라, PIT의 크기도 또한 증가하고, 이것은 전통적인 라우팅 테이블들의 크기보다 큰 많은 자릿수(order of magnitude)들일 수 있는데 이는 라우터들이 네트워크에서 라우터들의 수보다 훨씬 많은 관심들을 취급하기 때문이다.
본 발명의 하나의 실시예는 정보 중심 네트워크(ICN)에서 라우터를 제공한다. 라우터는 콘텐트의 일부분에 대한 관심을 수신하도록 구성된 수신 모듈을 포함한다. 관심은 콘텐트의 부분과 연관된 이름을 나타낸다. 라우터는: 관심이 포워딩될 수 있는지의 여부를 결정하고; 관심이 제 2 라우터로 포워딩될 수 있다고 결정하는 것에 응답하여, 제 2 라우터에 특정한 라벨(label)을 얻으며; 관심에 라벨을 부착하도록 구성된 관심 프로세싱 모듈을 더 포함한다. 라우터는 또한, 부착된 라벨에 따라 제 2 라우터로 관심을 포워딩하도록 구성된 포워딩 모듈을 포함한다.
이 실시예에 관한 일 변형에서, 포워딩 모듈은 또한, 관심 프로세싱 모듈이 관심이 포워딩될 수 없다고 결정하는 것에 응답하여, 관심으로 응답을 전송하도록 구성된다.
또 다른 변형에서, 관심 프로세싱 모듈은, 관심이: 콘텐트의 부분이 발견될 수 없고, 콘텐트의 부분을 광고하는 목적지 라우터에 대한 어떠한 루트(route)도 발견될 수 없으며, 관심이 루프를 가로지르고(traversing) 있다는 것 중 하나에 기초하여 포워딩될 수 없다고 결정하도록 구성되고; 포워딩 모듈에 의해 전송된 응답은 부정 응답(negative acknowledgment)을 포함한다.
또 다른 변형에서, 관심은 또한, 콘텐트의 부분을 광고하는 목적지 라우터에 대한 홉 카운트(hop count)를 나타내고, 관심 프로세싱 모듈은, 관심이 라우터에 저장된 라우팅 정보 및 홉 카운트에 기초하여 루프를 가로지르고 있다고 결정하도록 구성된다.
또 다른 변형에서, 관심 프로세싱 모듈은, 라우터가 콘텐트의 부분과 연관된 이름에 기초하여 콘텐트의 부분의 카피(copy)를 갖고, 포워딩 모듈에 의해 전송된 응답이 콘텐트의 부분의 카피를 포함한다고 결정하도록 구성된다.
또 다른 변형에서, 포워딩 모듈은: 관심에 의해 가로질러진 역 경로를 따라 관심의 발신자(originator)로 응답을 전송하거나, 관심에 의해 가로질러진 역 경로와 상이한 경로를 따라 관심의 발신자로 응답을 전송하도록 구성된다.
또 다른 변형에서, 관심은 또한, 관심의 발신자에 특정한 넌스(nonce)를 나타낸다. 라우터는: 로컬적으로 저장된 테이블에서 넌스에 기초하여 매칭 엔트리(matching entry)에 대한 검색을 수행하고, 여기서 매칭 엔트리는 하나 이상의 튜플(tuple)들을 포함하고 각각의 튜플은 이웃하는 라우터 및 이웃하는 라우터에 특정한 라벨을 나타내고; 하나 이상의 튜플들로부터 하나의 튜플을 선택하며; 선택된 튜플에 의해 표시된 라벨을 사용하여 응답을 라벨링(labeling)하도록 구성된 응답 프로세싱 모듈을 더 포함한다. 포워딩 모듈은 선택된 튜플에 의해 표시된 라우터로 라벨링된 응답을 전송하도록 구성된다.
이 실시예에 관한 일 변형에서, 관심은 이전 라벨을 더 포함한다. 관심 프로세싱 모듈은: 로컬적으로 저장된 테이블에서 이전 라벨에 기초하여 매칭 엔트리에 대한 검색을 수행하고, 여기서 매칭 엔트리는 제 2 라우터 및 제 2 라우터에 특정한 라벨을 나타내며; 발견되지 않은 매칭 엔트리에 응답하여, 로컬 테이블에 엔트리를 생성하고 저장하도록 구성되고, 여기서 저장된 엔트리는 제 2 라우터 및 제 2 라우터에 특정한 라벨을 나타낸다.
또 다른 변형에서, 관심에 라벨을 부착하는 것은 이전 라벨을 제 2 라우터에 특정한 라벨로 대체하는 것을 포함한다.
도 1은 본 발명의 일 실시예에 따른, 네트워크의 일 예시적인 아키텍처를 도시한 도면.
도 2는 본 발명의 일 실시예에 따른, 일 예시적인 포워딩 정보 베이스(FIB)를 도시하는 다이어그램을 제공하는 도면.
도 3은 본 발명의 일 실시예에 따른, 일 예시적인 데이터 응답 라우팅 테이블(DART)을 도시하는 다이어그램을 제공하는 도면.
도 4a는 본 발명의 일 실시예에 따른, 일 예시적인 근원지 넌스 테이블(ONT)을 도시하는 다이어그램을 제공하는 도면.
도 4b는 본 발명의 일 실시예에 따른, 일 예시적인 목적지 넌스 테이블(DNT)을 도시하는 다이어그램을 제공하는 도면.
도 5a 및 도 5b는 본 발명의 일 실시예에 따른, CCN-DART가 관심 루프들을 검출하는 방법을 도시한 도면들.
도 6a 내지 도 6c는 본 발명의 일 실시예에 따른, CCN-DART가 단일 경로 라우팅 및 일시적 라우팅 테이블 루프를 통해 동작하는 방법을 도시한 도면들.
도 7은 본 발명의 일 실시예에 따른, 라우터가 로컬 소비자들로부터 관심들을 수신할 때 라우터에 의해 수행된 일 예시적인 관심 프로세싱 알고리즘을 제공하는 도면.
도 8은 본 발명의 일 실시예에 따른, 라우터가 이웃들로부터 관심들을 수신할 때 라우터에 의해 수행된 일 예시적인 관심 프로세싱 알고리즘을 제공하는 도면.
도 9는 본 발명의 일 실시예에 따른, 일 예시적인 응답 생성 알고리즘을 제공하는 도면.
도 10a는 본 발명의 일 실시예에 따른, 일 예시적인 NDO 프로세싱 알고리즘을 제공하는 도면.
도 10b는 본 발명의 일 실시예에 따른, 일 예시적인 NACK 프로세싱 알고리즘을 제공하는 도면.
도 11은 본 발명의 일 실시예에 따른, CCN-DART 라우터의 일 예시적인 아키텍처를 제공하는 다이어그램을 제공하는 도면.
도 12는 본 발명의 일 실시예에 따른, CCN-DART의 일 예시적인 동작을 도시하는 다이어그램을 제공하는 도면.
도 13은 일 실시예에 따른, CCN-DART를 위한 일 예시적인 시스템을 도시한 도면.
도면들에서, 유사한 참조 부호들은 동일한 도면 요소들을 언급한다.
개요
본 발명의 실시예들은 데이터 응답 라우팅 테이블(CCN-DART)을 구현하는 CCN 시스템을 제공한다. 더 구체적으로, CCN-DART를 구현하는 라우터들은 더 이상 미결 관심 테이블(PIT)을 유지하는 것이 필요하지 않다. 대신에, CCN-DART 라우터는 라벨 스위칭 네트워크에서 사용된 라벨 교환 테이블과 유사한 데이터 응답 라우팅 테이블(DART)을 유지한다. 관심은 요청된 콘텐트의 이름, 홉 카운트, 목적지 및 리턴 토큰(dart), 및 넌스를 언급한다. 홉 카운트는 정확한 관심 루프 검출을 보장하기 위해 사용될 수 있다. dart는 이전 홉 및 현재 홉의 로컬 식별자들을 사용하여 관심에 의해 가로질러진 경로의 자취(trace)를 남기기 위해 라우터들을 포워딩함으로써 사용된다. 그것은 홉 단위로 변경되고 루트 특정하다. dart는 명명된 데이터 객체(NDO) 또는 부정 응답(NACK)이 관심의 소스를 드러내지 않고, 콘텐트 요청자로 다시 전송되도록 허용한다. 관심의 넌스는 그 라우터의 계정을 모르고, 관심들에 의해 가로질러진 다수의 경로들을 동일한 발신 라우터들과 연관시키기 위해 콘텐트 생성기 또는 캐싱 라우터에 의해 사용된다. 넌스들은 라우터들이 역 경로 포워딩을 요구하기보다, 콘텐트 소비자들과 콘텐트 제공자들 사이에 확립된 다수의 경로들을 통해 관심들 및 NDO들 또는 NACK들을 포워딩하는 것을 가능하게 한다.
CCN 아키텍처
일반적으로, CCN은 2개의 유형들의 메시지들을 사용한다: 관심들 및 콘텐트 객체들. 관심은 콘텐트 객체의, 또한 소위 "이름"인 계층적으로 구조화된 가변 길이 식별자(HSVLI)를 운반하고, 그 객체에 대한 요청의 역할을 한다. 네트워크 요소(예로서, 라우터)가 동일한 이름에 대한 다수의 관심들을 수신하면, 그것은 그들 관심들을 집성할 수 있다. 매칭 콘텐트 객체를 갖는 관심의 경로를 따라 네트워크 요소는 그 객체를 캐싱(caching)하고 리턴시킬 수 있으며, 이것은 관심을 만족시킨다. 콘텐트 객체는 관심의 근원지(들)에 대한 관심의 역 경로를 따른다.
전에 언급된 바와 같이, HSVLI는 콘텐트의 일부분을 나타내고, 계층적으로 구조화되며, 가장 일반적인 레벨로부터 가장 특정한 레벨로 순서화된 인접 구성요소들을 포함한다. 각각의 HSVLI의 길이는 고정되지 않는다. 종래의 IP 네트워크와 달리, 콘텐트 중심 네트워크들에서, 패킷은 HSVLI에 의해 식별될 수 있다. 예를 들면, "abcd/bob/papers/ccn/news"는 콘텐트의 이름일 수 있고 대응하는 패킷(들) 즉, "ABCD"로 명명된 조직에서 "Bob"으로 명명된 사용자에 대한 페이퍼들의 "ccn" 컬렉션으로부터 "news" 항목을 식별한다. 콘텐트의 일부분을 요청하기 위해, 노드는 콘텐트의 이름에 의해 그 콘텐트에서 관심을 표현(예로서, 방송)한다. 콘텐트의 일부분에서의 관심은 콘텐트의 이름 또는 식별자에 따른 콘텐트에 대한 질의일 수 있다. 네트워크에서 이용가능하면, 콘텐트는, 콘텐트를 저장하는 임의의 노드로부터 요청 노드로 다시 전송된다. 라우팅 인프라스트럭처는 아마도 정보를 가질 것 같은 장래 노드(prospective node)들로 관심을 지능적으로 전파하고 그 다음, 관심 메시지에 의해 가로질러진 역 경로를 따라 다시 이용가능한 콘텐트를 운반한다. 기본적으로, 콘텐트 객체는 관심 메시지에 의해 남겨진 브레드크럼(breadcrumb)들을 따르고 따라서, 요청 노드에 도달한다.
도 1은 본 발명의 일 실시예에 따른, 네트워크의 일 예시적인 아키텍처를 도시한다. 이 예에서, 네트워크(180)는 노드들(100 내지 145)을 포함한다. 네트워크에서의 각각의 노드는 하나 이상의 다른 노드들에 결합된다. 네트워크 접속(185)은 이러한 접속의 일례이다. 네트워크 접속은 실선으로서 도시되지만, 각각의 라인은 또한, 하나의 노드를 또 다른 노드에 결합시킬 수 있는 서브 네트워크들 또는 수퍼 네트워크들을 표현할 수 있다. 네트워크(180)는 콘텐트 중심, 로컬 네트워크, 수퍼 네트워크, 또는 서브 네트워크일 수 있다. 이들 네트워크들의 각각은, 하나의 네트워크에서의 노드가 다른 네트워크들에서의 노드에 도달할 수 있도록 상호접속될 수 있다. 네트워크 접속은 광대역, 무선, 전화, 위성, 또는 임의의 유형의 네트워크 접속일 수 있다. 노드는 컴퓨터 시스템, 사용자들을 표현하는 종단 지점, 및/또는 관심을 생성하거나 콘텐트를 발생시킬 수 있는 디바이스일 수 있다.
본 발명의 일 실시예에 따라, 소비자는 콘텐트의 일부분에 대한 관심을 생성하고 네트워크(180)에서의 노드로 그 관심을 포워딩할 수 있다. 콘텐트의 부분은 네트워크 내부 또는 외부에 위치될 수 있는 공개자 또는 콘텐트 제공자에 의해 네트워크(180)에서의 노드에서 저장될 수 있다. 예를 들면, 도 1에서, 콘텐트의 일부분에서의 관심은 노드(105)에서 발생한다. 콘텐트가 노드에서 이용가능하지 않으면, 관심은 제 1 노드에 결합된 하나 이상의 노드들로 흐른다. 예를 들면, 도 1에서, 관심은 이용가능한 콘텐트를 갖지 않은 노드(115)로 흐른다(관심 흐름(150)). 다음, 관심은, 다시 콘텐트를 갖지 않은 노드(115)로부터 노드(125)까지 흐른다(관심 흐름(155)). 관심은 그 다음, 이용가능한 콘텐트를 갖는 노드(130)로 흐른다(관심 흐름(160)). 콘텐트 객체의 흐름은 그 다음, 그것이 콘텐트가 전달되는 노드(105)에 도달할 때까지 역으로 그것의 경로를 재추적한다(콘텐트 흐름들(165, 170, 및 175)). 인증과 같은 다른 프로세스들이 콘텐트의 흐름에 수반될 수 있다.
네트워크(180)에서, 콘텐트 소유자(노드(130))와 관심 생성 노드(노드(105)) 사이의 경로에서의 임의의 수의 중간 노드들(노드들(100 내지 145))은 콘텐트가 네트워크에 걸쳐 이동할 때, 콘텐트의 로컬 카피들을 캐싱하는 것에 참여할 수 있다. 캐싱은 로컬적으로 캐싱된 콘텐트에 대한 액세스를 암시적으로 공유함으로써 다른 가입자들에 근접하여 위치된 제 2 가입자에 대한 네트워크 부하를 감소시킨다.
종래의 CCN들 또는 NDN들에서, 각각의 노드(또한, 라우터로서 불리는)는 포워딩 정보 베이스(FIB), 콘텐트 저장소(CS), 및 미결 관심 테이블(PIT)을 포함하는 3개의 주요 데이터 구조들을 유지한다. 포워딩 플레인(plane)은 요청된 콘텐트의 카피들을 광고하는 노드들을 향해 관심들을 포워딩하기 위해, 그리고 관심들에 의해 가로질러진 역 경로들을 통해 그들을 요청한 소비자들로 다시 NDO들 또는 다른 응답들을 전송하기 위해 이들 3개의 테이블들에 저장된 정보를 사용한다.
FIB는 콘텐트 객체들에 매칭하는 잠재적인 소스(들)를 향해 관심 패킷들을 포워딩하기 위해 사용된다. 전형적으로, 라우팅 프로토콜은 네트워크에 모든 노드들 중에서 FIB를 배치(populate)시키기 위해 사용된다. 종래의 CCN들에서, FIB 엔트리들은 종종 이름 접두부들에 의해 인덱싱(indexing)되고, 각각의 엔트리는 매칭 관심이 포워딩되어야 하는 적어도 하나의 페이스의 물리적 어드레스를 포함한다. NDN들에서, 이름 접두부에 대한 FIB 엔트리는 또한, 엔트리가 삭제될 수 있는 스테일 시간(stale time), 인터페이스를 통한 왕복 시간, 레이트 한도(rate limit); 및 인터페이스가 데이터를 다시 가져올 수 있거나 가져올 수 없다고 공지되거나 공지되지 않는지의 여부를 언급하는 상태 정보를 포함한다. 관심 메시지들을 포워딩하는 동안, 이름들의 최장 접두부 매치 검색들은 매칭 엔트리를 발견하기 위해 FIB에서 수행된다.
콘텐트 저장소(CS)는 IP 라우터에서 사용된 버퍼 메모리와 유사하다. 특히, CS는 이 노드를 통해 이동하는 콘텐트 객체들을 일시적으로 버퍼링하여, 상이한 소비자들에 의한 효율적인 데이터 검색을 허용한다. 라우터가 관심 패킷을 수신할 때, 그것은 먼저, 관심 업스트림을 발행하기 이전에 그것의 콘텐트 저장소에서 매칭 콘텐트 객체가 존재하는지의 여부를 확인한다.
미결 관심 테이블(PIT)은 관심 상태의 캐시의 역할을 한다. PIT는 NDO 메시지들 또는 제어 메시지들(예로서, NACK들)이 관심들에 응답하여 다시 전송되어야 하는 이웃을 파악한다. 이것은 업스트림 및 다운스트림 네트워크 흐름을 보존하고, 관심이 그들의 소스들을 드러내지 않는 것을 허용하며, 관심 집성을 가능하게 한다. CCN에서, 단지 관심 패킷들이 라우팅된다. NDN에서, PIT 엔트리는 벡터 또는 하나 이상의 튜플들을 포함할 수 있고, 하나의 튜플은 동일한 NDO 이름에 대해 프로세싱된 각각의 넌스를 위한 것이다. 각각의 튜플은 사용된 넌스, 들어오는 페이스들, 및 나가는 페이스들을 언급한다. 각각의 PIT 엔트리는 또한, 전형적으로 요청된 NDO를 가지는 노드에 대해 추정된 왕복 시간보다 큰 수명을 갖는다.
라우터가 관심을 수신할 때, 그것은 그것의 CS에서 요청된 콘텐트에 대한 매치가 존재하는지의 여부를 확인한다. CCN에서, 정확한 관심 매칭 메커니즘이 매칭 콘텐트를 발견하기 위해 사용된다. 관심에 대한 매치가 발견되면, 라우터는 관심에 의해 가로질러진 역 경로를 통해 NDO를 다시 전송한다. 어떠한 매치도 CS에서 발견되지 않으면, 라우터는 동일한 콘텐트에 대한 엔트리를 위해 PIT를 확인한다. 넌스들이 관심들을 식별하기 위해 사용되는 NDN에서, 관심이 요청된 콘텐트에 대한 PIT 엔트리에 저장된 넌스들과 상이한 넌스를 언급하면, 라우터는 관심을 포워딩하지 않고 PIT 엔트리에 들어오는 페이스 및 넌스를 부가함으로써 관심을 집성한다. 한편, 관심에서의 동일한 넌스가 이미, 요청된 콘텐트에 대한 PIT 엔트리에 열거되면, 라우터는 관심에 의해 가로질러진 역 경로를 통해 루프가 검출되었음을 나타내는 NACK를 전송한다. CCN에서, 관심이 요청된 콘텐트에 대한 PIT 엔트리에 열거되지 않은 페이스로부터 수신되면 집성이 행해지고, 동일한 페이스로부터 수신된 반복된 관심은 단순하게 누락(drop)된다.
라우터가 그것의 CS 및 PIT에서 매치를 발견하지 않으면, 라우터는 최상의 접두부 매치를 위해 그것의 PIT에 열거된 루트(또는 다수의 루트들)를 따라 관심을 포워딩한다. NDN에서, 라우터는, 이러한 페이스가 콘텐트 및 콘텐트를 또한 가져올 수 있는 다른 페이스들보다 더 높게 순위가 매겨진 그것의 성능을 가져오도록 공지되면 관심을 포워딩하기 위한 페이스를 선택할 수 있다. 라우터는 다른 라우터들과 관계 없이 페이스들의 순위매김을 수행한다.
이전에 논의된 바와 같이, PIT를 유지하고 PIT에서 매치들을 확인하는 것은 충분하지 않을 수 있는데, 이는 대략, PIT의 크기가 라우터들에 의해 취급된 관심들의 수를 증가시키고, 이러한 수가 네트워크에서 라우터들의 수 이상의 자릿수들일 수 있기 때문이다. 따라서, 그들의 원래 요청자들로 NDO들을 리턴시키기 위해 PIT에 의존하지 않는 관심 기반 ICN 시스템을 설계하는 것이 바람직하다.
데이터 응답 라우팅 테이블을 갖는 CCN( CCN -DART): 원리
CCN-DART의 설계는 다음의 관측들에 기초한다. 첫째, 네트워크 시뮬레이션은, 콘텐트 저장소들의 용량이 증가함에 따라, 콘텐트 캐싱이 관심 집성의 발생을 극히 드물게 함을 보여준다. 동일한 콘텐트에 대한 관심의 도착 간격 시간들 및 소비자들과 요청된 콘텐트를 저장하는 콘텐트 저장소들 사이의 왕복 시간들(RTTs)은 콘텐트가, 동일한 콘텐트를 요청하는 후속 관심들이 도달할 때까지 캐시들에서 이용가능한 시간들이다. 이것은 심지어, 시뮬레이션 파라미터들이 관심 집성을 촉진(favor)하도록 설정되는 경우이다. 한편, CS 크기들과 관계없이, PIT 엔트리들의 수는 관심 제출(submission) 레이트에 따라 극적으로 증가하고, 관심 집성은 검출되지 않은 관심 루프들을 야기할 수 있다.
둘째, 네트워크에서 라우터들의 수는 명명된 데이터 객체들(NDOs)의 수, 따라서 그들을 요청하는 관심들의 수보다 적은 자릿수들이다. 따라서, 라우터를 거치는 루트들에 기초하여 포워딩 상태를 유지하는 것은 라우터를 가로지르는 관심들에 기초하여 포워딩 상태를 유지하는 것보다 적은 자릿수들일 수 있다.
셋째, 정확한 관심 포워딩 전략은 각각의 관심을 고유하게 식별하려고 시도하기보다, 주어진 관심을 포워딩하는 라우터들의 순서화에 기초할 수 있다.
마지막으로, 제어 플레인이 이름 접두부들에 대한 다중경로 라우팅을 지원하고 적절한 포워딩 상태가 효율적으로 유지되면, 관심들에 응답하여 전송된 NDO들 또는 NACK들을 포워딩하기 위해 이용될 역 경로 포워딩을 요구할 내재적 이유가 존재하지 않는다.
복수의 가정들이 CCN-DART의 설명에서 행해질 수 있다. 관심들이 중계 라우터들에 의하기보다, 단지 발신 소비자들에 의해 재송신됨이 가정될 수 있다. 라우터들은 어떤 인터페이스들이 이웃하는 라우터들이고 어떤 인터페이스들이 로컬 소비자들인지를 알고 최상의 방식(on a best-effort basis)으로 관심들을 포워딩하도록 가정된다. 또한, 라우터들은 관심의 정확한 매칭을 사용하도록 가정된다.
동작 동안, CCN-DART는 노드들 사이의 콘텐트의 교환을 구현하기 위해 관심들, 제어 메시지들(예로서, NACKs), 및 데이터 객체들(예로서, NDOs)을 사용한다. 더 구체적으로, 목적지 및 리턴 토큰들(darts) 및 관심 넌스들은 관심들, NDO들, 및 NACK들의 정확한 포워딩을 가능하게 하기 위해 사용된다. dart들은 소스와 목적지 라우터들 사이에 확립된 루트들을 고유하게 나타낼 수 있는 로컬 식별자들이다. 넌스들은 동일한 소스와 목적지 라우터들 사이에 확립된 하나 이상의 루트들을 연관시킬 수 있는 글로벌 식별자들이다.
NDO(n(j))를 요청하는 노드(k)에 의해 전송된 관심은
Figure pat00001
로 표시되고, 이것은 요청된 NDO 이름(n(j)), 노드(k)로부터 n(j)에 대한 최상의 매치인 이름 접두부(n(j)*)의 가장 가까운 인스턴스까지의 홉 카운트(hI(k)), 관심의 발신 라우터에 의해 생성된 넌스(IDI(k)), 및 관심의 소스들로 다시 익명의 루트들을 확립하기 위해 사용된 dart(dartI(k))를 언급한다. 일부 실시예들에서, 넌스 및 dart는 라벨 교환 네트워킹에서 데이터그램 헤더의 부분인 라벨과 유사한 방식으로, 관심 패킷의 헤더 필드에 포함될 수 있다. 관심(
Figure pat00002
)에 응답하여 라우터(i)에 의해 전송된 콘텐트 객체는
Figure pat00003
로 표시되고, 이것은 전송되는 NDO의 이름(n(j)), 콘텐트 객체를 검사하기 위해 선택적으로 사용된 서명 페이로드(sig(j)), 넌스(IDI(i)), 및 NDO를 포워딩하기 위해 사용될 dart(dartI(i))를 언급한다. 한편, 관심(
Figure pat00004
)에 응답하여 라우터(i)에 의해 전송된 제어 메시지(NACK)는
Figure pat00005
로 표시되고, 여기서 CODE는 NACK를 전송하기 위한 이유를 언급한다. NACK를 전송하기 위한 가능한 이유들은 다음을 포함한다: (a) 관심 루프가 검출되고, (b) 요청된 콘텐트를 향한 어떠한 루트도 발견되지 않고, (c) 어떠한 콘텐트도 발견되지 않으며, (d) DART 엔트리가 만료된다.
관심들, NDO들 및 NACK들의 포워딩을 구현하기 위해, CCN-DART 라우터는 5개의 테이블들을 유지한다: 선택적 콘텐트 저장소(CSi), FIB(FIBi), 데이터 응답 라우팅 테이블(DARTi), 근원지 넌스 테이블(ONTi), 및 목적지 넌스 테이블(DNTi). CSi는 종래의 CCN들 또는 NDN들에서와 같다. CSi는 로컬 캐시들에 저장된 NDO들을 열거하고, NDO들의 이름들에 의해 인덱싱된다. 일부 실시예들에서, 선택적 콘텐트 저장소는 선택적 요청된 콘텐트 테이블(RCT)로 대체될 수 있고, 상기 선택적 요청된 콘텐트 테이블은 로컬 콘텐트의 인덱스의 역할을 할 뿐만 아니라, 원격 콘텐트에 대한 로컬 요청들을 파악한다. RCT의 엔트리는 콘텐트의 이름, 콘텐트가 저장되는 로컬 저장장치에 대한 포인터, 및 콘텐트를 요청한 로컬 소비자들(만약에 있다면)의 목록을 식별하는 복수의 식별자들을 포함할 수 있다. RCT는 2개의 별개의 인덱스들로서 구현될 수 있는데, 하나는 로컬 콘텐트를 위한 것이고 하나는 원격 콘텐트에 대한 요청들을 위한 것이다.
CCN-DART를 더 양호하게 이해하기 위해, 선행자(predecessor), 후임자(successor), 및 앵커의 개념들이 여기서 도입된다. 라우터(i)에서, 이름 접두부(n(j)*)에 관한 관심에 대한 선행자는 이름 접두부(n(j)*)에 매칭하는, NDO(n(j))에 관한 라우터(i)로 관심을 포워딩한 라우터이고, n(j)*에 관련된 관심들에 대한 후임자는 라우터(i)가 이름 접두부(n(j)*)에 매칭하는, NDO(n(j))에 관한 관심을 포워딩하는 라우터이다. 접두부의 앵커는 접두부를 광고한 라우터이다.
도 2는 본 발명의 일 실시예에 따른, 일 예시적인 포워딩 정보 베이스(FIB)를 도시하는 다이어그램을 제공한다. 도 2에서, FIB(200)는 콘텐트 이름 접두부들을 사용하여 인덱싱된 복수의 엔트리들을 포함한다. 각각의 엔트리는 이름 접두부에 의해 식별된 콘텐트에 대한 다음 홉 및 이름 접두부를 광고하는 노드에 대한 홉 카운트를 언급한다. 표기법 목적들을 위해, 라우터(i)에서, FIB는 FIBi로서 표시되고, 이름 접두부(n(j)*)에 대한 각각의 FIB 엔트리는 FIB 엔트리(202)와 같은,
Figure pat00006
로서 표시된다. 각각의 FIB 엔트리가 하나 이상의 튜플들의 목록을 포함할 수 있고, 하나의 튜플이 n(j)*에 대한 라우터(i)의 후임자들의 세트에서 각각의 다음 홉을 위한 것임에 주의한다. n(j)*에 대한 라우터(i)의 후임자들(다음 홉들)의 세트는
Figure pat00007
로서 표시되고, FIB 엔트리(
Figure pat00008
)에 포함된다. 각각의 인터페이스(
Figure pat00009
)에 대해, 대응하는 튜플은 이웃(q)을 통한 접두부(n(j)*)에 대한 홉 카운트(
Figure pat00010
로서 표시된) 및 n(j)*에 대한 q에 의해 보고된 앵커(
Figure pat00011
로서 표시된)를 언급한다. FIB(200)는 또한, FIB(200)에 열거된 임의의 이웃을 통해 라우터로부터 각각의 공지된 이름 접두부까지의 최소 홉 카운트를 저장한다. 더 구체적으로, 이름 접두부(n(j)*)에 대한 라우터(i)로부터의 최소 홉 카운트는
Figure pat00012
로 표시된다.
도 3은 본 발명의 일 실시예에 따른, 일 예시적인 데이터 응답 라우팅 테이블(DART)을 도시하는 다이어그램을 제공한다. DART는 앵커들에 대한 경로들을 따라 후임자들에 대한 선행자들의 매핑들을 저장한다. 라우터(i)에서 저장된 DART는 DARTi로서 표시된다. 도 3에서, DART(300)는 라우터(i)의 이웃하는 페이스들에 따라 체계화된 복수의 엔트리들을 포함한다. 라우터(p)로부터 수신되고 주어진 앵커(a)를 향해 라우터(s)로 포워딩된 관심들을 위해 생성된 엔트리는 DARTi(a, p)로서 표시된다. 라우터(p)에 대응하는 하나 이상의 앵커들을 위해 생성된 엔트리들은 DARTi에서 하위 테이블(302)과 같은, 하위 테이블을 형성할 수 있다. 엔트리(304)와 같은, 하위 테이블(302)에서의 각각의 엔트리는 앵커(ai(a, p)), 선행자(pi(a, p)), 선행자 dart(pdi(a, p)), 후임자(si(a, p)), 후임자 dart(sdi(a, p)), 홉 카운트(hi(a, p)), 및 수명(LTi(a, p))을 명시한다.
앵커(ai(a, p))는 포워딩 상태가 라우터(i)에서 확립되는 앵커(라우터(a))이다. 선행자(pi(a, p))는 a에 대한 루트의 선행자(라우터(p))이다. 선행자 dart(pdi(a, p))는 앵커(a)를 향해 p로부터 관심에서 수신된 dart와 같다. 후임자(si(a, p))는 p로부터 앵커(a)를 향해 관심들을 포워딩하기 위해 라우터(i)에 의해 선택되는 라우터(s)의 이름이다. 후임자 dart(sdi(a, p))는 라우터(s)를 통해 앵커(a)를 향해 전송된 관심들에 포함된 dart이다. 홉 카운트(hi(a, p))는 dart 엔트리가 확립되었을 때 후임자(s)를 통한 앵커(a)에 대한 홉들의 수이다. LTi(a, p)는 DART 엔트리의 수명이다. DART 엔트리의 수명은 라우터가 그것을 저장하는 동안 감소된다. DART 엔트리는, 그것의 수명이 제로(zero)에 도달할 때 삭제된다. PIT에서의 엔트리의 수명과 대조적으로, DART 엔트리의 수명은 중요한 설계 파라미터가 아니다. DART에서의 엔트리는 토폴로지 변화들이 없을 때에, 장기간(즉, 몇 초) 동안 저장장치에 남을 수 있다. 또한, DART 엔트리의 삭제는 몇몇 관심들의 단지 최소 둔화(minor slowdown)를 야기한다. 안정적 네트워크에서, DART 엔트리의 대체는 삭제된 엔트리와 동일한 정보를 언급할 가능성이 높다.
도 4a는 본 발명의 일 실시예에 따른, 일 예시적인 근원지 넌스 테이블(ONT)을 도시하는 다이어그램을 제공한다. 라우터(i)에 의해 저장된 ONT는 ONTi로서 표시되고, 로컬 소비자들의 이름들과 라우터(i)에 의해 그들에 할당된 넌스들 사이의 매핑들을 저장한다. 도 4a에서, ONTi(400)에서의 엔트리들 예로서, 엔트리(402)는 로컬 소비자들에 의해 인덱싱된다. 넌스(ni)에 대한 엔트리는 로컬 소비자의 로컬 식별자를 명시하고, ONTi(ni)로서 표시된다.
도 4b는 본 발명의 일 실시예에 따른, 일 예시적인 목적지 넌스 테이블(DNT)을 도시하는 다이어그램을 제공한다. 라우터(i)에 의해 저장된 DNT는 DNTi로 표시된다. 도 4b에서, DNTi(410)에서의 엔트리들 예로서, 엔트리(412)는 관심들에서 수신된 넌스들을 사용하여 인덱싱된다. 라우터(k)로부터 관심에 수신된 넌스(IDI(k))에 대한 엔트리는 DNTi(IDI(k))로서 표시되고, 하나 이상의 튜플들의 목록을 포함한다. 각각의 튜플은 동일한 넌스, 및 관심에서 언급된 dart를 포함하는 관심을 전송한 라우터의 이름을 명시한다.
CCN -DART: 루프 검출
CCN-DART는 관심 루핑(looping)을 방지하기 위해 거리 기반 포워딩 전략을 구현한다. 이러한 포워딩 전략은 단지 라우터가, 그것이 라우터(k)가 관심을 포워딩할 때 k보다 적어도 하나의 다음 홉 이웃을 통해 접두부에 더 가까이 있다고 결정하는 경우에만 상기 라우터가 라우터(k)로부터 관심을 수용함을 보장한다. 관심 루프들을 방지하기 위해 사용될 수 있는 거리 기반 포워딩 전략의 상세한 설명은, 2014년 12월 16일에 출원된, 발명자 가르시아-루나-아세베스, 호세 제이.(Garcia-Luna-Aceves, Jose J.)에 의한 발명의 명칭이 "거리 기반 관심 포워딩을 위한 시스템 및 방법(SYSTEM AND METHOD FOR DISTANCE-BASED INTEREST FORWARDING)"인 공동 계류중인 특허 출원 번호 제 14/572,608 호(대리인 사건 번호 PARC-20140178US01)에서 발견될 수 있다.
CCN-DART를 구현하는 라우터들이 관심들을 수신할 때, 그들은 먼저 관심 포워딩 규칙(IFR)을 사용하여 관심들을 수용할지의 여부를 결정하고, 상기 관심 포워딩 규칙은 라우터(i)가 다음의 조건:
Figure pat00013
이 충족되면 이웃(k)으로부터 관심(
Figure pat00014
)을 수용할 수 있음을 언급한다.
도 5a 및 도 5b는 본 발명의 일 실시예에 따른, CCN-DART가 관심 루프들을 검출하는 방법을 도시한다. 도 5a에 도시된 바와 같이, 네트워크(500)는 복수의 노드들, 노드들(502 내지 514)을 포함한다. 다수의 경로들은 노드들(502 및 514) 사이에 존재하고, 라우팅 테이블은 루프: 노드(504)-노드(506)-노드(508)-노드(504)를 포함할 수 있다. 도 5a에서, 라우터로부터 그것의 이웃들로 나가는 각각의 링크에서, 숫자들의 쌍이 열거되고, 이것은 이웃을 통한 n(j)(노드(514))에 대한 홉 카운트(제 1 숫자) 및 FIB에 따른 이웃의 순위(제 2 숫자)를 나타낸다. 동일한 링크에 대해, 2개의 쌍들이 존재할 수 있고, 각각의 쌍이 쌍에 더 가까운 라우터의 FIB에서 저장됨에 주의한다. 예를 들면, 라우터(504)로부터 라우터(506)까지의 링크에 관해, 2개의 숫자 쌍들, 쌍(4, 1) 및 쌍(5, 2)이 링크 바로 옆에 도시된다. 숫자 쌍(4, 1)은 라우터(504)에 인접하고 라우터(504)의 FIB에 저장되며, 숫자 쌍(5, 2)은 라우터(506)에 인접하고 라우터(506)의 FIB에 저장된다. 더 구체적으로, 라우터(504)에 인접한 숫자 쌍(4, 1)은, 그것의 이웃(506)을 통한 n(j)에 대한 홉 카운트가 4임을 나타내고, 이웃(506)은 라우터(504)의 FIB에서 숫자(1)로 순위를 매긴다. 한편, 라우터(506)에 인접한 숫자 쌍(5, 2)은, 그것의 이웃(504)으로부터 n(j)에 대한 홉 카운트가 5임을 나타내고, 이웃(504)은 라우터(506)의 FIB에서 숫자(2)로 순위를 매긴다.
이웃, 그것의 홉 카운트, 및 그것의 순위를 나타내기 위해 튜플(v,h,r)을 사용할 수 있다. 이러한 튜플이 이름 접두부(n(j)*) 하에서 FIB에 열거된 엔트리들일 수 있음에 주의한다. 예를 들면, FIBnode 504는 튜플들((node 506,4,1), (node 510,4,2), 및 (node 508,6,3))을 열거할 수 있다. 유사하게, FIBnode 502는 튜플((node 504,5,1))을 열거할 수 있고; FIBnode 506는 튜플들((node 508,6,1), (node 504,5,2), 및 (node 512,3,3))을 열거할 수 있으며; FIBnode 508는 튜플들((node 506,5,1) 및 (node 504,5,2))을 열거할 수 있다. 노드들(510 및 512)에 대한 부분적 FIB 엔트리들이 또한, 도 5a에 도시됨에 주의한다.
도 5b는 CCN-DART 라우터들이 관심들을 포워딩하는 방법을 도시한다. 도 5b에 도시된 예에서, 라우터(504)는 시간(t1)에서 라우터(502)로부터 이름(n(j))에 대한 관심(
Figure pat00015
)을 수신했다.
Figure pat00016
를 고려하면, 라우터(504)는 관심을 수용하는데, 이는 그것이 IFR을 만족시키는 적어도 하나의 이웃(라우터(506))을 갖기 때문이다. 라우터(504)는 그 다음, 라우터(506)로 관심을 포워딩하는데, 이는 라우터(506)가 IFR을 또한 만족시키는 라우터(510)보다 높게 순위가 매겨지기 때문이다. 포워딩하기 전에, 라우터(504)가 관심의 dart를 교환하고, 라우터(506)로 관심(
Figure pat00017
)을 포워딩함에 주의한다.
라우터(506)는 시간(t2)에서
Figure pat00018
를 수신하고, 그것을 수용하는데 이는
Figure pat00019
이기 때문이다. 라우터(506)는 그 다음, 관심에 대한 다음 홉으로서 라우터(512)를 사용하는데, 이는 라우터(512)가 IFR을 만족시키는 최고로 순위가 매겨진 이웃이기 때문이다. 관심에 의해 가로질러진 루트는 시간 시퀀스(
Figure pat00020
)에 따르는 점선으로 표시된다. 이 방식을 따르는 각각의 라우터가, 리턴하는 NDO가 관심의 역 경로를 따를 수 있음을 보장하기 위해 관심에 포함된 dart를 교환함에 주의한다.
유사하게, 라우터(508)에 의해 생성된 관심은 루프를 가로지르지 않고 n(j)를 향해 라우터(512)로 포워딩되는데(루트는 시간 시퀀스(
Figure pat00021
)에 따르는 상이한 점선으로 표시됨), 이는 각각의 중계 라우터가 IFR을 만족시켜야 하기 때문이다.
도 6a 내지 도 6c는 본 발명의 일 실시예에 따른, CCN-DART가 단일 경로 라우팅 및 일시적 라우팅 테이블 루프를 통해 동작하는 방법을 도시한다. 도면들에서, 네트워크(600)는 복수의 노드들, 노드들(602 내지 614)을 포함한다. 도 6a에서, 각각의 라우터는 단일 다음 홉 및 그것의 FIB에 열거된 각각의 접두부에 대한 하나의 홉 카운트를 포함한다. 예를 들면, 라우터(614)에 의해 광고된 이름 접두부(n(j)*)에 대해, 라우터(604)는 (링크(노드(704), 노드(710)에 장애가 발생하기(fail) 전에) 이웃 라우터(610)를 통해 4의 홉 카운트를 열거하고, 라우터(606)는 이웃 라우터(608)를 통해 6의 홉 카운트를 열거한다. 라우터로부터 이름 접두부(n(j)*)까지의 거리가 경로들의 홉 카운트들에 직접적으로 비례하지 않을 수 있음에 주의한다. 예를 들면, 링크(노드(606), 노드(612))는 제한된 대역폭 또는 긴 지연들을 가질 수 있고; 따라서, 노드(606)는 노드(614)에서 n(j)*에 도달하기 위해 노드(608)를 통한 경로를 선호할 수 있다.
라우터(604)와 라우터(610) 사이의 링크에 장애가 발생할 때, 라우터(606)는 도 6a에 도시된 바와 같이, 시간(t0)에서의 링크 장애를 반영하기 위해 그것의 FIB를 업데이트한다. 라우터(704)는 이제 이웃 라우터(706)를 통해 4의 홉 카운트를 열거한다. 이러한 링크 장애가, 관심들이 포워딩되고 있는 동안 n(j)에 대해 일관성 없는 FIB 상태들을 갖는 네트워크(600)의 라우터들을 야기함에 주의한다. 예를 들면, 라우터(706)는 그것의 FIB를 아직 업데이트하지 않았고, 이것은 일시적 라우팅 테이블 루프를 야기할 수 있다. 시간(t1)에서, 라우터(602)는 라우터(604)로 이름(n(j))에 대한 관심(
Figure pat00022
)을 전송한다. 도 6b는, 라우터(604)가 시간(t2)에서 라우터(606)로 관심을 포워딩함을 보여준다. 도 6b는 또한, 라우터(606)가 시간(t3)에서 NACK를 갖는 관심에 응답함을 보여주는데, 이는
Figure pat00023
이기 때문이고 이것은 IFR을 위반한다. NACK은 검출된 루프로서 NACK를 위한 이유를 나타낼 것이다. NACK는 결국, 도 6c에 도시된 바와 같이, 시간(t4)에서, 관심의 발신자, 라우터(602)로 내내 포워딩될 것이다.
도 6b는 또한, 시간(t3)에서, 라우터(608)가 라우터(604)로 이름(n(j))에 대한 관심(
Figure pat00024
)을 전송함을 보여준다. 이러한 관심은 또한, 도 6c에 도시된 바와 같이, IFR 위반으로 인해 시간(t5)에서 라우터(606)로부터 NACK를 촉발한다(prompt). 도 6c는 또한, 라우터(604)가 시간(t6)에서 라우터(606)로부터 라우터(608)까지 NACK를 포워딩함을 도시한다. 유한 시간 내에서, FIBnode 604, FIBnode 606, 및 FIBnode 608은 새로운 토폴로지 상태를 반영하기 위해 업데이트된다. 더 구체적으로, 노드(606)에 대한 FIB는 더 이상 노드(608)를 그것의 다음 홉으로서 열거할 수 없고, n(j)*에 관한 노드(602)로부터의 관심들은 n(j)*를 향해 노드들(604, 606, 및 612)의 체인 즉, 노드(614)를 따라 포워딩될 수 있다. 유사하게, 유한 시간 내에서, n(j)*에 관한 노드(608)로부터의 관심들은 n(j)*를 향해 노드들(606 및 612)로 포워딩될 수 있다. 어떠한 관심 루프도 CCN-DART에서 검출되지 않게 될 것이다.
CCN -DART: 포워딩 상태의 유지
NDN 및 CCN에서와 같이, CCN-DART에서의 라우터들은 이름 접두부들의 앵커들에 대한 루트들을 유지하고, 제어 플레인에 동작하는 라우팅 프로토콜을 사용하여 그들의 라우팅 테이블들을 배치시킨다.
NDN 및 CCN에서, 관심에 대한 응답은 관심에 의해 가로질러진 역 경로를 취한다. 경로는 경로를 따르는 라우터들의 PIT들에 증가하여 저장된다. CCN-DART에서, 라우터들에 어떠한 PIT들도 존재하지 않고; 대신에, 라우터들은 DART들, ONT들, 및 DNT들을 유지한다. DART들 및 ONT들은 관심 응답들이 관심들의 역 경로들을 통해 정확한 소비자들로 다시 전송되는 것을 허용할 수 있다. 한편, DNT들은 관심의 역 경로가 아닐 수 있는 경로를 통해 관심 소스로 다시 NACK의 NDO 메시지를 포워딩하는 것을 가능하게 할 수 있다.
DART들에 저장된 dart 매핑들은 패킷 스위칭 네트워크들에서의 라벨 매핑들과 유사하다. 이들 매핑들은 동일한 이름 접두부와 연관된 NDO들을 요청하는 다수의 관심들이 발신 라우터들과 접두부의 앵커 또는 콘텐트의 캐시 사이트 사이에 동일한 루트 세그먼트들로 멀티플렉싱(multiplexing)되는 것을 허용하기 위해 사용될 수 있다. 로컬적으로 고유 식별자들인 dart들에 더하여, 라우터들은 또한, 로컬 소비자들의 계정들을 밝히지 않고 로컬 소비자들을 그들을 대신하여 전송된 관심들로 분명하게 연관시키기 위해 글로벌적으로 고유 넌스들을 생성할 수 있다.
본 발명에서, 라우터에서의 넌스 테이블이 로컬 소비자들에 로컬적으로 할당된 모든 넌스들로 배치되었고, DART 엔트리들이 그들의 수명이 만료될 때 조용히 삭제된다고 가정된다. 편의를 위해, 이름 접두부의 앵커가 그것의 CS에 접두부와 연관된 모든 NDO들을 저장한다고 또한 가정된다. 게다가, 제어 플레인이 토폴로지 변화들로부터 발생하는 접두부들에 대한 홉 카운트들의 임의의 변화들을 반영하기 위해 FIB를 업데이트한다고 가정된다. 예를 들면, 라우터(i)가 이웃(k)에 대한 접속이 손실되었음(lost)을 검출하면, 그것은 DARTi에서 모든 엔트리들을 삭제하고, k는 DARTi에 대해 임의의 앵커를 향한 경로의 선행자 또는 후임자이다.
도 7은 본 발명의 일 실시예에 따른, 라우터가 로컬 소비자들로부터 관심들을 수신할 때 라우터에 의해 수행된 일 예시적인 관심 프로세싱 알고리즘을 제공한다. 단순성을 위해, 로컬 소비자들로부터의 콘텐트 요청들이 NDO의 이름(n(j)), 빈 홉 카운트(nil), 로컬 소비자(c)의 이름, 및 빈 dart(nil)를 언급하는 관심들이 되도록 가정된다고 가정된다.
라우터(i)가 로컬 소비자(c)로부터 관심을 수신할 때, 그것은 요청된 콘텐트를 위해 그것의 콘텐트 저장소를 확인하고, 만약에 있다면, 매칭 NDO를 리턴시킨다(도 7의 라인 3). CSi가 매칭 NDO가 아닌 접두부를 포함하면, 라우터(i)는 소비자로 어떠한 콘텐트도 발견되지 않았음을 나타내는 NACK를 전송함으로써 응답한다(도 7의 라인 4). 그렇지 않으면, 라우터(i)는 매칭 접두부를 위해 그것의 FIB를 확인한다. 어떠한 매칭 FIB 엔트리도, 어떠한 루트도 요청된 콘텐트에 대해 존재하지 않음을 나타내는 NACK의 리턴을 촉발시키지 않을 수 있다(도 7의 라인 7).
매칭 FIB 엔트리가 존재하면, 라우터(i)는 최고 순위가 매겨진 이웃을 사용하고 관심을 포워딩한다(도 7의 라인들(9 내지 15)). 더 구체적으로, DART 엔트리가 관심의 선택된 후임자를 위해 존재하면, 대응하는 후임자 dart는 나가는 관심에 포함된 dart로서 사용된다(도 7의 라인들(11 및 12)). 그렇지 않으면, 관심이 포워딩되기 전에 새로운 후임자 dart가 생성되고 새로운 DART 엔트리가 저장된다(도 7의 라인들(14 및 15)). 관심을 포워딩할 때, 라우터(i)는 또한, ONT에 의해 표시된 바와 같은, 소비자(c)에 할당된 넌스를 관심으로 삽입한다(도 7의 라인들(12 및 15)).
도 8은 본 발명의 일 실시예에 따른, 라우터가 이웃들로부터 관심들을 수신할 때 라우터에 의해 수행된 일 예시적인 관심 프로세싱 알고리즘을 제공한다. 라우터(i)가 이웃(k)으로부터 관심을 수신할 때, 그것은 요청된 콘텐트를 위해 그것의 콘텐트 저장소를 확인하고, 만약에 있다면, 매칭 NDO를 리턴시킨다(도 8의 라인 3). CSi가 매칭 NDO가 아닌 접두부를 포함하면, 라우터(i)는 라우터(k)로 어떠한 콘텐트도 발견되지 않았음을 나타내는 NACK를 다시 전송한다(도 8의 라인 4).
콘텐트가 로컬적으로 캐시되지 않으면, 라우터(i)는 DART 엔트리가 라우터(k)로부터의 관심에 언급된 dart를 위해 존재하는지의 여부를 결정한다, 즉 선행자 dart가 관심에 언급된 dart와 동일한 경우에. DART에서의 매칭 엔트리의 존재는, IFR이 접두부의 앵커에 대한 동일한 루트 상의 이전 관심에 의해 만족되었고 기존의 매핑이 사용될 수 있음을 의미한다. 결과적으로, 이러한 DART 엔트리는 관심을 포워딩하기 위해 사용될 수 있다. 더 구체적으로, DART 엔트리에 의해 명시된 후임자는 관심이 포워딩되는 라우터이고, 포워딩된 관심에 포함된 dart는 DART 엔트리에 의해 명시된 후임자 dart이다(도 8의 라인 9). 앵커-선임자 쌍(a, k)을 위한 DARTi에서의 엔트리가 앵커(a)에 의해 해결될 수 있는 관심들에서 라우터(k)에 의해 사용된 dart(선행자 dart)로부터 앵커(a)에 의해 해결될 수 있는 관심들에서 라우터(i)에 의해 사용되고 라우터(v)로 포워딩되는 dart(후임자 dart)까지의 매핑을 확립함에 주의한다. 라우터들의 DART들에 저장된, 라우터(i)로부터 앵커(a)까지의 선행자-후임자 매핑은 a를 향해 관심들을 분명하게 포워딩하기 위해 사용될 수 있는 루트 세그먼트들을 나타낸다. 역으로, 동일한 경로를 따라 저장된 후임자-선행자 매핑들의 시퀀스는 관심들의 근원지들로 관심 응답들(예로서, NDO들 및 NACK들)을 분명하게 포워딩하기 위해 사용될 수 있다.
어떠한 매칭 DART 엔트리도 발견되지 않으면, 라우터(i)는 수신된 관심에 대한 후임자를 발견하고 DART 엔트리를 생성할 필요가 있다. NACK는, 어떠한 엔트리도 n(j)*에 대한 FIBi에서 발견될 수 없거나(도 8의 라인 11) IFR이 만족되지 않으면(도 8의 라인 21) 전송될 것이다. 그렇지 않으면, 라우터(i)는 IFR을 만족시키는 최고 순위가 매겨진 이웃 라우터(v)를 선택하고 DART 엔트리를 생성한다(도 8의 라인들(14 내지 20)). 라우터(v)는 수신된 관심에 언급된 홉 카운트보다 절대적으로 적은 요청된 콘텐트를 향한 홉 카운트를 갖는 경로를 제공한다. 새롭게 생성된 DART 엔트리는 라우터(v)를 통한 선택된 앵커에 대한 루트를 위해 생성된 새로운 dart(후임자 dart)에 수신된 관심에 포함된 dart(선행자 dart)를 매핑한다. 새로운 dart가 로컬 고유 식별자로서 라우터(i)에서 생성됨에 주의한다. 새로운 dart를 생성할 때, 라우터(i)는 새로운 dart가 임의의 기존의 dart를 복제하지 않음을 확실하게 할 필요가 있다. 일부 실시예들에서, dart는 16 또는 32 비트 숫자를 포함할 수 있다. dart의 길이 및 포맷은 달라질 수 있다. 예를 들면, dart는 또한, 다양한 길이들의 영숫자열(alphanumeric string)들을 포함할 수 있다. 새로운 DART 엔트리가 생성된 후에, 포워딩될 관심은 수신된 관심에 포함된 dart를 새로운 DART 엔트리의 후임자 dart로 대체함으로써 생성된다.
도 8에 도시된 알고리즘에서, 라우터(i)는 또한, 수신된 관심에 응답하여 NACK 메시지의 NDO 메시지를 다시 전송하기 위한 응답 기능을 호출할 수 있다(도 8의 라인들(3, 5, 12, 및 21)). 도 9는 본 발명의 일 실시예에 따른, 일 예시적인 응답 생성 알고리즘을 제공한다. 라우터(i)가 응답(예로서, NDO 또는 NACK)을 전송하기 전에, 라우터(i)는 그것의 DNT에 (node, dart) 쌍과 넌스 사이의 매핑을 부가한다(도 9의 라인 3). 단순성을 위해, 단지 원격 소비자들로부터의 관심에 응답하는 그들 라우터들만이 그들의 DNT에 정보를 저장한다고 가정된다. 중계 라우터는 이러한 정보를 저장하지 않는다. 도 9로부터, 응답을 전송할 때 라우터(i)가 관심의 역 경로가 아닌 경로를 선택할 수 있음을 확인할 수 있음에 주의한다(도 9의 라인 4). 예를 들면, 라우터(i)는 응답을 전송하기 위해 대응하는 DNT 엔트리로부터, 라우터(k)와 상이한 라우터(n)을 선택할 수 있다. 도 9에 도시된 알고리즘이 대응하는 DNT 엔트리에 의해 명시된 많은 라우터들로부터 특정 라우터를 선택하는 방법을 명시적으로 개시하지 않을지라도, 그것은 동일한 라우터들 사이의 상이한 이전 관심들에 의해 가로질러진 많은 경로들 중 하나를 통해 정확한 소비자에 대한 응답들의 포워딩으로부터 넌스들 및 dart들의 사용을 명백하게 한다.
이전에 논의된 바와 같이, 관심들은 다수의 경로들을 통해 동일한 앵커로 포워딩될 수 있고, 각각의 경로는 dart 매핑들의 상이한 세트에 의해 식별된다. 관심에 응답하는 라우터는 그것의 DNT에 관심들에 포함된 넌스들과 (이웃 라우터들 및 관심들에서의 dart들에 의해 식별된) 관심들이 수신된 루트들 사이의 매핑들을 저장한다. 충돌의 낮은 확률을 할당받은 넌스들을 고려하면, NDO 메시지 또는 NACK는 관심에 의해 가로질러진 경로와 상이한 경로를 통해 응답 라우터에 의해 전송될 수 있다. 이것은 본 발명의 범위 밖에 있는 부하 균형(load balancing)을 가능하게 할 수 있다.
도 10a는 본 발명의 일 실시예에 따른, 일 예시적인 NDO 프로세싱 알고리즘을 제공한다. 라우터는, 라우터가 NDO 메시지에 언급된 dart에 매칭하는 후임자 dart를 갖는 DART 엔트리를 갖는 경우에만(도 10a의 라인 5), 이웃으로부터 수신된 NDO 메시지를 수용한다. 라우터는 NDO의 서명을 선택적으로 검증하고(도 10a의 라인 3), 그것이 수신하는 NDO를 선택적으로 저장할 수 있다(도 10a의 라인 6). NDO를 포워딩할 때, 라우터가 또한, 대응하는 DART 엔트리에서의 선행자 dart를 사용하여 NDO에서의 dart를 교환함에 주의한다(도 10a의 라인 6).
도 10b는 본 발명의 일 실시예에 따른, 일 예시적인 NACK 프로세싱 알고리즘을 제공한다. 라우터는, 라우터가 NACK에 언급된 dart에 매칭하는 후임자 dart를 갖는 DART 엔트리를 갖는 경우에만(도 10b의 라인 3), NACK를 포워딩한다. NACK를 포워딩할 때, 라우터는 대응하는 DART 엔트리에서의 선행자 dart를 사용하여 NACK에서의 dart를 교환한다(도 10b의 라인 4).
NDN은 집성된 관심들에 의해 가로질러진 경로들을 통해 관심들에 대한 응답들의 역 경로 포워딩(RPF)에 의한 멀티캐스팅을 지원한다. 관심들은 멀티캐스트 포워딩 트리들(MFT)을 유지하고 멀티캐스트 소스들을 페이싱(pacing)하는 이중 목적에 도움이 된다. CCN-DART는 또한, RPF 접근법을 사용하여 다중지점 통신을 지원하지만, 소스를 페이싱하거나 트리를 통해 멀티캐스트 데이터를 퍼뜨리기 위해 사용된 메커니즘들로부터 MFT의 확립을 분리한다.
CCN-DART는 MFT들을 유지하기 위해 콘텐트 저장소들 및 멀티캐스트 데이터 응답 라우팅 테이블들(MDART)을 사용한다. 단일 dart는 각각의 라우터에서 그룹의 MFT에서의 모든 선행자들 및 후임자들을 나타내기 위해 사용될 수 있다. 이것은, 단일 dart가 멀티캐스트 그룹의 MFT의 모든 브랜치(branch)을 라벨링하기 위해 사용될 수 있음을 의미한다. 멀티캐스트 그룹 이름(g(j))을 위해 사용된 dart는 d(g(j))로서 표시되고 그것의 보급을 단순화하기 위해 그룹 이름의 부분으로 형성될 수 있다.
멀티캐스트 그룹의 로컬 수신자들을 갖는 라우터는 그것의 RCT에서 멀티캐스트 그룹의 이름에 대한 로컬 수신자들의 이름들의 매핑을 유지한다. 라우터(i)에서의 MDART는 MDARTi로 표시되고 라우터가 트래픽을 포워딩하는 멀티캐스트 그룹들의 이름들에 의해 인덱싱된다. MDARTi에서 이름(g(j))을 갖는 멀티캐스트 그룹에 대한 엔트리는: 그룹의 dart(d(g(j))), 그룹에 조인(join)하기 위해 라우터(i)에 의해 선택된 후임자, 라우터(i)를 통해 g(j)에 조인하기 위해 요청된 라우터들(선행자들)의 세트, 및 라우터(i)가 그룹에 대한 MDART 엔트리를 확립했을 때 g(j)의 앵커에 대한 홉 카운트 거리(hi(g(j)))를 언급한다.
라우터(i)가 그룹(g(j))을 위해 로컬 수신기들을 가질 때, 그것은
Figure pat00025
로서 표시된, 조인 요청(JR)을 전송하고, 여기서
Figure pat00026
이고
Figure pat00027
이다. JR들의 포워딩은 FIB 엔트리들에 기초하고 관심들의 포워딩과 유사하다. 중계 라우터는 2가지 경우들에서 g(j)의 앵커를 향해 JR을 포워딩할 수 있다. 어떠한 MDART 엔트리도 존재하지 않고 IFR이 만족되면, MDART 엔트리는 그룹을 위해 생성된다. MDART 엔트리가 존재하면, 라우터는 단순하게, 기존의 MDART 엔트리에서 그룹에 대한 새로운 선행자를 부가한다. g(j)에 대한 어떠한 루트도 발견되지 않거나, IFR이 만족되지 않거나, MDART 엔트리들이 토폴로지 변화들로 인해 유효하지 않게 되면 부정 응답들이 전송될 수 있다.
멀티캐스트 데이터 보급 또는 멀티캐스트 소스들의 페이싱은 본 발명의 범위 밖이다.
CCN -DART: 라우터 아키텍처
도 11은 본 발명의 일 실시예에 따른, CCN-DART 라우터의 일 예시적인 아키텍처를 제공하는 다이어그램을 제공한다. 도 11에서, CCN-DART 라우터(1100)는 페이스들(1102, 1104, 및 1106)과 같은, 복수의 페이스들; 관심 프로세싱 모듈(1108); 포워딩 모듈(1110); NDO/NACK 프로세싱 모듈(1112); 제어 메시지 생성 모듈(1114), 및 데이터베이스(1116)를 포함한다.
페이스들(1102 내지 1106)은 물리적 인터페이스들 뿐만 아니라, 관심들 및 NDO들을 포함하는 패킷들을 전송하고 수신할 수 있는 애플리케이션 프로세스들을 포함할 수 있다. 관심 프로세싱 모듈(1108)은 다양한 페이스들 상에 수신된 관심들을 프로세싱할 책임이 있다. 일부 실시예들에서, 관심 프로세싱 모듈(1108)은 상기 언급된 관심 포워딩 규칙(IFR)에 기초하여 들어오는 관심을 수용할지의 여부를 결정한다. 관심이 수용되면, 관심 프로세싱 모듈(1108)은 dart 매핑을 발견하기 위해 데이터베이스(1116)에 유지된 DART를 확인하고, 매핑에 기초하여 관심에 포함된 dart를 교환한다. 관심 프로세싱 모듈(1108)은 또한, 관심에 대한 넌스를 생성할 수 있다(관심이 로컬 소비자로부터 수신되면). 포워딩 모듈(1110)은 페이스들로 관심들 또는 NDO들과 같은, 패킷들을 포워딩할 책임이 있다. 일부 실시예들에서, 포워딩 모듈(1110)은 dart 매핑에 기초하여 관심들/NDO들을 포워딩한다. 제어 메시지 생성 모듈(1114)은 제어 메시지들을 생성하고, 상기 제어 메시지들은 관심 프로세싱 모듈(1108)이 관심을 거절하거나 누락시킬 때, 상이한 NACK 메시지들을 포함할 수 있다. 일부 실시예들에서, 제어 메시지 생성 모듈(1114)은: 관심 루프가 검출되고, 요청된 콘텐트를 향한 어떠한 루트도 발견되지 않고, 어떠한 콘텐트도 발견되지 않으며, 대응하는 DART 엔트리가 만료될 때를 포함하지만 그들로 제한되지 않는 다양한 조건들 하에서 NACK 메시지들을 생성한다. 이름(n(j))에 대한 관심에 응답하여 NACK 메시지는
Figure pat00028
로서 표시되고, 여기서 CODE는 NACK가 전송되는 조건을 언급한다. NDO/NACK 프로세싱 모듈(1112)은 관심들에 응답하여 수신된 NDO/NACK 메시지들을 프로세싱할 책임이 있다. 일부 실시예들에서, NDO/NACK 프로세싱 모듈(1112)은 dart 매핑을 발견하기 위해 데이터베이스(1116)에 유지된 DART를 확인하고, 매핑에 기초하여 NDO/NACK 메시지에 포함된 dart를 교환한다. 데이터베이스(1116)는 CCN-DART 동작을 위해 필요한 데이터 구조들: FIB, DART, ONT, 및 DNT를 저장한다. 데이터베이스(1116)는 선택적으로 콘텐트 저장소를 저장한다.
CCN -DART: 예시적인 동작
도 12는 본 발명의 일 실시예에 따른, CCN-DART의 일 예시적인 동작을 도시하는 다이어그램을 제공한다. 더 구체적으로, 도 12는 관심들을 라벨링하고 관심들을 NDO 메시지들 및 NACK들과 연관시키기 위해 dart들 및 넌스들을 사용하는 방법을 도시한다.
도 12에서, 네트워크(1200)는 노드들(1202 내지 1214)과 같은, 복수의 노드들을 포함한다. 도 12에 도시된 예에서, 라우터(1202 및 1214)는 라우터(1208)에 의해 광고된 이름 접두부들에 관한 NDO들을 요청하는 관심들을 발신하는 로컬 소비자들을 갖는다. 화살표 선들은 라우터들에 저장된 FIB 엔트리들에 따라 라우터(1208)에 의해 광고된 (이름(n(j))을 갖는) 콘텐트에 대한 다음 홉들을 나타낸다. 도 12는 또한, 각각의 라우터 옆에 열거된, 앵커(1208)에 대한 라우터의 DART 엔트리들을 보여준다. 게다가, 라우터들(1202 및 1214)에서의 ONT 엔트리들 및 라우터(1208)에서의 DNT 엔트리들이 또한 도 12에 도시되고, 그들 모두는 대응하는 라우터들 옆에 열거된다. 예를 들면, 라우터(1202) 옆의 목록은 앵커(1208)에 대한 그것의 ONT 엔트리들 및 DART 엔트리들을 포함하고, 라우터(1208) 옆의 목록은 그것의 DNT 엔트리들을 포함한다.
라우터(1202)는 2개의 콘텐트 소비자들(cp 및 cq)을 갖는다. 라우터(1202)에서, 소비자들(cp 및 cq) 대신에 라우터(1202)로부터 발신된 관심들은 넌스들(ID1202 p 및 ID1202 q)로 각각 라벨링된다. 유사하게, 라우터(1214)는 로컬 소비자(cw) 대신에 그것이 발신하는 관심들을 라벨링하기 위해 넌스(ID1214 w)를 사용한다.
라우터(1202)에서 유지된 DART 매핑들은, 선행자 및 선행자 dart 쌍([1202, 1202(i)])이 후임자 및 후임자 dart 쌍([1204, 1202(i)])에 매핑함을 보여준다. 라우터(1204)에서, [1202, 1202(i)]는 [1206, 1204(j)]에 매핑하고; 라우터(1206)에서, [1204, 1204(j)]는 [1208, 1206(i)]에 매핑한다. 라우터(1208)에서, 콘텐트에 대한 DART 엔트리는 단지, 선행자 및 선행자 dart 쌍([1206, 1206(i)])을 명시한다. 도 12에 도시된 인덱스들(i, j, k, m, u)이 개별적인 DART에서 사용된 인덱스들임에 주의한다. 예를 들면, 1202(i)는 라우터(1202)에 의해 유지된 DART에서의 i번째 엔트리를 의미한다. 라우터들(1202, 1204, 1206, 및 1206)에서의 상기 언급된 매핑들은 점선(1222)으로 표시된 바와 같이, 루트들((노드(1202), 노드(1204), 노드(1206), 노드(1208)), (노드(1204), 노드(1206), 노드(1208)), 및 (노드(1206), 노드(1208)))을 고유하게 나타낸다.
유사하게, 도 12에 도시된 DART 매핑들은 또한, 라우터(1202)에서 [1202, 1202(k)]가 [1210, 1202(k)]에 매핑하고, 라우터(1210)에서 [1202, 1202(k)]가 [1212, 1210(m)]에 매핑하고, 라우터(1212)에서 [1210, 1210(m)]가 [1208, 1212(j)]에 매핑함을 나타내며; 라우터(1208)는 DART 엔트리[1212, 1212(j)]를 유지한다. DART 매핑들의 이 세트는 점선 화살표(1224)에 의해 표시된 바와 같이, 루트((노드(1202), 노드(1210), 노드(1212), 노드(1208)), 및 (노드(1210), 노드(1212), 노드(1208)) 및 (노드(1212), 노드(1208))을 포함하는, 라우터(1208)에 대한 하위 경로들을 나타낸다.
점선 화살표(1226)는, 라우터(1214)로부터 앵커(1208)까지의 루트 즉, ((노드(1214), 노드(1204), 노드(1206), 노드(1208))를 나타낸다. 이 루트에 대한 DART 매핑들의 세트는 도 12에서 이탤릭체로 도시된다.
앵커(1208)에 의해 광고된 콘텐트에 관한 소비자들(cp, cq, 및 cw)에 의해 발신된 모든 관심들은 접두부들 및 관심들의 수에 상관없이, 도 12에 도시된 동일한 몇몇 dart들을 사용하여 라우터(1208)를 향해 라우팅될 수 있다. 따라서, 관심들에 대한 고유 엔트리들을 가지는 PIT들과 비교하여, DART들을 위해 사용된 저장장치의 양은 훨씬 작다. NDO 또는 NACK가 후임자 dart 및 그것이 응답하는 관심에서 언급된 넌스를 명시하는 것을 고려하면, NDO들 및 NACK들은 정확하게 라우터(1208)(또는 요청된 콘텐트를 캐싱하는 라우터(1208)에 대한 경로를 따르는 라우터)로부터 라우터(1202 또는 1214)로 정확하게 포워딩될 수 있다. 또한, 라우터들(1202 및 1214)은 그들의 ONT들에서의 엔트리들 및 그들이 정확한 로컬 소비자들로 응답들을 전송하기 위해 수신하는 응답들에서의 넌스들을 사용할 수 있다.
DART들 및 ONT들을 사용하여 정확한 관심 포워딩 및 NDO 메시지들과 NACK들의 정확한 역 경로 포워딩을 지원하는 것에 더하여, CCN-DART는 또한, 관심들에 의해 가로질러지지 않은 경로들을 통해 관심들을 발신하는 라우터들에 대한 NDO들 및 NACK들의 포워딩을 지원할 수 있다. 도 12에 도시된 바와 같이, 라우터(1208)가 이웃들(1206 및 1212)로부터 관심들을 수신할 때, 그것은 ID1202 p가 라우터 및 dart 쌍들([1206, 1206(i)] 및 [1212, 1212(j)])에 매핑하고, ID1202 q가 ([1206, 1206(i)] 및 [1212, 1212(j)])에 매핑하며, ID1214 w가 [1206, 1206(k)]에 매핑하도록, 그것의 DNT(DNT1208)에 수신된 관심들에서의 넌스들과 후임자 dart들 사이의 매핑들을 저장한다. 그에 따라, 라우터(1208)는 관심의 역 경로를 사용하지 않고, 이웃하는 라우터(1206 또는 1212)를 통해 넌스(ID1202 p 또는 ID1202 q)를 언급하는 관심의 근원지로 NDO 메시지 또는 NACK를 전송할 수 있다. 즉, 라우터(1202)로 다시 NDO들 또는 NACK들을 전송하기 위해, 라우터(1208)는 점선(1222)으로 표시된 루트 또는 점선(1224)으로 표시된 루트를 선택할 수 있다. 루트의 선택은 루트의 조건 또는 부하 균형에 대한 필요성과 같은, 다양한 요인들에 의해 결정될 수 있다. 예를 들면, 루트(1222)가 정체되면, 라우터(1208)는 루트(1224)를 통해 NDO들 또는 NACK들을 전송함으로써 라우터(1202)로부터 발신된 관심들에 응답할 수 있다. 게다가, 라우터(1208)가 라우터(1202)로부터 발신된 많은 관심들을 수신했으면, 라우터(1208)는 루트(1222)를 통해 응답들의 일부를 그리고 루트(1224)를 통해 응답들의 다른 부분을 전송할 수 있다.
이전에 논의된 바와 같이, 데이터 응답 라우팅 테이블을 갖는 CCN(CCN-DART)은 동작하기 위해 미결 관심 테이블들(PITs)을 요구하지 않는 관심 기반 ICN을 위한 포워딩 전략을 구현한다. CCN-DART는 FIB들이 다음 홉 이웃들 및 이러한 이웃들을 통해 명명된 콘텐트에 대한 홉 카운트를 저장할 것을 요구함으로써, 그리고 각각의 콘텐트 상태, 즉 요청된 콘텐트의 이름, 중계 라우터로부터 콘텐트까지의 홉 카운트, 콘텐트를 요청하는 소비자에 고유한 넌스, 및 관심에 의해 가로질러진 루트에 고유한 목적지 및 리턴 토큰(dart)을 가짐으로써 동작한다. 관심들은 집성되지 않고, 관심 루프 검출은 콘텐트 접두부들까지의 거리들에 기초한다. 관심들의 포워딩 상태들은 각각의 라우터에서 보유된 DART들에 의해 유지된다. DART 엔트리는 네트워크의 세그먼트를 가로지르는 관심들의 들어오는 페이스 및 나가는 페이스를 매핑한다. DART의 상태는 종래의 CCN 또는 NDN 네트워크들에서와 같이, 특정 NDO들을 요청하는 개별적인 관심들에 의해 가로질러진 루트들보다는, 콘텐트 접두부들을 광고하는 라우터들을 향해 가로질러진 루트들의 함수이다. 게다가, 포함된 넌스는 관심들에 대한 응답들이 관심들의 역 경로가 아닌 경로들을 통해 관심들의 발신 라우터로 다시 전송되는 것을 허용한다.
관심들의 포워딩 상태들을 유지하기 위해 DART들을 사용하는 것은, 특히 콘텐트 요청들의 레이트가 높을 때 PIT에서 관심 당 포워딩 상태를 유지하는 접근법을 통해 더 큰 장점들을 보여준다. PIT들의 크기는, 콘텐트 요청들의 레이트가 증가함에 따라 극적으로 증가할 수 있는 반면에, DART들의 크기는 콘텐트 요청 레이트들에 대하여 실질적으로 일정하게 유지될 수 있다. 사실은, 콘텐트 요청 레이트가 낮을 때, DART들에서의 엔트리들의 평균 수는 PIT들에서의 엔트리들의 평균 수보다 클 수 있다. 이것은, DART 엔트리들이 그들이 나타내는 루트들이 실제로 관심들 및 그들의 응답들에 의해 사용되는지의 여부에 상관없이 긴 시간 기간들(예로서, 몇 초) 동안 유지되기 때문이다. 한편, PIT 엔트리는 대응하는 콘텐트가 만족되는 직후에 삭제된다. 그러나, 콘텐트 요청 레이트가 증가함에 따라, PIT의 크기는 DART의 크기의 10배 이상일 수 있는데, 이는 주어진 DART 엔트리가 많은 관심들을 위해 사용될 수 있는 반면에, 상이한 PIT 엔트리가 각각의 관심을 위해 필요하기 때문이다. 일반적으로, 경부하(light load)들에서 사용되지 않을 수 있는 DART 엔트리들을 유지하는 비용이 고부하들에서 기존의 DART 엔트리들을 사용하여 포워딩된 많은 관심들로부터 얻어진 시그널링 지연들의 상당한 감소만큼 보상될 수 있음이 예상될 수 있다.
컴퓨터 및 통신 시스템
도 13은 일 실시예에 따른, 적응형 명칭부여(adaptive naming)를 통한 주문형 콘텐트 교환을 위한 일 예시적인 시스템을 도시한다. 적응형 명칭부여를 통한 주문형 콘텐트 교환을 위한 시스템(1300)은 프로세서(1310), 메모리(1320), 및 저장장치(1330)를 포함한다. 저장장치(1330)는 전형적으로, 상기 언급된 방법들을 수행하기 위해 메모리(1320)에 로딩되고 프로세서(1310)에 의해 실행될 수 있는 지시들을 저장한다. 하나의 실시예에서, 저장장치(1330)에서의 지시들은 관심 프로세싱 모듈(1332), 명명된 데이터 객체 프로세싱 모듈(1334), 포워딩 모듈(1336), 및 제어 메시지 생성 모듈(1338)을 구현할 수 있고, 그들 모두는 다양한 수단들을 통해 서로 통신할 수 있다. 저장장치(1330)는 콘텐트 저장소(1340), 포워딩 정보 베이스(1342), 및 데이터 응답 라우팅 테이블(1344)과 같은, 복수의 데이터 구조들을 더 포함할 수 있다.
일부 실시예들에서, 모듈들(1332, 1334, 1336, 및 1338)은 부분적으로 또는 전적으로 하드웨어에서 구현될 수 있고 프로세서(1310)의 부분일 수 있다. 게다가, 일부 실시예들에서, 시스템은 별개의 프로세서 및 메모리를 포함하지 않을 수 있다. 대신에, 그들의 특정 업무들을 수행하는 것에 더하여, 모듈들(1332, 1334, 1336, 및 1338)은 별개로 또는 협력하여, 일반 또는 특정 목적 계산 엔진들의 부분일 수 있다.
저장장치(1330)는 프로세서(1310)에 의해 실행될 프로그램들을 저장한다. 구체적으로, 저장장치(1330)는 적응형 명칭부여를 통한 주문형 콘텐트 교환을 위한 시스템(애플리케이션)을 구현하는 프로그램을 저장한다. 동작 동안, 애플리케이션 프로그램은 저장장치(1330)로부터 메모리(1320)로 로딩되고 프로세서(1310)에 의해 실행될 수 있다. 결과적으로, 시스템(1300)은 상기 설명된 기능들을 수행할 수 있다. 시스템(1300)은 (터치스크린 디스플레이일 수 있는) 선택적 디스플레이(1380), 키보드(1360), 및 포인팅 디바이스(1370)에 결합될 수 있고, 또한 하나 이상의 네트워크 인터페이스들을 통해 네트워크(1382)에 결합될 수 있다.
상기 발명을 실시하기 위한 구체적인 내용에서 설명된 데이터 구조들 및 코드는 전형적으로, 컴퓨터 시스템에 의해 사용하기 위해 코드 및/또는 데이터를 저장할 수 있는 임의의 디바이스 또는 매체일 수 있는 컴퓨터 판독가능한 저장 매체 상에 저장된다. 컴퓨터 판독가능한 저장 매체는 휘발성 메모리, 비 휘발성 메모리, 디스크 드라이브들, 자기 테이프, 콤팩트 디스크들(CDs), 디지털 다기능 디스크들 또는 디지털 비디오 디스크들(DVDs)과 같은 자기 및 광학 저장 디바이스들, 또는 이제 공지되거나 이후에 개발된 컴퓨터 판독가능한 매체들을 저장할 수 있는 다른 매체들을 포함하지만, 그들로 제한되지 않는다.
상기 발명을 실시하기 위한 구체적인 내용 섹션에서 설명된 방법들 및 프로세스들은 상기 설명된 바와 같은 컴퓨터 판독가능한 저장 매체에 저장될 수 있는 코드 및/또는 데이터로서 구현될 수 있다. 컴퓨터 시스템이 컴퓨터 판독가능한 저장 매체 상에 저장된 코드 및/또는 데이터를 판독하고 실행할 때, 컴퓨터 시스템은 데이터 구조들 및 코드로서 구현되고 컴퓨터 판독가능한 저장 매체 내에 저장된 방법들 및 프로세스들을 수행한다.
또한, 본 명세서에서 설명된 방법들 및 프로세스들은 하드웨어 모듈들 또는 장치에 포함될 수 있다. 이들 모듈들 또는 장치는 주문형 반도체(application-specific integrated circuit; ASIC) 칩, 필드 프로그래밍가능한 게이트 어레이(FPGA), 및 특정한 시간에서 특정한 소프트웨어 모듈 또는 코드의 일부분을 실행하는 전용 또는 공유된 프로세서, 및/또는 이제 공지되거나 이후에 개발된 다른 프로그래밍가능한 로직 디바이스들을 포함할 수 있지만, 그들로 제한되지 않는다. 하드웨어 모듈들 또는 장치가 활성화될 때, 상기 하드웨어 모듈들 또는 장치는 그들 내에 포함된 방법들 및 프로세스들을 수행한다.

Claims (10)

  1. 정보 중심 네트워크(ICN; information-centric network)에서의 라우터에 있어서:
    콘텐트의 부분에 대한 관심을 수신하도록 구성된 수신 모듈로서, 상기 관심은 상기 콘텐트의 부분과 연관된 이름을 나타내는, 상기 수신 모듈;
    관심 프로세싱 모듈로서:
    상기 관심이 포워딩(forwarding)될 수 있는지의 여부를 결정하고;
    상기 관심이 제 2 라우터로 포워딩될 수 있다고 결정하는 것에 응답하여, 상기 제 2 라우터에 특정한 라벨(label)을 얻으며;
    상기 관심에 상기 라벨을 부착하도록 구성된, 상기 관심 프로세싱 모듈; 및
    부착된 상기 라벨에 따라 상기 제 2 라우터로 상기 관심을 포워딩하도록 구성된 포워딩 모듈을 포함하는, 라우터.
  2. 제 1 항에 있어서,
    상기 포워딩 모듈은 또한:
    상기 관심 프로세싱 모듈이 상기 관심이 포워딩될 수 없다고 결정하는 것에 응답하여, 상기 관심으로 응답을 전송하도록 구성되는, 라우터.
  3. 제 2 항에 있어서,
    상기 관심 프로세싱 모듈은, 상기 관심이:
    상기 콘텐트의 부분이 발견될 수 없고;
    상기 콘텐트의 부분을 광고하는 목적지 라우터에 대한 어떠한 루트(route)도 발견될 수 없으며;
    상기 관심이 루프를 가로지르고(traversing) 있다는 것 중 하나에 기초하여 포워딩될 수 없다고 결정하도록 구성되고;
    상기 포워딩 모듈에 의해 전송된 상기 응답은 부정 응답(negative acknowledgment)을 포함하는, 라우터.
  4. 제 3 항에 있어서,
    상기 관심은 또한, 상기 콘텐트의 부분을 광고하는 목적지 라우터에 대한 홉 카운트(hop count)를 나타내고, 상기 관심 프로세싱 모듈은, 상기 관심이 상기 라우터에 저장된 라우팅 정보 및 상기 홉 카운트에 기초하여 상기 루프를 가로지르고 있다고 결정하도록 구성되는, 라우터.
  5. 컴퓨터 실행가능한 방법에 있어서:
    정보 중심 네트워크(ICN)에서의 제 1 노드에 의해, 콘텐트의 부분에 대한 관심을 수신하는 단계로서, 상기 관심은 상기 콘텐트의 부분과 연관된 이름을 나타내는, 상기 관심을 수신하는 단계;
    상기 관심이 포워딩될 수 있는지의 여부를 결정하는 단계;
    상기 관심이 제 2 라우터로 포워딩될 수 있다고 결정하는 것에 응답하여, 상기 제 2 라우터에 특정한 라벨을 얻는 단계;
    상기 관심에 상기 라벨을 부착하는 단계; 및
    부착된 상기 라벨에 따라 상기 제 2 라우터로 상기 관심을 포워딩하는 단계를 포함하는, 컴퓨터 실행가능한 방법.
  6. 제 5 항에 있어서,
    상기 관심이 포워딩될 수 없다고 결정하는 것에 응답하여, 상기 관심으로 응답을 전송하는 단계를 더 포함하는, 컴퓨터 실행가능한 방법.
  7. 제 6 항에 있어서,
    상기 관심이 포워딩될 수 없다고 결정하는 것은:
    상기 콘텐트의 부분이 발견될 수 없다고 결정하는 것;
    상기 콘텐트의 부분을 광고하는 노드에 대한 어떠한 루트도 발견될 수 없다고 결정하는 것; 및
    상기 관심이 루프를 가로지르고 있다고 결정하는 것 중 하나를 수반하고;
    상기 응답은 부정 응답을 포함하는, 컴퓨터 실행가능한 방법.
  8. 비 일시적 컴퓨터 판독가능한 저장 매체로서, 컴퓨팅 디바이스에 의해 실행될 때, 상기 컴퓨팅 디바이스로 하여금 방법을 수행하도록 하는 지시들을 저장하는, 상기 비 일시적 컴퓨터 판독가능한 저장 매체에 있어서:
    상기 방법은:
    정보 중심 네트워크(ICN)에서의 제 1 노드에 의해, 콘텐트의 부분에 대한 관심을 수신하는 단계로서, 상기 관심은 상기 콘텐트의 부분과 연관된 이름을 나타내는, 상기 관심을 수신하는 단계;
    상기 관심이 포워딩될 수 있는지의 여부를 결정하는 단계;
    상기 관심이 제 2 라우터로 포워딩될 수 있다고 결정하는 것에 응답하여, 상기 제 2 라우터에 특정한 라벨을 얻는 단계;
    상기 관심에 상기 라벨을 부착하는 단계; 및
    부착된 상기 라벨에 따라 상기 제 2 라우터로 상기 관심을 포워딩하는 단계를 포함하는, 비 일시적 컴퓨터 판독가능한 저장 매체.
  9. 제 8 항에 있어서,
    상기 방법은:
    상기 관심이 포워딩될 수 없다고 결정하는 것에 응답하여, 상기 관심으로 응답을 전송하는 단계를 더 포함하는, 비 일시적 컴퓨터 판독가능한 저장 매체.
  10. 제 9 항에 있어서,
    상기 관심이 포워딩될 수 없다고 결정하는 것은:
    상기 콘텐트의 부분이 발견될 수 없다고 결정하는 것;
    상기 콘텐트의 부분을 광고하는 노드에 대한 어떠한 루트도 발견될 수 없다고 결정하는 것; 및
    상기 관심이 루프를 가로지르고 있다고 결정하는 것 중 하나를 수반하고;
    상기 응답은 부정 응답을 포함하는, 비 일시적 컴퓨터 판독가능한 저장 매체.
KR1020160116650A 2015-09-28 2016-09-09 작은 다중 경로 또는 단일 경로 포워딩 상태를 이용한 정보 중심 네트워킹 KR20170037818A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/867,814 2015-09-28
US14/867,814 US20170093713A1 (en) 2015-09-28 2015-09-28 Information-centric networking with small multi-path or single-path forwarding state

Publications (1)

Publication Number Publication Date
KR20170037818A true KR20170037818A (ko) 2017-04-05

Family

ID=56958812

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160116650A KR20170037818A (ko) 2015-09-28 2016-09-09 작은 다중 경로 또는 단일 경로 포워딩 상태를 이용한 정보 중심 네트워킹

Country Status (5)

Country Link
US (1) US20170093713A1 (ko)
EP (1) EP3148128B1 (ko)
JP (1) JP2017069950A (ko)
KR (1) KR20170037818A (ko)
CN (1) CN106559340A (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10021222B2 (en) * 2015-11-04 2018-07-10 Cisco Technology, Inc. Bit-aligned header compression for CCN messages using dictionary
US10356209B2 (en) * 2015-11-30 2019-07-16 Futurewei Technologies, Inc. System and method to support context-aware content requests in information centric networks
US11051355B2 (en) * 2016-03-01 2021-06-29 Telefonaktiebolaget Lm Ericsson (Publ) Correlation of user equipment identity to information centric networking request
US10069736B2 (en) * 2016-05-02 2018-09-04 Cisco Technology, Inc. Optimized in-network retransmission for information-centric networking protocols
US10320675B2 (en) * 2016-05-04 2019-06-11 Cisco Technology, Inc. System and method for routing packets in a stateless content centric network
US10397809B2 (en) * 2016-05-13 2019-08-27 Cisco Technology, Inc. Mobility loss detection and recovery
US10432509B2 (en) * 2016-06-14 2019-10-01 Cisco Technology, Inc. Flow classification for information centric network protocols
US20180006937A1 (en) * 2016-06-30 2018-01-04 Fujitsu Limited Packet forwarding in information centric networking networks
US9992097B2 (en) * 2016-07-11 2018-06-05 Cisco Technology, Inc. System and method for piggybacking routing information in interests in a content centric network
US10110469B2 (en) * 2016-07-21 2018-10-23 Cisco Technology, Inc. Detecting and preventing network loops
US10122624B2 (en) * 2016-07-25 2018-11-06 Cisco Technology, Inc. System and method for ephemeral entries in a forwarding information base in a content centric network
US10819524B2 (en) * 2016-10-19 2020-10-27 Qualcomm Incorporated Methods for header extension preservation, security, authentication, and protocol translation for RTP over MPRTP
EP3610628B1 (en) * 2017-04-14 2021-09-22 Koninklijke KPN N.V. Transmitting and receiving an interest message specifying an aggregation parameter
US10623322B1 (en) * 2017-09-15 2020-04-14 Juniper Networks, Inc. Dynamic prefix list for route filtering
CN110493885B (zh) * 2019-08-21 2020-12-08 北京理工大学 一种针对数据分片的命名数据网络连续数据推送方法
US20220368625A1 (en) * 2019-10-09 2022-11-17 Curated Networks Multipath routing in communication networks
US11483238B2 (en) * 2019-10-14 2022-10-25 Cisco Technology, Inc. Centralized path computation for information-centric networking
US10904851B1 (en) 2020-01-21 2021-01-26 Cisco Technology, Inc. Systems and methods for determining locations of access points
CN112866106B (zh) * 2020-12-31 2023-04-18 网络通信与安全紫金山实验室 一种兴趣包缓存方法、装置、设备及存储介质
WO2023161666A1 (en) * 2022-02-27 2023-08-31 Doka Janos System and method for forwarding-information base compression by distribution in named data networks

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7936753B1 (en) * 2007-11-30 2011-05-03 Qlogic, Corporation Method and system for reliable multicast
US8160069B2 (en) 2009-01-30 2012-04-17 Palo Alto Research Center Incorporated System for forwarding a packet with a hierarchically structured variable-length identifier
WO2013158918A1 (en) * 2012-04-18 2013-10-24 Nicira, Inc. Using transactions to minimize churn in a distributed network control system
US9049233B2 (en) * 2012-10-05 2015-06-02 Cisco Technology, Inc. MPLS segment-routing
US10193662B2 (en) * 2014-09-19 2019-01-29 Panasonic Intellectual Property Corporation Of America Router, terminal, and congestion control method for router and terminal
US9647925B2 (en) * 2014-11-05 2017-05-09 Huawei Technologies Co., Ltd. System and method for data path validation and verification

Also Published As

Publication number Publication date
JP2017069950A (ja) 2017-04-06
EP3148128B1 (en) 2019-05-08
US20170093713A1 (en) 2017-03-30
EP3148128A1 (en) 2017-03-29
CN106559340A (zh) 2017-04-05

Similar Documents

Publication Publication Date Title
KR20170037818A (ko) 작은 다중 경로 또는 단일 경로 포워딩 상태를 이용한 정보 중심 네트워킹
US10003520B2 (en) System and method for efficient name-based content routing using link-state information in information-centric networks
US10454820B2 (en) System and method for stateless information-centric networking
US10091012B2 (en) System and method for multi-source multicasting in content-centric networks
EP3054635B1 (en) System and method for on-demand content exchange with adaptive naming in information-centric networks
KR102033999B1 (ko) 컨텐트 중심 네트워크에서의 통신 방법 및 장치
EP3035611B1 (en) System and method for distance-based interest forwarding
US10313227B2 (en) System and method for eliminating undetected interest looping in information-centric networks
US10033639B2 (en) System and method for routing packets in a content centric network using anonymous datagrams
US9391896B2 (en) System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
Garcia-Luna-Aceves et al. A light-weight forwarding plane for content-centric networks
Garcia-Luna-Aceves A more scalable approach to content centric networking