KR20160027910A - Ccn 파이프라인 스트림의 신뢰도있는 컨텐츠 교환 방법 및 시스템 - Google Patents

Ccn 파이프라인 스트림의 신뢰도있는 컨텐츠 교환 방법 및 시스템 Download PDF

Info

Publication number
KR20160027910A
KR20160027910A KR1020150117776A KR20150117776A KR20160027910A KR 20160027910 A KR20160027910 A KR 20160027910A KR 1020150117776 A KR1020150117776 A KR 1020150117776A KR 20150117776 A KR20150117776 A KR 20150117776A KR 20160027910 A KR20160027910 A KR 20160027910A
Authority
KR
South Korea
Prior art keywords
content
hosting service
exchange
name
session
Prior art date
Application number
KR1020150117776A
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 KR20160027910A publication Critical patent/KR20160027910A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/305
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/067Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2183Cache memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Abstract

클라이언트 장치는 호스팅 서비스로 데이터의 신뢰도 있는 파이프라인 흐름을 전송하기 위해 CCN(content centric network) 상에서 호스팅 서비스와 RCX(reliable content exchange) 세션을 수립할 수 있다. 동작하는 동안 상기 클라이언트 장치는 상기 호스팅 서비스로 인증 정보를 전송할 수 있고, 상기 호스팅 서비스와 RCX 제어 채널을 초기화할 수 있다. 클라이언트 장치는 상기 호스팅 서비스로 전송될 컨텐츠를 선택할 수 있고, 호스팅 서비스로 컨텐츠를 전달하기 위한 교환 세션을 설립하는 교환 초기화 요청을 전송하기 위한 제어 채널을 사용할 수 있다. 교환 초기화 요청은 선택된 컨텐츠와 결합된 콜렉션 이름(collection name), 상기 교환 세션에 대한 교환 식별자(exchange identifier, XID)를 포함한다. 클라이언트 장치는 상기 교환 세션 상에서 선택된 컨텐츠의 세그먼트를 요청하는 인터레스트(interest)를 수신할 수 있고, 컨텐츠의 요청된 세그먼트를 포함하는 페이로드를 가진 컨텐츠 오브젝트를 반환할 수 있다.

Description

CCN 파이프라인 스트림의 신뢰도있는 컨텐츠 교환 방법 및 시스템{SYSTEM AND METHOD FOR A RELIABLE CONTENT EXCHANGE OF A CCN PIPELINE STREAM}
본 개시는 일반적으로 CCN(content centric networks)에 관련된다. 더욱 상세하게, 본 개시는 CCN 상에서 신뢰도 있는 컨텐츠 교환을 위한 CCN 노드들 사이의 채널을 설정하는 것과 관련된다.
모바일 컴퓨팅 및 셀룰러 네트워크의 확산은 이전보다 더욱 디지털 컨텐츠를 유동적으로 만든다. 사람들은 컨텐츠를 생산하고, 컨텐츠를 소비하고 컨텐츠를 생산하거나 소비하는 다른 컴퓨팅 장치로의 인터넷 액세스를 제공하기 위해 그들의 스마트폰을 사용한다. 종종, 장치의 네트워크 위치는 사람들이 그들의 모바일 컴퓨팅 장치를 새로운 물리적 위치로 이동시킴에 따라 변화될 수 있다. 장치의 새로운 네트워크 위치가 알려지지 않는 경우, 이것은 전통적인 컴퓨터 네트워크 하에서 이 장치와의 통신을 어렵게 한다.
이러한 문제를 해결하기 위해 CCN(contents centric network) 구조는 컨텐츠의 물리적 또는 네트워크 위치에 상관없이 그것의 이름에 기반하여 디지털 컨텐츠에 대한 액세스를 용이하기 하기 위해 디자인되었다. 일반적인 CCN 구조는 패킷의 두 타입: 인터레스트 및 컨텐츠 오브젝트를 전달한다. 인터레스트는 명명된 데이터의 조각을 위한 이름을 포함한다(그리고 명명된 데이터의 조각에 대한 요청의 역할을 한다). 반면에, 컨텐츠 오브젝트는 일반적으로 페이로드를 포함하고, 매칭 이름(matching name)을 가지는 인터레스트에 의해 이동된 네트워크 경로를 따라 전달되고, 인터레스트 패킷에 의해 취해진 경로를 역방향으로 이동한다.
어떠한 컨텐츠 생산자(content producer)는 관리 장치(custodian device)가 CCN상에서 컨텐츠 생산자를 대신하여 컨텐츠를 호스트하도록 할 수 있다. 관리측(custodian)이 컨텐츠를 위한 전달 경로를 따라 위치하거나, 컨텐츠 생산자로부터 명확한 컨텐츠 요청에 의해서 관리측은 일반적으로 컨텐츠를 수신한다. 그러나, 만약 관리측이 컨텐츠의 청크에 대한 인터레스트를 전파함으로써CCN 상의 컨텐츠 생산자로부터 데이터 스트림을 회수한 경우, 관리자가 컨텐츠 생산자가 아닌 다른 장치로부터 컨텐츠를 수신하거나 컨텐츠에 대한 어떠한 청크를 수신하지 않는 것이 가능할 수 있다. 예를 들어, CCN 구조는 CCN 노드가 일반 인터레스트에 응답하도록 하기 때문에 만약 그것이 인터레스트를 만족시키는 컨텐츠 오브젝트를 생산할 수 있다면, 악성 개체가 악성 또는 오류 데이터를 호스팅 서비스로의 데이터 스트림에 삽입하는 것을 가능하게 할 수 있다. 또한, 만약 데이터의 청크가 라이브 데이터 스트림과 대응되면, 네트워크 에러로 인해 청크의 관리측으로의 도달이 실패한 경우에도 컨텐츠 생산자가 관리측으로 전송된 데이터의 청크를 삭제하는 것이 가능할 수 있다.
하나의 실시예는 CCN 상에서 호스팅 서비스와 함께 컨텐츠 교환 세션(content exchange session)을 설정할 수 있는 클라이언트 장치를 제공할 수 있다. 동작 동안, 클라이언트 장치는 호스팅 서비스와 함께 제어 채널을 초기화할 수 있고, 호스팅 서비스와 함께 하나 이상의 교환 세션을 설정하기 위한 제어 채널을 사용할 수 있다. 클라이언트 장치가 호스팅 서비스로 컨텐츠를 전송할 필요가 있는 경우, 클라이언트 장치는 호스팅 서비스로 컨텐츠를 전달하기 위한 교환 세션을 설정할 수 있다. 예를 들어, 클라이언트 장치는 호스팅 서비스로의 컨텐츠의 전달을 위해 사용될 수 있는 새로운 교환 세션에 대한 교환 식별자(exchange identifier(XID))를 생성하고 교환 초기화 요청(exchange-initialization request)을 제어 채널을 통해 호스팅 서비스로 전송한다. 교환 초기화 요청은 컨텐츠 및 교환 세션에 대한 XID와 결합된 콜렉션 이름(collection name)을 포함한다. 이후, 교환 세션 상에서 컨텐츠의 부분을 요청하는 인터레스트를 수신한 것에 대한 응답으로 클라이언트는 컨텐츠의 요청된 부분을 포함하는 페이로드를 가지는 컨텐츠 오브젝트를 되돌려 줄 수 있다.
CCN에서, 컨텐츠의 각 조각은 개별적으로 명명되고, 데이터의 각 조각은 동일한 데이터의 다른 버전 또는 다른 소스로부터의 데이터와 같은 데이터의 다른 조각과 조각을 구분하게 하는 고유 이름을 가져야 한다. 고유 이름은 네트워크 장치가 고유 이름을 지시하는 요청 또는 인터레스트를 전파함으로써 데이터를 요청할 수 있고, 데이터의 저장 위칭, 네트워크 위치, 어플리케이션, 이동 수단에 독립적으로 데이터를 획득할 수 있다. 아래의 용어는 CCN 구조의 요소를 설명한다.
컨텐츠 오브젝트: 고유 이름을 가지는 명명된 데이터의 단일 조각. 컨텐츠 오브젝트는 "지속"되는데 지속된다 함은 컨텐츠 오브젝트가 컴퓨팅 장치 내, 다른 컴퓨팅 장치를 넘어서, 이동하되 변하지 않음을 의미한다. 만약, 컨텐츠 오브젝트의 어떠한 요소(component)가 변화하는 경우, 변화를 만든 개체(entity)는 업데이트된 컨텐츠를 포함하는 새로운 컨텐츠 오브젝트를 생성하고, 새로운 컨텐츠 오브젝트로 새로운 고유 이름을 부여한다.
고유 이름: CCN 상의 이름은 일반적으로 위치에 독립적이고, 고유하게 컨텐츠 오브젝트를 식별한다. 데이터-전달 장치는 컨텐츠 오브젝트에 대한 네트워크 주소 또는 물리적 위치에 상관없이 패킷을 컨텐츠 오브젝트를 생성하고 저장하는 네트워크 노드로 전달하기 위해 이름 또는 이름 프리픽스(prefix)을 사용할 수 있다. 어떠한 실시예에서, 이름은 HSVLI(hierarchically structured variable-length identifier)일 수 있다. HSVLI는 여라가지 방식으로 구조화될 수 있는 복수의 계층적 요소로 분할될 수 있다. 예를 들어, 개별 이름 요소 parc, home, ccn, and test.txt는 이름 "/parc/home/ccn/test.txt."을 형성하기 위해 좌측 우선 프리픽스 메이저(left-oriented prefix-major fashion) 방식으로 구조화될 수 있다. 따라서, 이름 "/parc/home/ccn"은 "/parc/home/ccn/test.txt." 의 "부모(parent)" 또는 "프리픽스"일 수 있다. 추가 요소는 협동 문서(collaborative document)와 같은 컨텐츠 아이템의 다른 버전 사이를 구분하기 위해 사용될 수 있다.
어떠한 실시예에서, 이름은 컨텐츠 오브젝트의 데이터(예를 들어, 체크섬 값(checksum value)) 및/또는 컨텐츠 오브젝트의 이름의 요소로부터 유도되는 해쉬 값(hash value) 식별자를 포함할 수 있다. 해쉬-기반 이름에 대한 설명은 "U.S. Patent Application No. 13/847,814 (Atty. Docket No. PARC-20120537-US-NP, entitled "ORDERED-ELEMENT NAMING FOR NAME-BASED PACKET FORWARDING," by inventor Ignacio Solis, filed 20 March 2013)."에 설명되어 있다. 이름은 또한 플랫 라벨(flat label)일 수 있다. 아래에서는, "이름"은 이름 데이터 네트워크(name-data network)에서 데이터의 조각을 위한 어떠한 이름도, 예를 들어, 계층적 이름 또는 이름 프리픽스, 플랫(flat) 이름, 고정-길이 이름, 임의 길이 이름 또는 라벨(예를 들어, MPLS(multiprotocol label switching) 라벨), 참조하기 위해 사용된다.
인터레스트: 데이터의 조각에 대한 요청을 지시하는 패킷, 데이터의 조각에 대한 이름(또는 이름 프리픽스)를 포함함. 데이터 소비자는 정보 중심 네트워크(information-centric network)를 가로질러 요청 또는 인터레스트를 전파하되, 요청 또는 인터레스트는 CCN 라우터에 의해 저장 장치(예를 들어, 캐쉬 서버(cache server)) 또는 요청 또는 인터레스트를 만족하는 요청된 데이터를 제공하는 데이터 생산자로 전파될 수 있다.
여기에서 개시되는 방법은 CCN 구조에 기반하여 설명되는 반면에, 여기서 설명되는 방법은 또한 다른 정보 중심 네트워크 구조에 또한 적용될 수 있다. CCN 구조의 설명은 U.S. Patent Application No. 12/338,175 (Atty. Docket No. PARC-20080626-US-NP, entitled "CONTROLLING THE SPREAD OF INTERESTS AND CONTENT IN A CONTENT CENTRIC NETWORK," by inventors Van L. Jacobson and Diana K. Smetters, filed 18 December 2008)에 개시되어 있다.
어떠한 실시예에서, 컨텐츠는 순차적으로 넘버링된 데이터 청크의 콜렉션을 포함하고, 여기서 콜렉션 이름은 컨텐츠에 대한 청크 이름(chunked name)을 포함한다.
어떠한 실시예에서, 클라이언트 장치가 호스팅 서비스와 제어 채널을 시작하는 동안 클라이언트 장치는 인증 정보를 호스팅 서비스로 제공한다.
어떠한 실시예에서, 콜렉션 이름은 컨텐츠에 대한 메니페스트(manifest) 이름을 포함하고, 메니페스트 이름은 컨텐츠에 대한 메니페스트에 명명된 객체에 기반하여 유도될 수 있다.
어떠한 실시예에서, 교환 초기화 요청을 호스팅 서비스에 전송하는 동안, 클라이언트 장치는 제2 인터레스트 메시지를 전송하되, 두번째 인터레스트 메시지의 이름은 호스팅 서비스의 제1 이름 프리픽스, 제어 채널에 대한 세션 식별자(session identifier, SID), 컨텐츠와 결합된 이름 및 XID를 포함한다.
어떠한 실시예에서, 호스팅 서비스에 대한 교환 초기 요청을 전송하는 것에 대한 응답으로, 클라이언트 장치는 XID 및 제어 채널에 대한 세션 식별자(SID) 를 포함하는 ACK(acknowledgement) 메시지를 수신할 수 있다.
이러한 실시예에 대한 변형으로, 제2 인터레스트 메시지는 컨텐츠 이름 및 제어 채널과 결합된 세션 키를 사용하는 암호화된 XID를 포함한다.
어떠한 실시예에서, 클라이언트 장치는 호스팅 서비스로 교환 세션을 식별하는 XID를 포함하는 상태 요청 메시지(status request message)를 전송할 수 있다. 클라이언트는 교환 세션을 통해 수신된 정렬된 컨텐츠 오브젝트의 집합을 승인하는 CAN(cumulative ACK name)을 포함하는 ACK메시지를 수신할 수 있다. CAN은 정렬된 컨텐츠 오브젝트의 집합 내에 마지막 컨텐츠 오브젝트에 대한 이름을 포함하고 컨텐츠 오브젝트의 이름이 위치하고 마지막 컨텐츠 오브젝트의 이름을 포함하는 정렬된 컨텐츠 오브젝트의 집합을 승인한다.
어떠한 실시예에서, 클라이언트 장치는 호스팅 서비스로 호스팅 서비스에 의해 요청될 수 있는 다음 오브젝트를 명시한 다음(NEXT) 메시지를 전송한다.
어떠한 실시예에서, 클라이언트 장치는 교환 세션을 종료할 수 있다. 교환 세션을 종료하기 위해, 클라이언트 장치는 XID를 포함하는 교환 종료 요청(exchange-closing request)을 포함하는 인터레스트를 전송할 수 있다. 이후, 교환 종료 요청을 승인하는 컨텐츠 오브젝트의 수신에 대한 응답으로, 클라이언트 장치는 교환 세션을 종료한다.
하나의 실시예는 하나 이상의 클라이언트 또는 컨텐츠 생산자로부터 컨텐츠를 호스트하는 호스팅 서비스를 제공한다. 동작하는 동안, 호스팅 서비스는 클라이언트 장치와 함께 제어 채널을 초기화할 수 있고, 클라이언트 장치로 제어 채널에 대한 SID(session identifier)를 전송한다. 호스팅 서비스는 제어 채널을 통해 클라이언트 장치로부터 교환 초기화 요청(exchange initialization request)을 수신할 수 있다. 교환 초기화 요청은 교환 세션에 대한 교환 식별자(exchange identifier, XID)를 포함할 수 있고, 클라이언트 장치로부터 수신한 컨텐츠와 결합된 콜렉션 이름을 포함할 수 있다. 호스팅 서비스는 교환 세션 상에서 컨텐츠의 부분을 요청하는 인터레스트를 전송함에 의해서 컨텐츠의 부분을 수신할 수 있다. 이후, 컨텐츠의 요청된 부분을 포함하는 페이로드를 가지는 컨텐츠를 수신한 것에 대한 응답으로 호스팅 서비스는 컨텐츠와 결합된 컨텐츠 오브젝트를 저장한다.
어떠한 실시예에서, 호스팅 서비스는 호스팅 서비스와 결합된 제1 이름 프리픽스, SID, 컨텐츠와 결합된 이름 및 XID를 포함하는 제2 인터레스트 메시지 내의 교환 초기화 요청을 수신할 수 있다.
어떠한 실시예에서, 제2 인터레스트 메시지는 컨텐츠 이름 및 제어 채널과 결합된 세션 키를 사용하여 암호화된 XID를 포함한다.
어떠한 실시예에서, 클라이언트 장치로부터 교환 초기화 요청을 수신한 것에 대한 응답으로, 호스팅 서비스는 SID 및 XID를 포함하는 ACK 메시지를 전송한다.
어떠한 실시예에서, 호스팅 서비스는 SID와 XID를 포함하는 상태 요청 메시지를 수신할 수 있다. 호스팅 서비스는 교환 세션을 통해 수신된 정렬된 컨텐츠 오브젝트의 집합에 대한 승인을 위해 CAN(cumulative ACK name)을 포함하는 ACK 메시지를 되돌려줌으로써 상태 요청 메시지에 대해 응답할 수 있다. 컨텐츠 오브젝트의 이름이 위치하고 마지막 컨텐츠 오브젝트의 이름을 포함하는 정렬된 컨텐츠 오브젝트의 집합을 승인하는 CAN은 정렬된 컨텐츠 오브젝트의 집합에서 마지막 컨텐츠 오브젝트를 위한 이름을 포함할 수 있다.
어떠한 실시예에서, 호스팅 서비스는 클라이언트 장치로부터 NEXT 메시지를 수신할 수 있고, 다음(NEXT) 메시지는 호스팅 서비스에 의해 요청될 수 있는 다음 오브젝트를 명시할 수 있다.
어떠한 실시예에서, 호스팅 서비스는 SID와 XID를 포함하는 교환 종료 요청을 포함하는 제2 인터레스트 메시지를 수신할 수 있다. 이후, 교환 종료 요청을 승인하는 컨텐츠 오브젝트를 되돌려 준 후, 호스팅 서비스는 교환 세션을 종료한다.
도 1은 본 발명의 실시예에 따른 호스팅 서비스로 컨텐츠를 로딩하는 것을 용이하게 하는 컴퓨팅 환경을 예시적으로 도시한다.
도 2는 본 발명의 실시예에 따른 클라이언트와 호스팅 서비스 사이의 예시적인 통신을 도시한다.
도 3은 본 발명의 실시예에 따른 호스팅 서비스와의 교환 세션을 설정하기 위한 방법을 도시하는 플로우 차트를 나타낸다.
도 4는 본 발명의 실시예에 따른 호스팅 서비스와의 교환 세션을 관리하기 위한 방법을 도시하는 플로우 차트를 나타낸다.
도 5는 본 발명의 실시예에 따른 클라이언트와의 교환 세션을 설정하기 위한 방법을 도시하는 플로우 차트를 나타낸다.
도 6은 본 발명의 실시예에 따른 클라이언트와의 교환 세션을 관리하기 위한 방법을 나타내는 플로우 차트를 나타낸다.
도 7은 본 발명의 실시예에 따른 호스팅 서비스로 컨텐츠를 로딩하는 것을 용이하게 하는 예시적인 장치를 도시한다.
도 8은 본 발명의 실시예에 따른 호스팅 서비스로 컨텐츠를 로딩하는 것을 용이하게 하는 예시적인 컴퓨터 시스템을 나타낸다.
도면에서, 동일한 참조 번호는 동일한 도면 요소를 나타낸다.
이하의 설명은 당업자가 실시예를 만들고 사용하도록 하기 위해 보여지고 특정 어플리케이션 및 그것의 요구의 맥락에서 제공된다. 개시된 실시예에 대한 다양한 변형이 어려움 없이 당업자에게 명확할 수 있고, 여기서 정의된 일반적인 원칙은 본 개시의 정신 및 관점으로부터 벗어나지 않고 다른 실시예 및 어플리케이션에 적용될 수 있다. 따라서, 본 발명은 보여진 실시예에 한정되지 않고, 여기에 개시된 특징 및 원칙에 따르는 넓은 범위에 부합될 수 있다.
본 발명의 실시예는 호스팅 서비스로의 파이프라인 흐름(pipelined flow)의 RCX(reliable content exchange)를 구현함으로써 호스팅 서비스로의 데이터의 안전한 전달을 보장하는 문제를 해결하는 컨텐츠 교환 시스템을 제공한다.
RCX 프로토콜은 슬라이딩 데이터 윈도우를 관리하기 위해 클라이언트가 사용하는 클라이언트 및 서비스 제공자 사이의 제어 채널을 포함한다. 예를 들어, 클라이언트는 CCN 상에서 호스팅 서비스 및 클라이언트 사이에 교환 세션을 시작 또는 종료하기 위한 제어 채널을 사용할 수 있다. 또한, 클라이언트는 호스팅 서비스로 교환 세션 상에서 클라이언트로부터 컨텐츠를 모으도록 요청하고, 그것의 이동을 보장하기 위해 컨텐츠의 윈도잉된 회수(windowed retrieval)를 관리하기 위해 RCX 제어 채널을 사용할 수 있다.
어떠한 실시예에서, RCX프로토콜은 이동의 두 가지 타입:청킹된 이름(ChunkedName) 및 메니페스트 이름(ManifestName)을 지원한다. 청킹된 이름 이동(ChunkedName transfer)에서, 컨텐츠는 청킹된 사용자 데이터(chunked user data)를 사용하여 교환 채널 상에서 이동될 수 있다. 청킹된 사용자 데이터는 청킹 프로토콜(chunking protocol)을 따르고, 청킹 프로토콜에서 컨텐츠의 큰 조각은 "청크"의 콜렉션으로 분할되고, 컨텐츠의 베이스 이름(base name)(예를 들어, "/foo/bar/slides.pdf")은 이름을 형성하기 위해 각 청크에 연속적으로 확장되고, 여기서, 이름에서 터미널 요소(terminal element)는 청크 번호를 지시한다. 예를 들어, 청크 이름 "/foo/bar/slides. pdf/c5"은 연속되는 청크 내의 5번째 청크를 위한 이름을 명시하는 터미널 이름 요소 "c5"를 포함한다. 클라이언트는 청크에 대한 컨텐츠 오브젝트를 생성하고, 컨텐츠 오브젝트에 대한 대응되는 청킹된 이름(chunked name)을 할당한다. 이후, 클라이언트는 청킹된 컨텐츠 오브젝트의 집합의 베이스 이름을 제어 채널 상에서 호스팅 서비스로 제공하고, 호스팅 서비스는 교환 세션 상에서 인터레스트의 파이프라인을 전파함으로써 이러한 청킹된 컨텐츠 오브젝트를 요청한다.
메니페스트 방법에서, "메니페스트"라고 불리는 청킹된 오브젝트는 컨텐츠 오브젝트 해쉬(content object hash)를 포함하는 이동될 구성 컨텐츠 오브젝트(constituent content object)를 나열한다. 어떠한 실시예에서, 메니패스트에 나열된 청크에 대한 COH 값은 개별 청크의 템퍼링(tampering)을 방지하기 위해 보호장치로 해쉬 연쇄될 수 있다. 클라이언트는 제어 채널 상에서 호스팅 서비스로 메니페스트에 대한 청킹된 이름을 제공할 수 있다. 호스팅 서비스는 교환 세션 상에서 클라이언트로부터 메니페스트를 수신하기 위한 메니페스트의 청킹된 이름을 사용하고 요청하기 위해 필요한 청킹된 컨텐츠 오브젝트를 결정하기 위한 메니페스트를 읽는다. 이후, 호스팅 서비스는 교환 세션 상에서 인터레스트의 파이프라인을 전파함으로써 이러한 청킹된 컨텐츠 오브젝트를 요청한다. 메니페스트의 설명은 U.S. Patent Application No. 14/337,026 (Atty. Docket No. PARC-20140480US01, entitled "System for Distributing Nameless Objects using Self-Certifying Names," by inventor Marc E. Mosko, filed 21 July 2014)에 개시되어 있다.
어떠한 실시예에서, RCX 프로토콜은 호스팅 서비스에 의해 수신된 마지막 컨텐츠 오브젝트를 지시하는 CAN을 사용하여 교환 세션의 슬라이딩 윈도우를 관리한다. 더욱 구체적으로, CAN은 호스팅 서비스에 의해 수신된 가장 큰 유효 이름(the largest in-order name)을 지시하고 이동된 오브젝트의 자연적인 순서(natural order)를 따른다. "가장 큰 유효 이름"은 호스팅 서비스가 CAN에 의해 명시된 컨텐츠 오브젝트를 포함하는 시퀀스 내의 컨텐츠 오브젝트를 수신한 것을 지시한다. CCN 이름은 시퀀스 번호를 사용하는 청킹된 스트림의 특별 경우를 제외하고, 잘 정의된 최소(well-defined minimum)(빈 이름(empty name))를 가지고 잘 정의되지 않은 "다음" 이름(no well-defined "next" name)을 가지지 않기 때문에 CAN 명명 전략은 유용하다. 그러므로 이동이 시작된 경우, 초기 CAN은 0 길이 빈 이름(zero-length empty name)을 포함할 수 있다. 왜냐하면, 이 0 길이 빈 이름은 교환 세션 상에서 이동될 어떠한 컨텐츠 오브젝트도 명시하지 못하기 때문에 교환 세션 상에서 이동할 것을 이동될 어떠한 청크의 이름과도 충돌하지 않는다. 0 길이 빈 이름은 이하에서 "EMPTY"로 나타낸다.
청킹된 이름(ChunkedName)의 이동의 경우, CAN은 청크 번호 정렬(chunk number ordering)를 따른다. 메니페스트 이름(ManifestName)의 이동의 경우, CAN은 메니페스트 컨텐츠 오브젝트 내에 리스팅된 컨텐츠 오브젝트의 자연적인 순서로부터 유도된다. 어떠한 실시예에서, 메니페스트 컨텐츠 오브젝트(이하에서 또한, 메니페스트 청크로서 나타내어 지는)는 그 자체로 다른 메니페스트 컨텐츠 오브젝트를 참조한다. 컨텐츠 오브젝트의 자연적인 순서는 메니페스트 계층을 횡단함으로써 결정될 수 있다. 이러한 순서는 첫번째 메니페스트 청크(예를 들어, 루트 메니페스트(root manifest))를 시작으로 첫번째 메니페스트 청크를 따르는 첫번째 메니페스트 청크 내에 나열된 순서로 이어지는 컨텐츠 오브젝트 청크, 다음 메니페스트 청크, 다음 메니페스트 청크에 나열된 컨텐츠 오브젝트 등으로 정의된다.
호스팅 서비스가 메니페스트 청크와 같은 시퀀스 외의 청크를 요청 또는 수신하는 것이 가능하다. 그러나, CAN을 리포팅하기 위한 목적을 위해, RCX 프로토콜은 콜렉션 내의 모든 컨텐츠 오브젝트의 최종적인 순서(definitive order)를 도입한다.
도 1은 본 발명의 실시예에 따른 호스팅 서버로 컨텐츠를 로딩하는 것을 용이하게 하는 컴퓨팅 환경 100을 예시적으로 도시한다. 컴퓨팅 환경은 100은 CCN(content centric network) 102를 포함할 수 있고, CCN은 클라이언트 104, 호스팅 서비스 108, 그들의 이름 또는 이름 프리픽스를 기반으로 인터레스트 및 컨텐츠 오브젝트를 전달할 수 있는 복수의 CCN 노드(예를 들어, 라우터 및 멤버 컴퓨터 노드)를 포함할 수 있다.
클라이언트 104는 스마트폰 104.1, 테블릿 컴퓨터 104.2 및/또는 서버 또는 개인 컴퓨터 104.m과 같은 CCN 102와 연결된 컴퓨팅 장치를 포함할 수 있다. 동작하는 동안, 사용자 106은 호스팅 서비스 108과 함께 하나 이상의 교환 세션을 설정하기 위해 클라이언트 104를 사용할 수 있고, 교환 세션을 통해 호스팅 서비스 108로 컨텐츠를 발행할 수 있다. 클라이언트 104는 호스팅 서비스 108과 RCX 세션을 설정하기 위해 세션 초기화 메시지(SESSION INITIALIZE message)를 전송할 수 있고, 호스팅 서비스 108과 보안 교환 세션(secure exchange session)을 설정하기 위한 시작 메시지(START message)를 전송하기 위한 RCX 세션의 제어 채널을 사용할 수 있다. 시작 메시지는 호스팅 서비스 108에 의해 호스트되고 회수될 컨텐츠를 명명한다.
어떠한 실시예에서, 클라이언트 104는 발행될 다음 청크의 이름을 지시하는 다음(NEXT) 메시지를 전송함으로써 호스팅 서비스 108와의 교환 세션을 위한 그것의 전송 윈도우(send window)를 관리한다. 예를 들어, 만약, 클라이언트 104가 실시간 데이터 피드(live data feed)를 발행하는 경우, 클라이언트 104는 추가의 컨텐츠를 발행하는 동안 다음 메시지를 발행하는 것을 시작할 수 있다. 청킹된 이름(ChunkedName)의 이동의 경우, 다음 메시지는 스트림 내의 다음 컨텐츠 오브젝트의 이름을 포함한다. 메니페스트 이름(ManifestName)의 이동의 경우, 다음 메시지는 발행될 메니페스트의 다음 청크를 위한 이름을 포함한다.
호스팅 서비스 108은 CCN 102 상에서 컨텐츠를 호스팅하는 분산된 서버(distributed server)의 집합을 포함할 수 있다. 예를 들어, 서버 110은 다양한 컨텐츠 생산자에 의해 발행되는 컨텐츠를 저장하는 저장 장치 112를 포함하거나 연결될 수 있다. 예를 들어, 클라이언트 104가 호스팅 서비스 108과 교환 세션을 설정하는 경우, 하나 이상의 서버 110은 교환 세션 상에서 발행되는 컨텐츠 오브젝트를 위한 인터레스트를 전파할 수 있다. 교환 세션은 클라이언트 104와 호스팅 서비스 108 사이의 보안 연결이고, 이 보안 연결은 서버 110이 클라이언트 104에 의해 발행된 컨텐츠 오브젝트를 수신하고, 다른(악의적일 수 있는) 개체에 의해 발행된 동일한 이름의 다른 컨텐츠 오브젝트를 수신하지 않음을 보장한다. 호스팅 서비스 108은 CCN 교환 세션을 통해 전파되는 펜딩된 인터레스트의 수를 제어함으로써 그것의 수신 윈도우(receive window)를 관리할 수 있다. 예를 들어, 호스팅 서비스 108은 CCN 102을 가로지르는 현재 네트워크 컨디션에 따라 수신 윈도우의 사이즈를 증가시키거나 감소시킬 수 있다.
어떠한 실시예에서, 이후, 호스팅 서비스 108은 클라이언트 104 대신에 CCN 102 상에서 액세스 가능한 이러한 발행된 컨텐츠 오브젝트를 만들 수 있다. 예를 들어, 호스팅 서비스 108의 서버 110이 발행된 컨텐츠 오브젝트에 대한 인터레스트를 수신하는 경우, 호스팅 서비스 108은 컨텐츠 오브젝트의 이름 및/또는 해쉬 값에 기반하여 인터레스트를 만족시키는 컨텐츠 오브젝트를 되돌려줄 수 있다.
도 2는 본 발명의 실시예에 따른 클라이언트 202와 호스팅 서비스 204 사이의 예시적인 통신 200을 나타낸다. 동작 동안에 클라이언트 202와 호스팅 서비스 204는 2-way 인증을 수행함으로써 보안 제어 채널을 설정할 수 있다. 클라이언트 202는 세션 초기화(SESSION INITIALIZE) 212 메시지를 저장 장치 204로 전송할 수 있고 저장 장치는 세션 초기화 메시지를 클라이언트 202의 인증을 위해 사용할 수 있다. 만약 2-way 인증이 성공적인 경우, 클라이언트 202와 호스팅 서비스 204는 세션 식별자(session identifier) 및 선택적으로 세션 키(session key, SK)와 함께 보안 제어 채널을 설정할 수 있다.
클라이언트 202는 호스팅 서비스와의 하나 이상의 교환 세션을 초기화하기 위해 제어 채널을 이용할 수 있고, 이에 따라 호스팅 서비스가 대응 데이터 콜렉션을 복원하기 위해 각 교환 세션을 사용할 수 있다. 각 교환 세션은 명명된 컨텐츠를 획득하기 위한 호스팅 서비스 204에 대한 명시적 요청이다. 명명된 컨텐츠는 표준 청킹 프로토콜을 따르는 청킹된 이름의 컨텐츠 오브젝트의 시퀀스로 분할될 수 있다. 그렇지 않은 경우, 명명된 컨텐츠는 획득하고자 하는 컨텐츠 오브젝트에 대한 정확한 이름을 식별하는 그들의 해쉬 값을 포함하는 메니페스트(예를 들어, 컨텐츠 오브젝트의 보안 카탈로그)일 수 있다.
클라이언트 202는 호스팅 서비스로 "시작" 메시지 216(예를 들어, 교환-초기화 요청(exchange-initialization request))을 전송하고 "시작 ACK" 메시지 218을 수신함으로써 호스팅 서비스와 교환 세션을 설정하기 위한 전달 인증 프로세스를 수행할 수 있다. 시작 216은 SID, 클라이언트 생성 교환 식별자(XID), 클라이언트가 발행하고 교환 세션 상에서 전달할 수 있는 데이터 콜렉션에 대한 이름을 포함한다. 시작 216은 또한 교환 세션 상에서 호스팅 서버가 전송하는 인터레스트 메시지에 포함될 수 있는 키 식별자를 포함할 수 있다. START ACK 218은 SID와 XID를 포함할 수 있다.
어떠한 실시예에서, 발행된 데이터 콜렉션을 위한 이름은 예를 들어, 콜렉션에 대한 청킹된 이름 또는 콜렉션의 메니페스트에 대한 이름을 포함한다. 호스팅 서비스 204는 클라이언트 202가 콜렉션 내에 발행한 개별 컨텐츠 오브젝트에 대한 이름을 유도하거나 결정하기 위해 콜렉션의 이름을 사용할 수 있다. 발행된 컨텐츠 오브젝트의 콜렉션은 호스팅 서비스 204가 교환 세션 상에서 회수할 수 있는 "데이터 윈도우"를 형성한다.
교환 세션이 CCN 상에서 구현되는 것을 상기하라. 적어도 하나의 교환 세션이 초기화되는 경우, 호스팅 서비스 204는 보안 교환 세션 상에서 인터레스트 224를 전파하고 보안 교환 세션 상에서 대응 컨텐츠 오브젝트 224를 수신함으로써 발행된 컨텐츠 오브젝트를 획득할 수 있다. 호스팅 서비스 204는 인터레스트를 전파하는 레이트(rate)를 제어함으로써 펜딩된 인터레스트의 "수신 윈도우(receive window)"를 관리할 수 있다. 각 시간 호스팅 서비스(time hosting service) 204는 발행된 데이터 콜렉션의 부분에 대한 인터레스트를 전파하고, 이 부분은 수신 윈도우에 추가된다. 또한, 각 시간 호스팅 서비스 204는 인터레스트를 만족시키는 컨텐츠 오브젝트를 수신하고, 호스팅 서비스 204는 수신 윈도우로부터 대응 데이터 부분을 제거한다.
어떠한 실시예에서, 클라이언트 202는 호스팅 서비스 204로부터 주어진 교환 세션에 대한 상태 리포팅을 요청하기 위한 제어 채널을 사용할 수 있다. 상태 리포팅을 요청하기 위해, 클라이언트 202는 교환 세션에 대한 SID 및 XID 및 상태(STATUS) 메시지에 대한 시퀀스 번호 식별자(SeqNum)를 포함하는 상태(STATUS) 메시지를 전송할 수 있다. 호스팅 서비스는 SID, XID, 대응되는 STATUS 메시지에 대한 SeqNum 및 호스팅 서비스 204가 콜렉션으로부터 수신한 마지막 컨텐츠 오브젝트에 대한 CAN 이름을 포함하는 STATUS ACK 메시지를 돌려줄 수 있다.
예를 들어, 클라이언트 202가 호스팅 서비스 204로 전송한 제1 상태 메시지(예를 들어, 상태(STATUS) 220)는 SeqNum 값 1을 가질 수 있고, 클라이언트 202가 호스팅 서비스 204로 전송한 제2 상태 메시지(예를 들어, STATUS 228)는 2를 가질 수 있다. 또한, 만약, 클라이언트 202가 호스팅 서비스 204가 교환 세션 상에서 어떠한 컨텐츠 오브젝트를 수신하기 전에 상태 메시지 220을 호스팅 서비스 204로 전송하면, 호스팅 서비스 204는 호스팅 서비스 204가 빈 이름(empty name)(예를 들어, nothing)을 포함하는 컨텐츠 오브젝트를 수신하였음을 의미하는 CAN이 "빈(EMPTY)"인 상태 ACK 222를 되돌려줄 수 있다. 반면에, 만약, 클라이언트 202가 호스팅 서비스 204가 전체 데이터 콜렉션을 다운로드한 이후에 상태 메시지 228을 전송한다면, 호스팅 서비스는 호스팅 서비스 204가 콜렉션 내의 최후 컨텐츠 오브젝트를 포함하는 컨텐츠 오브젝트들을 수신하였음을 의미하는CAN이 데이터 콜렉션 내의 최후 컨텐츠 오브젝트인 상태 ACK 230을 되돌려줄 수 있다.
클라이언트 202가 호스팅 서비스 204가 교환 세션 상에 클라이언트 202가 발행한 컨텐츠를 수신하였음을 결정한 경우(예를 들어, STATUS ACK 230의 CAN에 기반하여), 클라이언트 202는 교환 세션을 종료할 수 있다. 클라이언트 202는 호스팅 서비스 204로의 종료(CLOSE) 메시지 232를 전송하기 위한 제어 채널을 이용함으로써 교한 세션을 종료할 수 있고, 따라서, 종료 메시지 232는 제어 채널에 대한 SID 및 종료될 교환 세션에 대한 XID를 포함한다. 호스팅 서비스는 SID 및 XID를 또한 포함하는 종료 ACK 메시지 234를 되돌려줌으로써 교환 세션이 종료됨을 승인할 수 있다.
어떠한 실시예에서, 제어 채널은 CCN 상에서 구현될 수 있다. 예를 들어, 클라이언트 202는 아래의 인터레스트를 전파함으로써 시작 메시지 216을 CCN 상에서 전파할 수 있다.
/provider/SID/E_sk({XID, Name, [KeyId|Hash],START}) (1)
인터레스트 (1)에서, 프리픽스 "/provider/"는 호스팅 서비스와 결합된 라우팅 가능한 프리픽스 및 호스팅 서비스의 이름을 포함할 수 있다. 다음 이름 요소 "SID"는 세션 키(Session Key, SK)와 결합된 세션을 식별한다. 다음 요소 "E_sk()"는 선택적으로 세션 키, SK로 암호화될 수 있는 결집된 데이터 구조를 포함한다. 어떠한 예시적인 구현은, 예를 들어, 타입-길이-값(Type-Length-Value(TLV)) 이진 포맷(binary format), 외부 데이터 표현(external data representation, XDR) 포맷, 또는 이미 알려지거나 이후에 개발될 다른 전달 인코딩 포맷을 사용할 수 있다.
결집된 데이터 구조는 교환 세션에 대한 XID, 전달될 데이터 콜렉션에 대한 이름, 및 시작 키워드(START keyword)를 포함한다. XID는 클라이언트 202에 의해 생성되고, 랜덤 생성 번호(random generated number)와 같은 고유 번호(unique number)일 수 있다. 이름 요소는 데이터 콜렉션에 대한 청킹된 이름 또는 메니페스트 이름을 명시한다. 시작 키워드는 인터레스트가 교환 세션을 시작하기 위한 요청을 포함하는 것을 지시한다.
어떠한 실시예에서, 청킹된 이름은 표준 청킹 프로토콜을 따른다. 만약, 청킹된 이름이 청크 번호 없는 베이스 이름(예를 들어, "/foo/bar")인 경우, 호스팅 서비스 204는 콜렉션 내의 모든 청크(예를 들어, "/foo/bar/c0,"..., "/foo/bar/c99")를 포함하는 데이터 윈도우를 가지는 파이프라인을 열어야 한다. 만약, 청킹된 이름이 단일 청크 이름(예를 들어, "/foo/bar/c33")에 대응되는 경우, 호스팅 서비스204는 특정 청크를 포함하는 데이터 윈도우를 가지는 파이프라인을 열어야 한다.
어떠한 실시예에서, 메니페스트 이름은 전달될 컨텐츠 오브젝트의 콜렉션을 열거하는 보안 카탈로그를 식별한다. 메니페스트 이름은 청킹 프로토콜을 따른다. 예를 들어, 호스팅 서비스 204는 메니페스트에 의해 식별된 모든 컨텐츠 오브젝트를 포함하는 데이터 윈도우를 가지는 파이프라인을 오픈함으로써 청크 번호(예를 들어, "/foo/bar/M0")를 제외하고 메니페스트의 이름을 처리한다. 그러나, 만약, 메니페스트의 이름 이후에 청크 번호가 뒤따르는 경우(예를 들어, "/foo/bar/M0/I0"), 호스팅 서비스 204는 메니페스트 "M0", 아이템 "0"에 의해 식별되는 컨텐츠 오브젝트를 포함하는 데이터 윈도우를 가지는 파이프라인을 열어야 한다.
어떠한 실시예에서, 시작 메시지 220은 호스팅 서비스 204가 교환 세션 상에서 전파되는 인터레스트 내에 포함하려고 하는 선택적인 KeyId 제한 및/또는 해쉬 제한을 포함할 수 있다. KeyId는 타겟 CCN 컨텐츠 생산자(예를 들어, 클라이언트 202)와 결합된 키 식별자를 명시하고, 해쉬 제한은 컨텐츠 오브젝트(예를 들어, 단일 청크)에 대한 해쉬 값을 명시한다. 호스팅 서비스 204가 인터레스트 내의 KeyId 제한을 포함하는 경우, 다른 CCN 노드는 KeyId와 결합된 타겟 CCN 컨텐츠 생산자 쪽으로 인터레스트를 전달한다. 유사하게, 호스팅 서비스 204가 인터레스트 내에 해쉬 제한을 포함하는 경우, 타겟 생산자는 해쉬 값이 해쉬 제한에 매칭되는 컨텐츠 오브젝트를 되돌려준다.
클라이언트 202는 CCN 상에서 아래의 인터레스트를 전파함으로써 상태 메시지 220을 전파할 수 있다.
/provider/SID/E_sk({XID,SeqNum,STATUS}) (2)
인터레스트 (2)에서, 프리픽스 "/provider"는 호스팅 서비스 204와 다시 대응되고, 이름 요소 "SID"는 클라이언트 202와 호스팅 서비스 204 사이의 세션 키(SK)와 결합될 수 있는 세션을 식별한다. 다음 요소 "E_sk()"는 결집된 데이터 구조를 포함하고, 선택적으로 세션 키, SK로 암호화된다. 결집된 데이터 구조의 컨텐츠는 교환 세션에 대한 식별자(XID), 상태 메시지를 식별하는 시퀀스 번호(SeqNum), 호스팅 서비스 204로부터 상태에 대한 요청을 지시하는 상태 키워드(STATUS keyword)를 포함한다.
클라이언트 202는 아래의 인터레스트를 전파함으로써 종료(CLOSE) 메시지 232를 전파할 수 있다.
/provider/SID/E_sk({XID, CLOSE}) (3)
인터레스트 (3)에서, 프리픽스 "/provider"는 다시 호스팅 서비스 204에 대응되고, 이름 요소 "SID"는 클라이언트 202 및 호스팅 서비스 204 사이의 세션을 식별한다. 다음 요소 "E_sk()"는 결집된 데이터 구조(선택적으로 세션 키, SK를 기반으로 암호화되는)를 포함하고, 그것의 컨텐츠는 XID 식별자, 호스팅 서비스 204가 식별자 XID와 결합된 교환 세션을 종료하도록 하는 종료 키워드를 포함할 수 있다.
어떠한 실시예에서, 클라이언트 202 또는 호스팅 서비스 204는 교환 세션을 포기하기 위해 CCN 상에서 포기(ABORT) 메시지를 전파할 수 있다.
/target/SID/E_sk({XID, ABORT}) (4)
인터레스트 (4)에서, 포기 키워드는 수신측 "/target"(예를 들어, 클라이언트 202 또는 호스팅 서비스 204)으로 식별자 XID와 결합된 교환 세션이 끝이 났다는 것을 통지한다.
도 3은 실시예에 따른 호스팅 서비스와의 교환 세션을 설정하기 위한 방법 300을 도시하는 플로우 차트를 나타낸다. 동작 동안, 클라이언트는 호스팅 서비스와 식별 및/또는 인증 정보를 교환함으로써 호스팅 서비스와의 제어 채널을 설정한다. 제어 채널은 IP-기반 네트워크 또는 CCN과 같은 지금 알려져 있거나 이후에 개발될 컴퓨터 네트워크 상에 존재할 수 있다. 클라이언트는 하나 이상의 교환 세션을 시작하기 위해 제어 채널을 사용할 수 있고, 교환 세션을 위한 윈도우를 제어할 수 있다.
제어 채널을 설정하기 위해 클라이언트는 클라이언트를 식별하는 세션 초기화(SESSION INITIALIZE) 메시지를 생성할 수 있고(동작 302), 세션 초기화 메시지를 호스팅 서비스로 전송한다(동작 304). 세션 초기화 메시지는 암호화 키를 통해 식별자를 제공하거나(예를 들어, 디지털 인증을 통해) 인증 자격(예를 들어, 사용자 이름 및 암호)을 제공하는 것과 같은 방식으로 클라이언트를 식별하는 어떠한 정보를 포함할 수 있다.
만약, 호스팅 서비스가 클라이언트를 성공적으로 인증하거나 인가하는 경우, 클라이언트는 호스팅 서비스로부터 세션 응답(SESSION RESPONSE) 메시지를 수신할 수 있다(동작 306). 세션 응답 메시지는 클라이언트와 호스팅 서비스 사이의 교환 세션을 식별하는 세션 식별자(SID)를 포함할 수 있고, 어떠한 실시예에서는, 교환 세션에 대한 세션 키를 또한 포함할 수 있다. 어떠한 실시예에서는 호스팅 서비스는 클라이언트에게 세션 키를 안전하게 전달할 수 있고, 키 로테이션 프로토콜(key rotation protocol)을 통해 보안 세션 키를 유지할 수 있다. 클라이언트와 호스팅 서비스는 이름을 가진 사용자 데이터 및 제어 채널 상에 전송되는 패킷의 페이로드를 암호화하기 위해 세션키를 사용할 수 있다.
클라이언트는 호스팅 서비스를 인증하기 위한 세션 응답(SESSION RESPONSE) 메시지를 사용하고(동작 308), 인증이 성공적인지 여부에 대해 결정한다(동작 310). 만약, 인증이 성공적이지 않은 경우, 클라이언트는 교정 동작(remedial action)을 수행할 수 있다. 그러나 만약, 클라이언트가 호스팅 서비스를 인증하는 경우, 클라이언트는 하나 이상의 교환 세션을 설정하고 관리하기 위한 제어 채널을 사용할 수 있다. 예를 들어, 클라이언트는 "시작" 메시지를 제어 채널을 통해 호스팅 서비스로 전송함으로써 보안 교환 세션을 설정할 수 있다(동작 312). 시작 메시지는 세션 식별자, 교환 세션에 대한 교환 식별자(XID), 호스팅 서비스에 저장될 데이터 콜렉션의 이름을 포함할 수 있다. 시작 메시지는 또한 CCN 기반 교환 세션 상에서 데이터 콜렉션의 부분을 요청할 때 호스팅 서비스가 그것의 인터레스트 메시지에 포함하는 KeyID 제한을 포함할 수 있다.
만약, 호스팅 서비스가 데이터 콜렉션을 저장할 수 있다면, 호스팅 서비스는 제어 채널을 통해 시작 ACK 메시지를 되돌려 받을 수 있다. 그래서, 클라이언트가 시작 ACK 메시지를 호스팅 서비스로부터 수신하는 경우(동작 314), 클라이언트는 보안 교환 세션 상에서 호스팅 서비스로 데이터 콜렉션의 데이터 부분의 전달을 진행할 수 있다(동작 316). 특히, 클라이언트는 보안 교환 세션 상에서 데이터 콜렉션의 부분을 위한 CCN 인터레스트 메시지를 수신할 수 있고, 대응 데이터 부분을 포함하는 컨텐츠 오브젝트를 되돌려주기 위한 인터레스트 메시지들을 처리할 수 있다. 일반적인 CCN 네트워크에서, 인터레스트를 수신하는 네트워크 노드는 인터레스트가 어디에서 오는지를 일반적으로 알지 못한다. 그러나, CCN 패킷의 전달을 위해 보안 교환 세션을 사용하는 경우, 인증된 호스팅 서비스와 결합된 네트워크 노드는 클라이언트에 의해 호스트된 데이터 콜렉션에 대한 유효한 인터레스트를 전파할 수 있다. 클라이언트는 보안 교환 세션 상에서 전송되지 않은 데이터 콜렉션에 대한 인터레스트를 무시할 수 있다.
교환 세션의 데이터 윈도우가 호스팅 서비스가 클라이언트로부터 요청할 수 있는 발행된 컨텐츠 오브젝트의 콜렉션을 포함하는 것을 상기하라. 어떠한 실시예에서, 클라이언트는 교환 세션이 활성화된 동안 교환 세션의 데이터 윈도우를 조정할 수 있다. 이것은 클라이언트가 라이브 미디어 스트림과 같은 데이터 콜렉션에 대한 부분을 추가하고 콜렉션에서 새로운 데이터 부분의 호스팅 서비스를 알리는 것을 허용할 수 있다.
도 4는 실시예에 따른 호스팅 서비스와의 교환 세션을 관리하기 위한 방법 400을 도시하는 플로우 차트를 나타낸다. 동작 동안, 클라이언트는 제어 채널 상에서 호스팅 서비스로 "상태" 요청 메시지를 전송할 수 있다(동작 402). 상태 요청 메시지는 교환 세션을 식별하기 위한 세션ID 및 XID를 포함할 수 있고, 이러한 상태 요청 메시지를 다른 상태 요청 메시지로부터 차별화하는 상태 시퀀스 번호(SeqNum)를 포함할 수 있다.
클라이언트가 제어 채널 상에서 호스팅 서비스로부터 상태 ACK을 수신한 경우(동작 404), 클라이언트는 SeqNum을 사용하는 상태 요청 메시지에 상태 ACK을 매칭할 수 있고, 호스팅 서비스에서 데이터 전달의 상태를 결정하기 위해 상태 ACK을 분석한다(동작 406). 클라이언트는 교환 세션의 전달이 완료되었는지를 결정한다(동작 408).
만약, 전달이 완료되지 않은 경우, 클라이언트는 전달될 다음 부분을 포함하는 데이터 윈도우를 조정할 수 있고(동작 410), "다음" 메시지를 제어 채널을 통해 호스팅 서비스로 전송한다(동작 412). 다음 메시지는 다음 데이터 윈도우를 명시하고, SID, XID, KeyID(존재하는 경우), 다음 메시지에 대한 SeqNum를 포함한다. 어떠한 실시예서는, 다음 메시지는 발행될 다음 청킹된 객체(예를 들어, 데이터 콜렉션의 컨텐츠 오브젝트)에 대한 이름을 포함하거나, 발행될 다음 메니페스트에 대한 이름을 포함함으로써 다음 데이터 윈도우를 명시화한다. 예를 들어, 청킹된 이름의 전달의 경우, 다음 메시지는 스트림에서 다음 청크의 이름을 포함한다. 메니페스트 이름의 전달의 경우, 다음 메시지는 메니페스트(또는 메니페스트 계층의 어떠한 메니페스트)에 나열된 다음 청크에 대한 이름을 포함한다.
클라이언트는 아래의 인터레스트를 전파함으로써 CCN 상에서 다음 메시지를 전파할 수 있다.
/provider/SID/E_sk({XID,SeqNum,NextName,NEXT}) (5)
인터레스트 (5)에서 프리픽스 "/provider"는 호스팅 서비스와 결합된 라우팅 가능한 프리픽스 및 호스팅 서비스의 이름을 포함한다. 이름 요소 "SID"는 클라이언트와 호스팅 서비스 사이의 세션 키와 결합될 수 있는 세션을 식별한다. 다음 요소 "E_ sk()" 는 결집된 데이터 구조를 포함하고, 선택적으로 세션 키, SK로 암호화된다. 결집된 데이터 구조의 컨텐츠는 교환 세션에 대한 식별자(XID), 상태 메시지를 식별하는 시퀀스 번호(SeqNum) 및 데이터 윈도우에 대한 업데이트를 포함하는 인터레스트를 지시하는 다음 키워드(NEXT keyword)를 포함한다. 결집된 데이터 구조는 또한, 클라이언트가 교환 세션 상에서 발행하는 추가적인 부분에 대한 결집된 이름(MarshalledName) 또는 메니페스트 이름(ManifestName)일 수 있는 "다음이름(NextName)" 요소를 포함한다.
만약, 호스팅 서비스가 다음 데이터 윈도우에 의해 발행된 추가적인 데이터를 저장할 수 있다면, 클라이언트는 "다음(NEXT) ACK" 메시지를 다음 데이터 윈도우를 승인하는 호스팅 서비스로부터 수신할 수 있다. 반면, 만약, 교환 세션의 전달이 완료된 경우, 클라이언트는 SID 및 XID를 포함하는 "종료(CLOSE)" 메시지를 생성할 수 있고, 교환 세션을 종료하기 위해 종료 메시지를 제어 채널 상에서 호스팅 서비스로 전송할 수 있다(동작 416). 호스팅 서비스는 SID 및 XID를 포함하는 "종료 ACK" 메시지를 되돌려줌으로써 교환 세션의 종료를 승인한다. 클라이언트가 제어 채널 상에서 호스팅 서비스로부터 종료 ACK 메시지를 수신하는 경우(동작 418), 클라이언트는 교환 세션을 종료한다(동작 420).
클라이언트 및 호스팅 서비스가 SID와 결합된 복수의 활성화된 교환 세션을 가지는 것이 가능함을 상기하라. 어떠한 실시예에서, 클라이언트가 교환 세션을 종료한 경우, 호스팅 서비스는 다른 활성화된 교환 세션 상에서 추가의 데이터 부분을 획득하기 위해 인터레스트의 전파를 시작할 수 있다.
도 5는 실시예에 따른 클라이언트와의 교환 세션을 설정하기 위한 방법 500을 도시하는 플로우 차트를 나타낸다. 동작하는 동안, 호스팅 서비스는 클라이언트로부터 클라이언트를 식별하는 세션 초기화 메시지를 수신할 수 있고(동작 502), 클라이언트를 인증하기 위한 클라이언트의 식별 정보를 사용한다(동작 504). 호스팅 서비스는 인증이 성공적인지 여부를 결정한다(동작 506). 만약 인증이 성공적이지 못한 경우, 호스팅 서비스는 세션 응답(SESSION RESPONSE) 메시지를 되돌려주지 않음으로써 제어 채널의 설정을 피할 수 있고, 인증되지 않은 클라이언트로부터의 메시지를 무시할 수 있다(동작 508).
반면, 만약 호스팅 서비스가 클라이언트를 성공적으로 인증하였다면, 호스팅 서비스는 제어 채널을 설정하는 것을 종료하기 위해 클라이언트로 세션 응답 메시지를 전송한다(동작 510). 세션 응답 메시지는 제어 채널에 대한 세션 식별자(SID) 및 세션 키(SK)를 포함한다. 호스팅 서비스는 제어 채널 상으로 클라이언트로부터 시작 메시지를 수신한다(동작 512). 시작 메시지는 SID, 교환 세션에 대한 교환 식별자(XID) 및 호스팅 서비스에 의해 저장될 데이터 콜렉션에 대한 이름을 포함할 수 있다. 시작 메시지는 또한 CCN 기반 교환 세션 상에서 데이터 콜렉션의 부분을 요청할 때 인터레스트 메시지에 포함될 수 있는 KeyID 제한을 포함할 수 있다.
호스팅 서비스는 교환 세션을 확인하기 위해 제어 채널 상으로 클라이언트에게 시작 ACK 메시지를 전송한다(동작 514). 호스팅 서비스는 교환 세션 상에서 클라이언트로부터 데이터 콜렉션의 부분을 획득한다(동작 516). CCN 상에서 교환 세션이 현실화되는 것을 상기하라. 그래서 호스팅 서비스는 교환 세션의 데이터 윈도우 내의 데이터 세그먼트를 위한 인터레스트를 전파함으로써 데이터 콜렉션을 획득할 수 있다. 호스팅 서비스는 수신 윈도우에 대한 범위 또는 타겟 최대 사이즈 내에 머물도록 펜딩된 인터레스트의 수를 제한함으로써 그것의 수신 윈도우의 사이즈를 제어할 수 있다.
도 6은 실시예에 따른 클라이언트와의 교환 세션을 관리하기 위한 방법 600을 도시하는 플로우 차트를 나타낸다. 동작하는 동안, 호스팅 서비스는 교환 세션에 대한 데이터 윈도우를 결정할 수 있다(동작 602). 데이터 윈도우는 클라이언트가 발행하고 호스팅 서비스가 클라이언트로부터 요청할 수 있는 컨텐츠 오브젝트의 콜렉션을 포함할 수 있다. 호스팅 서비스는 클라이언트로부터 데이터 윈도우에 추가되는 컨텐츠 오브젝트에 대한 이름을 청킹된 이름 또는 메니페스트 이름으로서 수신할 수 있다.
호스팅 서비스는 클라이언트로부터 요청을 위한 데이터 윈도우 내의 컨텐츠 오브젝트의 집합을 결정하고(동작 604), 컨텐츠 오브젝트의 집합에 대한 인터레스트의 집합을 생성한다(동작 606). 호스팅 서비스는 컨텐츠 오브젝트의 집합을 획득하기 위해 보안 교환 세션 상에서 인터레스트의 집합을 전파한다(동작 608). 어떠한 실시예에서, 호스팅 서비스는 인터레스트를 전파하는 레이트를 제어함으로써 그것의 수신 윈도우를 관리할 수 있다. 호스팅 서비스의 수신 윈도우는 호스팅 서비스가 기다리는 컨텐츠 오브젝트에 대한 펜딩 인터레스트의 집합에 대응된다. 호스팅 서비스가 교환 세션 상에서 컨텐츠 오브젝트에 대한 인터레스트를 전파한 경우, 호스팅 서비스는 컨텐츠 오브젝트를 수신 윈도우에 추가하고 수신 윈도우로부터 컨텐츠 오브젝트를 제거한다.
제어 채널을 통해 호스팅 서비스로 메시지를 전송함으로써 클라이언트가 교환 세션을 관리함을 상기하라. 클라이언트는 예를 들어, "상태(STATUS)" 메시지를 호스팅 서비스가 컨텐츠 오브젝트를 성공적으로 수신하였는지를 결정하기 위하여, "다음(NEXT)" 메시지를 데이터 윈도우로 컨텐츠 오브젝트를 추가하기 위하여, "종료(CLOSE) 메시지를 교환 세션을 종료하기 위하여 전송할 수 있다.
호스팅 서비스가 제어 채널 상으로 클라이언트로부터 메시지를 수신한 경우(동작 610), 호스팅 서비스는 메시지에 대한 타입을 결정한다(동작 612). 만약, 메시지가 "다음" 메시지인 경우, 호스팅 서비스는 데이터 윈도우로 추가될 컨텐츠 오브젝트의 콜렉션을 결정하기 위해 다음 메시지를 분석할 수 있다(동작 614). 다음 메시지는 SID, XID, SeqNum 및 호스팅 서비스에 의해 저장될 데이터 콜렉션에 대한 이름을 포함할 수 있다. 다음 메시지는 데이터 콜렉션의 부분을 CCN 기반 교환 세션 상에서 요청하는 경우, 호스팅 서비스가 인터레스트 메시지에 포함할 수 있는 KeyID 제한을 포함할 수 있다. 호스팅 서비스는 컨텐츠 오브젝트, 새로운 데이터 윈도우 내에 명시된 컨텐츠 오브젝트의 콜렉션을 포함하기 위한 로컬 데이터 윈도우를 업데이트하고(동작 616), 클라이언트로 다음(NEXT) ACK 메시지를 전송한다(동작 618). 호스팅 서비스는 업데이트된 데이터 윈도우를 기반으로 추가적인 인터레스트를 전파하기 위해 동작 604로 돌아갈 수 있다. 다음 ACK 메시지는 SID, XID 및 다음 메시지로부터의 SeqNum을 포함할 수 있다.
만약, 메시지가 "상태" 메시지인 경우, 호스팅 서비스는 교환 세션의 상태를 결정할 수 있고(동작 620) 수신한 데이터 콜렉션의 컨텐츠 오브젝트를 캡슐화하는 CAN을 포함하는 "상태ACK" 메시지를 되돌려줄 수 있다(동작 622). 클라이언트로부터 상태 메시지는 SID, XID 및 상태 메시지에 대한 SeqNum을 포함할 수 있다. 상태 ACK 메시지는 SID, XID, 상태 메시지에 대한 SeqNum 및 CAN을 포함할 수 있다.
만약, 메시지가 "종료" 메시지인 경우, 호스팅 서비스는 종료될 교환 세션을 식별하기 위해 종료 메시지로부터 세션 ID(SID) 및 XID를 결정한다(동작 624). 호스팅 서비스는 SID 및 XID를 포함하는 종료 ACK 메시지를 되돌려주고(동작 626) SID 및 XID와 결합된 교환 세션을 종료한다.
도 7은 실시예에 따른 호스팅 서비스로 컨텐츠를 로딩하는 것을 용이하게 하는 예시적 장치 700을 도시한다. 장치 700은 유선 또는 무선 통신 채널을 통해 상호간에 통신할 수 있는 복수의 모듈을 포함할 수 있다. 장치 700은 하나 이상의 직접 회로를 사용하여 현실화될 수 있고, 도 7에서 보여진 것보다 적거나 많은 모듈을 포함할 수 있다. 더욱이, 장치 700은 컴퓨터 시스템 내에 직접될 수 있고, 또는 다른 컴퓨터 시스템 및 /또는 장치와 통신을 가능하게 하는 개별 장치로서 현실화될 수 있다. 구체적으로, 장치 700은 통신 모듈 702, 제어 채널 설정 모듈 704, 인증 모듈 706, 교환 세션 설정 모듈 708, 인터레스트-프로세싱 모듈 710 및 파이프라인-관리 모듈 712를 포함할 수 있다.
어떠한 실시예에서, 통신 모듈 702는 인터넷 프로토콜(IP) 기반 네트워크, CCN(content centric network), ICN(information centric network) 또는 알려져 있거나 이후에 개발될 네트워크 구조와 같은 컴퓨터 네트워크 상에서 데이터를 전송하거나 수신할 수 있다. 제어 채널 설정 모듈 702는 장치 700 대신에 컨텐츠를 호스트하기 위한 호스팅 서비스와의 제어 채널을 설정할 수 있고, 인증 모듈 706은 호스팅 서비스를 인증할 수 있다.
교환 세션 설정 모듈 708은 호스팅 서비스로 컨텐츠를 전송하기 위해 호스팅 서비스와의 교환 세션을 설정하기 위한 제어 채널을 이용할 수 있다. 인터레스트-프로세싱 모듈 710은 컨텐츠의 부분을 요청하기 위한 교환 세션 상에서 수신된 인터레스트를 프로세싱할 수 있고 컨텐츠의 요청된 부분을 포함하는 컨텐츠 오브젝트를 되돌려줄 수 있다. 파이프라인-관리 모듈 712는 컨텐츠의 부분을 위한 데이터 윈도우를 조절함으로써 컨텐츠의 부분의 파이프라인 흐름을 관리할 수 있다.
도 8은 실시예에 따른 호스팅 서비스로의 컨텐츠 로딩을 용이하게 하는 컴퓨터 시스템 802를 예시적으로 도시한다. 컴퓨터 시스템 802는 프로세서 804, 메모리 806 및 저장 장치 808을 포함한다. 메모리 806은 관리된 메모리로서 사용되는 휘발성 메모리(예를 들어, RAM)을 포함할 수 있고, 하나 이상의 메모리 풀을 저장하기 위해 사용될 수 있다. 더욱이, 컴퓨터 시스템 802는 디스플레이 장치 810, 키보드 812, 포인팅 장치 814와 연결될 수 있다. 저장 장치 808은 동작 시스템 816, 컨텐츠 교환 시스템 818 및 데이터 826을 저장할 수 있다.
컨텐츠 교환 시스템 818은 컴퓨터 시스템 802에 의해 실행되는 경우, 컴퓨터 시스템 802이 본 개시에 설명된 방법 및/또는 프로세스를 수행하도록 하기 위한 명령을 포함할 수 있다. 구체적으로, 컨텐츠 교환 시스템 818은 인터넷 프로토콜(IP) 기반 네트워크, CCN, ICN 또는 알려져 있거나 이후에 개발될 네트워크 구조와 같은 컴퓨터 네트워크 상에서 데이터를 전송하거나 수신하기 위한 명령을 포함할 수 있다(통신 모듈 820). 더욱이, 컨텐츠 교환 시스템 818은 컴퓨터 시스템 802 대신 컨텐츠를 호스트하기 위한 호스팅 서비스와의 제어 채널을 설정하기 위한 명령을 포함할 수 있고(제어 채널 설정 모듈 822), 호스팅 서비스를 인증하기 위한 명령을 포함할 수 있다(인증 모듈 824).
컨텐츠 교환 시스템 818은 또한, 호스팅 서비스와의 교환 세션을 설정하고 호스팅 서비스로 컨텐츠를 전송하기 위한 제어 채널을 사용하기 위한 명령을 포함할 수 있다(인증 모듈 826). 컨텐츠 교환 시스템 818은 또한, 컨텐츠의 부분을 요청하기 위한 교환 세션 상에서 수신된 인터레스트를 프로세싱하고 컨텐츠의 요청된 부분을 포함하는 컨텐츠 오브젝트를 되돌려주기 위한 명령을 포함할 수 있다(인증 모듈 828). 컨텐츠 교환 시스템 818은 또한, 컨텐츠의 부분에 대한 데이터 윈도우를 조정함으로써 컨텐츠의 부분의 파이프라인 흐름을 관리하기 위한 명령을 포함할 수 있다(인증 모듈 830).
데이터 826은 본 개시에 설명된 방법 및/또는 프로세스에 의한 출력으로서 생성되거나 입력으로서 요청되는 어떠한 데이터를 포함할 수 있다. 구체적으로 데이터 826은 발행하기 위한 적어도 하나의 데이터의 콜렉션을 포함할 수 있다.
상세한 설명에 기술된 데이터 구조 및 코드는 일반적으로 컴퓨터 가독 가능한 스토리지 매체에 저장될 수 있고, 컴퓨터 가독 가능한 스토리지 매체는 컴퓨터 시스템의 사용을 위해 저장된 코드 및/또는 데이터를 저장할 수 있는 장치 또는 매체일 수 있다. 컴퓨터 가독 가능한 스토리지는 제한은 없으나, 휘발성 메모리, 비휘발성 메모리, 디스크 드라이브, 자기 테이프, CDs (compact discs), DVDs (digital versatile discs or digital video discs)와 같은 자기 및 광학 스토리지 장치 또는 알려지거나 이후에 개발될 컴퓨터 가독 가능한 미디어의 저장을 가능하게 하는 다른 미디어를 포함할 수 있다.
상세한 설명 부분에 설명된 방법 및 프로세스는 코드 및/또는 데이터로 구현될 수 있고, 전술한 컴퓨터 가독 가능한 스토리지 매체에 저장될 수 있다. 컴퓨터 시스템이 컴퓨터 가독 가능한 스토리지 매체에 저장된 코드 및/또는 데이터를 읽고 실행하는 경우, 컴퓨터 시스템은 컴퓨터 가독 가능한 스토리지 매체 내에 저장된 데이터 구조 및 코드로 구현된 방법 및 프로세스를 수행할 수 있다.
더욱이, 여기서 개시된 방법 및 프로세스는 하드웨어 모듈 또는 장치에 포함될 수 있다. 이러한 모듈 또는 장치는 제한은 없으나 특정 소프트웨어 모듈 또는 특정 시간에 코드의 일부를 실행하는 ASIC(application-specific integrated circuit), FPGA(field-programmable gate array), 전용 또는 공유 프로세서 및/또는 알려지거나 이 후에 개발될 수 있는 프로그램 가능한-논리 장치를 포함할 수 있다. 하드웨어 모듈 또는 장치가 활성화된 경우, 그들 내에 포함되는 방법 및 프로세스가 수행될 수 있다.

Claims (10)

  1. CCN(content centric network) 상에서 컨텐츠 교환 세션을 수립하기 위한 컴퓨터-구현 방법에 있어서, 상기 방법은,
    컴퓨터 장치에 의해 호스팅 서비스와의 제어 채널을 초기화하는 단계,
    상기 호스팅 서비스로 전송할 컨텐츠를 선택하는 단계,
    상기 선택된 컨텐츠에 대한 교환 세션을 위한 교환 식별자(exchange identifier, XID)를 생성하는 단계,
    상기 제어 채널을 통해 교환 초기화 요청(Exchange-initialization request)을 상기 호스팅 서비스로 전송하고, 상기 교환 초기화 요청은 상기 선택된 컨텐츠와 결합된 콜렉션 이름 (collection name) 및 상기 교환 세션에 대한 상기 XID를 포함하고,
    상기 교환 세션을 통한 상기 선택된 컨텐츠의 세그먼트를 요청하는 인터레스트(Interest)의 수신에 대한 응답으로, 컨텐츠 오브젝트(Content Object) - 상기 컨텐츠 오브젝트의 페이로드는 상기 컨텐츠의 상기 요청된 세그먼트를 포함 - 를 반환하는 것을 포함하는 방법.
  2. 제1항에 있어서, 상기 호스팅 서비스와의 제어 채널을 초기화하는 단계는 상기 호스팅 서비스로 인증 정보를 제공하는 것을 포함하는 방법.
  3. 제1항에 있어서, 상기 컨텐츠는 순차적으로 넘버링되는 데이터 청크들의 콜렉션을 포함하고, 상기 콜렉션 이름은 상기 컨텐츠에 대한 청크 이름(Chunked Name)을 포함하는 방법.
  4. 제1항에 있어서, 상기 콜렉션 이름은 상기 컨텐츠에 대한 메니페스트 이름(Manifest name)을 포함하고, 상기 메니페스트 이름은 상기 컨텐츠에 대한 메니페스트 내에 명명된 오브젝트들에 기반하여 도출되는 방법.
  5. 제1항에 있어서, 상기 교환 초기화 요청을 상기 호스팅 서비스로 전송하는 단계는 제2 인터레스트 메시지 - 상기 제 2 인터레스트 메시지 이름은 상기 호스팅 서비스와 관련된 제1 이름 프리픽스를 포함 - 및 상기 제어 채널에 대한 세션 식별자(session identifier, SID), 상기 선택된 컨텐츠와 관련된 이름 및 상기 XID를 전송하는 단계를 포함하는 방법.
  6. 제1항에 있어서, 상기 교환 초기화 요청을 상기 호스팅 서비스로 전송하는 것에 대한 응답으로, 상기 방법은 상기 XID, 상기 제어 채널에 대한 세션 식별자(session identifier, SID)를 포함하는 ACK(acknowledgement) 메시지를 수신하는 단계를 더 포함하는 방법.
  7. 제6항에 있어서, 상기 제2 인터레스트 메시지 이름은 상기 컨텐츠 이름 및 상기 제어 채널과 관련된 세션 키를 사용하여 암호화된 상기 XID를 포함하는 방법.
  8. 제1항에 있어서,
    상기 호스팅 서버로 상기 교환 세션을 식별하는 상기 XID를 포함하는 상태 요청 메시지(Status-request message)를 전송하는 단계; 및,
    상기 교환 세션을 통해 수신된 정렬된 컨텐츠 오브젝트들의 셋(set)을 수신하였음을 통지하기(acknowledge) 위한 CAN(cumulative ACK name)을 포함하는 ACK 메시지를 전송하는 단계를 더 포함하고, 상기 CAN은 정렬된 컨텐츠 오브젝트들의 셋 내에 최신 컨텐츠 오브젝트에 대한 이름을 포함하고, 상기 CAN은 상기 정렬된 컨텐츠 오브젝트들의 집합 - 상기 정렬된 컨텐츠 오브젝트들의 집합의 이름은 상기 최신 컨텐츠 오브젝트의 이름을 포함하고, 상기 최신 컨텐츠 오브젝트의 이름에 따라 결정됨 - 을 수신하였음을 통지하는, 방법.
  9. 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 CCN 상에서 컨텐츠 교환 세션을 수립하기 위한 방법을 수행하도록 하는 명령들을 저장하는 컴퓨터 가독가능한 비일시적인 저장 매체에 있어서, 상기 방법은
    호스팅 서비스와의 제어 채널을 초기화하는 단계,
    상기 호스팅 서비스로 전송할 컨텐츠를 선택하는 단계,
    상기 선택된 컨텐츠에 대한 교환 세션을 위한 교환 식별자(exchange identifier, XID)를 생성하는 단계,
    상기 제어 채널을 통해 교환 초기화 요청을 상기 호스팅 서비스로 전송하는 단계로서, 상기 교환 초기화 요청은 상기 SID, 상기 선택된 컨텐츠와 관련된 콜렉션 이름 및 상기 교환 세션에 대한 상기 XID를 포함하는,상기 호스팅 서비스로 전송하는 단계; 및
    상기 교환 세션을 통한서 상기 선택된 컨텐츠의 세그먼트를 요청하는 인터레스트의 수신에 대한 응답으로, 컨텐츠 오브젝트 - 상기 컨텐츠 오브젝의 페이로드는 상기 컨텐츠의 상기 요청된 세그먼트를 포함 - 를 반환하는 단계를 포함하는 컴퓨터 가독가능한 비일시적인 저장 매체.
  10. 호스팅 서비스를 위한 컴퓨터 시스템은
    하나 이상의 프로세서들;
    메모리; 및
    하나 이상의 프로세서와 연결되고 상기 하나 이상의 프로세서들에 의해 실행될 때, 컴퓨팅 시스템으로 하여금
    클라이언트 장치와의 제어 채널을 초기화단계로서, 상기 클라이언트로 상기 제어 채널에 대한 SID(session identifier)를 전송하는 단계를 포함하는, 상기 제어 채널을 초기화하는 단계,
    상기 제어 채널을 통해 상기 클라이언트 장치로부터 교환 초기화 요청을 수신하는 단계로서, 상기 교환 초기화 요청은 교환 세션에 대한 XID(exchange identifier)를 포함하고, 상기 클라이언트 장치로부터 수신할 컨텐츠와 관련된 콜렉션 이름을 포함하는, 상기 교환 초기화 요청을 수신하는 단계,
    상기 교환 세션을 통하여 상기 컨텐츠의 부분을 요청하는 인터레스트(Interest)를 전송하는 단계,
    컨텐츠 오브젝트를 - 상기 컨텐츠 오브젝트의 페이로드는 상기 컨텐츠의 상기 요청된 부분을 포함 - 수신한 것에 대한 응답으로, 상기 컨텐츠와 관련된 상기 컨텐츠 오브젝트를 저장하는 단계를 포함하는 방법을 수행하도록 하는 저장된 명령들을 저장하는 컴퓨터 가독 가능한 매체를 포함하는, 컴퓨터 시스템.
KR1020150117776A 2014-09-02 2015-08-21 Ccn 파이프라인 스트림의 신뢰도있는 컨텐츠 교환 방법 및 시스템 KR20160027910A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/475,416 2014-09-02
US14/475,416 US20160065677A1 (en) 2014-09-02 2014-09-02 System and method for a reliable content exchange of a ccn pipeline stream

Publications (1)

Publication Number Publication Date
KR20160027910A true KR20160027910A (ko) 2016-03-10

Family

ID=53938226

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150117776A KR20160027910A (ko) 2014-09-02 2015-08-21 Ccn 파이프라인 스트림의 신뢰도있는 컨텐츠 교환 방법 및 시스템

Country Status (5)

Country Link
US (1) US20160065677A1 (ko)
EP (1) EP2993593A1 (ko)
JP (1) JP2016053950A (ko)
KR (1) KR20160027910A (ko)
CN (1) CN105391570A (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150195764A1 (en) * 2014-01-07 2015-07-09 Electronics And Telecommunications Research Institute Network service system and method for providing network service in multiple mobile network environment
US9946743B2 (en) * 2015-01-12 2018-04-17 Cisco Technology, Inc. Order encoded manifests in a content centric network
US9973578B2 (en) * 2015-06-01 2018-05-15 Telefonaktiebolaget Lm Ericsson (Publ) Real time caching efficient check in a content centric networking (CCN)
US10701038B2 (en) * 2015-07-27 2020-06-30 Cisco Technology, Inc. Content negotiation in a content centric network
US10091330B2 (en) * 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
EP3610628B1 (en) * 2017-04-14 2021-09-22 Koninklijke KPN N.V. Transmitting and receiving an interest message specifying an aggregation parameter
CN113793612B (zh) * 2021-09-15 2024-04-09 京东科技信息技术有限公司 模型服务的更新方法、装置及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645702B2 (en) * 2010-12-28 2014-02-04 Futurewei Technologies, Inc. Method and apparatus to use identity information for digital signing and encrypting content integrity and authenticity in content oriented networks
CN103200430B (zh) * 2012-01-04 2017-05-31 华为终端有限公司 个人内容分享方法、系统、服务器和终端设备
US9515920B2 (en) * 2012-04-20 2016-12-06 Futurewei Technologies, Inc. Name-based neighbor discovery and multi-hop service discovery in information-centric networks
CN102883235A (zh) * 2012-09-29 2013-01-16 福建星网锐捷网络有限公司 一种n端口代理方法、装置及网络设备
FR2999846A1 (fr) * 2012-12-18 2014-06-20 France Telecom Technique de communication dans un reseau de communication centre sur les informations

Also Published As

Publication number Publication date
EP2993593A1 (en) 2016-03-09
CN105391570A (zh) 2016-03-09
JP2016053950A (ja) 2016-04-14
US20160065677A1 (en) 2016-03-03

Similar Documents

Publication Publication Date Title
US10129230B2 (en) System for key exchange in a content centric network
KR20160027910A (ko) Ccn 파이프라인 스트림의 신뢰도있는 컨텐츠 교환 방법 및 시스템
CN105024991B (zh) 用于在内容中心网络上交换双向流的方法和设备
US9954678B2 (en) Content-based transport security
US9531679B2 (en) Content-based transport security for distributed producers
EP3176994B1 (en) Explicit content deletion commands in a content centric network
JP2015197918A (ja) コンテンツセントリックネットワークにおけるデータの集約署名
US10097521B2 (en) Transparent encryption in a content centric network
JP2017062783A (ja) コンテンツセントリックネットワークにおける情報およびデータフレームワーク
US10841212B2 (en) Method and system for routable prefix queries in a content centric network
KR20170016281A (ko) 콘텐트 중심 네트워크 스택들에서의 상태 전달
US10547589B2 (en) System for implementing a small computer systems interface protocol over a content centric network
WO2017152128A1 (en) Method and system for collecting historical network information in a content centric network
CN105321097B (zh) 使消费者状态与内容中心网络中的兴趣相关联