KR20130008325A - 컨텐츠 중심 네트워크에서 컨텐츠 요청자, 중간 노드 및 컨텐츠 소유자의 통신 방법 - Google Patents

컨텐츠 중심 네트워크에서 컨텐츠 요청자, 중간 노드 및 컨텐츠 소유자의 통신 방법 Download PDF

Info

Publication number
KR20130008325A
KR20130008325A KR1020110069016A KR20110069016A KR20130008325A KR 20130008325 A KR20130008325 A KR 20130008325A KR 1020110069016 A KR1020110069016 A KR 1020110069016A KR 20110069016 A KR20110069016 A KR 20110069016A KR 20130008325 A KR20130008325 A KR 20130008325A
Authority
KR
South Korea
Prior art keywords
content
intermediate node
store
request packet
owner
Prior art date
Application number
KR1020110069016A
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 KR1020110069016A priority Critical patent/KR20130008325A/ko
Priority to US13/546,080 priority patent/US9400852B2/en
Publication of KR20130008325A publication Critical patent/KR20130008325A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

컨텐츠 중심 네트워크(CCN)에서 컨텐츠 요청 패킷에 의해 컨텐츠가 전달되는 경로 상에 컨텐츠가 최적 위치에 저장될 수 있도록 하는 기술을 제안한다.
특히, 캐시 토큰 및 캐퍼빌리티 비트를 이용하여 컨텐츠 소유자에게 요청한 컨텐츠를 저장할 중간 노드를 지정함으로써 컨텐츠가 전달되는 경로 상에 컨텐츠가 최적 위치에 저장될 수 있도록 하는 동시에 네트워크 사용량의 경감 및 사용자의 요청에 빠르게 응답할 수 있는 컨텐츠 중심 네트워크에서 컨텐츠 요청자, 중간 노드 및 컨텐츠 소유자의 통신 방법 및 장치를 제공할 수 있다.

Description

컨텐츠 중심 네트워크에서 컨텐츠 요청자, 중간 노드 및 컨텐츠 소유자의 통신 방법{A COMMUNICATION METHOD OF CONTENT OWNER, MIDDLE NODE AND CONTENT REQUESTER IN A CONTENTS CENTRIC NETWORK}
아래의 실시예들은 컨텐츠 중심 네트워크에서 컨텐츠 요청자, 중간 노드 및 컨텐츠 소유자의 통신 방법에 관한 것이다.
IP(Internet Protocol)는 패킷 헤더에 소스(source) 및 데스티네이션(destination)의 주소를 표시함에 비하여, 컨텐츠 중심 네트워크(Contents Centric Network; 이하, CCN)는 패킷 헤더에 필요한 컨텐츠의 이름을 표시한다. 컨텐츠 중심 네트워크에서 각 라우터들은 패킷 헤더에 적혀 있는 컨텐츠의 이름을 보고 라우팅 테이블을 구성한다. 라우팅 테이블은 해당 컨텐츠가 있는 곳으로 각 컨텐츠 요청 패킷을 보낼 수 있도록 하기 위한 것이다. 라우터를 포함하는 모든 네트워킹 기기는 스토리지를 갖고 있어 컨텐츠를 임시 저장할 수 있다.
컨텐츠의 원래(original) 소유자에게까지 가서 컨텐츠를 받아와야 하는 IP 기반 인터넷에 비해, 컨텐츠 중심 네트워크(CCN)는 중간의 어느 노드라도 자신의 스토리지에 해당 컨텐츠가 있을 경우 컨텐츠 요청자에게 응답(reply)할 수 있다. 따라서, 컨텐츠 중심 네트워크(CCN)에서는 평균 전송 경로(path)의 길이가 짧아져 전체적인 네트워크 사용량이 줄어들게 된다.
하지만, 컨텐츠 중심 네트워크(CCN)는 컨텐츠 요청 패킷의 전송 후에 컨텐츠가 전달되는 경로상의 모든 이용 가능한 네트워킹 기기들에 해당 컨텐츠가 저장된다. 즉, 모든 네트워크의 자원(Storage)에 동일한 컨텐츠가 지속적으로 갱신 및 저장되기 때문에 자원 사용이 비효율적이고, 사용 가능한 네트워크 자원 대비 컨텐츠의 저장 시간이 짧아지게 된다. 또한, 모든 네트워킹 기기가 동일한 컨텐츠를 소유하고 있으므로 저장되지 않은 컨텐츠에 대한 컨텐츠 요청 패킷은 네트워크의 중간 노드에서 빠르게 응답하지 못하고 원래의 서버까지 도달해야 한다.
따라서, 컨텐츠 중심 네트워크(CCN)에서 컨텐츠가 전달되는 동안 컨텐츠를 효율적으로 저장하는 동시에 네트워크 자원(Storage)을 효율적으로 관리할 수 있는 통신 방법이 요구된다.
일 실시예에 따른 컨텐츠 중심 네트워크에서 컨텐츠 요청자의 통신 방법은 컨텐츠 요청자, 적어도 하나의 중간 노드 및 컨텐츠 소유자를 포함하는 컨텐츠 중심 네트워크에서 컨텐츠 요청자의 통신 방법에 있어서, 상기 컨텐츠 소유자에게 요청한 컨텐츠를 저장할 중간 노드를 지정하는데 이용되는 캐시 토큰을 포함하는 컨텐츠 요청 패킷을 생성하는 단계; 및 상기 컨텐츠 요청 패킷을 상기 적어도 하나의 중간 노드 및 상기 컨텐츠 소유자에게 전송하는 단계를 포함한다.
상기 컨텐츠 요청 패킷은 상기 적어도 하나의 중간 노드가 상기 컨텐츠를 저장할 수 있는지 여부를 나타내는 캐퍼빌리티 비트(capability bit)를 더 포함할 수 있다.
상기 캐시 토큰의 값을 초기화 하는 단계를 더 포함할 수 있다.
일 실시예에 따른 컨텐츠 중심 네트워크에서 중간 노드의 통신 방법은 컨텐츠 요청자, 적어도 하나의 중간 노드 및 컨텐츠 소유자를 포함하는 컨텐츠 중심 네트워크에서 중간 노드의 통신 방법에 있어서, 상기 컨텐츠 소유자로부터, 상기 컨텐츠 요청자가 요청한 컨텐츠 및 상기 컨텐츠를 저장할 중간 노드를 결정하는 데에 이용되는 캐시 토큰을 포함하는 컨텐츠 전달 패킷을 수신하는 단계; 상기 캐시 토큰의 값이 상기 중간 노드가 발행한 캐시 토큰의 값과 일치하는지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 컨텐츠를 상기 중간 노드에 저장하는 단계를 포함한다.
상기 컨텐츠 요청자로부터 컨텐츠 요청 패킷을 수신하는 단계; 및 상기 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 변경하여 상기 중간 노드에 대응되는 캐시 토큰을 발행하는 단계를 더 포함할 수 있다.
상기 컨텐츠 요청 패킷은 상기 컨텐츠 소유자에게 요청한 컨텐츠의 이름, 상기 컨텐츠의 세그먼트, 및 상기 컨텐츠를 저장할 수 있는지 여부를 나타내는 캐퍼빌리티 비트(capability bit)를 더 포함할 수 있다.
상기 캐퍼빌리티 비트를 마킹(marking)하는 단계를 더 포함할 수 있다.
상기 캐퍼빌리티 비트를 마킹하는 단계는 상기 캐퍼빌리티 비트의 최상위 비트 또는 최하위 비트로부터 시작하여 상기 중간 노드에 대응되는 위치의 비트를 마킹할 수 있다.
상기 캐퍼빌리티 비트를 마킹하는 단계는 상기 컨텐츠에 대한 요청 빈도 및 상기 중간 노드의 저장 공간을 기초로 상기 캐퍼빌리티 비트를 마킹하는 단계일 수 있다.
상기 캐퍼빌리티 비트를 마킹하는 단계는 상기 중간 노드의 이웃 노드가 상기 캐퍼빌리티 비트를 마킹했는지 여부를 기초로 상기 캐퍼빌리티 비트를 마킹하는 단계일 수 있다.
일 실시예에 따른 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법은 컨텐츠 요청자, 적어도 하나의 중간 노드 및 컨텐츠 소유자를 포함하는 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법에 있어서, 상기 컨텐츠 요청자가 요청하는 컨텐츠의 이름을 포함하는 컨텐츠 요청 패킷을 수신하는 단계; 상기 적어도 하나의 중간 노드 중 상기 컨텐츠 요청 패킷에 응답하는 컨텐츠를 저장할 중간 노드를 결정하는 단계; 및 상기 컨텐츠 요청자 및 상기 적어도 하나의 중단 노드에게 상기 컨텐츠 및 캐시 토큰-상기 캐시 토큰은 상기 컨텐츠를 저장할 중간 노드를 지정하는 데에 이용됨-을 포함하는 컨텐츠 전달 패킷을 전송하는 단계를 포함한다.
상기 컨텐츠 요청 패킷은 상기 컨텐츠에 대한 세그먼트, 상기 컨텐츠를 저장할 중간 노드를 지정하는데 이용되는 캐시 토큰 및 상기 적어도 하나의 중간 노드가 상기 컨텐츠를 저장할 수 있는지 여부를 나타내는 캐퍼빌리티 비트(capability bit) 중 적어도 하나를 포함할 수 있다.
상기 컨텐츠를 저장할 중간 노드를 지정하는데 이용되는 캐시 토큰(cache token)의 값 또는 상기 캐시 토큰의 개수 중 적어도 하나를 설정하는 단계를 더 포함할 수 있다.
상기 컨텐츠를 저장할 중간 노드를 결정하는 단계는 상기 컨텐츠 요청 패킷에 포함된 캐퍼빌리티 비트를 기초로 상기 컨텐츠를 저장할 중간 노드를 결정하는 단계일 수 있다.
상기 컨텐츠를 저장할 중간 노드를 결정하는 단계는 상기 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 기초로 상기 컨텐츠를 저장할 중간 노드를 결정하는 단계일 수 있다.
상기 컨텐츠를 저장할 중간 노드를 결정하는 단계는 상기 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 기초로 상기 컨텐츠 요청자에게 근접한 중간 노드를 파악하는 단계; 및 상기 컨텐츠 요청자에게 근접한 중간 노드를 상기 컨텐츠를 저장할 중간 노드로 결정하는 단계를 포함할 수 있다.
상기 컨텐츠를 저장할 중간 노드를 결정하는 단계는 상기 컨텐츠 요청 패킷이 전송된 네트워크 경로, 상기 컨텐츠의 특성, 상기 컨텐츠의 사이즈 및 상기 컨텐츠에 대한 요청 빈도, 상기 적어도 하나의 중간 노드의 저장 공간 중 적어도 하나를 고려하여 상기 컨텐츠를 저장할 중간 노드를 결정할 수 있다.
상기 컨텐츠 요청 패킷이 전송된 네트워크 경로를 고려하여 상기 컨텐츠를 저장할 중간 노드를 결정하는 단계는 상기 컨텐츠 요청자가 복수의 네트워크 경로들을 가지거나, 상기 적어도 하나의 중간 노드가 복수의 네트워크 경로들을 가지는 경우, 상기 컨텐츠의 특성을 기초로 상기 컨텐츠를 저장할 중간 노드를 서로 상이한 경로에 위치하도록 상기 중간 노드로 결정할 수 있다.
일 실시예에 따르면, 컨텐츠 중심 네트워크(CCN)에서 네트워킹 기기의 상태(Cache size), 컨텐츠 요청 상황(Frequency of request) 등을 고려함으로써 컨텐츠 요청 패킷에 의해 컨텐츠가 전달되는 경로 상에서 컨텐츠를 최적 위치에 저장할 수 있다.
일 실시예에 따르면, 컨텐츠 요청 메시지에 따른 컨텐츠를 컨텐츠가 전송되는 경로 상의 최적의 위치에 분산 저장함으로써 외부 서버나 관리자의 도움 없이 네트워크 사용량의 경감을 가져오는 동시에, 사용자 요청에 빠르게 응답할 수 있다.
일 실시예에 따르면, 컨텐츠 요청 패킷에 의한 컨텐츠 응답 절차가 진행되는 동안 네트워크 경로의 적절한 위치에 컨텐츠를 저장함으로써 네트워크 캐싱 효과를 높이는 한편, 저장된 컨텐츠의 사용률을 높일 수 있다.
또한, 일 실시예에 따르면, 컨텐츠 요청이 많은 곳에 컨텐츠를 저장함으로써 네트워크의 사용 경로를 최소화하고, 사용자 요청에 대한 응답 시간을 줄일 수 있다.
도 1은 일 실시예에 따른 컨텐츠 중심 네트워크에서 캐시 토큰을 이용하여 적응적으로 컨텐츠를 저장하는 것을 방법을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 컨텐츠 중심 네트워크에서 컨텐츠 요청자의 통신 방법을 나타낸 플로우 차트이다.
도 3은 일 실시예에 따른 컨텐츠 중심 네트워크에서 중간 노드의 통신 방법을 나타낸 플로우 차트이다.
도 4는 일 실시예에 따른 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법을 나타낸 플로우 차트이다.
도 5는 일 실시예에 따른 컨텐츠 요청 패킷에 포함된 구성 요소를 나타낸 도면이다.
도 6은 일 실시예에 따른 다중 경로에서 캐시 토큰을 이용하여 분산 저장을 수행하는 것을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 컨텐츠 중심 네트워크에서 컨텐츠 요청자의 블럭도이다.
도 8은 일 실시예에 따른 컨텐츠 중심 네트워크에서 중간 노드의 블럭도이다.
도 9는 일 실시예에 따른 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 블럭도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 일실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
컨텐츠 중심 네트워크(CCN)에서 컨텐츠가 전달되는 경로에 위치한 네트워크 장비들 각각은 컨텐츠 요청자로부터 요청된 컨텐츠를 저장하고, 저장된 컨텐츠의 이름을 기반으로 하여 보다 간단하게 컨텐츠를 공유한다.
컨텐츠 중심 네트워크에서 컨텐츠 요청자는 컨텐츠 요청 패킷(즉, 인터리스트(Interest))을 컨텐츠 소유자에게 전송한다. 이에 응답하여 컨텐츠 요청 패킷을 수신한 컨텐츠 소유자는 컨텐츠 요청자에게 요청한 컨텐츠를 포함하는 컨텐츠 전송 패킷을 전송한다. 컨텐츠 요청자가 요청한 컨텐츠를 포함하는 컨텐츠 전송 패킷이 전송될 때, 중간 노드들은 컨텐츠 요청 패킷이 수신된 경로로 컨텐츠를 전달하고, 전달과 동시에 자신(중간 노드)의 저장 공간에 컨텐츠를 임시적으로 저장한다.
따라서, 다수의 컨텐츠 요청자들이 컨텐츠 요청 패킷을 전송하게 되면 네트워크 경로상의 중간 노드들에는 많은 양의 동일한 컨텐츠가 저장된다. 이때, 네트워크 경로상의 중간 노드들은 항상 새로운 컨텐츠를 위주로 저장한다.
도 1은 일 실시예에 따른 컨텐츠 중심 네트워크에서 캐시 토큰을 이용하여 적응적으로 컨텐츠를 저장하는 방법을 설명하기 위한 도면이다.
컨텐츠 중심 네트워크(CCN)는 컨텐츠 요청자(Content Requester)(110), 적어도 하나의 중간 노드(120,130,140) 및 컨텐츠 소유자(Content Owner)(150)를 포함할 수 있다.
컨텐츠 중심 네트워크(CCN)에서 패킷은 컨텐츠 요청 패킷과 컨텐츠 전달 패킷으로 구분할 수 있다. 컨텐츠 요청 패킷은 인터리스트(Interest)라고도 하며, 컨텐츠 요청자(110)가 요청하는 컨텐츠의 이름을 포함한다. 컨텐츠 전달 패킷은 컨텐츠 소유자(150)가 컨텐츠 요청자(110)로부터 요청 받은 컨텐츠와 해당 컨텐츠의 이름 등을 포함한다.
컨텐츠 요청자(110)로부터 컨텐츠 요청 패킷을 수신한 경우, 중간 노드들(120,130,140)은 컨텐츠 요청 패킷의 헤더에 있는 컨텐츠 이름을 기반으로 자신(중간 노드)의 스토리지(storage)를 검색한다. 만약, 자신이 해당 컨텐츠를 갖고 있을 경우, 중간 노드들(120,130,140)은 그 컨텐츠를 컨텐츠 요청자(110)에게 전달할 수 있다. 컨텐츠 중심 네트워크에 포함된 컨텐츠 요청자(110), 중간 노드들(120,130,140) 및 컨텐츠 소유자(150)는 예를 들어, 단말, 라우터, 액세스 포인트 등과 같은 네트워킹 기기들일 수 있다.
일 실시예에 따르면, 컨텐츠 중심 네트워크의 중간 노드들(120,130,140)은 각각 자신의 캐시 토큰(Cache Token)을 발행할 수 있다. 또한, 컨텐츠 소유자(150)는 컨텐츠 전송 시에 컨텐츠를 저장할 노드를 지정하기 위해 캐시 토큰을 발행할 수 있다. 따라서, 컨텐츠 소유자(150)에 의해 발행된 캐시 토큰의 값과 일치하는 캐시 토큰의 값을 가지고 있는 중간 노드만이 컨텐츠를 자신의 저장 공간에 저장하도록 할 수 있다.
컨텐츠 요청자(110)는 컨텐츠 요청 패킷의 생성 시에 컨텐츠의 이름과 함께 캐시 토큰을 초기화할 수 있다. 캐시 토큰의 초기값은 발행 시에 임의 값으로 설정되거나, 정해진 값에서 시작되도록 할 수 있다.
예를 들어, 도 1과 같이 정해진 캐시 토큰의 초기값이 '1'이라고 가정하자. 그러면, 컨텐츠 요청자(110)는 컨텐츠 요청 패킷의 생성 시에 캐시 토큰을 '1'로 초기화 한다. 그 후, 컨텐츠 요청자(110)로부터 컨텐츠 요청 패킷을 수신한 중간 노드(120)는 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 '1'로 증가시킨 값(여기서는 '2')으로 변경하여 자신에 대응되는 캐시 토큰을 발행할 수 있다. 이때, 캐시 토큰에서 증가되는 값은 컨텐츠 중심 네트워크 시스템에서 정해진 정책으로 결정되거나, 컨텐츠 중심 네트워크 시스템 내의 각 엔티티들(즉, 컨텐츠 요청자(110), 중간 노드들(120,130,140) 및 컨텐츠 소유자(150)) 간의 약속에 의해 미리 결정될 수도 있다.
마찬가지 방법으로 중간 노드(120) 및 중간 노드(130)는 자신의 이웃하는 다음 중간 노드들 또는 컨텐츠 소유자(150)에게 컨텐츠 요청 패킷을 전송할 수 있다.
컨텐츠 요청 패킷을 수신한 컨텐츠 소유자(150)는 네트워크 경로를 측정하여 컨텐츠를 어느 위치에 저장시킬 것인지를 결정할 수 있다. 이때, 컨텐츠 소유자(150)는 컨텐츠의 특성(또는 종류), 컨텐츠의 사이즈, 해당 컨텐츠에 대한 요청 빈도, 중간 노드들의 저장 공간 등을 고려해서 컨텐츠의 저장 위치를 다양하게 결정할 수 있다.
컨텐츠 소유자(150)는 예를 들어, 도 1과 같이 캐시 토큰의 값이 '3'인 중간 노드(130)만이 해당 컨텐츠를 저장하도록 할 수 있다. 이 경우, 컨텐츠 소유자(150)는 컨텐츠 전달 패킷에 캐시 토큰의 값을 '3'으로 설정할 수 있다. 컨텐츠 전달 패킷을 수신한 중간 노드들(120,130,140)은 컨텐츠 전달 패킷에 포함된 캐시 토큰의 값('3')이 자신이 발행한 캐시 토큰의 값과 일치하는지 여부를 판단할 수 있다. 이때, 중간 노드(130)은 자신이 발행한 캐시 토큰의 값('3')과 컨텐츠 전달 패킷에 포함된 캐시 토큰의 값('3')이 일치하므로 해당 컨텐츠를 자신의 스토리지에 저장할 수 있다.
또한, 컨텐츠 소유자(150)는 다양한 상황에 따라 캐시 토큰의 개수를 조절함으로써 컨텐츠를 네트워크 경로 상의 적절한 위치에 분산 저장할 수 있다. 예를 들어, 컨텐츠 소유자(150)가 캐시 토큰을 2개(예를 들어, '2' 및 '3') 발행하면, 캐시 토큰의 값이 2, 3인 중간 노드들(120,130)이 해당 컨텐츠를 저장할 수 있다.
물론, 캐시 토큰의 값이 2, 3인 중간 노드들(120,130)은 컨텐츠 전달 패킷을 수신함에 앞서, 캐퍼빌리티 비트를 이용하여 해당 컨텐츠에 대한 요청 빈도가 높거나, 자신의 저장 공간이 충분함을 컨텐츠 소유자(150)에게 알릴 수 있다. 캐퍼빌리티 비트는 캐시 토큰과 함께 컨텐츠 요청 패킷에 포함되어 컨텐츠 소유자(150)에게 전송될 수 있다.
도 2는 일 실시예에 따른 컨텐츠 중심 네트워크에서 컨텐츠 요청자의 통신 방법을 나타낸 플로우 차트이다. 컨텐츠 중심 네트워크는 컨텐츠 요청자, 적어도 하나의 중간 노드 및 컨텐츠 소유자를 포함한다.
컨텐츠 요청자는 캐시 토큰을 포함하는 컨텐츠 요청 패킷을 생성한다(210). 캐시 토큰은, 컨텐츠 요청자가 컨텐츠 소유자에게 요청한, 컨텐츠를 저장할 중간 노드를 지정하는데 이용될 수 있다. 컨텐츠 요청 패킷은 적어도 하나의 중간 노드가 컨텐츠를 저장할 수 있는지 여부를 나타내는 캐퍼빌리티 비트(capability bit)를 더 포함할 수 있다. 컨텐츠 요청 패킷의 구조에 대하여는 도 5를 참조하여 상세히 설명한다.
컨텐츠 요청자는 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 초기화 할 수 있다(220).
컨텐츠 요청자는 컨텐츠 요청 패킷을 적어도 하나의 중간 노드 및 컨텐츠 소유자에게 전송한다(230).
도 3은 일 실시예에 따른 컨텐츠 중심 네트워크에서 중간 노드의 통신 방법을 나타낸 플로우 차트이다.
중간 노드는 컨텐츠 요청자로부터 컨텐츠 요청 패킷을 수신할 수 있다(310).
중간 노드는 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 변경하여 중간 노드에 대응되는 캐시 토큰을 발행할 수 있다(320). 예를 들어, 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값이 '2'이고, 중간 노드의 위치가 컨텐츠 요청자로부터 두 번째라고 가정하면, 중간 노드는 캐시 토큰의 값을 '3'으로 변경하여 자신에 대응되는 캐시 토큰을 발행할 수 있다.
컨텐츠 요청 패킷은 캐시 토큰 이외에도 컨텐츠 소유자에게 요청한 컨텐츠의 이름, 컨텐츠의 세그먼트, 및 캐퍼빌리티 비트를 더 포함할 수 있다. 캐퍼빌리티 비트는 중간 노드가 해당 컨텐츠를 저장할 수 있는지 여부를 나타내는데 이용되는 비트이다.
중간 노드는 캐퍼빌리티 비트를 마킹할 수 있다(330). 중간 노드는 캐퍼빌리티 비트를 마킹 함으로써 자신이 컨텐츠를 저장할 수 있음을 컨텐츠 소유자에게 알릴 수 있다. 캐퍼빌리티 비트를 마킹하는 방법에 대한 다양한 실시예는 아래와 같다.
중간 노드는 캐퍼빌리티 비트(capability bit)의 최상위 비트 또는 최하위 비트로부터 시작하여 중간 노드에 대응되는 위치의 비트를 마킹할 수 있다. 예를 들어, 캐퍼빌리티 비트가 '0000|0000|0000|0000'이고, 중간 노드가 컨텐츠 요청자로부터 4번째 위치하는 중간 노드라고 가정하자. 이 경우, 중간 노드는 최상위 비트로부터 중간 노드에 대응되는 위치, 즉 4번째 위치의 비트를 '0001|0000|0000|0000'와 같이 마킹할 수 있다. 또는 중간 노드는 최하위 비트부터 중간 노드에 대응되는 위치의 비트를 '0000|0000|0000|1000'와 같이 마킹할 수도 있다. 이 밖에도 중간 노드는 캐퍼빌리티 비트에서 자신의 위치에 대응되는 위치를 2진수, 4진수, 8진수, 16진수 등의 방법으로 표현한 값으로 마킹할 수도 있다.
중간 노드는 컨텐츠에 대한 요청 빈도 및 중간 노드의 저장 공간을 기초로 캐퍼빌리티 비트를 마킹할 수 있다. 예를 들어, 컨텐츠 A, B, C 중 컨텐츠 요청자로부터 3번째 위치하는 중간 노드에서는 컨텐츠 B에 대한 요청 빈도가 높고, 컨텐츠 요청자로부터 4번째 위치하는 중간 노드에서는 컨텐츠 A에 대한 요청 빈도가 높다고 하자. 또한, 컨텐츠 중심 네트워크에서 컨텐츠 요청자가 컨텐츠 요청 패킷을 통해 요청하는 컨텐츠가 컨텐츠 B이고, 컨텐츠 요청자로부터 3번째 위치하는 중간 노드의 저장 공간에 여유가 있다고 하자. 이 경우, 컨텐츠 요청자로부터 3번째 위치하는 중간 노드는 자신의 위치에서의 컨텐츠 B에 대한 요청 빈도가 높거나, 자신의 저장 공간에 여유가 있으면 캐퍼빌리티 비트를 마킹할 수 있다. 또한, 컨텐츠 소유자는 캐퍼빌리티 비트를 참조하여 컨텐츠 요청자로부터 3번째 위치하는 중간 노드가 컨텐츠 B를 저장하도록 할 수 있다.
이 밖에도 중간 노드는 자신(중간 노드)의 이웃 노드가 캐퍼빌리티 비트를 마킹했는지 여부를 기초로 캐퍼빌리티 비트(capability bit)를 마킹(masking)할 수 있다. 예를 들어, 자신이 컨텐츠 요청자로부터 3번째 위치하는 중간 노드이고, 자신의 이웃인 컨텐츠 요청자로부터 2번째 위치하는 중간 노드가 캐퍼빌리티 비트를 '0000|0000|0000|0010'과 같이 마킹한 경우, 중간 노드는 자신의 이웃 노드를 참조하여 자신의 위치에 해당하는 캐퍼빌리티 비트를 마킹할 수 있다. 따라서, 최종적인 캐퍼빌리티 비트는 '0000|0000|0000|0110'가 될 수 있다.
중간 노드는 컨텐츠 요청 패킷을 다른 중간 노드 또는 컨텐츠 소유자에게 전달할 수 있다(340).
그 후, 중간 노드는 컨텐츠 소유자로부터, 캐시 토큰을 포함하는 컨텐츠 전달 패킷을 수신한다(350). 상술한 바와 같이 캐시 토큰은 컨텐츠 요청자가 요청한 컨텐츠 및 컨텐츠를 저장할 중간 노드를 결정하는 데에 이용될 수 있다.
중간 노드는 컨텐츠 전달 패킷에 포함된 캐시 토큰의 값이 중간 노드 자신이 발행한 캐시 토큰의 값과 일치하는지 여부를 판단한다(360).
360에서의 판단 결과, 컨텐츠 전달 패킷에 포함된 캐시 토큰의 값이 중간 노드가 발행한 캐시 토큰의 값과 일치하면, 중간 노드는 컨텐츠를 자신의 스토리지에 저장한다(370).
반면에, 360에서 캐시 토큰의 값이 일치하지 않으면, 중간 노드는 컨텐츠 전달 패킷에 포함된 컨텐츠를 자신의 스토리지에 저장하지 않고, 다음 중간 노드 또는 컨텐츠 요청자에게 전달한다.
도 4는 일 실시예에 따른 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법을 나타낸 플로우 차트이다.
컨텐츠 소유자는 컨텐츠 요청자가 요청하는 컨텐츠의 이름을 포함하는 컨텐츠 요청 패킷을 수신한다(410).
컨텐츠 소유자는 적어도 하나의 중간 노드 중 컨텐츠 요청 패킷에 응답하는 컨텐츠를 저장할 중간 노드를 결정한다(420). 컨텐츠 소유자는 컨텐츠 요청 패킷에 포함된 캐퍼빌리티 비트를 기초로 컨텐츠를 저장할 중간 노드를 결정할 수 있다. 또한, 컨텐츠 소유자는 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 기초로 컨텐츠를 저장할 중간 노드를 결정할 수 있다.
캐시 토큰의 값을 기초로 컨텐츠를 저장할 중간 노드를 결정하는 경우에 컨텐츠 소유자는 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 기초로 컨텐츠 요청자에게 근접한 중간 노드를 파악한 후, 컨텐츠 요청자에게 근접한 중간 노드를 컨텐츠를 저장할 중간 노드로 결정할 수 있다. 즉, 컨텐츠 소유자는 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값이 '7'이라고 하면, 7개의 중간 노드들 중 컨텐츠 요청자로부터 첫 번째 내 두 번째 위치에 있는 중간 노드들(즉, 캐시 토큰의 값이 '2' 내지 '3'인 중간 노드들)을 컨텐츠를 저장할 중간 노드로 결정할 수 있다.
또한, 컨텐츠 소유자는 컨텐츠 요청 패킷이 전송된 네트워크 경로, 컨텐츠의 특성, 컨텐츠의 사이즈 및 컨텐츠에 대한 요청 빈도, 적어도 하나의 중간 노드의 저장 공간 중 적어도 하나를 고려하여 컨텐츠를 저장할 중간 노드를 결정할 수 있다.
컨텐츠 소유자는 컨텐츠의 특성 또는 종류(예를 들어, 컨텐츠가 음악 파일인지, 영화 파일인지, 텍스트 파일인지 등)에 따라 컨텐츠 요청자로부터의 거리를 달리하거나, 네트워크 경로를 달리하여 컨텐츠를 저장하도록 할 수 있다. 또한, 컨텐츠 소유자는 해당 컨텐츠의 사이즈가 크거나, 요청 빈도가 높은 경우에는 컨텐츠 요청자로부터 가까운 위치에 컨텐츠를 저장하고, 사이즈가 작거나 요청 빈도가 낮은 경우에는 컨텐츠 요청자로부터 먼 위치에 컨텐츠를 저장하도록 할 수 있다.
또한, 컨텐츠 소유자는 적어도 하나의 중간 노드 중 컨텐츠를 저장하기에 충분한 저장 공간을 가진 중간 노드가 해당 컨텐츠를 저장하도록 할 수 있다. 이때, 중간 노드가 저장 공간을 충분히 확보하고 있는지 또는 해당 컨텐츠에 대한 요청 빈도가 높은지 여부는 컨텐츠 요청 패킷에 포함된 캐퍼빌리티 비트를 통해 파악할 수 있다.
이 밖에도 컨텐츠 소유자는 컨텐츠 요청자가 복수의 네트워크 경로들을 가지거나, 적어도 하나의 중간 노드가 복수의 네트워크 경로들을 가지는 경우, 컨텐츠의 특성(또는 종류)을 기초로 컨텐츠를 저장할 중간 노드를 결정할 수 있다. 이때, 컨텐츠 소유자는 컨텐츠의 특성(또는 종류)을 기초로 각각의 컨텐츠가 저장되는 중간 노드가 서로 상이한 경로에 위치하도록 결정할 수 있다. 컨텐츠 중심 네트워크에서 복수의 네트워크 경로로 존재하는 경우의 통신 방법은 도 6을 참조하여 설명한다.
컨텐츠 소유자는 컨텐츠를 저장할 중간 노드를 지정하는데 이용되는 캐시 토큰(cache token)의 값 또는 캐시 토큰의 개수 중 적어도 하나를 설정할 수 있다(430).
컨텐츠 소유자는 컨텐츠 요청자 및 적어도 하나의 중단 노드에게 컨텐츠 및 캐시 토큰을 포함하는 컨텐츠 전달 패킷을 전송한다. 캐시 토큰은 컨텐츠를 저장할 중간 노드를 지정하는 데에 이용될 수 있다.
도 5는 일 실시예에 따른 컨텐츠 요청 패킷에 포함된 구성 요소를 나타낸 도면이다.
컨텐츠 요청 패킷은 컨텐츠 프리픽스(Prefix)(510), 컨텐츠의 세그먼트(Segment)(520), 캐시 토큰(Cache Token)(530) 및 캐퍼빌리티 비트(Capability Bit)(540)를 포함할 수 있다.
컨텐츠 프리픽스(Prefix)(510)는 컨텐츠 중심 네트워크에서 해당 컨텐츠를 찾아가기 위해 필요한 컨텐츠의 이름에 해당하는 부분으로, 도 5의 경우, 컨텐츠 프리픽스(Prefix)(510)를 통해 필요한 컨텐츠가 naver.com의 news 디렉토리에 포함된 earthquake 임을 알 수 있다.
컨텐츠의 세그먼트(Segment)(520)는 컨텐츠가 복수 개의 세그먼트로 구성된 경우에 필요한 컨텐츠가 몇 번째 세그먼트인지를 나타내는 부분이다.
캐시 토큰(Cache Token)(530)은 상술한 바와 같이 컨텐츠를 저장할 중간 노드를 지정하는 데에 이용된다.
캐퍼빌리티 비트(Capability Bit)(540)는 중간 노드 등이 자신이 컨텐츠를 저장할 수 있음을 컨텐츠 소유자에게 알리는 데 이용된다.
컨텐츠 요청자는 컨텐츠 요청 패킷의 생성 시에 캐시 토큰(530)의 값을 초기화 하고, 중간 노드는 캐시 토큰(530)의 값을 증가 또는 감소시켜 자신의 캐시 토큰을 발행한다. 따라서, 컨텐츠가 전달되는 동안 컨텐츠 소유자가 발행한 캐시 토큰과 일치되는 캐시 토큰을 가지는 중간 노드만이 컨텐츠를 저장하게 된다.
또한, 중간 노드는 자신이 컨텐츠를 저장하고자 하는 경우에 캐퍼빌리티 비트(540)를 마킹하여 향후 컨텐츠가 저장될 수 있도록 한다. 이때, 중간 노드는 캐퍼빌리티 비트(540) 중 최상위 또는 최하위 비트부터 시작하여 자신의 순서에 해당되는 비트(Bit)를 마킹할 수 있다. 그 결과로서 컨텐츠 소유자는 캐퍼빌리티 비트(540)가 마킹된 중간 노드만이 컨텐츠를 저장하고, 나머지 중간 노드들은 해당 컨텐츠를 저장하지 않도록 유도를 할 수 있다.
도 6은 일 실시예에 따른 다중 경로에서 캐시 토큰을 이용하여 분산 저장을 수행하는 것을 설명하기 위한 도면이다.
도 6을 참조하면, 컨텐츠 중심 네트워크(CCN)는 컨텐츠 요청자(Content Requester)(610), 적어도 하나의 중간 노드들(620,630,640,650 및 660) 및 컨텐츠 소유자(Content Owner)(670)를 포함할 수 있다. 이때, 컨텐츠 요청자(610)는 컨텐츠 소유자(670)에게 음악 파일 및 영화 파일을 요청한다고 가정한다.
컨텐츠 중심 네트워크(CCN)에서 컨텐츠 요청자(610)가 컨텐츠 소유자(670)와 연결된 복수의 경로를 가지거나, 컨텐츠 요청자(610)와 연결된 적어도 하나의 중간 노드들(620,630,640,650 및 660)이 복수의 경로를 가질 수 있다. 컨텐츠 요청자(610)와 연결된 복수의 경로를 가지고 있는 경우, 컨텐츠 소유자(670)는 컨텐츠들(음악 파일 및 영화 파일 등)을 컨텐츠 요청을 수신한 동일한 경로를 통해 전송할 수도 있고, 컨텐츠 별로 서로 상이한 경로로 전송할 수도 있다. 컨텐츠 소유자(670)는 서로 상이한 경로로 컨텐츠 요청 패킷으로 전송함으로써 컨텐츠 중심 네트워크에서 컨텐츠의 분산 저장을 지원할 수 있다.
도 6과 같이 복수의 경로를 가지고 있는 경우, 컨텐츠 소유자(670)는 컨텐츠의 특성 또는 종류에 따라 각 컨텐츠마다 또는 세그먼트마다에 대하여 상이한 경로를 선택하여 컨텐츠 또는 세그먼트를 서로 상이한 위치(즉, 중간 노드)에 저장할 수 있다.
컨텐츠 중심 네트워크에서 컨텐츠가 네트워크의 경로 상에 저장되면, 네트워크 측면에서 대역폭의 사용에 효율적일 수 있다. 하지만, 컨텐츠의 소유자(670)가 네트워크의 경로 상에 컨텐츠가 저장되는 것을 원하지 않을 수도 있다. 따라서, 일 실시예에서는 컨텐츠의 소유자(670)가 네트워크의 경로 상에 컨텐츠가 저장되는 것을 원하지 않을 경우, 컨텐츠 소유자가 캐시 토큰을 발행하지 않음으로써 자신의 컨텐츠가 네트워크의 경로 상에 저장되지 않도록 지정할 수도 있다.
즉, 컨텐츠 소유자(670)는 요청받은 컨텐츠 중 음악 파일은 중간 노드(650)에 저장하고, 요청 받은 컨텐츠 중 영화 파일을 컨텐츠 요청 패킷을 수신한 경로에 있는 중간 노드(630)에 저장하거나, 컨텐츠 요청 패킷을 수신하지 않은 상이한 경로에 위치한 중간 노드(660)에 저장할 수 있다.
또한, 중간 노드들(620,630,640,650 및 660)은 컨텐츠 요청자(610)의 요청 빈도에 비례하여 각 중간 노드들(620,630,640,650 및 660)들의 저장 공간 내에 저장된 컨텐츠에 대한 라이프 타임(Life Time)을 조절하여 보관 될 수 있다. 즉, 중간 노드들(620,630,640,650 및 660)은 해당 컨텐츠에 대한 컨텐츠 요청자(610)의 요청 빈도가 낮으면 그 만큼 저장되는 시간이 줄여 네트워크 기기의 저장 공간을 확보할 수 있다.
도 7은 일 실시예에 따른 컨텐츠 중심 네트워크에서 컨텐츠 요청자의 블럭도이다. 컨텐츠 요청자(700)는 생성부(710), 초기화부(730) 및 전송부(750)를 포함한다.
생성부(710)는 컨텐츠 소유자에게 요청한 컨텐츠를 저장할 중간 노드를 지정하는데 이용되는 캐시 토큰을 포함하는 컨텐츠 요청 패킷을 생성한다.
컨텐츠 요청 패킷은 적어도 하나의 중간 노드가 컨텐츠를 저장할 수 있는지 여부를 나타내는 캐퍼빌리티 비트(capability bit)를 더 포함할 수 있다.
초기화부(730)는 캐시 토큰의 값을 초기화할 수 있다.
전송부(750)는 컨텐츠 요청 패킷을 적어도 하나의 중간 노드 및 컨텐츠 소유자에게 전송한다.
도 8은 일 실시예에 따른 컨텐츠 중심 네트워크에서 중간 노드의 블럭도이다.
중간 노드(800)는 수신부(810), 판단부(820) 및 저장부(830)를 포함한다. 또한, 중간 노드(800)는 발행부(840), 마킹부(850) 및 전송부(860)를 더 포함할 수 있다.
수신부(810)는 컨텐츠 소유자로부터, 컨텐츠 요청자가 요청한 컨텐츠 및 컨텐츠를 저장할 중간 노드를 결정하는 데에 이용되는 캐시 토큰을 포함하는 컨텐츠 전달 패킷을 수신한다.
또한, 수신부(810)는 컨텐츠 요청자로부터 컨텐츠 요청 패킷을 수신할 수 있다.
컨텐츠 요청 패킷은 컨텐츠 소유자에게 요청한 컨텐츠의 이름, 컨텐츠의 세그먼트 및 컨텐츠를 저장할 수 있는지 여부를 나타내는 캐퍼빌리티 비트(capability bit)를 더 포함할 수 있다.
판단부(820)는 컨텐츠 전달 패킷에 포함된 캐시 토큰의 값이 자신(중간 노드)이 발행한 캐시 토큰의 값과 일치하는지 여부를 판단한다.
저장부(830)는 판단 결과를 기초로 컨텐츠를 중간 노드에 저장한다.
발행부(840)는 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 변경하여 중간 노드에 대응되는 캐시 토큰을 발행할 수 있다.
마킹부(850)는 캐퍼빌리티 비트(capability bit)를 마킹(masking)할 수 있다.
마킹부(850)는 캐퍼빌리티 비트(capability bit)의 최상위 비트 또는 최하위 비트로부터 시작하여 중간 노드에 대응되는 위치의 비트를 마킹할 수 있다. 또한, 마킹부(850)는 컨텐츠에 대한 요청 빈도 및 중간 노드의 저장 공간을 기초로 캐퍼빌리티 비트(capability bit)를 마킹(masking)할 수 있다.
마킹부(850)는 중간 노드의 이웃 노드가 캐퍼빌리티 비트를 마킹했는지 여부를 기초로 캐퍼빌리티 비트(capability bit)를 마킹(masking)할 수 있다.
전송부(860)는 컨텐츠 소유자 또는 중간 노드로부터 수신한 컨텐츠 전달 패킷을 다음 중간 노드 또는 컨텐츠 요청자에게 전송할 수 있다. 또한, 전송부(860)는 컨텐츠 요청자 또는 중간 노드로부터 수신한 컨텐츠 요청 패킷을 컨텐츠 소유자 또는 중간 노드에게 전송할 수 있다.
도 9는 일 실시예에 따른 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 블럭도이다. 컨텐츠 소유자(900)는 수신부(910), 결정부(930), 설정부(950) 및 전송부(970)를 포함한다.
수신부(910)는 컨텐츠 요청자가 요청하는 컨텐츠의 이름을 포함하는 컨텐츠 요청 패킷을 수신한다.
컨텐츠 요청 패킷은 컨텐츠에 대한 세그먼트, 컨텐츠를 저장할 중간 노드를 지정하는데 이용되는 캐시 토큰 및 적어도 하나의 중간 노드가 컨텐츠를 저장할 수 있는지 여부를 나타내는 캐퍼빌리티 비트(capability bit) 중 적어도 하나를 포함할 수 있다.
결정부(930)는 적어도 하나의 중간 노드 중 컨텐츠 요청 패킷에 응답하는 컨텐츠를 저장할 중간 노드를 결정한다.
또한. 결정부(930)는 컨텐츠 요청 패킷에 포함된 캐퍼빌리티 비트를 기초로 컨텐츠를 저장할 중간 노드를 결정하거나, 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 기초로 컨텐츠를 저장할 중간 노드를 결정할 수 있다.
보다 구체적으로, 결정부(930)는 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 기초로 컨텐츠 요청자에게 근접한 중간 노드를 파악한 후, 컨텐츠 요청자에게 근접한 중간 노드를 컨텐츠를 저장할 중간 노드로 결정할 수 있다.
결정부(930)는 컨텐츠 요청 패킷이 전송된 네트워크 경로, 컨텐츠의 특성, 컨텐츠의 사이즈 및 컨텐츠에 대한 요청 빈도, 적어도 하나의 중간 노드의 저장 공간 중 적어도 하나를 고려하여 컨텐츠를 저장할 중간 노드를 결정할 수 있다.
결정부(930)는 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 기초로 컨텐츠 요청자에게 근접한 중간 노드를 파악하는 파악 수단(933) 및 컨텐츠 요청자에게 근접한 중간 노드를 컨텐츠를 저장할 중간 노드로 결정하는 결정 수단(936)을 포함할 수 있다.
이 밖에도, 결정부(930)는 컨텐츠 요청자가 복수의 네트워크 경로들을 가지거나, 적어도 하나의 중간 노드가 복수의 네트워크 경로들을 가지는 경우, 컨텐츠의 특성을 기초로 컨텐츠를 저장할 중간 노드를 서로 상이한 경로에 위치하도록 중간 노드로 결정할 수 있다.
설정부(950)는 컨텐츠를 저장할 중간 노드를 지정하는데 이용되는 캐시 토큰(cache token)의 값 또는 캐시 토큰의 개수 중 적어도 하나를 설정할 수 있다.
전송부(970)는 컨텐츠 요청자 및 적어도 하나의 중단 노드에게, 컨텐츠 요청자가 요청한 컨텐츠 및 캐시 토큰을 포함하는 컨텐츠 전달 패킷을 전송한다. 캐시 토큰은 컨텐츠를 저장할 중간 노드를 지정하는 데에 이용될 수 있다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110: 컨텐츠 요청자
120, 130, 140: 중간 노드
150: 컨텐츠 소유자

Claims (19)

  1. 컨텐츠 요청자, 적어도 하나의 중간 노드 및 컨텐츠 소유자를 포함하는 컨텐츠 중심 네트워크에서 컨텐츠 요청자의 통신 방법에 있어서,
    상기 컨텐츠 소유자에게 요청한 컨텐츠를 저장할 중간 노드를 지정하는데 이용되는 캐시 토큰을 포함하는 컨텐츠 요청 패킷을 생성하는 단계; 및
    상기 컨텐츠 요청 패킷을 상기 적어도 하나의 중간 노드 및 상기 컨텐츠 소유자에게 전송하는 단계
    를 포함하는 컨텐츠 중심 네트워크에서 컨텐츠 요청자의 통신 방법.
  2. 제1항에 있어서,
    상기 컨텐츠 요청 패킷은
    상기 적어도 하나의 중간 노드가 상기 컨텐츠를 저장할 수 있는지 여부를 나타내는 캐퍼빌리티 비트(capability bit)를 더 포함하는 컨텐츠 중심 네트워크에서 컨텐츠 요청자의 통신 방법.
  3. 제1 항에 있어서,
    상기 캐시 토큰의 값을 초기화 하는 단계
    를 더 포함하는 컨텐츠 중심 네트워크에서 컨텐츠 요청자의 통신 방법.
  4. 컨텐츠 요청자, 적어도 하나의 중간 노드 및 컨텐츠 소유자를 포함하는 컨텐츠 중심 네트워크에서 중간 노드의 통신 방법에 있어서,
    상기 컨텐츠 소유자로부터, 상기 컨텐츠 요청자가 요청한 컨텐츠 및 상기 컨텐츠를 저장할 중간 노드를 결정하는 데에 이용되는 캐시 토큰을 포함하는 컨텐츠 전달 패킷을 수신하는 단계;
    상기 캐시 토큰의 값이 상기 중간 노드가 발행한 캐시 토큰의 값과 일치하는지 여부를 판단하는 단계; 및
    상기 판단 결과를 기초로 상기 컨텐츠를 상기 중간 노드에 저장하는 단계
    를 포함하는 컨텐츠 중심 네트워크에서 중간 노드의 통신 방법.
  5. 제4항에 있어서,
    상기 컨텐츠 요청자로부터 컨텐츠 요청 패킷을 수신하는 단계; 및
    상기 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 변경하여 상기 중간 노드에 대응되는 캐시 토큰을 발행하는 단계
    를 더 포함하는 컨텐츠 중심 네트워크에서 중간 노드의 통신 방법.
  6. 제5항에 있어서,
    상기 컨텐츠 요청 패킷은
    상기 컨텐츠 소유자에게 요청한 컨텐츠의 이름, 상기 컨텐츠의 세그먼트, 및 상기 컨텐츠를 저장할 수 있는지 여부를 나타내는 캐퍼빌리티 비트를 더 포함하는 컨텐츠 중심 네트워크에서 중간 노드의 통신 방법.
  7. 제6항에 있어서,
    상기 캐퍼빌리티 비트를 마킹(marking)하는 단계
    를 더 포함하는 컨텐츠 중심 네트워크에서 중간 노드의 통신 방법.
  8. 제7항에 있어서,
    상기 캐퍼빌리티 비트를 마킹하는 단계는
    상기 캐퍼빌리티 비트의 최상위 비트 또는 최하위 비트로부터 시작하여 상기 중간 노드에 대응되는 위치의 비트를 마킹하는 컨텐츠 중심 네트워크에서 중간 노드의 통신 방법.
  9. 제7항에 있어서,
    상기 캐퍼빌리티 비트를 마킹하는 단계는
    상기 컨텐츠에 대한 요청 빈도 및 상기 중간 노드의 저장 공간을 기초로 상기 캐퍼빌리티 비트를 마킹하는 단계인 컨텐츠 중심 네트워크에서 중간 노드의 통신 방법.
  10. 제7항에 있어서,
    상기 캐퍼빌리티 비트를 마킹하는 단계는
    상기 중간 노드의 이웃 노드가 상기 캐퍼빌리티 비트를 마킹했는지 여부를 기초로 상기 캐퍼빌리티 비트를 마킹하는 단계인 컨텐츠 중심 네트워크에서 중간 노드의 통신 방법.
  11. 컨텐츠 요청자, 적어도 하나의 중간 노드 및 컨텐츠 소유자를 포함하는 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법에 있어서,
    상기 컨텐츠 요청자가 요청하는 컨텐츠의 이름을 포함하는 컨텐츠 요청 패킷을 수신하는 단계;
    상기 적어도 하나의 중간 노드 중 상기 컨텐츠 요청 패킷에 응답하는 컨텐츠를 저장할 중간 노드를 결정하는 단계; 및
    상기 컨텐츠 요청자 및 상기 적어도 하나의 중단 노드에게 상기 컨텐츠 및 캐시 토큰-상기 캐시 토큰은 상기 컨텐츠를 저장할 중간 노드를 지정하는 데에 이용됨-을 포함하는 컨텐츠 전달 패킷을 전송하는 단계
    를 포함하는 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법.
  12. 제11항에 있어서,
    상기 컨텐츠 요청 패킷은
    상기 컨텐츠에 대한 세그먼트, 상기 컨텐츠를 저장할 중간 노드를 지정하는데 이용되는 캐시 토큰 및 상기 적어도 하나의 중간 노드가 상기 컨텐츠를 저장할 수 있는지 여부를 나타내는 캐퍼빌리티 비트 중 적어도 하나를 포함하는 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법.
  13. 제11항에 있어서,
    상기 컨텐츠를 저장할 중간 노드를 지정하는데 이용되는 캐시 토큰의 값 또는 상기 캐시 토큰의 개수 중 적어도 하나를 설정하는 단계
    를 더 포함하는 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법.
  14. 제11항에 있어서,
    상기 컨텐츠를 저장할 중간 노드를 결정하는 단계는
    상기 컨텐츠 요청 패킷에 포함된 캐퍼빌리티 비트를 기초로 상기 컨텐츠를 저장할 중간 노드를 결정하는 단계인 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법.
  15. 제11항에 있어서,
    상기 컨텐츠를 저장할 중간 노드를 결정하는 단계는
    상기 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 기초로 상기 컨텐츠를 저장할 중간 노드를 결정하는 단계인 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법.
  16. 제11항에 있어서,
    상기 컨텐츠를 저장할 중간 노드를 결정하는 단계는
    상기 컨텐츠 요청 패킷에 포함된 캐시 토큰의 값을 기초로 상기 컨텐츠 요청자에게 근접한 중간 노드를 파악하는 단계; 및
    상기 컨텐츠 요청자에게 근접한 중간 노드를 상기 컨텐츠를 저장할 중간 노드로 결정하는 단계
    를 포함하는 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법.
  17. 제11항에 있어서,
    상기 컨텐츠를 저장할 중간 노드를 결정하는 단계는
    상기 컨텐츠 요청 패킷이 전송된 네트워크 경로, 상기 컨텐츠의 특성, 상기 컨텐츠의 사이즈 및 상기 컨텐츠에 대한 요청 빈도, 상기 적어도 하나의 중간 노드의 저장 공간 중 적어도 하나를 고려하여 상기 컨텐츠를 저장할 중간 노드를 결정하는 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법.
  18. 제11항에 있어서,
    상기 컨텐츠 요청 패킷이 전송된 네트워크 경로를 고려하여 상기 컨텐츠를 저장할 중간 노드를 결정하는 단계는
    상기 컨텐츠 요청자가 복수의 네트워크 경로들을 가지거나, 상기 적어도 하나의 중간 노드가 복수의 네트워크 경로들을 가지는 경우, 상기 컨텐츠의 특성을 기초로 상기 컨텐츠를 저장할 중간 노드를 서로 상이한 경로에 위치하도록 상기 중간 노드로 결정하는 컨텐츠 중심 네트워크에서 컨텐츠 소유자의 통신 방법.
  19. 제1항 내지 제18항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
KR1020110069016A 2011-07-12 2011-07-12 컨텐츠 중심 네트워크에서 컨텐츠 요청자, 중간 노드 및 컨텐츠 소유자의 통신 방법 KR20130008325A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110069016A KR20130008325A (ko) 2011-07-12 2011-07-12 컨텐츠 중심 네트워크에서 컨텐츠 요청자, 중간 노드 및 컨텐츠 소유자의 통신 방법
US13/546,080 US9400852B2 (en) 2011-07-12 2012-07-11 Communication method of content requester, intermediate node, and content owner in content centric network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110069016A KR20130008325A (ko) 2011-07-12 2011-07-12 컨텐츠 중심 네트워크에서 컨텐츠 요청자, 중간 노드 및 컨텐츠 소유자의 통신 방법

Publications (1)

Publication Number Publication Date
KR20130008325A true KR20130008325A (ko) 2013-01-22

Family

ID=47519566

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110069016A KR20130008325A (ko) 2011-07-12 2011-07-12 컨텐츠 중심 네트워크에서 컨텐츠 요청자, 중간 노드 및 컨텐츠 소유자의 통신 방법

Country Status (2)

Country Link
US (1) US9400852B2 (ko)
KR (1) KR20130008325A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140115155A (ko) * 2013-03-20 2014-09-30 삼성전자주식회사 컨텐츠 중심 네트워크에서 블룸 필터를 이용하여 라우팅을 수행하는 노드 및 그 방법
US9807203B2 (en) 2013-11-07 2017-10-31 Samsung Electronics Co., Ltd. Method and apparatus for content transmission and content reception

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990375B2 (en) 2012-08-31 2015-03-24 Facebook, Inc. Subscription groups in publish-subscribe system
KR101978177B1 (ko) * 2012-12-07 2019-08-28 삼성전자주식회사 컨텐츠 중심 네트워크에서 노드가 컨텐츠를 저장하는 방법 및 컨텐츠 제공자가 컨텐츠를 전송하는 방법
US9189510B2 (en) * 2013-02-26 2015-11-17 Facebook, Inc. System and method for implementing cache consistent regional clusters
CN104322020B (zh) * 2013-03-26 2019-01-01 松下电器产业株式会社 服务器、路由器、接收终端及处理方法
KR101882727B1 (ko) * 2013-08-08 2018-07-27 삼성전자주식회사 컨텐츠 중심 네트워크를 구성하는 단말 장치 및 이의 통신 방법
WO2015077996A1 (zh) * 2013-11-29 2015-06-04 华为技术有限公司 缓存判决方法和装置
KR20150095098A (ko) * 2014-02-12 2015-08-20 한국전자통신연구원 정보 중심 네트워크를 이용한 데이터 질의 처리 방법
CN105099944B (zh) 2014-04-22 2018-08-17 华为技术有限公司 一种缓存数据的方法及转发设备
KR102185350B1 (ko) * 2014-06-10 2020-12-01 삼성전자주식회사 네트워크 노드 및 네트워크 노드의 동작 방법
US9729662B2 (en) * 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
EP3032805B1 (en) * 2014-12-12 2019-10-09 Tata Consultancy Services Limited Method and system for optimal caching of content in an information centric network (icn)
US10313227B2 (en) 2015-09-24 2019-06-04 Cisco Technology, Inc. System and method for eliminating undetected interest looping in information-centric networks
US10686702B2 (en) 2015-11-06 2020-06-16 Cable Television Laboratories, Inc. Preemptive caching of content in a content-centric network
US10742596B2 (en) 2016-03-04 2020-08-11 Cisco Technology, Inc. Method and system for reducing a collision probability of hash-based names using a publisher identifier
US10051071B2 (en) 2016-03-04 2018-08-14 Cisco Technology, Inc. Method and system for collecting historical network information in a content centric network
US10264099B2 (en) 2016-03-07 2019-04-16 Cisco Technology, Inc. Method and system for content closures in a content centric network
US10067948B2 (en) 2016-03-18 2018-09-04 Cisco Technology, Inc. Data deduping in content centric networking manifests
US10091330B2 (en) 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
US10320760B2 (en) 2016-04-01 2019-06-11 Cisco Technology, Inc. Method and system for mutating and caching content in a content centric network
WO2018056032A1 (ja) * 2016-09-21 2018-03-29 Kddi株式会社 コンテンツ配信システムのサーバ装置、転送装置及びプログラム
US10547702B2 (en) 2016-11-07 2020-01-28 Cable Television Laboratories, Inc. Internet protocol over a content-centric network (IPoC)
WO2018201400A1 (en) * 2017-05-04 2018-11-08 Qualcomm Incorporated User equipment assisted packet routing at a base station
WO2018236723A1 (en) * 2017-06-19 2018-12-27 Northeastern University JOINT CALLING AND ROUTING METHOD FOR CONTENT DELIVERY HAVING OPTIMALITY GUARANTEES FOR ARBITRARY NETWORKS
US11677625B2 (en) * 2019-07-02 2023-06-13 Northeastern University Network and method for servicing a computation request

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924116A (en) * 1997-04-02 1999-07-13 International Business Machines Corporation Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US6745243B2 (en) * 1998-06-30 2004-06-01 Nortel Networks Limited Method and apparatus for network caching and load balancing
US20030088699A1 (en) * 1999-11-04 2003-05-08 James V. Luciani System, device, and method for supporting virtual private networks in a label switched communication network
US8990334B2 (en) * 2001-04-26 2015-03-24 Nokia Corporation Rule-based caching for packet-based data transfer
US7269169B1 (en) * 2001-10-02 2007-09-11 Cisco Technology, Inc. Method to exchange resource capability information across network peers
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
JP2003228534A (ja) 2001-11-30 2003-08-15 Ntt Docomo Inc 情報配信システム、記述データ配信装置、コンテンツ位置管理装置、データ変換装置、受信端末装置、情報配信方法
US8650601B2 (en) 2002-11-26 2014-02-11 Concurrent Computer Corporation Video on demand management system
US8688803B2 (en) 2004-03-26 2014-04-01 Microsoft Corporation Method for efficient content distribution using a peer-to-peer networking infrastructure
KR101325605B1 (ko) 2006-04-26 2013-11-06 에스케이플래닛 주식회사 스토리지 사이에 컨텐츠를 이동시켜 스토리지의 트래픽을분산시키는 방법
US20100312861A1 (en) 2007-11-30 2010-12-09 Johan Kolhi Method, network, and node for distributing electronic content in a content distribution network
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
US8386622B2 (en) 2008-05-16 2013-02-26 Palo Alto Research Center Incorporated Method and apparatus for facilitating communication in a content centric network
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
US8243735B2 (en) 2009-01-30 2012-08-14 Palo Alto Research Center Incorporated System for forwarding packets with hierarchically structured variable-length identifiers using an exact-match lookup engine
US8204060B2 (en) 2009-01-30 2012-06-19 Palo Alto Research Center Incorporated Method and system for facilitating forwarding a packet in a content-centric network
US20100205213A1 (en) * 2009-02-12 2010-08-12 Yahoo! Inc. Non-exact cache matching
US9264341B2 (en) * 2009-07-24 2016-02-16 Broadcom Corporation Method and system for dynamic routing and/or switching in a network
US9385938B2 (en) * 2010-06-22 2016-07-05 Blackberry Limited Information distribution in a wireless communication system
US9379970B2 (en) * 2011-05-16 2016-06-28 Futurewei Technologies, Inc. Selective content routing and storage protocol for information-centric network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140115155A (ko) * 2013-03-20 2014-09-30 삼성전자주식회사 컨텐츠 중심 네트워크에서 블룸 필터를 이용하여 라우팅을 수행하는 노드 및 그 방법
US9807203B2 (en) 2013-11-07 2017-10-31 Samsung Electronics Co., Ltd. Method and apparatus for content transmission and content reception

Also Published As

Publication number Publication date
US20130018937A1 (en) 2013-01-17
US9400852B2 (en) 2016-07-26

Similar Documents

Publication Publication Date Title
KR20130008325A (ko) 컨텐츠 중심 네트워크에서 컨텐츠 요청자, 중간 노드 및 컨텐츠 소유자의 통신 방법
KR102301353B1 (ko) 컨텐츠 중심 네트워크에서 컨텐츠 소유자 및 노드의 패킷 전송 방법
US9014001B2 (en) Transmission node and reception node in content centric network, and communication method of transmission node and reception node
KR101978177B1 (ko) 컨텐츠 중심 네트워크에서 노드가 컨텐츠를 저장하는 방법 및 컨텐츠 제공자가 컨텐츠를 전송하는 방법
KR101978173B1 (ko) 컨텐츠 중심 네트워크에서 컨텐츠 제공자가 데이터 패킷을 전송하는 방법 및 그 컨텐츠 제공자
US9456052B2 (en) Source node and router in content centric network, and communication method thereof
EP2779581A1 (en) Wire-speed pending interest table
KR102160494B1 (ko) 네트워크 노드, 엔드포인트 노드 및 관심 메시지 수신 방법
KR20130098424A (ko) 라우터에서 트래픽을 관리하는 기법
JP5847185B2 (ja) コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置
KR102063681B1 (ko) 컨텐츠 중심 네트워크에서 컨텐츠 폐기 리스트를 이용하여 유효하지 않은 컨텐츠를 삭제하는 관리 노드, 요청 노드 및 일반 노드의 통신 방법
JP2016059039A (ja) Ccnにおける中間ルータにおけるインタレストキープアライブ
KR102376496B1 (ko) 서비스 스트림 분산 포워딩 시스템 및 그 방법
US20150074234A1 (en) Content system and method for chunk-based content delivery
US7821945B2 (en) Method of downloading data in peer-to-peer service of wired and wireless integrated network and node therefor
JP5918361B2 (ja) 解決による経路指定
US8881242B2 (en) Information communication system, information communication method, node apparatus and recording medium
KR20130138670A (ko) 컨텐츠 중심 네트워크의 인트라 도메인(intra domain) 및 인터 도메인(inter domain)에서 노드가 컨텐츠를 검색하는 방법 및 그 노드
KR102397923B1 (ko) 정보 중심 네트워크(icn)에서 플로우 스위칭 장치 및 방법
JP6406671B2 (ja) コンテンツキャッシュ方法および装置
KR102060907B1 (ko) 데이터 이름 기반 네트워크에서의 fib 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템
US20140006449A1 (en) System for interoperating dht-based overlay networks and method thereof
KR20220075985A (ko) 출판자의 이동성을 지원하는 ndn 기반의 통신 시스템 및 방법
KR102110524B1 (ko) 컨텐츠 중심 네트워크에서 블룸 필터를 이용하여 라우팅을 수행하는 노드 및 그 방법
CN117837135A (zh) 虚拟化网络中的共享缓存

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application