KR20150052576A - 필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷 - Google Patents

필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷 Download PDF

Info

Publication number
KR20150052576A
KR20150052576A KR1020130134156A KR20130134156A KR20150052576A KR 20150052576 A KR20150052576 A KR 20150052576A KR 1020130134156 A KR1020130134156 A KR 1020130134156A KR 20130134156 A KR20130134156 A KR 20130134156A KR 20150052576 A KR20150052576 A KR 20150052576A
Authority
KR
South Korea
Prior art keywords
field
packet
information
location information
content
Prior art date
Application number
KR1020130134156A
Other languages
English (en)
Other versions
KR102126018B1 (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 KR1020130134156A priority Critical patent/KR102126018B1/ko
Priority to PCT/KR2014/003917 priority patent/WO2015068917A1/ko
Publication of KR20150052576A publication Critical patent/KR20150052576A/ko
Priority to US15/148,986 priority patent/US10284691B2/en
Application granted granted Critical
Publication of KR102126018B1 publication Critical patent/KR102126018B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Landscapes

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

Abstract

필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷이 개시된다. 적어도 하나의 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 위치 정보를 포함하는 패킷을 생성하는 단계, 및 상기 위치 정보를 포함하는 패킷을 전송하는 단계를 포함하는 송신 노드의 동작 방법을 제공할 수 있다.

Description

필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷{OPERATING METHOD OF TRANSMISSION NODE AND RECEIVER NODE PROCESSING PACKET INCLUDING LOCATION INFORMATION OF FIELD AND THE PACKET INCLUDING THE LOCATION INFORMATION OF THE FIELD}
아래의 실시예들은 필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷에 관한 것이다.
컨텐츠 중심 네트워크(Content Centric Network; CCN)는 각 노드 별로 컨텐츠 캐시(Content Cache)를 이용해 컨텐츠 세그먼트(segment)들을 저장함으로써 효율적인 컨텐츠 분배를 지원한다. 노드는 주로 이용되는 컨텐츠를 소스(source)로부터 매번 직접 전달받는 것이 아니라, 라우팅 경로 상에서 해당 컨텐츠를 저장하고 있는 중간 노드로부터 전달받을 수 있다. 이를 통해 컨텐츠 중심 네트워크에서는 특정 노드(예를 들어, 컨텐츠 소스(Content Source), 또는 서버(server))로 컨텐츠 요청이 집중되는 현상을 완화시키고, 네트워크 코어망의 혼잡을 줄일 수 있다.
이와 같은 효율적인 컨텐츠 분배를 위해 라우팅 경로에 있는 수많은 노드들은 컨텐츠 요청에 대해 자신의 캐시 내 모든 컨텐츠들을 매 요청마다 탐색한다.
일실시예에 따르면, 송신 노드의 동작 방법은 적어도 하나의 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 위치 정보를 포함하는 패킷을 생성하는 단계; 및 상기 위치 정보를 포함하는 패킷을 전송하는 단계를 포함한다.
상기 위치 정보는 상기 패킷에서 상기 적어도 하나의 필드에 대응하는 정보가 시작되는 위치에 대한 오프셋(offset) 값을 포함할 수 있다.
상기 위치 정보는 상기 적어도 하나의 필드를 해석하기 위한 필드 정보를 더 포함할 수 있다.
상기 패킷을 생성하는 단계는 상기 위치 정보를 상기 패킷의 헤더에 포함시키는 단계를 포함할 수 있다.
상기 패킷은, 컨텐츠의 이름에 기초하여 라우팅, 컨텐츠 요청 및 컨텐츠 응답을 수행하는 컨텐츠 중심 네트워크를 위한 패킷을 포함할 수 있다.
상기 적어도 하나의 필드는, 가변 길이를 가질 수 있다.
일 실시예에 따르면, 수신 노드의 동작 방법은 적어도 하나의 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 위치 정보를 포함하는 패킷을 수신하는 단계; 상기 위치 정보를 추출하는 단계; 및 상기 위치 정보를 이용하여 필요로 하는 정보를 검색하는 단계를 포함한다.
상기 위치 정보는 상기 패킷에서 상기 적어도 하나의 필드에 대응하는 정보가 시작되는 위치에 대한 오프셋(offset) 값을 포함할 수 있다.
상기 위치 정보는 상기 적어도 하나의 필드를 해석하기 위한 필드 정보를 더 포함할 수 있다.
상기 패킷은, 컨텐츠의 이름에 기초하여 라우팅, 컨텐츠 요청 및 컨텐츠 응답을 수행하는 컨텐츠 중심 네트워크를 위한 패킷을 포함할 수 있다.
상기 적어도 하나의 필드는, 가변 길이를 가질 수 있다.
일 실시예에 따르면, 패킷은 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 위치 정보를 각각 포함하는 다수 개의 요소 필드들(Element Fields); 및 상기 다수 개의 요소 필드들 각각에 대응하는 정보를 포함하는 정보 필드들(Information Fields)을 포함한다.
상기 위치 정보는 상기 패킷에서 상기 적어도 하나의 필드에 대응하는 정보가 시작되는 위치에 대한 오프셋(offset) 값을 포함할 수 있다.
상기 요소 필드는 상기 요소 필드를 해석하기 위한 필드 정보를 더 포함할 수 있다.
상기 패킷은, 컨텐츠의 이름에 기초하여 라우팅, 컨텐츠 요청 및 컨텐츠 응답을 수행하는 컨텐츠 중심 네트워크를 위한 패킷을 포함할 수 있다.
상기 정보 필드들 각각은 가변 길이를 가질 수 있다.
도 1은 CCNx 패킷을 XML 코딩 및 이진 표현(binary representation)으로 나타낸 도면이다.
도 2는 CCNx 오픈 소스(Open Source)에서 사용하는 딕셔너리 테이블(Dictionary Table)을 나타낸 도면이다.
도 3은 일 실시예에 따른 필드의 위치 정보를 포함하는 인터레스트 패킷의 구조 및 인터레스트 패킷을 이진 표현(binary representation)으로 나타낸 도면이다.
도 4는 일 실시예에 따른 필드의 위치 정보를 포함하는 인터레스트 패킷에서 오프셋(offset) 순서를 나타내는 코딩이다.
도 5는 일 실시예에 따른 필드의 위치 정보를 포함하는 컨텐츠 패킷의 구조를 나타낸 도면이다.
도 6은 일 실시예에 따른 송신 노드의 동작 방법을 나타낸 플로우 차트이다.
도 7은 일 실시예에 따른 수신 노드의 동작 방법을 나타낸 플로우 차트이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 일실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
이하에서, '노드'는 예를 들어, 사용자 단말(예를 들어, 스마트 폰), 스마트 tv, pc 노트북, 로봇 청소기 등과 같은 고객 장치 및 액세스 포인트, 라우터 등과 같은 네트워킹 디바이스들을 포함하는 의미로 이해될 수 있다. '컨텐츠 중심 네트워크'는 컨텐츠의 이름을 기반으로 해당 컨텐츠를 가져오는 다양한 네트워킹 방식을 통칭하는 정보 중심 네트워킹(Information-Centric Networking)을 일 예로서, 이하에서 설명하는 내용은 컨텐츠 중심 네트워크 이외에 정보 중심 네트워크에서도 동일하게 적용될 수 있다.
또한, '송신 노드' 및 '수신 노드'는 컨텐츠 중심 네트워크에서 컨텐츠 또는 스트리밍 컨텐츠를 요청하는 노드인 컨텐츠 요청자(Content Requester), 해당 컨텐츠를 최초로 생성한 노드인 퍼블리셔(Publisher)뿐만 아니라, 컨텐츠 요청 패킷이 전달되는 경로 상에 있는 중간 노드(Middle Node)들 혹은 컨텐츠 요청자가 요청하는 컨텐츠를 제공하는 컨텐츠 제공자(Content Provider)를 모두 포함하는 의미로 이해될 수 있다.
도 1은 CCNx 패킷을 XML 코딩 및 이진 표현(binary representation)으로 나타낸 도면이다.
도 1에서 110은 현재 오픈 소스로 공개된 CCNx의 패킷 구조를 XML 형태로 나타낸 것이고, 130은 CCNx의 패킷 구조를 이진 표현(binary representation) 형태로 나타낸 것이다.
많은 프로토콜들은 고정된 길이를 가지는 필드를 가진다. 예를 들어, 인터넷 프로토콜(Internet Protocol; IP)은 16 bytes 길이의 목적지 주소값을 이용해 패킷을 목적지까지 전달한다.
컨텐츠 중심 네트워크(Content Centric Network; CCN)의 경우는 가변 길이의 컨텐츠 이름을 기반으로 하는 라우팅을 제시하므로, CCN 패킷은 가변 길이 필드를 수용할 수 있다. 현재 오픈 소스로 공개된 CCNx의 경우에는 가변 길이 주소 필드를 가지는 CCN 프로토콜을 수용하기 위해 110과 같이 XML 기반의 블록 단위 인코딩 스킴(scheme)을 활용한 패킷 구조를 이용한다.
예를 들어, <Type><Length><Value><ending delimiter>로 이루어지는 블록 단위 인코딩 스킴은 가변 길이를 가지는 필드를 포함할 수 있지만, 블록 구분을 위한 엘리먼트 아이디(Element ID), 엔딩 딜리미터 비트들(ending delimiter bits)로 인한 오버헤드를 수반한다. 또한, 블록 단위 인코딩 스킴을 이용하는 경우에는 패킷 스트림으로부터 각 필드를 추출, 해석하기 위해 패킷 스트림을 순차적으로 모두 검사해야 하는 디코딩 연산 오버헤드가 발생할 수 있다.
110과 같이 XML 형태로 나타낸 CCNx의 패킷 구조는 가변 길이의 필드(예를 들어, 컴포넌트 필드(Component Field), 네임 필드(Name Field))를 개수 제한 없이 포함할 수 있다. 이때, 각 필드의 정보를 식별하기 위해서는 각 노드들에게 딕셔너리 테이블(Dictionary Table)에 대한 정보가 미리 알려져 있어야 한다. 딕셔너리 테이블에 대하여는 도 2를 통해 설명한다.
도 2의 딕셔너리 테이블을 참조하여 CCNx의 패킷 구조를 이진 표현(binary representation) 형태로 나타내면 130과 같다.
130에서 첫 번째 필드의 '26'은 해당 인터레스트의 번호를 나타내고, 두 번째 필드의 '14'는 도 2의 딕셔너리 테이블에 기재된 바와 같이 해당 필드가 네임 필드(Name Field)임을 나타낸다. 세 번째 필드의 '15'는 해당 필드가 컴포넌트 필드(Component Field)임을 나타내고, 네 번째 필드에 기재된 '3'은 해당 컴포넌트에 대응되는 데이터(또는 정보)의 사이즈가 3 Byte 임을 나타낸다.
이후, 다섯 번째 필드의 'sen'은 네임 필드의 첫 번째 컴포넌트 데이터(혹은 정보)를 나타내고, 'sen' 다음의 필드에 기재된 '0'은 딜리미터(delimiter)를 나타낸다. 다음 필드의 '15'는 컴포넌트 필드(Component Field)임을 나타내고, '12'는 네임 필드의 두 번째 컴포넌트의 사이즈를 나타낸다. 그 다음 'vpc1-2213123'은 네임 필드의 두 번째 컴포넌트 데이터를 나타낸다. 이후의 '0'는 딜리미터(delimiter)를, '15'는 컴포넌트 필드(Component Field)임을 나타내고, '8'은 네임 필드의 세 번째 컴포넌트의 사이즈가 8 byte임을 나타낸다. 'Test.txt'는 네임 필드의 세 번째 컴포넌트 데이터를 나타내고, 그 다음 연속하는 '0', '0'는 각각 세 번째 컴포넌트에 대한 딜리미터(delimiter) 및 이름 컴포넌트에 대한 딜리미터(delimiter)를 나타낸다.
마찬가지로, 130에서 두번째 줄의 맨 앞 필드에 기재된 '43'은 익스클루드 필드(Exclude Field)를, '15'는 컴포넌트 필드(Component Field)를 나타내고, '6'는 익스클루드 필드의 컴포넌트의 사이즈를 나타낸다. 'FD2013'은 익스클루드 필드의 데이터(정보)를 나타낸다.
이와 같이 블록 단위 인코딩 스킴을 이용하는 경우, 표현하고자 하는 데이터가 <Type><Length><Value><ending delimiter>의 형태로 표현되므로 패킷의 디코딩 연산 시의 오버헤드가 크다.
도 2는 CCNx 오픈 소스(Open Source)에서 사용하는 딕셔너리 테이블(Dictionary Table)을 나타낸 도면이다.
도 2를 참조하면, CCNx 오픈 소스에서 각 필드를 식별하기 위해 사용되는 딕셔너리 테이블(200)이 도시된다.
여기서, 딕셔너리 테이블(200)은 'XML element ID Table'이라고도 불릴 수 있다.
딕셔너리 테이블에서 DTAG는 각 요소 필드(Element Field)의 고유 번호, 혹은 고유의 태그 번호를 나타내고, Element Name은 각 요소 필드의 이름을 나타낸다.
예를 들어, 고유 번호 '14'는 이름 요소(name element)의 필드를 나타내고, 고유 번호 '15'는 컴포넌트 요소(component element)의 필드를 나타낸다. 이와 같이, 딕셔너리 테이블(200)에서는 각 요소 필드(Element Field)의 고유 요소들에 대해 서로 겹치지 않는 고유 번호가 할당되어 CCNx 패킷 내에서 필드의 시작을 구분할 수 있게 한다.
도 3은 일 실시예에 따른 필드의 위치 정보를 포함하는 인터레스트 패킷의 구조 및 인터레스트 패킷을 이진 표현(binary representation)으로 나타낸 도면이다.
도 3을 참조하면, 필드의 위치 정보를 포함하는 인터레스트 패킷의 구조(300)를 볼 수 있다. 350은 일 실시예에 따른 인터레스트 패킷의 구조를 이진 표현(binary representation)으로 나타낸 일 예이다.
일 실시예에 따른 패킷은 컨텐츠의 이름에 기초하여 라우팅, 컨텐츠 요청 및 컨텐츠 응답을 수행하는 컨텐츠 중심 네트워크를 위한 인터레스트 패킷일 수 있다.
인터레스트 패킷의 구조(300)에서 색이 칠해진 부분은 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 위치 정보를 각각 포함하는 다수 개의 요소 필드들(Element Fields)(310)을 나타낸다. 인터레스트 패킷의 구조(300)에서 색이 칠해지지 않은 부분은 다수 개의 요소 필드들 각각에 대응하는 정보를 포함하는 정보 필드들(Information Fields)(330)을 나타낸다.
다수 개의 요소 필드들(Element Fields)(310)은 어느 필드가 패킷의 어느 부분에 위치하는지 대한 위치 정보, 다시 말해 locator 정보를 포함한다. 각 노드는 위치 정보를 포함하는 패킷이 전달되면, 패킷을 도 3의 구조에 따라 캐스팅(casting) 함으로써, 패킷 필드에 대한 연산없이 필드 값을 바로 포인팅할 수 있다. 여기서, '캐스팅(casting)'이란 포인터로 직접 메모리 주소를 참조하여 이동할 수 있다는 것을 의미한다. 이때, 위치 정보는 패킷에서 적어도 하나의 필드에 대응하는 정보가 시작되는 위치에 대한 오프셋(offset) 값을 포함할 수 있다.
다수 개의 요소 필드들(Element Fields)(310)은 각각 요소 필드를 해석하기 위한 필드 정보를 더 포함할 수 있다.
도 3의 인터레스트 패킷의 구조(300)에 따를 경우, 도 1의 130에 도시된 것과 동일한 CCNx의 패킷 구조는 350과 같이 표현될 수 있다.
350에서 음영으로 표현된 첫 번째 줄은 요소 필드들(Element Fields)(310)에서 각 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 위치 정보를 나타내는 부분이다.
350에서 첫 번째 필드의 '0'은 해당 패킷이 인터레스트 패킷임을 나타내고, '12'는 네임 필드(Name Field)에 대응하는 정보가 오프셋 12에서 시작함을 나타낸다. 그 다음 기재된 '36'은 익스클루드 필드(Exclude Field)에 대응하는 정보가 오프셋 36에서 시작함을 나타낸다.
이때, 요소 필드들(Element Fields)(310) 각각이 나타내는 정보의 순서, 예를 들어, 해당 패킷의 속성 필드, 네임 필드(Name Field), 익스클루드 필드(Exclude Field), AOK 필드, 난스 필드(Nonce Field), 엔드 필드(End Field) 등은 네트워크 내의 노드들 간에 미리 약속될 수 있다. 해당 패킷의 속성 필드는 해당 패킷이 인터레스트 패킷인지 또는 컨텐츠 패킷인지 여부를 나타낼 수 있다.
또한, 요소 필드들(Element Fields)(310) 각각은 필드를 해석하기 위한 필드 정보를 더 포함할 수 있다. 필드 정보는 해당 필드가 무엇을 나타내는지를 해석하기 위해 필요한 정보로서 필드 정보를 통해 각 노드는 가변 길이의 필드를 유동적으로 해석하여 처리할 수 있다. 필드 정보는 예를 들어, 요소 필드 내에서 해당 요소 필드가 네임 필드 혹은 난스 필드 등임을 나타내는 미리 약속된 정보 혹은 숫자 등을 포함할 수 있다.
350에서 음영으로 표현되지 않은 두 번째 줄은 각 필드에 대응하는 정보를 나타내는 정보 필드들(Information Fields)(330)에 해당하며, 정보 필드들 각각은 가변 길이를 가질 수 있다.
350에서 두 번째 줄의 첫 번째 정보 필드의 '3' 은 뒤에 오는 네임 필드(Name Field)에 포함된 컴포넌트들의 개수가 3개임을 나타낸다. Sen, vpc1-2213123, test.txt는 각각 네임 필드(Name Field)의 데이터(정보)를 나타낸다. 그 이후 필드에 기재된 '1'은 익스클루드 필드(Exclude Field)에 포함된 컴포넌트의 개수가 '1'개임을 나타내고, FD2013은 익스클루드 필드(Exclude Field)의 정보를 나타낸다. 이후, 기재된 '1'은 AOK 필드의 값이 '1' Byte 임을 나타내고, '982930'은 난스 필드(Nonce Field)의 정보를 나타낸다.
일 실시예에 따라 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 위치 정보를 포함하는 패킷을 이용하는 경우, 패킷 내의 정보들은 예를 들어, <Locator><Locator><Locator><Value><Value><Value>의 형태로 구성되어 디코딩 오버헤드가 줄어들며, 복잡한 연산을 거치지 않고 패킷의 정보를 추출 및 사용이 가능해 진다.
도 4는 일 실시예에 따른 필드의 위치 정보를 포함하는 인터레스트 패킷에서 오프셋(offset) 순서를 나타내는 코딩이다.
도 4를 참조하면, 도 3의 인터레스트 패킷 포맷에서의 오프셋 순서가 도시된다.
일 실시예에 따른 인터레스트 패킷은 도 4에 도시된 바와 같이 필드로 type, name, exclude, answer_origin_kind, end 등을 가질 수 있으며, 이 밖에도 필드로 minimum suffix component, maximum suffix component, publisher public key digest, child selector, scope, lifetime, nonce 등을 더 포함할 수 있다.
이때, 패킷에 위치 정보를 포함하기 위한 스트럭처(structure)로는 26 bytes가 사용될 수 있다. 이중 2 bytes는 상술한 12개 필드들 각각마다의 오프셋을 나타내는 데에 이용되고, 나머지 2 bytes는 엔딩 오프셋(ending offset)을 나타내는 데에 이용될 수 있다.
패킷에 포함되어야 할 필드를 무엇으로 정하느냐에 따라 스트럭처의 구성 멤버가 달라질 수 있고, 예상되는 전체 패킷의 사이즈에 따라 멤버의 위치 정보를 위해 할당되는 비트들(bits)의 수는 달라질 수 있다. 도 4에서 제안한 방식은 각 멤버의 위치 정보를 포함하기 위해 각 필드마다 2 bytes를 할당하였는데, 이는 일반적인 CCNx에서 사용하는 블록 단위 인코딩 스킴 대비 20% 정도 패킷 오버헤드를 줄일 수 있다.
도 5는 일 실시예에 따른 필드의 위치 정보를 포함하는 컨텐츠 패킷의 구조를 나타낸 도면이다.
도 5를 참조하면, 필드의 위치 정보를 포함하는 컨텐츠 패킷의 구조(500)가 도시되어 있다. 550은 컨텐츠 패킷의 구조를 이진 표현(binary representation)으로 나타낸 일 예이다.
일 실시예에 따른 컨텐츠 패킷은 컨텐츠의 이름에 기초하여, 라우팅, 컨텐츠 요청 및 컨텐츠 응답을 수행하는 컨텐츠 중심 네트워크를 위한 패킷일 수 있다.
인터레스트 패킷과 마찬가지로, 컨텐츠 패킷의 구조(500)에서 음영으로 표시된 부분은 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 위치 정보를 각각 포함하는 다수 개의 요소 필드들(Element Fields)(510)을 나타낸다. 컨텐츠 패킷의 구조(500)에서 음영으로 표시되지 않은 부분은 다수 개의 요소 필드들 각각에 대응하는 정보를 포함하는 정보 필드들(Information Fields)(530)을 나타낸다.
다수 개의 요소 필드들(Element Fields)(510)은 어느 필드가 패킷의 어느 부분에 위치하는지 대한 위치 정보, 다시 말해 locator 정보를 포함한다. 각 노드는 위치 정보를 포함하는 패킷이 전달되면, 패킷을 도 5의 구조에 따라 캐스팅(casting) 함으로써, 패킷 필드에 대한 연산없이 필드 값을 바로 포인팅(pointing)할 수 있다. 이때, 위치 정보는 패킷에서 적어도 하나의 필드에 대응하는 정보가 시작되는 위치에 대한 오프셋(offset) 값을 포함할 수 있다.
이때, 다수 개의 요소 필드들(Element Fields)(510)은 각각 요소 필드를 해석하기 위한 필드 정보를 더 포함할 수 있다.
도 6은 일 실시예에 따른 송신 노드의 동작 방법을 나타낸 플로우 차트이다.
도 6을 참조하면, 일 실시예에 따른 송신 노드는 위치 정보를 포함하는 패킷을 생성할 수 있다(610). 송신 노드는 위치 정보를 패킷의 헤더에 포함시켜 패킷을 생성할 수 있다.
위치 정보는 적어도 하나의 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 정보를 포함할 수 있다. 이때 적어도 하나의 필드는 가변 길이를 가질 수 있다.
위치 정보는 예를 들어, 패킷에서 적어도 하나의 필드에 대응하는 정보가 시작되는 위치에 대한 오프셋(offset) 값을 포함할 수 있다. 이 밖에도, 위치 정보는 적어도 하나의 필드에 대응하는 정보가 저장된 위치를 나타내는 다양한 형태의 정보들을 포함할 수 있다.
위치 정보는 적어도 하나의 필드를 해석하기 위한 필드 정보를 더 포함할 수 있다. 필드 정보는 적어도 하나의 필드가 무엇을 나타내는지를 해석하기 위해 필요한 정보이다. 필드 정보를 통해 각 노드는 가변 길이의 필드를 유동적으로 해석하여 처리할 수 있다.
송신 노드는 패킷의 생성 시에 위치 정보 내에서 필드 정보를 자유롭게 삽입, 삭제할 수 있다.
송신 노드는 610에서 생성한, 위치 정보를 포함하는 패킷을 다른 노드들에게 전송할 수 있다(630).
도 7은 일 실시예에 따른 수신 노드의 동작 방법을 나타낸 플로우 차트이다.
도 7을 참조하면, 일 실시예에 따른 수신 노드는 적어도 하나의 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 위치 정보를 포함하는 패킷을 수신할 수 있다(710).
수신 노드는 710에서 수신한 패킷에서 위치 정보를 추출할 수 있다(730). 이때, 위치 정보는 패킷에서 적어도 하나의 필드에 대응하는 정보가 시작되는 위치에 대한 오프셋(offset) 값을 포함할 수 있다. 위치 정보는 적어도 하나의 필드를 해석하기 위한 필드 정보를 더 포함할 수 있다. 적어도 하나의 필드는 가변 길이를 가질 수 있다.
수신 노드는 730에서 추출한 위치 정보를 이용하여 패킷 내에서 필요로 하는 정보를 검색할 수 있다(750).
일 실시예에서는 패킷 내에서 각 필드에 대응하는 정보의 위치를 나타내는 위치 정보를 포함하도록 패킷을 구성함으로써 패킷의 디코딩 연산 시에 발생하는 오버헤드를 줄일 수 있다. 이러한 패킷 구성 방법은 가변 길이의 필드 값을 허용하면서도, 필드 값을 추출 할 때에 빠르게 해당 정보에 접근할 수 있다. 따라서, 예를 들어, 위에서 설명한 패킷 구성 방법은 OSI 7 레이어 중 트랜스포트 레이어(Transport Layer)에서 이용되는 프로토콜과 같이, 빠른 디코딩 속도를 필요로 하는 프로토콜에서의 가변 길이 주소의 디코딩 시에 효율적으로 이용될 수 있다.
이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
300: 인터레스트 패킷의 구조
350: 인터레스트 패킷의 구조를 이진 표현(binary representation)으로 나타낸 일 예

Claims (17)

  1. 적어도 하나의 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 위치 정보를 포함하는 패킷을 생성하는 단계; 및
    상기 위치 정보를 포함하는 패킷을 전송하는 단계
    를 포함하는 송신 노드의 동작 방법.
  2. 제1항에 있어서,
    상기 위치 정보는
    상기 패킷에서 상기 적어도 하나의 필드에 대응하는 정보가 시작되는 위치에 대한 오프셋(offset) 값을 포함하는, 송신 노드의 동작 방법.
  3. 제1항에 있어서,
    상기 위치 정보는
    상기 적어도 하나의 필드를 해석하기 위한 필드 정보를 더 포함하는, 송신 노드의 동작 방법.
  4. 제1항에 있어서,
    상기 패킷을 생성하는 단계는
    상기 위치 정보를 상기 패킷의 헤더에 포함시키는 단계
    를 포함하는 송신 노드의 동작 방법.
  5. 제1항에 있어서,
    상기 패킷은,
    컨텐츠의 이름에 기초하여 라우팅, 컨텐츠 요청 및 컨텐츠 응답을 수행하는 컨텐츠 중심 네트워크를 위한 패킷을 포함하는, 송신 노드의 동작 방법.
  6. 제1항에 있어서,
    상기 적어도 하나의 필드는,
    가변 길이를 가지는, 송신 노드의 동작 방법.
  7. 적어도 하나의 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 위치 정보를 포함하는 패킷을 수신하는 단계;
    상기 위치 정보를 추출하는 단계; 및
    상기 위치 정보를 이용하여 필요로 하는 정보를 검색하는 단계
    를 포함하는 수신 노드의 동작 방법.
  8. 제7항에 있어서,
    상기 위치 정보는
    상기 패킷에서 상기 적어도 하나의 필드에 대응하는 정보가 시작되는 위치에 대한 오프셋(offset) 값을 포함하는, 수신 노드의 동작 방법.
  9. 제7항에 있어서,
    상기 위치 정보는
    상기 적어도 하나의 필드를 해석하기 위한 필드 정보를 더 포함하는, 수신 노드의 동작 방법.
  10. 제7항에 있어서,
    상기 패킷은,
    컨텐츠의 이름에 기초하여 라우팅, 컨텐츠 요청 및 컨텐츠 응답을 수행하는 컨텐츠 중심 네트워크를 위한 패킷을 포함하는, 수신 노드의 동작 방법.
  11. 제7항에 있어서,
    상기 적어도 하나의 필드는,
    가변 길이를 가지는, 수신 노드의 동작 방법.
  12. 제1항 내지 제11항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  13. 필드에 대응하는 정보가 패킷의 어느 부분에 위치하는지를 나타내는 위치 정보를 각각 포함하는 다수 개의 요소 필드들(Element Fields); 및
    상기 다수 개의 요소 필드들 각각에 대응하는 정보를 포함하는 정보 필드들(Information Fields)
    을 포함하는 패킷.
  14. 제13항에 있어서,
    상기 위치 정보는
    상기 패킷에서 상기 적어도 하나의 필드에 대응하는 정보가 시작되는 위치에 대한 오프셋(offset) 값을 포함하는, 패킷.
  15. 제13항에 있어서,
    상기 요소 필드는
    상기 요소 필드를 해석하기 위한 필드 정보를 더 포함하는, 패킷.
  16. 제13항에 있어서,
    상기 패킷은,
    컨텐츠의 이름에 기초하여 라우팅, 컨텐츠 요청 및 컨텐츠 응답을 수행하는 컨텐츠 중심 네트워크를 위한 패킷을 포함하는, 패킷.
  17. 제13항에 있어서,
    상기 정보 필드들 각각은
    가변 길이를 가지는, 패킷.
KR1020130134156A 2013-11-06 2013-11-06 필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷 KR102126018B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130134156A KR102126018B1 (ko) 2013-11-06 2013-11-06 필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷
PCT/KR2014/003917 WO2015068917A1 (ko) 2013-11-06 2014-05-02 필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷
US15/148,986 US10284691B2 (en) 2013-11-06 2016-05-06 Method and apparatus for operating transmitting and receiving nodes processing packet including field position information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130134156A KR102126018B1 (ko) 2013-11-06 2013-11-06 필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷

Publications (2)

Publication Number Publication Date
KR20150052576A true KR20150052576A (ko) 2015-05-14
KR102126018B1 KR102126018B1 (ko) 2020-06-23

Family

ID=53041665

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130134156A KR102126018B1 (ko) 2013-11-06 2013-11-06 필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷

Country Status (3)

Country Link
US (1) US10284691B2 (ko)
KR (1) KR102126018B1 (ko)
WO (1) WO2015068917A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10263965B2 (en) * 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
CN106528292B (zh) * 2016-10-21 2022-04-22 上海嘉楠捷思信息技术有限公司 一种任务处理方法及装置
US10785341B2 (en) 2016-11-21 2020-09-22 Intel Corporation Processing and caching in an information-centric network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080095149A1 (en) * 2006-10-18 2008-04-24 William Dai Flexible packet field processor
KR20130085524A (ko) * 2011-12-15 2013-07-30 주식회사 케이티 Ccn 환경에서 푸쉬 방식의 데이터 전송 방법

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446173B1 (en) * 1997-09-17 2002-09-03 Sony Corporation Memory controller in a multi-port bridge for a local area network
JP4251725B2 (ja) 1999-07-08 2009-04-08 三菱電機株式会社 ファイル管理方法
JP3894280B2 (ja) 2001-02-02 2007-03-14 インターナショナル・ビジネス・マシーンズ・コーポレーション Xmlデータの符号化方法、符号化されたxmlデータの復号化方法、xmlデータの符号化システム、符号化されたxmlデータの復号化システム、プログラムおよび記録媒体
EP1417842B1 (en) 2001-08-03 2005-11-30 Koninklijke Philips Electronics N.V. Protection of streaming a/v data
KR100630128B1 (ko) * 2002-03-23 2006-09-27 삼성전자주식회사 고속 순방향 패킷 접속 방식을 사용하는 이동통신시스템에서 역방향 전력 제어를 위한 파일럿 신호필드 위치정보 결정장치 및 방법
SG142157A1 (en) 2002-07-23 2008-05-28 Samsung Electronics Co Ltd Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
JP4005974B2 (ja) * 2004-01-09 2007-11-14 株式会社東芝 通信装置、通信方法、および通信システム
JP2006352530A (ja) 2005-06-16 2006-12-28 Shimada Phys & Chem Ind Co Ltd 通信用のフレーム構造変換方法および通信装置
KR101216728B1 (ko) * 2006-08-09 2013-01-30 (주)인터데브 고스트 콤포넌트를 사용한 스마트클라이언트 시스템
US9148431B2 (en) * 2006-12-12 2015-09-29 Qualcomm Incorporated Systems and methods for caller identification customization and remote management of communication devices
US7936732B2 (en) * 2007-09-27 2011-05-03 Cisco Technology, Inc. Selecting aggregation nodes in a network
KR101688857B1 (ko) * 2010-05-13 2016-12-23 삼성전자주식회사 컨텐츠 중심 네트워크(ccn)에서 단말 및 허브의 통신 방법 및 컨텐츠 중심 네트워크를 위한 단말
TW201312980A (zh) * 2011-05-03 2013-03-16 Interdigital Patent Holdings 在網際網路中內容識別、檢索及路由
US8694675B2 (en) * 2011-09-01 2014-04-08 Futurewei Technologies, Inc. Generalized dual-mode data forwarding plane for information-centric network
WO2013143137A1 (en) * 2012-03-31 2013-10-03 France Telecom Research & Development Beijing Company Limited Content centric m2m system
US9276850B2 (en) * 2012-07-18 2016-03-01 Electronics And Telecommunications Research Institute Packet processing device for IP-based information-centric network
US8891541B2 (en) * 2012-07-20 2014-11-18 International Business Machines Corporation Systems, methods and algorithms for named data network routing with path labeling
US9924207B2 (en) * 2013-10-28 2018-03-20 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
US20150120924A1 (en) * 2013-10-29 2015-04-30 Palo Alto Research Center Incorporated Software-defined named-data networking
US9282050B2 (en) * 2013-10-30 2016-03-08 Palo Alto Research Center Incorporated System and method for minimum path MTU discovery in content centric networks
US9401864B2 (en) * 2013-10-31 2016-07-26 Palo Alto Research Center Incorporated Express header for packets with hierarchically structured variable-length identifiers
US9516144B2 (en) * 2014-06-19 2016-12-06 Palo Alto Research Center Incorporated Cut-through forwarding of CCNx message fragments with IP encapsulation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080095149A1 (en) * 2006-10-18 2008-04-24 William Dai Flexible packet field processor
KR20130085524A (ko) * 2011-12-15 2013-07-30 주식회사 케이티 Ccn 환경에서 푸쉬 방식의 데이터 전송 방법

Also Published As

Publication number Publication date
US10284691B2 (en) 2019-05-07
US20160255180A1 (en) 2016-09-01
WO2015068917A1 (ko) 2015-05-14
KR102126018B1 (ko) 2020-06-23

Similar Documents

Publication Publication Date Title
JP7046974B2 (ja) サービスとしてメッセージ符号化/復号化を提供するための方法、システム、およびコンピュータ読み取り可能な媒体
US8681819B2 (en) Programmable multifield parser packet
US9516138B2 (en) Method and apparatus to process interest messages and data messages based on priorities in content-centric network (CCN)
CN102111685B (zh) 一种网络视频加载的加速方法、设备及系统
US10284460B1 (en) Network packet tracing
US11216612B2 (en) Size-optimized data interchange method and system
US10630758B2 (en) Method and system for fulfilling server push directives on an edge proxy
US9860168B1 (en) Network packet header modification for hardware-based packet processing
CN110177082B (zh) 一种数据处理方法、设备、介质以及装置
US9197556B2 (en) Communications over multiple protocol interfaces in a computing environment
KR102126018B1 (ko) 필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷
CN112672381A (zh) 一种数据关联方法、装置、终端设备及介质
US9917918B2 (en) Method and apparatus for delivering content from content store in content-centric networking
WO2021007115A1 (en) Information centric network dynamic compute orchestration
CN106411996B (zh) 内容中心网络中的内容协商
EP3241344A1 (en) System and method for programmatically creating resource locators
CN113115120B (zh) 视频切片方法、装置、电子设备及存储介质
KR102158389B1 (ko) 컨텐츠 중심 네트워크에서 패킷 특성을 고려하는 노드의 동작 방법 및 노드
CN110213643B (zh) 一种流媒体缓存方法、装置及终端设备
US20200252332A1 (en) Method, electronic device and computer-readable medium for processing data generated by service
EP3408989B1 (en) Detecting malware on spdy connections
CN115225545B (zh) 一种报文传输方法及装置
CN114363257B (zh) 隧道报文的五元组匹配方法及装置
CN114827655B (zh) 内容存储转发方法及装置、电子设备、存储介质
KR101787899B1 (ko) 우선순위 이름 프리픽스 트라이 기반의 비트맵 생성 방법 및 상기 비트맵을 이용한 이름 프리픽스 검색 방법

Legal Events

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