KR101614783B1 - 콘텐츠 명 기반의 단말 장치 및 라우팅 방법 - Google Patents

콘텐츠 명 기반의 단말 장치 및 라우팅 방법 Download PDF

Info

Publication number
KR101614783B1
KR101614783B1 KR1020100082030A KR20100082030A KR101614783B1 KR 101614783 B1 KR101614783 B1 KR 101614783B1 KR 1020100082030 A KR1020100082030 A KR 1020100082030A KR 20100082030 A KR20100082030 A KR 20100082030A KR 101614783 B1 KR101614783 B1 KR 101614783B1
Authority
KR
South Korea
Prior art keywords
segments
content
query
name
block query
Prior art date
Application number
KR1020100082030A
Other languages
English (en)
Other versions
KR20110074421A (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 US12/946,037 priority Critical patent/US9264342B2/en
Priority to EP20100192619 priority patent/EP2339797B1/en
Priority to CN201010589256.2A priority patent/CN102111328B/zh
Priority to JP2010280596A priority patent/JP5666280B2/ja
Publication of KR20110074421A publication Critical patent/KR20110074421A/ko
Priority to US13/912,570 priority patent/US9268813B2/en
Application granted granted Critical
Publication of KR101614783B1 publication Critical patent/KR101614783B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Landscapes

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

Abstract

콘텐츠 명 기반의 네트워크 시스템에서, 단말 장치는, 복수의 세그먼트들을 요청하는 블록 쿼리를 생성하여 전송하고, 블록 쿼리가 전송된 방향을 이용하여 블록 쿼리에 해당하는 세그먼트들을 수신할 수 있다.

Description

콘텐츠 명 기반의 단말 장치 및 라우팅 방법{APPARATUS FOR ROUTING BASED CONTENTS NAME AND METHOD THEREOF}
콘텐츠 중심의 네트워크 시스템에서 데이터를 라우팅 하는 기술에 관한 것으로, 보다 상세하게는, 콘텐츠 명을 기반으로 데이터를 공유하는 네트워크 장치들 간에 요청된 데이터를 라우팅하는 단말 장치, 시스템, 및 라우팅 방법에 관한 것이다.
현재 사용되고 있는 인터넷의 구조는 Host-to-host 기반의 일대일 통신의 구조를 기본 구조로 하고 있다. 그런데, 실제 인터넷에서는 호스트 중심이 아닌 데이터 혹은 콘텐츠를 중심으로 네트워킹이 수행된다. 즉, 사용자들은 데이터를 저장하고 있는 장치보다는 데이터 자체에 관심을 보이는 경향이 있다.
이때, 사용자가 네트워크 장치를 이용하여 원하는 데이터를 수신하는 경우, 인터넷 구조와 실제 사용 패턴의 불일치성으로 인해 불필요한 동작 절차들이 수행되어 네트워크 시스템의 성능이 저하된다.
이에 따라, 인터넷 구조와 실제 사용 패턴을 일치시키면서 네트워크 시스템의 성능을 향상시킬 수 있는 라우팅 기술이 필요하다.
콘텐츠 명 기반의 단말 장치는, 복수의 세그먼트들을 포함하는 콘텐츠를 대상으로, 콘텐츠의 전송 범위(Block Range)와 콘텐츠의 이름을 포함하는 블록 쿼리(Block Query)를 생성하는 쿼리 생성부, 생성된 블록 쿼리에 해당하는 콘텐츠의 이름을 라우팅 테이블에서 검색하는 테이블 검색부, 검색된 콘텐츠의 이름에 해당하는 플래그를 설정하고, 생성된 블록 쿼리에 해당하는 복수의 세그먼트 번호들을 번호 필드에 각각 설정하는 필드 설정부, 및 검색된 콘텐츠의 이름에 해당하는 전송 방향으로 블록 쿼리를 전송하는 쿼리 전송부를 포함할 수 있다.
이때, 블록 쿼리에 해당하는 복수의 세그먼트들의 전송 방향이 모두 동일할 수 있다.
또한, 필드 설정부는, 전송된 블록 쿼리에 해당하는 복수의 세그먼트들의 상태 필드를 각각 설정할 수 있다.
또한, 쿼리 생성부는, 블록 쿼리에 해당하는 복수의 세그먼트들 중 적어도 하나가 기설정된 만료 시간(Life Time) 이내에 수신된 경우, 전송 범위를 조정할 수 있다. 또한, 쿼리 생성부는, 조정된 전송 범위 및 콘텐츠의 이름을 포함하는 블록 쿼리를 생성할 수 있다.
또한, 블록 쿼리에 해당하는 복수의 세그먼트들을 블록 쿼리를 전송한 방향과 동일한 방향으로 수신하는 콘텐츠 수신부를 더 포함할 수 있다.
또한, 콘텐츠 수신부는, 서로 다른 라우팅 경로를 갖는 상기 블록 쿼리에 해당하는 복수의 세그먼트들을 수신할 수 있다.
콘텐츠 명 기반의 라우팅 방법은, 복수의 세그먼트들을 포함하는 콘텐츠를 대상으로, 콘텐츠의 전송 범위(Block Range)와 콘텐츠의 이름을 포함하는 블록 쿼리(Block Query)를 생성하는 단계, 생성된 블록 쿼리에 해당하는 콘텐츠의 이름을 라우팅 테이블에서 검색하는 단계, 검색된 콘텐츠의 이름에 해당하는 플래그를 설정하는 단계, 생성된 블록 쿼리에 해당하는 복수의 세그먼트 번호들을 번호 필드에 각각 설정하는 단계, 및 검색된 콘텐츠의 이름에 해당하는 전송 방향으로 블록 쿼리를 전송하는 단계를 포함할 수 있다. 이때, 블록 쿼리에 해당하는 복수의 세그먼트들의 전송 방향이 모두 동일할 수 있다.
또한, 상기 전송된 블록 쿼리에 해당하는 복수의 세그먼트들의 상태 필드를 각각 설정하는 단계를 더 포함할 수 있다.
또한, 상기 블록 쿼리를 생성하는 단계는, 상기 블록 쿼리에 해당하는 복수의 세그먼트들 중 적어도 하나가 기설정된 만료 시간(Life Time) 이내에 수신된 경우, 상기 전송 범위를 조정하는 단계, 및 상기 조정된 전송 범위 및 상기 콘텐츠의 이름을 포함하는 블록 쿼리를 생성하는 단계를 포함할 수 있다.
또한, 상기 블록 쿼리에 해당하는 복수의 세그먼트들을 상기 블록 쿼리를 전송한 방향과 동일한 방향으로 수신하는 단계를 더 포함할 수 있다.
또한, 상기 수신된 블록 쿼리에 해당하는 복수의 세그먼트들은, 서로 다른 라우팅 경로를 가질 수 있다.
또한, 콘텐츠 명 기반의 단말 장치는, 콘텐츠를 요청하는 블록 쿼리를 수신하는 쿼리 수신부 -콘텐츠는 복수의 세그먼트들을 포함하고, 블록 쿼리는 복수의 세그먼트들 중 두 개 이상을 요청하는 것임-, 요청된 콘텐츠에 해당하는 콘텐츠 이름을 라우팅 테이블에서 검색하는 테이블 검색부, 검색된 콘텐츠의 이름에 해당하는 플래그를 설정하는 필드 설정부를 포함할 수 있다.
또한, 상기 요청된 콘텐츠의 저장 여부에 따라 검색된 콘텐츠의 이름에 해당하는 전송 방향으로 블록 쿼리를 전송하는 쿼리 전송부를 더 포함할 수 있다.
이때, 블록 쿼리에 해당하는 복수의 세그먼트들의 전송 방향이 모두 동일할 수 있다.
또한, 필드 설정부는, 라우팅 테이블에서 요청된 콘텐츠의 상태 필드를 설정하고, 블록 쿼리에 해당하는 복수의 세그먼트들을 대상으로, 블록 쿼리가 수신된 방향을 설정할 수 있다.
또한, 블록 쿼리에 해당하는 복수의 세그먼트들을 설정된 수신 방향을 이용하여 각각 전송하는 콘텐츠 전송부를 더 포함할 수 있다.
이때, 요청된 콘텐츠가 저장되지 않은 경우, 전송된 블록 쿼리에 해당하는 복수의 세그먼트들 중 적어도 하나의 세그먼트를 블록 쿼리가 전송된 방향을 이용하여 수신하는 콘텐츠 수신부를 더 포함할 수 있다.
또한, 콘텐츠 명 기반의 라우팅 방법은, 콘텐츠를 요청하는 블록 쿼리를 수신하는 단계 -콘텐츠는 복수의 세그먼트들을 포함하고, 블록 쿼리는 복수의 세그먼트들 중 두 개 이상을 요청하는 것임-, 요청된 콘텐츠에 해당하는 콘텐츠 이름을 라우팅 테이블에서 검색하는 단계, 검색된 콘텐츠의 이름에 해당하는 플래그를 설정하는 단계를 포함할 수 있다.
또한, 상기 요청된 콘텐츠의 저장 여부에 따라 검색된 콘텐츠의 이름에 해당하는 전송 방향으로 블록 쿼리 전송하는 단계를 더 포함할 수 있다.
이때, 블록 쿼리에 해당하는 복수의 세그먼트들의 전송 방향이 모두 동일할 수 있다.
또한, 라우팅 테이블을 이용하는 네트워크 장치는 복수의 세그먼트들을 포함하는 콘텐츠를 대상으로, 콘텐츠를 검색하기 위해 이용되는 콘텐츠 이름 필드, 콘텐츠를 요청하는 쿼리를 전송하기 위해 이용되는 전송 방향 필드, 쿼리가 수신된 방향을 가리키는 수신 방향 필드, 쿼리가 블록 쿼리 -블록 쿼리는 복수의 세그먼트들 중 두 개 이상의 세그먼트를 요청하는 것임-인지 여부를 가리키는 플래그 필드, 및 요청된 쿼리에 해당하는 세그먼트의 번호를 가리키는 번호 필드를 포함할 수 있다.
또한, 라우팅 테이블은 전송된 쿼리에 해당하는 콘텐츠의 수신 여부를 가리키는 상태 필드, 및 콘텐츠의 수신 만료 시간을 가리키는 시간 필드를 더 포함할 수 있다.
이때, 전송 방향 필드에 설정된 방향을 통해 쿼리가 전송되고, 쿼리에 해당하는 콘텐츠는 쿼리가 전송된 방향을 통해 수신될 수 있다.
또한, 수신 방향 필드는 쿼리가 수신된 방향을 포함하고, 쿼리에 해당하는 콘텐츠는 쿼리가 수신된 방향을 통해 전송될 수 있다.
또한, 블록 쿼리(Block Query)는, 콘텐츠의 이름 및 전송 범위를 포함할 수 있다. 여기서, 전송 범위는 블록 쿼리에 해당하는 두 개 이상의 세그먼트들 중 시작 세그먼트와 마지막 세그먼트를 포함할 수 있다.
블록 단위로 콘텐츠 쿼리(Block Contents Query)를 처리함으로써, 제어 패킷의 발생 회수를 감소시켜 네트워크 성능을 향상시킬 수 있다.
도 1은 콘텐츠 명 기반의 네트워크 시스템을 도시한 도면이다.
도 2는 송신 단말 장치의 구성을 도시한 도면이다.
도 3 및 도 6은 콘텐츠 명 기반의 라우팅 테이블 구조를 도시한 도면이다.
도 4는 송신 단말 장치의 동작을 설명하기 위해 제공되는 흐름도이다.
도 5는 콘텐츠 명 기반의 네트워크 장치의 구성을 도시한 도면이다.
도 7은 콘텐츠 명 기반의 네트워크 장치의 동작을 설명하기 위해 제공되는 흐름도이다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 콘텐츠 명 기반의 네트워크 시스템을 도시한 도면이다.
도 1을 참조하면, 네트워크 시스템은 콘텐츠를 요청하는 송신 단말 장치(100), 송신 단말 장치(100)와 콘텐츠를 공유하는 수신 단말 장치(200), 적어도 하나의 네트워크 장치(300)를 포함할 수 있다. 여기서, 네트워크 장치(300)는 송수신 단말 장치들(100, 200) 간에 콘텐츠를 라우팅할 수 있다.
일례로, 송수신 단말 장치(100, 200)로는 모바일 폰, 데스크탑, PC, 노트북, PDA, DMB 폰, 프록시 노드(Proxy Node) 등이 이용되고, 네트워크 장치(300)로는, 스위치, 라우터 등이 이용될 수 있다. 이때, 단말 장치가 네트워크 장치로 이용될 수도 있다.
송신 단말 장치(100)는 콘텐츠를 요청하는 콘텐츠 쿼리(Contents Query)를 전송할 수 있다. 그러면, 콘텐츠 쿼리는 네트워크 장치들(300)을 통해 수신 단말 장치(200)로 전달될 수 있다.
이때, 수신 단말 장치(200)는 콘텐츠 쿼리를 분석하여 송신 단말 장치(100)에서 요청한 콘텐츠를 송신 단말 장치(100)로 전송할 수 있다. 콘텐츠(Contents)는 콘텐츠 쿼리가 라우팅된 경로를 그대로 역순으로 이용하여 송신 단말 장치(100)로 전달될 수 있다.
일례로, 콘텐츠 쿼리가 제1 라우터(301), 제2 라우터(302), 제5 라우터(305) 순으로 전달되어 수신 단말 장치(200)에 수신된 경우, 수신 단말 장치(200)에서 전송된 콘텐츠는 역순인 제5 라우터(305), 제2 라우터(302), 및 제1 라우터(301)를 통해 송신 단말 장치(100)로 전달될 수 있다.
이때, 콘텐츠를 전달하는 각 라우터들(305, 302, 301)은 라우팅 테이블을 이용하여 콘텐츠 쿼리가 전달된 포트를 이용하여 콘텐츠를 해당하는 라우터 또는 송신 단말 장치(100)로 전달할 수 있다. 여기서, 라우팅 테이블을 이용하여 콘텐츠를 전달하는 과정은 후술하기로 한다.
도 2는 송신 단말 장치의 구성을 도시한 도면이다.
도 2를 참조하면, 송신 단말 장치(100)는 쿼리 생성부(110), 테이블 검색부(120), 필드 설정부(130), 쿼리 전송부(140), 및 콘텐츠 수신부(150)를 포함할 수 있다.
쿼리 생성부(110)는 콘텐츠를 구성하는 복수의 세그먼트들 각각을 요청하는 쿼리 및 복수의 세그먼트들을 두 개 이상으로 그룹화하여 요청하는 블록 쿼리를 생성할 수 있다. 여기서, 블록 쿼리는 콘텐츠의 전송 범위(Block Range) 및 콘텐츠의 이름(Contents Name)을 포함할 수 있다.
일례로, xyz.avi 콘텐츠를 요청하고자 하는 경우, 쿼리 생성부(110)에서 생성된 블록 쿼리는 아래의 표 1과 같을 수 있다.
/abc.com/branch1/Comm_Lab/NWG/ xyz(Sn:Sm).avi
표 1에 따르면, 전송범위는 요청하는 세그먼트의 시작 세그먼트 번호 Sn 및 마지막 세그먼트 번호 Sm를 포함할 수 있다.
보다 상세하게는, 도 3을 참조하면, 전송 범위의 크기가 5로 기설정되고, 세그먼트 3부터 요청하는 경우, 쿼리 생성부(110)는 세그먼트 3부터 7까지를 요청하는 블록 쿼리를 생성할 수 있다. 이때, 블록 쿼리에 해당하는 세그먼트들의 전송 방향은 동일할 수 있다.
일례로, 전송 방향으로 포트(Port)가 이용될 수 있다. 그러면, 블록 쿼리에 해당하는 세그먼트 3부터 7까지의 전송 포트(Output port)는 도 3과 같이, "0"으로 동일할 수 있다.
또한, 쿼리 생성부(110)는 요청한 콘텐츠의 수신 여부에 기초하여 전송 범위의 크기를 조정할 수 있다. 이때, 쿼리 생성부(110)는 전송 범위의 크기가 하나씩 증가하도록 조정할 수 있다. 이와 같이, 전송 범위의 크기가 조정됨에 따라 요청하는 세그먼트들의 전송 범위가 조정될 수 있다.
일례로, 세그먼트 3부터 7까지 요청하는 블록 쿼리가 전송되고, 세그먼트 각각에 해당하는 만료 시간(Life Time) 이내에 어느 하나의 세그먼트가 수신된 경우, 쿼리 생성부(110)는 전송 범위의 크기를 5에서 6으로 증가할 수 있다. 그리고, 쿼리 생성부(110)는 만료 시간 이내에 세그먼트들이 하나씩 수신될 때 마다 전송 범위의 크기를 하나씩 증가시킬 수 있다.
이때, 요청한 세그먼트들 중 만료 시간 이내에 수신되지 않은 세그먼트가 존재하고, 재전송 회수가 기준 회수를 초과하는 경우, 쿼리 생성부(110)는 전송 범위의 크기를 디폴트로 재조정할 수 있다. 즉, 쿼리 생성부(110)는 6으로 증가된 전송 범위의 크기를 디폴트인 5로 재조정할 수 있다.
테이블 검색부(120)는 블록 쿼리에 해당하는 콘텐츠의 이름을 라우팅 테이블에서 검색할 수 있다.
일례로, 도 3을 참조하면, 테이블 검색부(120)는 콘텐츠의 이름(abc.com/branch1/Comm_Lab/NWG/ xvz.avi)을 라우팅 테이블의 콘텐츠 이름 필드(Name)에서 검색할 수 있다.
이때, 테이블 검색부(120)는 longest Matching을 이용하여 라우팅 테이블에서 해당하는 콘텐츠의 이름을 검색할 수 있다. 즉, 테이블 검색부(120)는 블록 쿼리에 해당하는 콘텐츠의 이름과 가장 많이 일치하는 콘텐츠 이름을 콘텐츠 이름 필드에서 검색할 수 있다.
그리고, 테이블 검색부(120)는 검색된 콘텐츠 이름에 해당하는 전송 방향을 결정할 수 있다.
일례로, 테이블 검색부(120)는 도 3과 같이, 라우팅 테이블에서 검색된 콘테츠 이름에 해당하는 세그먼트 3부터 7까지의 전송 포트(Output Port)를 "0"으로 결정할 수 있다. 여기서, 검색된 콘텐츠 이름에 해당하는 세그먼트들을 쿼리 생성부(110)에서 생성된 블록 쿼리의 전송 범위에 포함되는 세그먼트들일 수 있다.
필드 설정부(130)는 검색된 콘텐츠 이름에 해당하는 플래그(Flag) 필드, 번호(Num.) 필드, 및 상태(State) 필드를 설정할 수 있다.
일례로, 필드 설정부(130)는 검색된 콘텐츠 이름에 해당하는 세그먼트들이 블록 쿼리인지 아닌지를 나타내기 위해 플래그 필드를 설정할 수 있다. 이때, 블록 쿼리인 경우, 필드 설정부(130)는 도 3과 같이, 플래그 필드를 1로 설정할 수 있다.
또한, 필드 설정부(130)는 블록 쿼리의 전송 범위에 기초하여 검색된 콘텐츠 이름에 해당하는 번호 필드들을 설정할 수 있다. 일례로, 필드 설정부(130)는 도 3과 같이, 번호 필드를 세그먼트 3부터 7까지 설정할 수 있다.
또한, 블록 쿼리가 쿼리 전송부(140)에서 전송된 경우, 필드 설정부(130)는 검색된 콘텐츠 이름에 해당하는 상태 필드를 설정할 수 있다. 일례로, 블록 쿼리에 해당하는 세그먼트 3부터 7까지의 상태를 "tentative"로 설정할 수 있다.
또한, 필드 설정부(130)는 블록 쿼리에 해당하는 세그먼트들이 콘텐츠 수신부(150)를 통해 수신된 경우, 수신된 세그먼트의 상태를 "Active"로 설정할 수 있다. 즉, Tentative는 전송된 쿼리에 해당하는 세그먼트가 수신되지 않은 상태이고, Active는 전송된 쿼리에 해당하는 세그먼트가 수신된 상태를 나타낼 수 있다.
쿼리 전송부(140)는 쿼리 생성부(110)에서 생성된 쿼리를 라우팅 테이블을 검색하여 결정된 전송 방향을 통해 전송할 수 있다.
일례로, 블록 쿼리가 생성되고, 전송 방향이 "0"으로 결정된 경우, 쿼리 전송부(140)는 포트 0(Port 0)을 통해 블록 쿼리를 전송할 수 있다.
이때, 쿼리 전송부(140)는 전송된 블록 쿼리에 해당하는 세그먼트들이 기설정된 만료 시간(Life Time) 이내에 수신되지 않은 경우, 수신되지 않은 세그먼트를 요청하는 쿼리를 재전송할 수 있다.
일례로, 쿼리 전송부(140)는 만료 시간이 경과한 경우, 세그먼트들의 상태가 "tentative"에 해당하는 세그먼트들을 요청하는 쿼리를 재전송할 수 있다.
그리고, 쿼리 전송부(140)는 재전송 회수를 카운트할 수 있다. 여기서, 재전송된 쿼리에 해당하는 세그먼트가 만료 시간 이내에 수신되지 않는 경우, 쿼리 전송부(140)는 재전송 회수가 기설정된 기준회수가 될 때까지 수신되지 않은 세그먼트를 요청하는 쿼리를 계속하여 재전송할 수 있다.
이때, 기준회수를 초과할 때까지 세그먼트가 수신되지 않은 경우, 테이블 검색부(120)는 수신되지 않은 세그먼트에 해당하는 필드를 라우팅 테이블에서 삭제할 수 있다.
일례로, 기준회수가 3, 만료 시간이 4초로 기설정되고, 세그먼트 3,4,6,7은 수신되고, 세그먼트 5가 3번의 만료 시간이 지날 때까지 수신되지 않은 경우, 쿼리 테이블 검색부(120)는 세그먼트 5에 해당하는 전송 방향 필드, 번호 필드, 상태 필드, 및 시간 필드를 라우팅 테이블에서 삭제할 수 있다.
그러면, 쿼리 생성부(110)는 전송 범위의 크기를 디폴트인 5로 조정하고, 수신되지 않은 세그먼트 5를 포함하는 블록 쿼리를 생성할 수 있다.
일례로, 쿼리 생성부(110)는 세그먼트 5,8,9,10,11을 요청하는 블록 쿼리를 생성할 수 있다. 이때, 쿼리 생성부(110)는 세그먼트 5만을 요청하는 쿼리를 생성할 수도 있다. 그러면, 쿼리 전송부(140)는 생성된 블록 쿼리 또는 쿼리에 해당하는 전송 방향을 통해 블록 쿼리 또는 쿼리를 전송할 수 있다.
콘텐츠 수신부(150)는 블록 쿼리를 전송한 방향과 동일한 방향으로 해당하는 콘텐츠를 수신할 수 있다. 그러면, 테이블 검색부(120)는 라우팅 테이블을 검색하여 수신된 콘텐츠의 상태 필드를 설정할 수 있다. 이때, 블록 쿼리에 해당하는 복수의 세그먼트들은, 서로 다른 라우팅 경로를 가질 수 있다.
일례로, 세그먼트 3부터 7까지에 해당하는 블록 쿼리가 포트 0을 통해 전송된 경우, 콘텐츠 수신부(150)는 세그먼트 3부터 7 각각을 포트 0을 통해 수신할 수 있다. 이때, 수신된 3부터 7까지의 세그먼트들 각각은 서로 다른 라우터를 지나서 송신 단말 장치(100)의 포트 0을 통해 수신될 수 있다. 그러면, 테이블 검색부(120)는 세그먼트 3부터 7 각각의 상태 필드를 "Tentative"에서 "Active"로 변경하여 설정할 수 있다.
이때, 복수의 네트워크 장치들을 통해 콘텐츠가 수신된 경우, 콘텐츠는, 복수의 네트워크 장치들에서 블록 쿼리가 전송된 포트를 역순(Reverse Direction)으로 이용하여 송신 단말 장치(100)로 수신될 수 있다.
도 4는 송신 단말 장치의 동작을 설명하기 위해 제공되는 흐름도이다.
도 4를 참조하면, 쿼리 생성부(110)는 복수의 세그먼트들을 포함하는 콘텐츠를 대상으로, 블록 쿼리를 생성할 수 있다(S410). 여기서, 블록 쿼리는 전송 범위 및 콘텐츠의 이름을 포함할 수 있다.
일례로, 세그먼트 3부터 7까지를 요청하는 경우, 블록 쿼리의 전송 범위는 시작 세그먼트 번호 3과 마지막 세그먼트 번호 7을 포함할 수 있다.
이때, 쿼리 생성부(110)는 블록 쿼리를 이용하여 두 개 이상의 세그먼트들을 요청할 수 있을 뿐만 아니라, 하나의 세그먼트를 요청하는 쿼리를 생성할 수도 있다.
이어, 테이블 검색부(120)는 생성된 블록 쿼리의 전송 방향을 결정할 수 있다(S415).
일례로, 테이블 검색부(120)는 도 3과 같이, 라우팅 테이블에서 콘텐츠의 이름을 검색하고, 검색된 콘텐츠의 이름에 해당하는 전송 포트(Output port)를 결정할 수 있다. 여기서, 검색되는 콘텐츠의 이름은 블록 쿼리를 통해 요청되는 세그먼트들에 해당하는 콘텐츠의 이름이다.
그러면, 필드 설정부(130)는 블록 쿼리에 해당하는 콘텐츠의 상태 필드, 및 플래그 필드를 설정할 수 있다(S420).
일례로 필드 설정부(130)는 블록 쿼리에 해당하는 세그먼트들의 상태 필드를 "Tentative"로 설정하고, 플래그 필드를 "1"로 설정할 수 있다.
그리고, 쿼리 전송부(140)는 결정된 전송 방향으로 생성된 블록 쿼리를 전송할 수 있다(S430).
일례로, 라우팅 테이블을 검색하여 세그먼트 3부터 7까지의 전송 포트(Output Port)가 "0"으로 동일한 경우, 쿼리 전송부(140)는 포트 0을 통해 블록 쿼리를 전송할 수 있다. 그러면, 콘텐츠 수신부(150)는 블록 쿼리를 전송한 포트 0을 통해 블록 쿼리에 해당하는 세그먼트 3부터 7을 수신할 수 있다. 이때, 블록 쿼리에 해당하는 복수의 세그먼트들은, 서로 다른 라우팅 경로를 가질 수 있다.
이어, 요청한 콘텐츠가 만료 시간(Life Time) 이내에 수신된 경우(S440:YES), 쿼리 생성부(110)는 전송 범위의 크기를 조정할 수 있다(S450). 즉, 전송된 블록 쿼리에 해당하는 세그먼트들이 만료 시간(Life Time) 이내에 수신된 경우, 쿼리 생성부(110)는 전송 범위의 크기를 조정할 수 있다.
일례로, 전송 범위의 크기가 디폴트인 5로 기설정되고, 요청한 세그먼트들 중 어느 하나가 수신된 경우, 쿼리 생성부(110)는 전송 범위의 크기가 5에서 6으로 증가하도록 조정할 수 있다. 이와 같이, 전송 범위의 크기가 조정됨에 따라 요청하는 세그먼트들의 전송 범위가 조정될 수 있다.
이때, 만료 시간 이내에 요청한 콘텐츠가 수신되지 않은 경우(S440:NO), 쿼리 전송부(140)는 수신되지 않은 콘텐츠를 요청하는 쿼리를 재전송할 수 있다.
보다 상세하게는, 쿼리 전송부(140)는 재전송한 쿼리의 재전송 회수를 카운트하고, 만료 시간 이내에 요청한 콘텐츠가 수신되지 않은 경우, 카운트된 재전송 회수가 기설정된 기준회수가 될 때까지 쿼리를 재전송할 수 있다.
일례로, 쿼리 전송부(140)는 세그먼트들의 상태가 "tentative"에 해당하는 세그먼트들을 요청하는 쿼리를 재전송할 수 있다(S470).
이때, 재전송 회수가 기준 회수를 초과하는 경우(S460:NO), 쿼리 생성부(110)는 전송 범위의 크기를 디폴트로 조정할 수 있다(S480). 그리고, 쿼리 생성부(110)는 조정된 전송 범위의 크기에 기초하여 디폴트 개수의 세그먼트들에 해당하는 블록 쿼리를 생성할 수 있다.
그러면, 쿼리 전송부(140)는 생성된 블록 쿼리에 해당하는 전송 방향을 통해 블록 쿼리를 전송할 수 있다. 이때, 전송되는 블록 쿼리에는 조정된 전송 범위 및 조정된 전송 범위에 해당하는 세그먼트들을 포함하는 콘텐츠의 이름이 포함될 수 있다.
도 5는 콘텐츠 명 기반의 네트워크 장치의 구성을 도시한 도면이다.
도 5를 참조하면, 네트워크 장치(300)는 쿼리 수신부(310), 테이블 검색부(320), 필드 설정부(330), 쿼리 전송부(340), 콘텐츠 수신부(350), 및 콘텐츠 전송부(360), 및 저장부(370)를 포함할 수 있다. 이때, 수신된 쿼리에 해당하는 콘텐츠가 저장된 경우, 네트워크 장치(300)는 수신 단말 장치(200)가 될 수 있다. 수신 단말 장치(200)의 경우, 도 5에서, 쿼리 전송부(340) 및 콘텐츠 수신부(350)가 생략될 수 있다.
또한, 도 5에서, 테이블 검색부(320), 필드 설정부(330), 쿼리 전송부(330), 및 콘텐츠 수신부(350)는 도 1과 실질적으로 동일하므로 중복되는 설명은 생략하기로 한다.
쿼리 수신부(310)는 송신 단말 장치(100)로부터 쿼리 또는 블록 쿼리를 수신할 수 있다. 여기서, 블록 쿼리는 콘텐츠의 이름 및 전송 범위를 포함할 수 있다. 이때, 전송 범위는 시작 세그먼트 번호 및 마지막 세그먼트 번호를 포함할 수 있다. 즉, 블록 쿼리는 콘텐츠에 포함된 복수의 세그먼트들 중 2개 이상의 세그먼트를 요청하기 위해 이용될 수 있다.
일례로, 20개의 세그먼트로 구성된 콘텐츠에서 3부터 7까지의 세그먼트를 요청하는 블록 쿼리를 수신한 경우, 전송 범위는 시작 세그먼트 3번과 마지막 세그먼트 7번을 포함할 수 있다.
그러면, 테이블 검색부(320)는 블록 쿼리에 해당하는 콘텐츠가 저장부(370)에 저장됐는지 여부를 검색할 수 있다. 이때, 저장부(370)로는 캐쉬(Cache)가 이용될 수 있다.
이때, 콘텐츠가 저장된 경우, 테이블 검색부(320)는 도 6과 같은 라우팅 테이블에서 콘텐츠의 이름을 검색할 수 있다.
그리고, 필드 설정부(330)는 검색된 콘텐츠의 이름에 해당하는 상태 필드, 플래그 필드, 및 수신 방향 필드를 설정할 수 있다. 여기서, 수신 방향 필드는, 블록 쿼리가 수신된 방향을 나타낼 수 있다.
일례로, 블록 쿼리가 수신된 경우, 필드 설정부(330)는 블록 쿼리에 해당하는 세그먼트들의 플래그 필드를 "1"로 설정할 수 있다.
또한, 상태 필드를 설정하는 경우, 테이블 검색부(320)에서 저장부(370)에 콘텐츠가 저장됐는지 여부를 확인하는 동안 필드 설정부(330)는 블록 쿼리에 해당하는 세그먼트들의 상태를 "Tentative"로 설정할 수 있다.
그리고, 콘텐츠 전송부(360)를 통해 블록 쿼리에 해당하는 콘텐츠가 전송된 경우, 필드 설정부(330)는 블록 쿼리에 해당하는 세그먼트들의 상태를 "Tentative"에서 "Active"로 변경하여 설정할 수 있다.
콘텐츠 전송부(360)는 수신 방향 필드를 참조하여 블록 쿼리에 해당하는 콘텐츠를 수신 방향으로 전송할 수 있다. 즉, 블록 쿼리가 라우터 등의 네트워크 장치 또는 송신 단말 장치로부터 수신된 방향과 콘텐츠가 전송되는 방향이 동일할 수 있다.
일례로, 블록 쿼리가 포트 2(620)를 통해 수신된 경우, 필드 설정부(330)는 도 6과 같이, 블록 쿼리에 해당하는 세그먼트들 3부터 7까지의 수신 방향 필드를 2로 설정할 수 있다. 그러면, 테이블 검색부(320)는 포트 2(620)를 콘텐츠의 전송 방향으로 결정하고, 콘텐츠 전송부(360)는 포트 2(620)를 통해 세그먼트 3부터 7까지를 전송할 수 있다.
한편, 콘텐츠가 저장되지 않은 경우, 테이블 검색부(320)는 라우팅 테이블에서 콘텐츠의 이름을 검색하여 검색된 콘텐츠의 이름에 해당하는 전송 방향을 결정할 수 있다. 이때, 테이블 검색부(320)는 longest matching을 이용하여 라우팅 테이블에서 콘텐츠의 이름을 검색할 수 있다.
일례로, 도 6과 같이, 테이블 검색부(320)는 라우팅 테이블을 검색하여 세그먼트 3부터 7까지의 전송 방향을 포트 "0"으로 결정할 수 있다. 그러면, 쿼리 전송부(340)는 결정된 포트 0(610)을 통해 세그먼트 3부터 7까지에 해당하는 블록 쿼리를 전송할 수 있다.
이때, 만료 시간 이내에 전송된 블록 쿼리에 해당하는 세그먼트들이 수신되지 않는 경우, 테이블 검색부(320)는 수신되지 않은 세그먼트에 해당하는 필드들을 라우팅 테이블에서 삭제할 수 있다. 여기서, 블록 쿼리에 해 당하는 세그먼트들은 콘텐츠 수신부(350)를 통해 수신될 수 있다. 이와 같이, 송신 단말 장치(100)에서는 수신되지 않은 세그먼트를 요청하는 쿼리를 재전송하지만, 네트워크 장치(200)에서는 재전송 없이 수신되지 않은 세그먼트에 해당하는 필드들을 삭제하여 네트워크의 전송 부담을 감소시킬 수 있다.
또한, 콘텐츠가 저장되지 않은 경우, 필드 설정부(320)는 블록 쿼리에 해당하는 세그먼트 3부터 7까지의 상태 필드, 플래그 필드, 번호 필드, 및 수신 방향 필드를 설정할 수 있다.
일례로, 도 6과 같이, 필드 설정부(320)는 상태 필드를 "Tentative", 플래그 필드를 "1", 번호 필드에 각 세그먼트 번호, 수신 방향 필드를 포트 "2"로 각각 설정할 수 있다.
도 7은 콘텐츠 명 기반의 네트워크 장치의 동작을 설명하기 위해 제공되는 흐름도이다.
도 7을 참조하면, 쿼리 수신부(310)는 송신 단말 장치(100)로부터 블록 쿼리를 수신할 수 있다. 여기서, 블록 쿼리는 콘텐츠의 이름 및 전송 범위를 포함하고, 콘텐츠에 포함된 복수의 세그먼트들 중 2개 이상의 세그먼트를 요청하기 위해 이용될 수 있다.
이때, 필드 설정부(330)는 블록 쿼리가 수신된 방향을 라우팅 테이블의 수신 방향 필드에 설정할 수 있다.
일례로, 블록 쿼리가 포트 "2"로 수신된 경우, 필드 설정부(330)는 도 6과 같이, 블록 쿼리에 해당하는 세그먼트들 각각의 수신 방향 필드를 포트 "2"로 설정할 수 있다.
이어, 테이블 검색부(320)는 요청된 콘텐츠가 저장됐는지 여부를 검색할 수 있다(S720).
일례로, 테이블 검색부(320)는 저장부(370)에 블록 쿼리에 해당하는 세그먼트들이 저장되어 있는지 여부를 검색할 수 있다. 여기서, 저장부(370)로 캐시가 이용될 수 있다. 이때, 저장부(370)에서 콘텐츠가 검색되는 동안, 필드 설정부(330)는 블록 쿼리에 해당하는 세그먼트들의 상태(State) 필드를 "Tentative"로 설정할 수 있다.
그리고, 콘텐츠가 저장되지 않은 경우(S720:NO), 테이블 검색부(320)는 라우팅 테이블에서 블록 쿼리에 포함된 콘텐츠의 이름을 검색할 수 있다(S730). 이때, 테이블 검색부(320)는 longest matching을 이용하여 라우팅 테이블에서 콘텐츠의 이름을 검색할 수 있다.
이어, 테이블 검색부(320)는 검색된 콘텐츠 이름에 기초하여 라우팅 테이블에서 블록 쿼리의 전송 방향을 결정할 수 있다(S740).
일례로, 도 6과 같이, 테이블 검색부는 검색된 콘텐츠 이름에 해당하는 포트 '0"을 블록 쿼리의 전송 방향으로 결정할 수 있다.
그러면, 쿼리 전송부(340)는 결정된 전송 방향으로 블록 쿼리를 전송할 수 있다(S750).
이때, 블록 쿼리가 전송된 이후, 만료 시간(Life Time) 이내에 요청된 콘텐츠가 수신된 경우(S760:YES), 테이블 검색부(320)는 라우팅 테이블을 검색하여 수신된 콘텐츠의 전송 방향을 결정할 수 있다(S770). 여기서, 수신된 콘텐츠의 전송 방향은 S710단계에서 수신된 블록 쿼리의 수신 방향과 동일할 수 있다. 일례로, 콘텐츠의 전송 방향은 포트 "2"로 결정될 수 있다.
이어, 콘텐츠 전송부(360)는 결정된 콘텐츠의 전송 방향으로 콘텐츠를 전송할 수 있다(S780).
일례로, 블록 쿼리가 송신 단말 장치로부터 수신된 경우, 콘텐츠는 포트 "2"를 통해 송신 단말 장치(100)로 전송될 수 있다. 그리고, 블록 쿼리가 또 다른 네트워크 장치로부터 수신된 경우, 콘텐츠는 포트 "2"를 통해 S710단계에서 블록 쿼리를 전송한 네트워크 장치로 전송될 수 있다.
또한, S720 단계에서, 요청된 콘텐츠가 저장된 경우에도(S720:YES), 테이블 검색부(320)는 저장된 콘텐츠의 전송 방향을 결정할 수 있다. 그러면, 콘텐츠 전송부(360)는 저장된 콘텐츠를 결정된 전송 방향으로 전송할 수 있다.
그리고, 필드 설정부(330)는 전송된 콘텐츠에 해당하는 상태 필드를 "Active"로 변경하여 설정할 수 있다.
한편, S760 단계에서, 만료 시간(Life Time) 이내에 요청된 콘텐츠가 수신되지 않은 경우(S760:NO), 테이블 검색부(310)는 라우팅 테이블에서 수신되지 않은 콘텐츠에 해당하는 필드들을 삭제할 수 있다(S790).
일례로, 세그먼트 5가 만료 시간 이내에 수신되지 않은 경우, 세그먼트 5에 해당하는 필드들을 라우팅 테이블에서 삭제할 수 있다.
지금까지, 블록 쿼리는 콘텐츠의 이름 및 전송 범위를 포함하는 것으로 설명하였으나, 표 1과 같이, 블록 쿼리는 도메인 이름을 더 포함할 수 있다.
또한, 이상에서 도 3 및 도 6을 참조하여 설명한 바와 같이, 블록 쿼리에 해당하는 세그먼트들은 블록 쿼리를 전송한 포트를 이용하여 수신될 수 있다. 이때, 물리적으로는 1개의 포트가 이용되나, 1개의 포트는 2개의 논리 인터페이스를 포함할 수 있다. 일례로, 도 3 및 도 6에서, 포트 0는 1개의 물리적(physical) 포트로 구현되지만, 포트 0은 블록 쿼리를 전송하는 논리 인터페이스와 블록 쿼리에 해당하는 세그먼트를 수신하는 논리 인터페이스를 포함할 수 있다. 이에 따라, 하나의 포트를 이용하더라도 블록 쿼리의 전송과 세그먼트의 수신을 논리적으로 구분할 수 있다. 마찬가지로, 포트 1 내지 포트 3 각각은 1개의 물리 포트로 구현되지만, 2개의 논리 인터페이스를 포함할 수 있다.
또한, 도 3 및 도 6에서 각 포트들은 이중화를 위해 2개의 물리 포트로 구현될 수도 있다. 일례로, 포트 0 내지 포트 3 각각은 2개의 물리적인 프라이머리(primary) 포트와 세컨드리(secondary) 포트를 포함할 수 있다. 그러면, 쿼리 전송부(140) 및 콘텐츠 수신부(150)는 프라이머리 포트를 이용하여 블록 쿼리를 전송하고, 전송된 블록 쿼리에 해당하는 세그먼트를 수신할 수 있다. 이때, 프라이머리 포트에 이상이 발생한 경우, 쿼리 전송부(140) 및 콘텐츠 수신부(150)는 세컨드리 포트를 이용하여 블록 쿼리를 전송 및 전송된 블록 쿼리에 해당하는 세그먼트를 수신할 수 있다.
또한, 본 발명의 실시예들에 따른 송신 단말 장치, 수신 단말 장치, 네트워크 장치 및 그의 라우팅 방법은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110: 쿼리 생성부
120: 테이블 검색부
130: 필드 설정부
140: 쿼리 전송부
150: 콘텐츠 수신부

Claims (24)

  1. 복수의 세그먼트들을 포함하는 콘텐츠를 대상으로, 상기 복수의 세그먼트들로부터 적어도 두 개의 세그먼트들을 요청하는 블록 쿼리(Block Query)를 생성하는 쿼리 생성부- 상기 적어도 두 개의 세그먼트들은 상기 콘텐츠의 이름에 기초하여 라우팅되고, 상기 블록 쿼리는 상기 콘텐츠의 이름 및 상기 적어도 두 개의 세그먼트들을 가리키는 전송 범위를 포함함-;
    라우팅 테이블에서 상기 콘텐츠의 이름에 최장 매칭되는(longest-matched) 콘텐츠의 이름을 검색하고, 상기 블록 쿼리의 전송 방향- 상기 전송 방향은 상기 검색된 콘텐츠의 이름에 대응되고, 상기 라우팅 테이블에서 제공되는 출력 포트를 포함함- 을 결정하는 테이블 검색부;
    상기 검색된 콘텐츠의 이름에 해당하는 플래그 필드의 플래그를 설정하고, 상기 생성된 블록 쿼리에 해당하는 복수의 세그먼트 번호들을 번호 필드에 각각 설정하는 필드 설정부;
    상기 출력 포트를 통해 상기 블록 쿼리를 전송하는 쿼리 전송부; 및
    상기 출력 포트에 대응되는 입력 포트를 통해 상기 적어도 두 개의 세그먼트들을 수신하는 콘텐츠 수신부
    를 포함하고,
    상기 쿼리 생성부는
    상기 적어도 두 개의 세그먼트들이 기설정된 수신 만료 시간 내에 수신된 경우, 상기 전송 범위의 크기를 증가시키고,
    상기 적어도 두 개의 세그먼트들이 기설정된 수신 만료 시간 내에 수신되지 않은 경우, 상기 전송 범위의 크기를 감소시키며,
    상기 증가 또는 감소에 의해 조절된 전송 범위의 크기에 기초하여 새로운 블록 쿼리를 생성하는 것을 특징으로 하는 콘텐츠 명 기반의 단말 장치.
  2. 제 1항에 있어서,
    상기 필드 설정부는,
    상기 적어도 두 개의 세그먼트들이 상기 블록 쿼리에 포함되는 것을 나타내기 위해 상기 플래그를 상기 라우팅 테이블에 있는 상기 적어도 두 개의 세그먼트들에 할당된 플래그 필드에 설정하고,
    동일한 전송 방향을 가지는 적어도 두 개의 세그먼트들 중의 세그먼트들에 대하여 번호 필드에서 상기 생성된 블록 쿼리에 대응되는 세그먼트 번호들의 전송 범위를 설정하며,
    상기 전송된 블록 쿼리에 해당하는 복수의 세그먼트들의 상태 필드를 각각 설정하는 것을 특징으로 하는 콘텐츠 명 기반의 단말 장치.
  3. 제 1항에 있어서,
    상기 테이블 검색부는
    상기 플래그 필드 및 기 설정된 수신 만료 시간 내에 수신되지 않은 적어도 두 개의 세그먼트들 중의 세그먼트들의 번호 필드 중 적어도 하나를 삭제하는 것을 특징으로 하는 콘텐츠 명 기반의 단말 장치.
  4. 삭제
  5. 제 1항에 있어서,
    상기 세그먼트들의 적어도 하나의 전송 범위는
    서로 다른 라우팅 경로들을 가지는 것을 특징으로 하는 콘텐츠 명 기반의 단말 장치.
  6. 복수의 세그먼트들을 포함하는 콘텐츠를 대상으로, 상기 복수의 세그먼트들로부터 적어도 두 개의 세그먼트들을 요청하는 블록 쿼리(Block Query)를 생성하는 단계- 상기 적어도 두 개의 세그먼트들은 상기 콘텐츠의 이름에 기초하여 라우팅되고, 상기 블록 쿼리는 상기 콘텐츠의 이름 및 상기 적어도 두 개의 세그먼트들을 가리키는 전송 범위를 포함함-;
    라우팅 테이블에서 상기 콘텐츠의 이름에 최장 매칭되는 콘텐츠의 이름을 검색하는 단계;
    상기 블록 쿼리의 전송 방향- 상기 전송 방향은 상기 검색된 콘텐츠의 이름에 대응되고, 상기 라우팅 테이블에서 제공되는 제2 출력 포트를 포함함- 을 결정하는 단계;
    상기 검색된 콘텐츠의 이름에 해당하는 플래그를 설정하고, 상기 생성된 블록 쿼리에 해당하는 복수의 세그먼트 번호들을 번호 필드에 각각 설정하는 단계; 상기 출력 포트를 통해 상기 블록 쿼리를 전송하는 단계;
    상기 출력 포트에 대응되는 입력 포트를 통해 상기 적어도 두 개의 세그먼트들을 수신하는 단계;
    상기 적어도 두 개의 세그먼트들이 기설정된 수신 만료 시간 내에 수신되었는지 여부를 기초로, 상기 적어도 두 개의 세그먼트들이 기설정된 수신 만료 시간 내에 수신되면 상기 전송 범위의 크기를 증가시키고, 상기 적어도 두 개의 세그먼트들이 기설정된 수신 만료 시간 내에 수신되지 않으면 상기 전송 범위의 크기를 감소시킴으로써 상기 전송 범위의 크기를 조절하는 단계; 및
    상기 조절된 전송 범위의 크기에 기초하여 새로운 블록 쿼리를 생성하는 단계
    를 포함하는 것을 특징으로 하는 콘텐츠 명 기반의 라우팅 방법.
  7. 제 6항에 있어서,
    상기 전송된 블록 쿼리에 해당하는 복수의 세그먼트들의 상태 필드를 각각 설정하는 단계
    를 더 포함하는 콘텐츠 명 기반의 라우팅 방법.
  8. 삭제
  9. 삭제
  10. 제 6항에 있어서,
    상기 블록 쿼리에 대응되는 세그먼트들의 적어도 하나의 수신된 전송 범위는 서로 다른 라우팅 경로들을 가지는 것을 특징으로 하는 콘텐츠 명 기반의 라우팅 방법.
  11. 제1 입력 포트를 통해, 콘텐츠의 복수의 세그먼트들 중 적어도 두 개의 세그먼트들에 대한 요청을 포함하는 블록 쿼리를 수신하는 쿼리 수신부 - 상기 적어도 두 개의 세그먼트들은 상기 콘텐츠의 이름에 기초하여 라우팅되고, 상기 블록 쿼리는 상기 콘텐츠의 이름 및 상기 적어도 두 개의 세그먼트들을 가리키는 전송 범위를 포함함- ;
    상기 요청된 세그먼트들이 저장부에 저장되어 있는지 여부를 판단하는 테이블 검색부;
    콘텐츠 전송부;
    쿼리 전송부; 및
    콘텐츠 수신부; 및
    상기 콘텐츠의 이름에 해당하는 플래그를 설정하는 필드 설정부
    를 포함하고,
    상기 요청된 세그먼트들이 상기 저장부에 저장된 경우,
    상기 콘텐츠 전송부는 상기 제1 입력 포트에 대응되는 제1 출력 포트를 통해 상기 요청된 세그먼트들을 전송하고,
    상기 요청된 세그먼트들 중 어느 것도 상기 저장부에 저장되지 않은 경우,
    상기 테이블 검색부는 라우팅 테이블로부터, 상기 콘텐츠의 이름에 최장 매칭되는 콘텐츠의 이름을 검색하고, 상기 블록 쿼리의 전송 방향- 상기 검색된 콘텐츠의 이름에 대응되고, 상기 라우팅 테이블에서 제공되는 출력 포트를 포함함- 을 결정하며,
    상기 쿼리 전송부는 상기 블록 쿼리를 상기 제2 출력 포트를 통해 전송하고,
    상기 콘텐츠 수신부는 상기 적어도 두 개의 세그먼트들을 상기 제2 출력 포트에 대응되는 제2 입력 포트를 통해 수신하는것을 특징으로 하는 콘텐츠 명 기반의 단말 장치.
  12. 제 11항에 있어서,
    상기 필드 설정부는
    상기 적어도 두 개의 세그먼트들이 상기 블록 쿼리에 포함되었는지를 나타내기 위해 상기 라우팅 테이블에서 상기 적어도 두 개의 세그먼트들에 할당된 플래그 필드에 플래그를 설정하는 것을 특징으로 하는 콘텐츠 명 기반의 단말 장치.
  13. 제 12항에 있어서,
    상기 필드 설정부는,
    상기 라우팅 테이블에서 상기 콘텐츠 내 요청된 세그먼트들에 할당된 상태 필드를 설정하고, 상기 블록 쿼리에 해당하는 복수의 세그먼트들을 대상으로, 상기 블록 쿼리가 수신된 방향을 설정하는 것을 특징으로 하는 콘텐츠 명 기반의 단말 장치.
  14. 제11항에 있어서,
    상기 필드 설정부는
    상기 라우팅 테이블이 상기 적어도 두 개의 세그먼트들에서 요청된 필드들을 포함하도록 설정하고,
    상기 적어도 두 개의 세그먼트들에서 요청된 필드들은
    콘텐츠 이름 필드, 전송 방향 필드, 수신 방향 필드, 플래그 필드, 번호 필드, 상태 필드 및 만료 기간 필드 중 적어도 일부를 포함하는 것을 특징으로 하는 콘텐츠 명 기반의 단말 장치.
  15. 제14항에 있어서,
    상기 적어도 두 개의 세그먼트들에서 요청된 세그먼트 각각은
    상기 번호 필드, 상기 상태 필드 및 상기 만료 기간 필드를 포함하는 개별적인 라우팅 요소에 대응되고,
    상기 콘텐츠 이름 필드 및 상기 플래그 필드는 상기 적어도 두 개의 세그먼트들에서 요청된 콘텐츠의 이름에 의해 공유되는 것을 특징으로 하는 콘텐츠 명 기반의 단말 장치.
  16. 제1 입력 포트를 통해, 콘텐츠의 세그먼트들 중 적어도 두 개의 세그먼트들 에 대한 요청을 포함하는 블록 쿼리를 수신하는 단계-상기 적어도 두 개의 세그먼트들은 상기 콘텐츠의 이름에 기초하여 라우팅되고, 상기 블록 쿼리는 상기 콘텐츠의 이름 및 상기 적어도 두 개의 세그먼트들을 가리키는 전송 범위를 포함함- ;
    상기 세그먼트들의 요청된 전송 범위가 저장부에 저장되었는지 여부를 결정하는 단계;
    상기 요청된 전송 범위가 상기 저장부가 저장되어 있는 경우,
    상기 제1 입력 포트에 대응되는 제1 출력 포트를 통해 상기 요청된 전송 범위의 세그먼트들을 전송하는 단계;
    상기 요청된 전송 범위가 상기 저장부에 저장되어 있지 않은 경우,
    라우팅 테이블로부터 상기 콘텐츠의 이름에 최장 매칭되는 콘텐츠의 이름을 검색하는 단계;
    상기 블록 쿼리의 전송 방향- 상기 전송 방향은 상기 라우팅 테이블에서 제공되는 제2 출력 포트를 포함하고, 상기 검색된 콘텐츠의 이름에 대응됨-을 결정하는 단계;
    상기 블록 쿼리를 상기 제2 출력 포트를 통해 전송하는 단계; 및
    상기 적어도 두 개의 세그먼트들을 상기 제2 출력 포트에 대응되는 제2 입력 포트를 통해 수신하는 단계
    를 포함하는 것을 특징으로 하는 콘텐츠 명 기반의 라우팅 방법.
  17. 제 16항에 있어서,
    상기 검색된 콘텐츠의 이름에 대응되는 플래그를 설정하는 단계; 및
    상기 블록 쿼리에 적어도 두 개의 세그먼트들이 포함된 것을 나타내기 위해 상기 라우팅 테이블에서 상기 적어도 두 개의 세그먼트들에 할당된 플래그 필드에 상기 플래그를 설정하는 단계
    를 더 포함하는 것을 특징으로 하는 콘텐츠 명 기반의 라우팅 방법.
  18. 제 17항에 있어서,
    상기 라우팅 테이블에서 상기 콘텐츠 내 요청된 세그먼트들에 할당된 상태 필드를 설정하는 단계; 및
    상기 블록 쿼리에 해당하는 복수의 세그먼트들을 대상으로, 상기 블록 쿼리가 수신된 방향을 설정하는 단계
    를 더 포함하는 것을 특징으로 하는 콘텐츠 명 기반의 라우팅 방법.
  19. 삭제
  20. 삭제
  21. 프로세서; 및
    라우팅 테이블
    을 포함하고,
    상기 라우팅 테이블은
    상기 프로세서에 의해 복수의 세그먼트들을 포함하는 콘텐츠를 검색하고, 블록 쿼리-상기 블록 쿼리는 상기 블록 쿼리에 해당하는 적어도 두 개의 세그먼트들 중 시작 세그먼트 및 종료 세그먼트를 포함함- 에 리스트된 상기 콘텐츠의 이름과 최장 매칭되는 콘텐츠의 이름을 검색하는 데에 사용되는 콘텐츠 이름 필드- ;
    상기 프로세서에 의해 상기 콘텐츠의 복수의 세그먼트들 중 적어도 두 개의 세그먼트들에 대한 요청을 포함하는 블록 쿼리를 전송하는 데에 이용되는 전송 방향 필드-상기 블록 쿼리는 상기 전송 방향 필드에 설정된 전송 방향을 이용하여 전송됨- ;
    상기 프로세서에 의해 상기 블록 쿼리가 수신된 방향을 가리키는 데에 사용되는 수신 방향 필드-상기 수신 방향 필드는 상기 블록 쿼리의 수신 방향 및 상기 블록 쿼리의 수신 방향을 이용하여 전송된 상기 블록 쿼리에 리스트된 콘텐츠를 포함함- ;
    상기 쿼리가 블록 쿼리 -상기 블록 쿼리는 복수의 세그먼트들 중 두 개 이상의 세그먼트를 요청하는 것임-인지 여부를 가리키기 위해 상기 프로세서에 의해 사용되는 플래그 필드;
    상기 블록 쿼리에 리스트된 세그먼트의 번호를 가리키기 위해 상기 프로세서에 의해 사용되는 번호 필드;
    상기 전송된 블록 쿼리에 리스트 된 콘텐츠가 수신되었는지 여부를 나타내기 위해 상기 프로세서에 의해 사용되는 상태 필드; 및
    상기 콘텐츠의 기설정된 수신 만료 시간을 가리키기 위해 상기 프로세서에 의해 사용되는 시간 필드
    를 포함하는 라우팅 테이블을 이용하는 네트워크 장치.
  22. 삭제
  23. 삭제
  24. 삭제
KR1020100082030A 2009-12-24 2010-08-24 콘텐츠 명 기반의 단말 장치 및 라우팅 방법 KR101614783B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US12/946,037 US9264342B2 (en) 2009-12-24 2010-11-15 Terminal device based on content name, and method for routing based on content name
EP20100192619 EP2339797B1 (en) 2009-12-24 2010-11-25 Terminal device based on content name, and method for routing based on content name
CN201010589256.2A CN102111328B (zh) 2009-12-24 2010-12-10 基于内容名称的终端装置和基于内容名称路由的方法
JP2010280596A JP5666280B2 (ja) 2009-12-24 2010-12-16 コンテンツ名ベースの端末装置、そのルーティング方法、及びルーティングテーブルを用いるネットワーク装置
US13/912,570 US9268813B2 (en) 2009-12-24 2013-06-07 Terminal device based on content name, and method for routing based on content name

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020090131093 2009-12-24
KR20090131093 2009-12-24

Publications (2)

Publication Number Publication Date
KR20110074421A KR20110074421A (ko) 2011-06-30
KR101614783B1 true KR101614783B1 (ko) 2016-05-02

Family

ID=44404761

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100082030A KR101614783B1 (ko) 2009-12-24 2010-08-24 콘텐츠 명 기반의 단말 장치 및 라우팅 방법

Country Status (1)

Country Link
KR (1) KR101614783B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020095400A1 (en) * 2000-03-03 2002-07-18 Johnson Scott C Systems and methods for managing differentiated service in information management environments
US20080123662A1 (en) * 2002-08-15 2008-05-29 Claude Basso Database Management System and Method of Using It to Transmit Packets

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020095400A1 (en) * 2000-03-03 2002-07-18 Johnson Scott C Systems and methods for managing differentiated service in information management environments
US20080123662A1 (en) * 2002-08-15 2008-05-29 Claude Basso Database Management System and Method of Using It to Transmit Packets

Also Published As

Publication number Publication date
KR20110074421A (ko) 2011-06-30

Similar Documents

Publication Publication Date Title
JP5666280B2 (ja) コンテンツ名ベースの端末装置、そのルーティング方法、及びルーティングテーブルを用いるネットワーク装置
KR102301353B1 (ko) 컨텐츠 중심 네트워크에서 컨텐츠 소유자 및 노드의 패킷 전송 방법
US20140181140A1 (en) Terminal device based on content name, and method for routing based on content name
KR102072203B1 (ko) 컨텐츠 중심 네트워크에 계층적 이름의 변화에 강인한 단축 이름을 생성하는 방법 및 노드
US8073972B2 (en) System and method for location discovery based on DNS
US9705799B2 (en) Server-side load balancing using parent-child link aggregation groups
US10193805B2 (en) User oriented IoT data discovery and retrieval in ICN networks
US9268813B2 (en) Terminal device based on content name, and method for routing based on content name
US8874708B2 (en) Location discovery based on DNS
KR20150128876A (ko) 컨테이너 명칭 서버 및 컨테이너 명칭 해석 방법
JP2016001922A (ja) 通信システム、制御装置、通信方法およびプログラム
JP2007164523A (ja) 情報処理装置、分散同期型情報システム、情報同期方法、及び、プログラム
CN104767678B (zh) 在内容中心网络中基于命名中内容属性实现的路由方法
CN102325079A (zh) 报文传输方法和出口路由器
KR101384794B1 (ko) 메시지 라우팅 플랫폼
JP5924598B2 (ja) データ指向型通信システム、ノード、および、データ転送方法
KR101614783B1 (ko) 콘텐츠 명 기반의 단말 장치 및 라우팅 방법
EP3482558A1 (en) Systems and methods for transmitting and receiving interest messages
US20140025630A1 (en) Data-store management apparatus, data providing system, and data providing method
US8797918B1 (en) Method and apparatus for distributed topology function in serial attached small computer system interface (SAS)
US11057470B2 (en) Communication device and communication method for processing meta data
KR101467961B1 (ko) 오픈플로우 시스템을 이용한 컨텐츠 전달 방법 및 시스템
WO2019128905A1 (zh) 一种网络通信方法及装置
KR102060907B1 (ko) 데이터 이름 기반 네트워크에서의 fib 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템
KR20150031083A (ko) 웹사이트 접속 시간 단축 방법 및 이를 위한 장치

Legal Events

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

Payment date: 20190319

Year of fee payment: 4