KR102203489B1 - Ccn 이름 구성 방법과 ccn 이름 기반 라우팅 방법 및 장치 - Google Patents

Ccn 이름 구성 방법과 ccn 이름 기반 라우팅 방법 및 장치 Download PDF

Info

Publication number
KR102203489B1
KR102203489B1 KR1020140081070A KR20140081070A KR102203489B1 KR 102203489 B1 KR102203489 B1 KR 102203489B1 KR 1020140081070 A KR1020140081070 A KR 1020140081070A KR 20140081070 A KR20140081070 A KR 20140081070A KR 102203489 B1 KR102203489 B1 KR 102203489B1
Authority
KR
South Korea
Prior art keywords
ccn
name
network
flow
node
Prior art date
Application number
KR1020140081070A
Other languages
English (en)
Other versions
KR20160002154A (ko
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 KR1020140081070A priority Critical patent/KR102203489B1/ko
Publication of KR20160002154A publication Critical patent/KR20160002154A/ko
Application granted granted Critical
Publication of KR102203489B1 publication Critical patent/KR102203489B1/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/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/14Routing performance; Theoretical aspects

Landscapes

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

Abstract

본 발명은 CCN 이름 구성 방법과 CCN 이름 기반 라우팅 방법 및 장치에 관한 것으로, 기 설정된 방식으로 CCN 이름을 정의하고, 인입되는 CCN 패킷의 CCN 이름에 미리 할당된 플로우 아이디(flow ID)를 이용하여 라우팅 되도록 제어할 수 있는 것을 특징으로 하는 CCN 이름 구성 방법과 CCN 이름 기반 라우팅 방법 및 장치에 관한 것이다.

Description

CCN 이름 구성 방법과 CCN 이름 기반 라우팅 방법 및 장치{METHOD FOR CONFIGURING CONTENTS NAME AND ROUTING METHOD BASED ON CONTENTS NAME, APPARATUS USING THE SAME}
본 발명은 CCN 이름 구성 방법과 CCN 이름 기반 라우팅 방법 및 장치에 관한 것으로, 기 설정된 방식으로 CCN 이름을 정의하고, 인입되는 CCN 패킷의 CCN 이름에 미리 할당된 플로우 아이디(flow ID)를 이용하여 라우팅 되도록 제어할 수 있는 것을 특징으로 하는 CCN 이름 구성 방법과 CCN 이름 기반 라우팅 방법 및 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
컨텐츠 중심 네트워크(CCN; Contents Centric Network)는 IP 주소를 이용하여 통신을 수행하는 종래의 일반적인 네트워크와는 달리 CCN 이름을 사용하여 라우팅을 수행하는 네트워크를 의미한다. 컨텐츠 중심 네트워크(CCN)를 구성하는 각 노드(이하, "CCN 노드"라고 함)는 컨텐츠를 저장할 수 있는 컨텐츠 스토어(Contents Store: 이하, "CS"라고 함)를 갖는다. 또한 포워딩 인포메이션 베이스(Forwarding Information Base: 이하 “FIB”라고 함)에 CCN 이름과 포워딩할 통신 포트를 기록한다.
도 1을 참조하여 일반적인 컨텐츠 중심 네트워크의 라우팅 과정에 대해 설명하도록 한다.
도 1은 일반적인 컨텐츠 중심 네트워크에서의 라우팅 과정을 설명하기 위한 예시도로, A 노드 ~ K 노드는 CCN 노드를 의미한다. 이러한 컨텐츠 중심 네트워크에서 특정 컨텐츠가 컨텐츠 중심 네트워크의 서버에 등록되는 경우, 서버는 새롭게 등록된 컨텐츠의 CCN 이름이 포함된 컨텐츠 광고 메시지를 브로드캐스팅한다. 브로드캐스트된 컨텐츠 광고 메시지는 서버와 인접한 CCN 노드 A가 수신하며, CCN 노드 A는 컨텐츠 광고 메시지가 수신된 통신 포트의 번호와 컨텐츠 광고 메시지에 포함된 CCN 이름을 매칭시켜 자신의 FIB에 저장한 후, 모든 통신 포트를 통해 컨텐츠 광고 메시지를 브로드캐스팅한다. 다른 CCN 노드들도 컨텐츠 광고 메시지를 받고 같은 방법으로 자신의 FIB에 목록을 저장한다.
그 후 도 1의 (b)와 같이 Client1에서 해당 컨텐츠 요청이 인접한 CCN 노드 H로 전달되면 CCN 노드 H는 FIB를 확인하여 FIB에 따라 CCN 노드 D로 전달한다. 같은 방식으로 컨텐츠 요청이 서버에 도달하게 되고 서버는 컨텐츠 요청이 왔던 경로로 컨텐츠를 보낸다. 도 1의 (e)와 같이 client 2는 Client1에 요청한 컨텐츠와 동일한 컨텐츠에 대한 요청을 인접한 CCN 노드 I로 전달하고, 전술한 바와 같이 서버 방향으로 컨텐츠 요청이 전달되게 된다.
이전에 이루어진 컨텐츠 전송에 의해 CCN 노드 A, B, D, H 의 CS에 해당 컨텐츠가 저장되어 있으므로 이 요청은 CCN 노드 D에서 요청에 대한 응답으로 컨텐츠가 client 2로 전달된다.
이러한 컨텐츠 중심 네트워크에서의 컨텐츠 요청은 인터레스트 패킷(Interest packet)이라 하고 상기 인터레스트 패킷에 대한 응답으로 컨텐츠를 담고 있는 패킷을 데이터 패킷(Data packet)이라 한다.
삭제
한국공개특허 제2014-0076955호, 2014년 6월 23일 공개 (명칭: 서비스 특성을 이용한 네트워크 제어 시스템 및, 그 제어 방법)
도 1을 통해 설명한 바와 같이 종래기술에 따른 컨텐츠 중심 네트워크에서의 라우팅 방법은 서버에 등록되는 모든 컨텐츠에 대한 컨텐츠 광고 메세지를 컨텐츠를 서비스할 범위에 속하는 CCN 노드들이 주고 받아야 하며, 각 CCN 노드는 자신의 FIB에 컨텐츠 광고 메시지가 수신된 통신 포트의 번호와 컨텐츠 광고 메시지에 포함된 CCN 이름을 매칭시켜 저장해야 한다.
이러한 종래기술에 따른 컨텐츠 중심 네트워크에서의 라우팅 방법은 CCN 노드가 모든 컨텐츠의 수만큼 FIB 목록을 생성하므로 많은 메모리 용량을 요구한다는 문제점이 있다. 또한 인터레스트 패킷에 대한 처리 시 하나의 컨텐츠 당 비교해야 할 FIB 목록이 많아지므로 CCN 노드에서의 패킷 처리 속도가 매우 느려지게 된다. 따라서 라우팅의 확장성이 매우 떨어진다는 문제점이 있다.
CCN의 다양한 효과와 장점들이 연구되었지만 CCN 이름기반으로 라우팅을 수행해야 함으로 현실적인 문제가 있어서 많은 우려가 있었다. 하지만 본 발명에서는 네트워크 단위로 라우팅을 함으로써 라우팅 확장성에 대한 문제를 해결하였다. 본 발명으로 인하여 CCN 기술이 현재 네트워크에 적용된다면 빠르고 상대적으로 작은 링크 대역폭만으로 다양한 컨텐츠 서비스가 이루어질 것이다. 또한 컨텐츠의 이름을 간단하게 구성함으로써 인터넷에 존재하는 수많은 컨텐츠를 식별하고 활용, 가공할 수 있게 하였다.
또한, 또한, 인터넷 서비스 제공자(ISP; Internet Service Provider)가 자신의 망 내에 CCN-SDN을 활용하여 네트워크 트래픽을 효과적으로 관리하며, CCN 이름(CCN name)에 패킷 유형을 부여함으로써 심층 패킷 분석(deep packet inspection)을 처리하는 같은 장비가 필요 없게 된다. 또한, 목적지(destination)로 향하는 경로에 있는 CCN 노드를 캐시로 활용함으로써 네트워크 대역폭(network bandwidth)을 절약하고, 사용자의 요청을 보다 신속하게 처리할 수 있어 데이터 지연(data latency)을 최소화할 수 있게 된다.
도 1은 일반적인 컨텐츠 중심 네트워크에서의 라우팅 과정을 설명하기 위한 예시도이다.
도 2는 본 발명의 실시 예에 따른 SDN 네트워크를 활용한 CCN 컨텐츠 라우팅 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 실시 예에 따른 라우팅 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 실시 예에 따른 네트워크의 구성을 설명하기 위한 예시도이다.
도 5는 본 발명의 포워딩 테이블 정보를 설명하기 위한 예시도이다.
도 6은 본 발명의 실시 예에 따른 라우팅 방법을 설명하기 위한 화면예시도이다.
도 7은 본 발명의 인터레스트 패킷의 CCN 이름에서 네트워크 이름이 누락된 것을 예시한 도면이다.
도 8은 본 발명의 실시 예에 따른 동작을 수행하는 장치들을 정리한 도면이다.
도 9는 본 발명의 실시 예에 따른 CCN 노드의 주요 구성을 설명한 도면이다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 핵심을 흐리지 않고 더욱 명확히 전달하기 위함이다. 또한 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 하나, 이는 본 발명을 특정한 실시 형태로 한정하려는 것은 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
기존 연구들에서는 CCN 라우팅 확장성에 따른 문제를 CCN 이름의 계층적 구조를 사용하여 CCN 노드들이 프리픽스(prefix)만 FIB에서 관리하게 하는 방법을 제안하고 있다.
본 발명의 실시 예에서는 CCN 이름을 계층적 구조를 활용하여 정의하되, 프리픽스(prefix)로 네트워크 이름을 포함하여 정의하는 것을 제안하고자 한다. 기존 연구들에서 제안한 경우 프리픽스(prefix)는 컨텐츠에 관련된 의미를 가지고 있다. 예를 들어, 종래의 CCN 이름은 'navernews/ sports/march_4/hanhwa_lg'와 같이 구성되며, 이때의 프리픽스 'navernews'는 컨텐츠에 관련된 것으로, 'navernews'와 같은 프리픽스(prefix)는 인터넷 상에 매우 많이 존재할 수 있으므로, 이에 대한 많은 컨텐츠 광고 메시지를 전달해야 하며, CCN 노드들이 관리해야 하는 FIB의 크기가 커진다는 문제점이 있어 현실성이 떨어지게 된다.
본 발명의 실시 예에서는 이러한 문제점을 해결하고자 CCN 이름을 '서비스 이름, 네트워크 이름, 디바이스 이름, 컨텐츠에 관련된 이름'의 계층적 형태로 정의하는 방안을 제안한다. 예를 들어 본 발명의 CCN 이름을 'Service_A/ISP_A/navernews_server/sports/march_4/hanhwa_lg'와 같이 구성할 수 있는데, 여기서 Service_A는 서비스 이름을 의미하며, IPS_A는 네트워크 이름을 의미하며, navernews_server는 디바이스 이름을 의미한다. 그 이하는 컨텐츠에 대한 정보이다. 또한 상기의 CCN 이름을 사용하여 라우팅하는 본 발명의 CCN 노드는 FIB에 네트워크 이름(ISP)의 프리픽스(prefix)를 포함하는 컨텐츠 요청, 즉 인터레스트 패킷(interest packet)은 어느 통신 포트로 전달되어야 하는 지에 대한 목록을 포함하고 있다. 따라서 본 발명의 CCN 노드는 컨텐츠 광고 메시지를 브로드캐스팅하지 않고 네트워크 단위로 이웃 네트워크에 자신의 네트워크 이름만 알리는 방식으로 라우팅이 가능해 보다 확장성이 있는 방법이다.
또한, 본 발명은 네트워크 이름 다음으로 디바이스 이름을 정의함으로써, 컨텐츠 요청, 즉 인터레스트 패킷이 해당 디바이스를 향해 전달되도록 할 수 있게 된다. 즉 CCN 노드가 인터레스트 패킷을 받게 되면, 상기 인터레스트 패킷의 CCN 이름을 해석하여 네트워크 이름(ISP)을 확인할 수 있으며, 자신이 속한 네트워크 이름일 경우 디바이스 이름까지 해석할 수 있게 된다. 그리고 CCN 노드는 해석한 디바이스 이름을 FIB를 통해 확인하여 어느 통신 포트로 인터래스트 패킷을 전달할 지 확인할 수 있게 된다.
반면, 본 발명의 CCN 노드는 CCN 이름을 확인하여 자신이 속한 네트워크가 아닌 다른 네트워크에 속한 네트워크 이름이 확인되면, 해당 다른 네트워크에 알리기 위해 본 발명에서는 소프트웨어 정의 네트워크(Software Defined Network: 이하, "SDN"라고 함) 기술을 활용하는 방법을 제안한다.
소프트웨어 정의 네트워크는 네트워크 장비들이 하나의 제어기에 오픈플로우(openflow) 라는 프로토콜로 연결되게 되며, 네트워크 장비의 환경 설정과 라우팅 테이블을 제어기에서 만들어 네트워크 장비들에게 전달하는 시스템이다. 따라서 네트워크 단위로 하나의 제어기가 존재하게 되며, CCN 노드 역시 제어기에 연결된다. 또한 글로벌 컨텐츠 이름 서버(Global content name server)라는 상위 제어기가 모든 제어기에 연결되어 세계적인 라우팅 일관성을 제공한다.
삭제
삭제
도 2는 본 발명의 실시 예에 따른 SDN 네트워크를 활용한 CCN 컨텐츠 라우팅 방법을 설명하기 위한 흐름도이다.
도 2를 참조하면, 단말(100)이 요청한 인터레스트 패킷(Interest packet)이 네트워크 A에 속한 네트워크 A의 인입 CCN 노드(ingress SDN switch, 210)로 들어오면, 네트워크 A의 인입 CCN 노드(210)는 인터레스트 패킷(Interest packet)에 대응하는 정보가 포워딩 테이블에 있으면, 해당 통신 포트를 확인하여 확인된 통신 포트로 인터레스트 패킷(Interest packet)을 보낸다. 이때, 네트워크 A의 인입 CCN 노드(210)은 인터레스트 패킷(interest packet)에 플로우 아이디(flow ID)를 부여하기 위해, 먼저 네트워크 A의 제어기(220a, SDN controller)로 인터레스트 패킷(interest packet)을 보낼 수도 있다.
반면 네트워크 A의 인입 CCN 노드(210)는 자신의 포워딩 테이블에 해당하는 정보가 없을 경우, 네트워크 A의 제어기(220a)로 단말(100)로부터 전달된 인터레스트 패킷(Interest packet)을 전달한다. 네트워크 A의 제어기(220a)는 전달되는 인터레스트 패킷(Interest packet)을 해석하여 네트워크 이름이나 디바이스 이름을 추출한다. 네트워크 A의 제어기(220a)는 추출된 이름을 바탕으로 인터레스트 패킷(Interest packet)이 자신에 연결된 네트워크 장비, 즉 CCN 노드(210a) 중 어느 CCN 노드로 연결되어야 할지 결정하게 되고 오픈플로우(openflow) 프로토콜을 활용하여 결정된 CCN 노드로 향하는 경로에 위치하는 CCN 노드들로 포워딩 테이블 정보를 전달한다.
특히 본 발명의 네트워크 A의 제어기(220a)는 단말(100)로부터 전달되는 인터레스트 패킷(Interest packet)을 전달한 인입 CCN 노드(210)로 플로우 아이디(Flow ID)를 전달한다. 여기서 플로우 아이디(Flow ID)는 소프트웨어 정의 네트워크에서 CCN 패킷을 식별할 수 있는 것을 의미한다.
본 발명의 제어기(220)는 CCN 이름 당 하나의 플로우 아이디를 할당하여 관리할 수 있다. 본 발명의 일 실시 예에서는 UDP 헤더에 포함된 소스(source) 포트 번호를 플로우 아이디(Flow ID)로 사용할 수 있으며, 적용 방향에 따라 다른 방법으로 정할 수도 있다.
네트워크 A의 제어기(220a)로부터 플로우 아이디(Flow ID)를 전달받은 인입 CCN 노드(210)는 인터레스트 패킷(interest packet)의 소스(source) 포트 번호를 네트워크 A의 제어기(220a)로부터 전달받은 플로우 아이디(Flow ID)로 바꾸게 된다.
아울러, 본 발명의 포워딩 테이블(Flow Table) 정보에 대해서는 도 5를 참조하여 설명하도록 한다.
도 5는 본 발명의 포워딩 테이블 정보를 설명하기 위한 예시도이다.
도 5에 도시된 바와 같이 소스(source) 포트 번호가 플로우 아이디(Flow ID)이고 목적지(destination) 포트 번호가 예를 들어 '9695'이면, 어느 통신 포트로 보내야 하는지에 대한 정보가 들어있다. 네트워크 A의 제어기(220a)로부터 포워딩 테이블 정보를 전달받은 네트워크 A의 CCN 노드들은 오픈플로우(openflow) 프로토콜에 의해 해당 정보에 관한 정책을 포워딩 테이블에 추가하게 된다.
이러한 경로 설정 과정이 끝나면 인입 CCN 노드(210)는 인터레스트 패킷(Interest packet)을 포워딩 테이블에 따라 전달한다. 그리고 인입 CCN 노드(210)는 바꾼 소스(source) 포트 번호와 바꾸기 전 소스(source) 포트 번호를 이름 플로우 아이디 테이블(name-flow id table)에 저장한다. 이는 이름 플로우 아이디 테이블을 이용하여 인터레스트 패킷(Interest packet)에 대한 응답인 데이터 패킷(data packet)이 전달되면 바꾸기 전 소스(source) 포트 번호로 다시 바꾸기 위함이다.
CCN 노드들의 라우팅에 따라 인터레스트 패킷(Interest packet)은 새로운 네트워크인 네트워크 B에 도착할 수 있다. 그리고 인터레스트 패킷은 네트워크 B의 제어기(220b)에 전달되며 이를 전달받은 네트워크 B의 제어기(220b)는 네트워크 A의 제어기(220a)와 마찬가지로 자신에 연결된 CCN 노드들에게 새로운 플로우 아이디(Flow ID)와 함께 라우팅 정책을 전달하며 이때 전술한 바와 같이 인터레스트 패킷(Interest packet)의 소스(source) 포트 번호가 바뀌게 된다. 플로우 아이디(Flow ID)를 새로 전달 하는 이유는 각 네트워크가 플로우 아이디(Flow ID)를 독립적으로 관리하기 위함으로 세계적으로 CCN 이름 하나마다 플로우 아이디(Flow ID)를 부여하는 부담을 피하기 위해서이다.
이러한 라우팅 과정에 따라 인터레스트 패킷(Interest packet)은 CCN 이름에 적힌 네트워크와 디바이스에 도착할 수 있으며, 해당 CCN 노드는 그 응답으로 데이터 패킷(Data packet)을 전달하고 데이터 패킷(Data packet)은 인터레스트 패킷(Interest packet)이 왔던 경로로 되돌아가 전달된다. 데이터 패킷(Data packet)의 전달되는 과정은 CCN 노드의 Pending Interest Table 에 의해서 이루어진다.
네트워크 내의 각 CCN 노드(SDN switch, 210)는 자신의 네트워크 제어기(220)로부터 받았던 정책을 일정시간 동안 유지할 것이며 정책이 남아있는 동안 정책에서 플로우 아이디(Flow ID)로 정해진 소스(source) 포트 번호와 목적지(destination) 포트 번호가 예컨대 9695인 인터레스트 패킷(Interest packet)을 같은 경로로 전달 할 것이다.
한편 인터레스트 패킷(Interest packet)을 처음 받게 되는 인입 CCN 노드(ingress SDN switch, 210)은 인터레스트 패킷(interest packet)에 플로우 아이디(flow ID)를 부여하기 위해, 자신의 네트워크 제어기인 네트워크 A의 제어기(220a)로 상기 인터레스트 패킷(interest packet)을 전달할 수 있으며, 자신의 포워딩 테이블에 정보가 없는 인터레스트 패킷(interest packet)일 경우에만 선별적으로 네트워크 A의 제어기(220a)로 전달하고 전술한 바와 같은 과정을 수행하게 된다. 아울러 네트워크 내의 CCN 노드(210)가 정책을 유지하는 기간은 설정에 따라 달라질 수 있다.
삭제
삭제
삭제
삭제
삭제
도 3은 본 발명의 실시 예에 따른 라우팅 방법을 설명하기 위한 흐름도이다. 특히 *CCN Interest packet은 플로우 아이디(Flow ID)로 소스(source) 포트 번호가 바뀐 패킷들을 의미한다.
아울러 컨텐츠 이름 서버(content name server)는 네트워크 내의 복수 개의 CCN 노드를 제어하는 제어기(220)를 의미하는 것으로, 컨텐츠 이름 서버(220), 즉 제어기가 글로벌 컨텐츠 이름 서버(global content name server, 300)와 연동하는 경우는 서비스, 목적지(destination) 네트워크 정보가 필요한 경우 등에 연동하여 동작하게 된다.
또한 인터레스트 패킷(Interest packet)의 CCN 이름을 이용하여 네트워크 이름, 디바이스 이름 등의 확인이 어려운 경우, 도 2의 제어기(220)에서 파악하여 어떤 CCN 노드로 보낼지 라우팅 경로를 결정한다. 만약 자신의 네트워크에서 해당 요청을 만족시키지 못할 경우 제어기(220)는 글로벌 컨텐츠 이름 서버(global content name server, 300)을 활용하여 어떤 경로로 인터레스트 패킷(Interest packet)을 전달할지 결정하게 된다. 다시 말해 어느 하나의 네트워크 내의 CCN 노드가 보유하고 있지 않은 컨텐츠이거나 하나의 네트워크와 연결되지 않은 CCN 노드에 들어있는 컨텐츠 등을 서비스하고자 할 때 전술한 바와 같이 동작하게 된다.
전술한 본 발명의 실시 예에 따른 동작을 수행하기 위해서는 제어기(220, 컨트롤러)의 제어 하에 동작할 수 있는 인입(ingress) 라우터를 네트워크 상에 배치해야 한다.
이에 대해 도 4를 참조하여 설명하도록 한다.
도 4는 본 발명의 실시 예에 따른 네트워크의 구성을 설명하기 위한 예시도이다.
도 4에 도시된 바와 같이, 본 발명의 네트워크는 제어기(220, SDN 컨트롤러)의 제어를 받는 인입(ingress) 라우터(210)들을 포함하여 구성될 수 있다.
여기서, 인입(ingress) 라우터(210)들은 ingress SDN switch, 인입 CCN 노드 또는 인입 ICN 노드 등으로 불릴 수도 있다.
이러한 인입(Ingress) 라우터(210)는 CCN 패킷과 TCP/IP 패킷 모두를 인식한다. 즉 본 발명은 기존 네트워크와의 공존을 위해 CCN 패킷에 UDP 헤더를 붙이며, 인입(ingress) 라우터(210)들은 단말(100)로부터 전달되는 패킷을 제어기(220))로 전달하여 CCN 패킷인지 TCP/IP 패킷인 지 여부를 확인할 수 있으며, 트래픽 분류기의 기능을 포함하는 경우, 트래픽 분류기를 통해 인입되는 패킷이 CCN 패킷인지 TCP/IP 패킷인 지 여부를 확인하고, CCN 패킷일 경우, 이에 대한 정보를 제어기(220)로 전달할 수도 있다.
아울러, 본 발명의 실시 예에 따른 동작 수행을 위해서는 본 발명의 컨텐츠 이름, 즉 CCN 이름을 전술한 바와 같이, 서비스 이름, 네트워크 이름, 디바이스 이름(호스트 이름), 컨텐츠에 대한 정보를 포함하여 구성될 수 있다.
예컨대, CCN 이름이 다음과 같다고 가정한다.
CCN://sportstoday/seoul-sangam/main-camera/april4-seoul-pohang/470
이 중, sportstoday에 해당하는 부분은 어떤 서비스에 관련된 컨텐츠인지 표시한 서비스 이름이다. Seoul-sangam은 컨텐츠가 어느 ISP에서 생성되었는 지를 표시하는 네트워크 이름이다. Main-camera는 컨텐츠 생성자의 정보 표기에 관한 것으로 호스트 이름, 즉 디바이스 이름이 될 수 있으며 CCN 노드의 식별 정보가 될 수 있다. April4-seoul-pohang은 컨텐츠에 대한 정보를 명시한 것으로, 컨텐츠의 이름, 컨텐츠 사이즈를 포함하여 구성될 수 있다.
이러한 CCN 이름에 특정 요소가 누락된 경우, 제어기(220)는 웹을 통해 검색하거나, 글로벌 컨텐츠 이름 서버(global content name server)와 연동하여 네트워크 이름 등을 확인할 수도 있다.
또한, 본 발명은 컨텐츠의 대한 이름을 상술한 바와 같은 방식으로 정의함으로써, 단말(100)로부터 전송된 CCN 패킷이 유입되면, 서비스 이름을 확인하여, 서비스 이름에 대응하는 QoS 정책에 따라 차별적인 대역폭(bandwidth) 등을 보장할 수 있다.
또한, 네트워크 이름에 대한 필드를 포함하고, 호스트 이름(디바이스 이름) 필드를 포함함으로써, 해당 ISP 내에서 네트워크 장비들이 어느 ISP에 접속되어 있는 지에 대한 정보 추적(tracking)이 가능하게 된다. 또한 목적지 네트워크(Destination network)로 패킷이 들어온 후부터 내부 라우팅 테이블(interior routing table)을 참조하여 호스트를 찾아갈 수 있게 된다.
아울러, 본 발명의 일 실시 예에서는 CCN 이름과 플로우 아이디(flow ID) 필드를 1대1로 맵핑하고 관리하게 된다. 여기서, 맵핑 테이블(table)은 인입 CCN 노드(ingress switch)에서 관리한다. 또한, 플로우 아이디(Flow ID)는 로컬 네트워크 단위(locally unique)로 관리함으로써, 글로벌 확장성(global scalability)을 보장할 수 있다.
또한, 본 발명의 플로우 아이디는 소스 포트 넘버를 이용하는 것을 예로 들어 설명하였으나, 이에 한정되는 것은 아니며 오픈플로우(openflow)의 발전 방향에 따라서 오픈플로우(openflow) 메시지의 다양한 필드(field)를 활용할 수도 있다.
한편, 본 발명에서 CCN 이름과 플로우 아이디(flow ID) 필드를 1대1로 맵핑하는 것은 현재까지의 네트워크 장비는 IP 기반으로 동작하며, CCN 패킷은 컨텐츠 이름으로 기반하기 때문에, IP 기반으로 네트워크 장비에 바로 적용하는 데 여러 가지 문제가 발생될 수 있으므로, 이를 고려하여, 본 발명에서는 바람직하게 CCN 이름과 플로우 아이디(flow ID)를 일대일 맵핑하게 된다.
이때, 인입 CCN 노드(SDN 스위치(ingress router))에 인입된 CCN 패킷이 도 5에 도시된 바와 같이 플로우 테이블(flow table)에 속하지 않을 경우 인입 CCN 노드는 제어기(controller)로 CCN 패킷을 보내 이를 확인할 수 있다. 이러한 과정을 거쳐 라우팅 경로가 설정된 이후부터는 소스 포트 번호(source port number)를 통해 각 플로우(flow)를 매칭하여 라우팅이 가능한다.
이러한 과정을 위해서는 글로벌 컨텐츠 이름 서버(global content name server)를 포함하여 시스템을 구현하는 것이 바람직하며, 각 제어기(220, SDN controller, 특히 content name server 기능이 포함함) 상위 컨텐츠 이름 서버, 예컨대 글로벌 컨텐츠 이름 서버를 인지하고, CCN 이름에 특정 필드가 누락되었을 경우, 이를 확인할 수 있게 된다.
상술한 과정을 지원하는 인입 CCN 노드(ingress router, ingress CCN 노드)의 주요 동작을 도 5에 도시하였다.
인입 CCN 노드 및 이를 포함하는 본 발명의 실시 예에 따른 시스템에서의 라우팅 방법에 대해 이하에서 보다 구체적으로 설명하도록 한다.
도 6은 본 발명의 실시 예에 따른 라우팅 방법을 설명하기 위한 화면예시도이다.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
도면에서 210이 지시하는 것은 네트워크 A에서의 인입 라우터(ingress router)의 역할을 수행하는 수행하는 CCN 노드이다.
먼저, 네트워크 A의 인입 CCN 노드(210)는 단말(100)로부터 인터레스트 패킷(컨텐츠 요청 패킷)을 전달받는다. 인입 CCN 노드(210)는 제어기(220a)로부터 미리 전송된 이름 플로우 아이디 테이블(name-flow ID table)을 저장하고 있는 상태에서, 인입된 CCN 패킷의 CCN 이름에 대응하는 플로우 아이디(flow ID)를 확인한다. 예컨대, CCN 이름에 대응하는 플로우 아이디(flow ID) 48를 확인할 수 있다. 이때, 인터레스트 패킷에서의 실제 UDP 포트 번호는 65번이나, 플로우 아이디(flow ID)는 48로 맵핑된 상태이다. 그리고, 인입 CCN 노드(210)는 인터레스트 패킷의 CCN 이름에 해당하는 original port(UDP 포트) 65가 플로우 아이디(flow ID) 48로 대체되었음을 테이블에 기재하게 된다.
이때, 본 발명의 인입 CCN 노드(210)는 단말(100)로부터 인터레스트 패킷이 전달되면, 상기 인터레스트 패킷에 대응하는 플로우 아이디(flow ID)를 확인하는 과정 이전에, 플로우 아이디(flow ID) 부여를 위해 먼저 네트워크 A의 제어기(220a)로 인터레스트 패킷을 전달할 수도 있다. 이는 플로우 아이디(flow ID)를 적은 다른 인터레스트 패킷이 들어올 때 라우팅되는 것을 방지하기 위한 것으로, 예컨대 네트워크 A로 A 인터레스트 패킷이 인입되어, 인입 CCN 노드(210)가 플로우 아이디(flow ID) 47을 부여한 이후, B 인터레스트 패킷의 UDP 소스 포트 번호(source port number)가 47일 경우, 인입 CCN 노드(210)가 ingress router는 A 컨텐츠가 있는 컨텐츠 서버(또는 CCN 노드)로 라우팅을 할 수 있으므로, 이를 사전에 방지하기 위해, 인입 CCN 노드(210)는 단말(100)로부터 인터레스트 패킷이 전달되면, 상기 인터레스트 패킷에 플로우 아이디(flow ID)를 부여하기 위해 먼저 해당 네트워크의 제어기(220a)로 질의하는 과정을 수행할 수도 있다.
본 발명의 실시 예에서는 original port, 즉 UDP 포트를 이에 매핑되는 플로우 아이디(flow ID)로 대체하는 것을 예로 들어 설명하나, 이에 한정되는 것은 아니며 UDP 포트 이외의 다른 필드 값을 플로우 아이디(flow ID)로 대체할 수도 있다. 예컨대, 인터레스트 패킷이 옵션 필드를 포함하는 경우, 옵션 필드를 플로우 아이디(flow ID)로 대체할 수도 있다.
이후, 인입 CCN 노드(210)는 제어기(220a)와 연동하여 포워딩 테이블을 확인하고 플로우 아이디(flow ID) 48은 통신 포트 번호(port number) 5로 전달되어야 한다는 것을 확인한다. 그리고, 인입 CCN 노드(210)는 해당 통신 포트로 인터레스트 패킷을 전달하게 된다.
인입 CCN 노드(210)와 5 포트로 연결되는 CCN 노드(211)는 인터레스트 패킷을 전달받고, 포워딩 테이블을 통해 플로우 아이디(flow ID) 48에 대응하는 포트 번호를 확인하고, 자신은 1번 포트로 전달해야 하는 것을 확인할 수 있게 된다. 이러한 과정을 거쳐 인터레스트 패킷은 컨텐츠 서버(400)로 전송될 수 있으며, 컨텐츠 서버(400)가 전달하는 상기 인터레스트 패킷에 대응하는 응답 패킷인 데이터 패킷 또한 마찬가지 과정을 역으로 거쳐 단말(100)로 전달될 수 있다. 즉, 컨텐츠 서버(400)와 인접된 네트워크 B의 제어기(220b)는 자신이 관리하는 CCN 노드들(213, 214)과 연동하여 해당하는 포트 정보를 제공하고, 이를 확인한 CCN 노드들은 데이터 패킷을 단말(100)로 전달할 수 있게 된다.
반면, 네트워크 A의 CCN 노드에 상기 인터레스트 패킷에 대응하는 컨텐츠를 저장하고 있을 경우, 제어기(220a)는 전달된 CCN 노드들에 경로를 설정하여 해당 CCN 노드들에게 전달하고, 이를 기초로 라우팅을 수행할 수도 있으며, 네트워크 B에 상기 컨텐츠 요청 패킷에 해당하는 컨텐츠를 저장하고 있을 경우, 네트워크 B의 컨트롤러(220b)로 해당 인터레스트 패킷을 전달하기 위한 경로를 설정하여, CCN 노드들에게 전달한 후 CCN 노드들에 의해 라우팅이 수행될 수 있다.
아울러, 본 발명의 실시 예에 따른 CCN 이름은 전술한 바와 같이, 서비스 이름, 네트워크 이름, 디바이스 이름(호스트 이름), 컨텐츠에 대한 정보의 계층적 형태로 정의됨으로써, 네트워크 이름이 비어있는 경우의 CCN 패킷이 인입되더라도 이를 처리할 수 있게 된다.
이에 대해 도 7을 참조하여 설명하도록 한다.
도 7은 본 발명의 인터레스트 패킷의 CCN 이름에서 네트워크 이름이 누락된 것을 예시한 도면이다.
즉, 단말(100)로부터 네트워크 이름(또는 디바이스 이름 등)이 누락된 인터레스트 패킷이 인입되는 경우, 인입 CCN 노드(210)는 제어기(220)로 전달한다.
제어기(220)는 인터레스트 패킷을 분석하여 자신의 망(네트워크 A) 내에 해당하는 컨텐츠가 있는 지 확인한 후, 존재할 경우 경로를 설정하고, 해당 경로를 자신의 망 내의 라우터들, 즉 CCN 노드들(210, 211)에게 제공하여 상기 인터레스트 패킷의 라우팅을 지원한다. 반면, 자신의 망(네트워크 A) 내에 해당하는 컨텐츠가 없을 경우, 제어기(200)는 연결된 글로벌 컨텐츠 이름 서버(Global content name server, 300)에게 네트워크 이름을 질의한다. 이때, 제어기(220)는 CCN 이름을 전달하여 이를 통해 확인된 네트워크 이름을 제공받을 수 있다.
그리고, 제어기(220)는 네트워크 이름을 확인한 후, 확인된 네트워크 이름에 따라, 컨텐츠에 대응하는, 즉 CCN 이름에 대응하는 플로우 아이디(flow ID)를 확인하고, 이를 인입 CCN 노드(210)로 전달한다. 인입 CCN 노드(210)는 해당 인터레스트 패킷의 CCN 이름에 대응하는 플로우 아이디(flow ID) 48로 매핑하고, 플로우 아이디(flow ID) 48에 매핑된 오리진 포트(original port) 65에 대한 정보를 기록한 후, 해당 포트에 대응하는 CCN 노드로 전달하게 된다.
아울러, 글로벌 컨텐츠 네임 서버(global content name server, 300)로부터 네트워크 이름 확인 시 제어기(220)는 글로벌 컨텐츠 네임 서버(300)로부터 상기 네트워크 이름에 대응하는 QoS에 대한 정보를 더 수신할 수도 있다. 이를 위해 글로벌 컨텐츠 네임 서버(Global content name server)는 네트워크 이름별로, 즉 네트워크 ISP별로 QoS에 대한 정보를 저장하고 관리할 수 있으며, 네트워크 이름에 대한 정보를 제어기(220)로 제공 시 QoS에 대한 정보를 더 제공할 수 있다. 그리고 이를 수신한 제어기(220)는 해당 네트워크에서의 QoS를 고려하여 라우팅 정책 등을 수립할 수 있다.
아울러, 제어기(220)는 글로벌 컨텐츠 네임 서버(300)로부터 네트워크 이름 수신 시, 수신된 네트워크 이름을 인터레스트 패킷의 누락된 필드에 채우는 과정을 수행할 수 있으며, 수행하지 않을 수도 있다.
이때, 누락된 필드를 채우는 과정을 수행하지 않을 경우, 네트워크 A가 네트워크 B로 상기 인터레스트 패킷을 전달한 경우를 들 수 있으며, 네트워크 B의 인입 CCN 노드는 네트워크 A로부터 전달되는 인터레스트 패킷을 네트워크 B의 제어기로 전달하고, 제어기(컨트롤러)는 이를 분석한 후 자신이 관리하는 컨텐츠일 경우, 컨텐츠 라우팅 경로를 설정하고, 설정된 라우팅 경로에 따라 CCN 노드(라우터)에게 제공할 수 있다. 여기서 CCN 노드는 전술한 바와 같이 라우터, SDN 스위치 등으로 불릴 수 있으며 인입되는 곳에 위치하고 있는 CCN 노드는 인입 CCN 노드로 불릴 수 있다. 또한, 본 발명의 CCN 노드는 라우터가 컨텐츠를 보유하고 있는 노드를 의미하며, 컨텐츠를 보유하고 있는 관점에서 캐싱 노드, 컨텐츠 저장 노드 등으로 불릴 수도 있다.
또한, 네트워크 B에 해당 컨텐츠를 저장하고 있지 않을 경우, 네트워크 B의 CCN 노드, 제어기 등의 네트워크 장비들은 컨텐츠 서버로 해당 인터레스트 패킷이 전달되도록 전술한 바와 같이 상기 인터레스트 패킷의 CCN 이름을 플로우 아이디(flow ID)로 매핑하여 전달하는 과정을 수행할 수도 있다.
도 8은 본 발명의 실시 예에 따른 동작을 수행하는 장치들을 정리한 도면이다.
여기서 SDN switch는 전술한 도면에서 210, 211, 213, 214를 지칭하는 것으로 전술한 바와 같이 라우터(router)로 불릴 수 있으며, 컨텐츠 보유 관점에서 SDN switch는 CCN 노드로 불릴 수도 있다.
글로벌 컨텐츠 이름 서버(GCNS; Global Content Name Server, 300)은 컨텐츠 이름 서버(CNS; Content Name Server, 220, 220a, 220b) 다시 말해 SDN 컨트롤러(제어기)로 들어온 인터레스트 패킷의 CCN 이름에 네트워크 이름이 없을 경우, 서비스 이름과 호스트 이름 등을 참조하여 네트워크 이름을 찾아 주는 역할을 수행할 수 있다.
또한, 특정 호스트(예컨대, 단말)가 호스트가 서비스를 시작할 때(혹은 다른 네트워크로 옮길 때) 자신의 서비스와 네트워크 정보, QoS 관련 정보를 글로벌 컨텐츠 이름 서버(300)로 안내하고, 글로벌 컨텐츠 이름 서버(300)는 이를 등록하고 저장하여 관리하는 역할을 수행할 수 있다.
글로벌 이름 서버(200, 220a, 220b)는 컨트롤러(제어기)로 불릴 수 있으며, CCN 패킷이 들어오면 헤더의 네트워크 이름을 바탕으로 라우팅 경로를 결정하고, 새로운 이름의 CCN 이름일 경우 관할 망내에서 사용되지 않고 있는 플로우 아이디(flow ID)를 오픈플로우(openflow) 메시지에 실어 보내는 역할을 수행하며, 라우팅 경로와 QoS 레벨 정보 등을 관리 대상인 SDN switch(CCN 노드)들에게 오픈플로우 메시지를 이용하여 전송할 수 있다.
더하여, 본 발명의 실시 예에 따른 제어기(220, 220a, 220b)는 상기 동작 이외의 네트워크에 분포하는 SDN 스위치(CCN 노드)를 인지하는 기능을 수행하고, 라우팅, 정책 선언, 및 보안 체크 등을 할 수 있다. 또한 제어기(220, 220a, 220b)는 하위 계층의 복수의 CCN 노드에서 발생하는 인터레스트 패킷의 플로우를 정의할 수 있다.
또한, 제어기(220, 220a, 220b)는 패킷의 플로우를 정의할 수 있는데, 스위칭 역할을 수행하는 노드에 연결된 CCN 노드로부터 발생하는 제어 메시지를 인지할 수 있고 해당 정보를 기반으로 형성된 네트워크 토폴로지 등을 참조하여 플로우가 경유할 경로를 계산한 후, 경로 상의 스위치에 상기 플로우의 엔트리가 설정되도록 할 수 있다. 이러한 제어기(컨트롤러)는 인입 CCN 노드와 같이 스위칭 역할을 수행할 수 있는 노드만 연결이 될 수도 있다.
또한, 제어기(220, 220a, 220b)는 CCN 노드(210, 211, 213, 214)에 어떠한 컨텐츠를 저장할 지에 대한 제어 정보를 제공할 수 있다. 예컨대 제어기(220, 220a, 220b)는 CCN 노드 A는 A 사이트에 대한 컨텐츠만을 캐싱하여 저장하도록 하며, CCN 노드 B는 B 사이트에 대한 컨텐츠만을 캐싱하여 저장하도록 제어 정보를 제공할 수 있다.
또한, 각 CCN 노드(210, 211, 213, 214)는 제어기(220, 220a, 220b)로 자신이 어떠한 컨텐츠를 보유하고 있는 지에 대한 정보를 제공할 수 있다. 다시 말해 제어기(220, 220a, 220b)의 요청에 따라 컨텐츠를 저장하더라도, 캐싱 컨텐츠가 불확실할 수 있으므로, CCN 노드(210, 211, 213, 214)는 실제로 자신이 어떠한 컨텐츠를 저장하고 있는 지에 대한 정보를 제어기(또는 트래픽 분류기, 220, 220a, 220b)로 제공할 수 있으며, 제어기(220, 220a, 220b)는 이에 대한 정보를 저장하고 관리할 수도 있다.
또한 제어기(220, 220a, 220b)는 트래픽 분류기에 대한 동작을 수행할 수 있다. 예컨대, 단말(100)로부터 전달된 패킷이 TCP/IP 패킷인 지 또는 CCN 패킷인지 여부를 분류하며, 또한 CCN 노드 내 저장된 컨텐츠를 요청한 패킷인 지 여부를 분류하는 과정을 수행할 수 있다. 또한, 어느 CCN 노드에 해당하는 컨텐츠를 저장하고 있는 지에 대한 정보를 확인할 수도 있다.
SDN switch, 즉 CCN 노드(210, 211, 213, 214) 중에서 외부와 SDN 망을 연결하는 노드를 인입 CCN 노드(또는 에지 스위치(edge switch))라고 하며, 인입 CCN 노드, 예컨대 도 7의 210이 지시하는 바와 같은 인입 CCN 노드는 CCN 패킷의 라우팅이 가능하도록 이름 플로우 아이디 테이블(Name-flow ID table)을 저장하고 관리하는 역할을 수행한다. 인입 CCN 노드(210)는 도 5에 도시된 바와 같이 기본적으로 rule table(flow table)에 속하지 않는 패킷이 들어오면 제어기(220)로 해당 패킷을 전달 하고, 제어기(220)로부터 상기 패킷의 CCN 이름에 대응하는 플로우 아이디(flow ID(현재는 source port number))를 오픈플로우(openflow) 메시지를 통해 전달하면, 상기 CCN 패킷의 소스 포트 번호를 상기 플로우 아이디로 변경하고, 상기 오픈플로우 메시지에서 정의하는 액션(action)에 따라 패킷 처리하는 역할을 수행한다.
단말(Client, 100), 컨텐츠 서버(server, 400)는 인터넷 사용자가 CCN 어플리케이션(application)을 이용할 경우, CCN 이름(CCN name)을 웹 브라우져 등에서 얻은 정보로 구성하거나, CCN 어플리케이션(application)에서 초기에 정해진 이름(Name) 방식을 활용하여 구성할 수 있다. 이를 위해, 단말(client, 100)는 CCN 어플리케이션(application) 또는 CCN 패킷 처리를 위한 별도의 모듈을 포함하여 구성될 수 있다. 또한, 단말(Client, 100)은 만약 컨텐츠 서버(server, 400)로부터 요청한 데이터가 오지 않으면 호스트가 다른 네트워크로 옮겼는지 알아보기 위해 글로벌 컨텐츠 이름 서버(GCNS)에 확인하는 절차를 진행할 수도 있다.
도 9는 본 발명의 실시 예에 따른 CCN 노드의 주요 구성을 설명한 도면이다.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
도 9에 도시된 바와 같이, 컨텐츠 중심 네트워크에 포함된 노드, 즉 CCN 노드는 일반적으로 CS(Content Store), PIT(Pending Interest Table), FIB를 포함하여 구성될 수 있다.
CS(Content Store)는 컨텐츠가 저장되는 것으로, CCN 이름에 대응하여 데이터를 저장하고 관리한다.
삭제
PIT 테이블은 컨텐츠 요청 패킷(인터레스트 패킷)이 어디에서 들어왔는 지에 대한 정보를 저장하며, 이를 기초로 컨텐츠 응답 패킷을 제공하게 된다.
FIB는 컨텐츠 이름에 대한 프리픽스(prefix)를 저장하며, 이에 대응하는 페이스의 리스트를 저장할 수 있다. 이 경우, FIB는 프리픽스의 정보만을 저장하고 관리함으로써, 테이블의 크기를 줄일 수 있게 된다.
먼저, 단말이 전송한 컨텐츠 요청 패킷이 페이스 0으로부터 전달되면, 해당 CCN 노드는 먼저, 해당 컨텐츠의 이름을 참조하여 해당 컨텐츠가 노드의 컨텐츠 스토어(content store)에 저장되어 있는 지 여부를 확인한다. 상기 컨텐츠 요청 패킷은 컨텐츠의 이름(풀 네임)을 포함하며, 부가적으로 컨텐츠를 생성한 서버 또는 CCN 노드를 저장할 수도 있다.
확인 결과, 컨텐츠 스토어 내에 해당 컨텐츠가 저장되어 있을 경우, CCN 노드는 해당 노드를 컨텐츠 요청 패킷이 수신된 페이스 0으로 반환한다. 이때의 페이스(face)는 인터페이스(interface)로도 표현될 수 있다.
반면, 해당 컨텐츠가 컨텐츠 스토어 내에 저장되어 있지 않으면, 노드는 PIT에 해당 항목에 컨텐츠 요청 패킷이 들어온 페이스, 즉 전술한 예에서 페이스 0에 대한 정보를 추가로 기입한다.
그리고 CCN 노드는 PIT 내에 동일 컨텐츠 이름으로 등록된 항목이 없다면, 노드는 FIB에서 컨텐츠 이름에 기반한 검색을 수행하여 해당 엔트리를 확인한다. 여기서, CCN 노드는 최장 프리픽스 매칭(longest prefix matching)에 따라 검색을 수행할 수 있다.
그 후, CCN 노드는 FIB에 등록되어 있는 정보에 기초하여, 컨텐츠 요청 패킷을 전달할 페이스, 예컨대 페이스 1을 결정하고, 해당 페이스로 컨텐츠 요청 패킷을 전송하게 된다. 이 과정에서 CCN 노드는 컨텐츠 요청 패킷이 전달되어 온 페이스(페이스 O)에 대한 정보를 PIT에 등록하며, 향후 컨텐츠 요청 패킷에 대응되는 컨텐츠를 포함한 데이터 패킷을 전달되면, 해당 컨텐츠를 요청한 노드(또는 단말)에게 데이터 패킷을 전달하게 된다. 여기서, FIB에 기초하여 컨텐요청 패킷을 전달할 페이스를 선택할 때, 컨텐츠 요청 패킷이 수신된 페이스(페이스 0)은 선택 대상에서 제외된다.
본 발명은 CCN 이름 구성 방법과 CCN 이름 기반 라우팅 방법 및 장치에 관한 것으로, 기 설정된 방식으로 CCN 이름을 정의하고, 인입되는 CCN 패킷의 CCN 이름에 이름에 미리 할당된 플로우 아이디(flow ID)를 이용하여 라우팅 되도록 제어할 수 있는 것을 특징으로 하는 CCN 이름 구성 방법과 CCN 이름 기반 라우팅 방법 및 장치에 관한 것이다.
더불어, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.
100: 단말 210: 인입 CCN 노드
211,213,214: CCN 노드
220: 제어기
300: 글로벌 컨텐츠 이름 서버

Claims (14)

  1. 삭제
  2. 적어도 하나 이상의 CCN(Contents Centric Network) 노드와 상기 CCN 노드를 관리하는 제어기를 포함하는 네트워크에서의 CCN 이름을 이용한 CCN 이름 기반 라우팅 방법에 있어서,
    상기 CCN 노드는
    인터레스트(interest) 패킷이 인입되면, 상기 인터레스트 패킷의 CCN 이름에 대응하는 플로우 아이디를 확인하는 단계;
    상기 확인된 플로우 아이디에 매핑된 포트 번호를 확인하는 단계; 및
    상기 확인된 포트로 상기 인터레스트 패킷을 전달하여 상기 인터레스트 패킷을 라우팅하는 단계;를 포함하되,
    상기 플로우 아이디를 확인하는 단계는
    상기 CCN 이름에 대응하는 플로우 아이디가 확인되면, 상기 인터레스트 패킷의 소스(source) 포트 번호를 상기 플로우 아이디로 교체하는 단계; 및
    상기 교체된 정보를 이름 플로우 아이디 테이블(name flow ID table)에 저장하는 단계;
    를 포함하는 것을 특징으로 하는 CCN 이름 기반 라우팅 방법.
  3. 제2항에 있어서,
    상기 플로우 아이디를 확인하는 단계 이전에,
    상기 CCN 노드는 패킷이 인입되면 연결된 제어기로 질의하여 상기 인입된 패킷이 인터레스트 패킷인지 여부를 확인하거나, 트래픽 분류기를 이용하여 인터레스트 패킷인지 여부를 확인하는 단계;
    를 더 포함하는 것을 특징으로 하는 CCN 이름 기반 라우팅 방법.
  4. 제2항에 있어서,
    상기 플로우 아이디를 확인하는 단계는
    기 저장된 이름 플로우 아이디 테이블(name flow ID table)을 통해 오리진 포트(original port) 번호에 대응하는 플로우 아이디를 확인하거나, 연결된 제어기로 상기 인터레스트 패킷에 대응하는 플로우 아이디를 질의하여 확인하는 것을 특징으로 하는 CCN 이름 기반 라우팅 방법.
  5. 제2항에 있어서,
    상기 플로우 아이디를 확인하는 단계는
    상기 인터레스트 패킷의 CCN 이름을 확인하는 단계;
    상기 CCN 이름의 필드 중 네트워크 이름 필드를 확인하는 단계; 및
    상기 확인된 네트워크에 매핑된 플로우 아이디 중 상기 CCN 이름에 대응하는 플로우 아이디를 확인하는 단계;
    를 포함하는 것을 특징으로 하는 CCN 이름 기반 라우팅 방법.
  6. 제5항에 있어서
    상기 CCN 이름의 필드 중 네트워크 이름 필드가 누락된 경우,
    연결된 제어기로 상기 CCN 이름의 나머지 필드를 전달하여 상기 CCN 이름에 대응하는 네트워크 이름을 확인하는 단계;
    를 더 포함하는 것을 특징으로 하는 CCN 이름 기반 라우팅 방법.
  7. 삭제
  8. 제2항에 있어서,
    상기 포트 번호를 확인하는 단계는
    연결된 제어기와 연동하여 상기 플로우 아이디에 매핑된 포트 번호를 확인하거나 상기 제어기로부터 미리 제공된 포워딩 테이블이 있을 경우 상기 포워딩 테이블을 통해 상기 포트 번호를 확인하는 것을 특징으로 하는 CCN 이름 기반 라우팅 방법.
  9. 적어도 하나 이상의 CCN(Contents Centric Network) 노드와 상기 CCN 노드를 관리하는 제어기를 포함하는 네트워크에서의 CCN 이름을 이용한 CCN 이름 기반 라우팅 방법에 있어서,
    상기 제어기는
    인입된 인터레스트(interest) 패킷이 CCN 노드로부터 전달되면, 상기 인터레스트 패킷의 CCN 이름에서 네트워크 이름을 확인하는 단계;
    상기 확인된 네트워크 이름에 대응하는 플로우 아이디를 매핑하여 포워딩 테이블을 생성하는 단계; 및
    상기 포워딩 테이블에 해당하는 CCN 노드들로 상기 포워딩 테이블을 전달하고, 상기 CCN 노드 중 인입 CCN 노드에는 상기 CCN 이름에 대응하여 할당된 플로우 아이디를 더 전달하여 상기 인터레스트 패킷의 라우팅을 지원하는 단계;
    를 포함하는 것을 특징으로 하는 CCN 이름 기반 라우팅 방법.
  10. 제9항에 있어서,
    상기 네트워크 이름을 확인하는 단계는
    글로벌 컨텐츠 네임 서버(global content name server)와 연동하여 상기 CCN 이름에 대응하는 네트워크 이름을 확인하는 것을 특징으로 하는 CCN 이름 기반 라우팅 방법.
  11. 제10항에 있어서,
    상기 글로벌 컨텐츠 네임 서버와 연동하여 상기 CCN 이름에 대응하는 네트워크 이름 확인 시 상기 네트워크에 해당하는 QoS에 대한 정보를 더 확인하며,
    상기 포워딩 테이블을 생성하는 단계는
    상기 네트워크에 해당하는 QoS(Quality of Service)를 고려하여 생성하는 것을 특징으로 하는 CCN 이름 기반 라우팅 방법.
  12. 제2항 내지 제6항, 제8항 내지 제11항 중 어느 하나의 항에 기재된 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  13. 적어도 하나 이상의 CCN(Contents Centric Network) 노드와 상기 CCN 노드를 관리하는 제어기를 포함하는 네트워크에 있어서,
    상기 CCN 노드는
    인터레스트(interest) 패킷이 인입되면, 상기 인터레스트 패킷의 CCN 이름에 대응하는 플로우 아이디를 확인하고, 상기 확인된 플로우 아이디에 매핑된 포트 번호를 확인하고, 상기 확인된 포트로 상기 인터레스트 패킷을 전달하여 상기 인터레스트 패킷을 라우팅하되,
    상기 CCN 이름에 대응하는 플로우 아이디가 확인되면, 상기 인터레스트 패킷의 소스(source) 포트 번호를 상기 플로우 아이디로 교체하고, 상기 교체된 정보를 이름 플로우 아이디 테이블(name flow ID table)에 저장하는 것을 특징으로 하는 CCN 노드.
  14. 적어도 하나 이상의 CCN(Contents Centric Network) 노드와 상기 CCN 노드를 관리하는 제어기를 포함하는 네트워크에 있어서,
    상기 제어기는
    인입된 인터레스트(interest) 패킷이 CCN 노드로부터 전달되면, 상기 인터레스트 패킷의 CCN 이름에서 네트워크 이름을 확인하고, 상기 확인된 네트워크 이름에 대응하는 플로우 아이디를 매핑하여 포워딩 테이블을 생성하고, 상기 포워딩 테이블에 해당하는 CCN 노드들로 상기 포워딩 테이블을 전달하고, 상기 CCN 노드 중 인입 CCN 노드에는 상기 CCN 이름에 대응하여 할당된 플로우 아이디를 더 전달하여 상기 인터레스트 패킷의 라우팅을 지원하는 것을 특징으로 하는 제어기.

KR1020140081070A 2014-06-30 2014-06-30 Ccn 이름 구성 방법과 ccn 이름 기반 라우팅 방법 및 장치 KR102203489B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140081070A KR102203489B1 (ko) 2014-06-30 2014-06-30 Ccn 이름 구성 방법과 ccn 이름 기반 라우팅 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140081070A KR102203489B1 (ko) 2014-06-30 2014-06-30 Ccn 이름 구성 방법과 ccn 이름 기반 라우팅 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160002154A KR20160002154A (ko) 2016-01-07
KR102203489B1 true KR102203489B1 (ko) 2021-01-14

Family

ID=55168859

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140081070A KR102203489B1 (ko) 2014-06-30 2014-06-30 Ccn 이름 구성 방법과 ccn 이름 기반 라우팅 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102203489B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108347379A (zh) * 2018-02-12 2018-07-31 重庆邮电大学 基于区域集中存储的内容中心网络路由方法
US11178059B2 (en) 2018-10-30 2021-11-16 Electronics And Telecommunications Research Institute Apparatus and method of managing content name in information-centric networking
KR102172056B1 (ko) * 2019-10-11 2020-10-30 강원대학교산학협력단 Icn 라우터 및 콘텐츠 제공자 단말을 포함하는 토큰 기반 캐싱 시스템의 제어 방법, 장치 및 프로그램

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR101688857B1 (ko) * 2010-05-13 2016-12-23 삼성전자주식회사 컨텐츠 중심 네트워크(ccn)에서 단말 및 허브의 통신 방법 및 컨텐츠 중심 네트워크를 위한 단말
KR20130048032A (ko) * 2011-11-01 2013-05-09 한국전자통신연구원 컨텐츠 중심 네트워크에서 라우팅 방법
KR102067439B1 (ko) * 2012-10-22 2020-01-20 한국전자통신연구원 소프트웨어 정의 네트워킹 기반 네트워크에서 서비스 품질 제공 방법 및 그 장치
KR101965794B1 (ko) * 2012-11-26 2019-04-04 삼성전자주식회사 Ip 라우팅 호환을 위한 패킷의 구조, 네트워크 노드의 통신 방법 및 그 네트워크 노드
KR102100710B1 (ko) * 2012-11-26 2020-04-16 삼성전자주식회사 컨텐츠 중심 네트워크에서 컨텐츠 소유자 및 노드의 패킷 전송 방법
KR20140076955A (ko) 2012-12-13 2014-06-23 한국전자통신연구원 서비스 특성을 이용한 네트워크 제어 시스템 및, 그 제어 방법

Also Published As

Publication number Publication date
KR20160002154A (ko) 2016-01-07

Similar Documents

Publication Publication Date Title
JP6371352B2 (ja) ソフトウェア定義ネットワーク・ベースのデータ処理方法、ノード、及びシステム
US10924448B2 (en) Content delivery from home networks
US10097503B2 (en) Content node network address selection for content delivery
US10742697B2 (en) Packet forwarding apparatus for handling multicast packet
JP5368459B2 (ja) ユーザ装置における三重動作サービスのサポート
US20130332619A1 (en) Method of Seamless Integration and Independent Evolution of Information-Centric Networking via Software Defined Networking
KR20190097097A (ko) 하이브리드 네트워크에서의 라우팅
US11290423B2 (en) QOS in data stream delivery
KR101155386B1 (ko) 네트워크에서 데이터 유닛을 라우팅하기 위한 장치 및 방법
KR102203489B1 (ko) Ccn 이름 구성 방법과 ccn 이름 기반 라우팅 방법 및 장치
KR102376496B1 (ko) 서비스 스트림 분산 포워딩 시스템 및 그 방법
US20140317271A1 (en) Method and node apparatus for collecting information in content network based on information-centric networking
KR20140089035A (ko) 콘텐츠 서버와 정보 중심 네트워크 서버 간의 연동을 위한 가상 파일 시스템 및 이의 동작 방법
US20220166708A1 (en) Method and apparatus for selecting packet path to support producer mobility in information-centric networking
US20150098468A1 (en) Method of controlling routing of identifier/locator mapping service
CN111935336B (zh) 基于IPv6的网络治理方法及***
US9935895B2 (en) Gateway adapted for VOD
JP4423304B2 (ja) 通信制御システム、通信制御方法、これらに用いて好適なルーティング制御装置及びルータ装置
KR101465451B1 (ko) 차등 서비스를 제공하는 콘텐츠 중심 네트워크 시스템, 콘텐츠 중심 네트워크에서 클라이언트 장치에 연결된 에지 라우터 및 콘텐츠 중심 네트워크에서 차등 서비스를 제공하는 방법
KR102100319B1 (ko) 컨텐츠 전송 제어 방법 및 이를 위한 장치
KR20130138670A (ko) 컨텐츠 중심 네트워크의 인트라 도메인(intra domain) 및 인터 도메인(inter domain)에서 노드가 컨텐츠를 검색하는 방법 및 그 노드
KR20200049607A (ko) 정보 중심 네트워크(icn)에서 플로우 스위칭 장치 및 방법
JP2016146568A (ja) パケット振り分け装置およびパケット振り分け方法
KR20210066641A (ko) Icn 시스템에서의 푸시 데이터 처리 방법 및 장치
JP5810047B2 (ja) 通信システム、及びパケット通信方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant