KR101481936B1 - 분석에 의한 라우팅 - Google Patents

분석에 의한 라우팅 Download PDF

Info

Publication number
KR101481936B1
KR101481936B1 KR20137032371A KR20137032371A KR101481936B1 KR 101481936 B1 KR101481936 B1 KR 101481936B1 KR 20137032371 A KR20137032371 A KR 20137032371A KR 20137032371 A KR20137032371 A KR 20137032371A KR 101481936 B1 KR101481936 B1 KR 101481936B1
Authority
KR
South Korea
Prior art keywords
message
pointer
label
content
network node
Prior art date
Application number
KR20137032371A
Other languages
English (en)
Other versions
KR20140007953A (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 알까뗄 루슨트
Publication of KR20140007953A publication Critical patent/KR20140007953A/ko
Application granted granted Critical
Publication of KR101481936B1 publication Critical patent/KR101481936B1/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/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5058Service discovery by the service manager
    • 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
    • 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
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/106Mapping addresses of different types across networks, e.g. mapping telephone numbers to data network addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/59Network arrangements, protocols or services for addressing or naming using proxies for addressing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • 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/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

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

Abstract

다양한 예시적인 실시예들은 하나 이상의 다음 단계들을 포함하는 방법 및 관련 네트워크 노드에 관한 것으로, 상기 단계들은 포인터를 포함하는 요구 메시지를 네트워크 노드에서 수신하는 단계와; 네트워크 노드가 포인터와 연관되는지를 결정하는 단계와; 만약 네트워크 노드가 포인터와 연관된다면, 포인터와 연관된 레이블(a label)을 결정하고, 이 레이블을 포함하는 변경된 메시지를 발생하도록 요구 메시지를 변경하며, 변경된 메시지를 적어도 하나의 다른 네트워크 노드로 송신하는 단계를 포함한다. 다양한 실시예들은 추가적으로 혹은 선택적으로 하나 이상의 다음 단계들을 포함하는 방법 및 관련 네트워크 노드에 관한 것으로, 상기 단계들은 포인터를 포함하는 발행 메시지를 수신하는 단계와; 포인터와 연관되도록 레이블을 발생하는 단계와; 레이블을 포함하는 변경된 메시지를 발생하도록 발행 메시지를 변경하는 단계와; 변경된 메시지를 적어도 하나의 다른 네트워크 노드로 송신하는 단계를 포함한다.

Description

분석에 의한 라우팅{ROUTING BY RESOLUTION}
본원에 개시된 다양한 실시예들은 전반적으로 네트워크 라우팅에 관한 것이다.
인터넷이 만들어진 이래, 인터넷은 일반적인 컴퓨터간 통신을 허용하는 시스템에서부터 전세계적으로 사용자에게 무수히 많은 서비스와 콘텐츠를 제공하는 설비에 이르기까지 점차로 확장되었다. 이러한 발전의 일환으로, 시간이 지남에 따라 보다 양질의 서비스와 콘텐츠 중심 애플리케이션을 지원하기 위해 고도화된 인프라스트럭처(sophisticaed infrastructure)가 추가되었다.
현재, 도메인 이름 시스템(DNS;Domain Name System)이 요구된 콘텐츠의 위치를 결정하는 디렉토리 서비스의 역할을 한다. 다양한 호스트는 DNS와 함께 가명(aliases)으로서 "도메인 이름"을 설정한다. 그 뒤, 사용자는 다양한 DNS 서버에 접속하여, 요구된 콘텐츠가 저장 및 제공되는 호스트의 어드레스를 검색하는데, 이때 호스트 어드레스는 도메인 이름으로 식별된다. 이후에, 사용자는 콘텐츠를 인출(fetch)하거나 소비하기 위해 검색된 어드레스를 통해 호스트에 접속한다.
다양한 예시적인 실시예들은 컴퓨터에 의해 네트워크 내에서의 콘텐츠를 요구하는 명령어로 인코딩된 머신 판독 가능 저장 매체에 관한 것으로, 상기 머신 판독 가능 저장 매체는 하나 이상의 다음 명령어, 즉, 요구하기 위한 콘텐츠 아이템을 결정하는 명령어와; 상기 콘텐츠 아이템과 연관된 포인터를 결정하는 명령어와; 상기 포인터를 포함하는 요구 메시지를 발생하는 명령어와; 상기 요구 메시지를 적어도 하나의 네트워크 노드로 송신하는 명령어와; 상기 콘텐츠 아이템을 적어도 하나의 네트워크 노드로부터 수신하는 명령어를 포함한다.
상기 콘텐츠 아이템과 연관된 포인터를 결정하는 명령어가 상기 콘텐츠 아이템에 기반하여 포인터를 발생하는 명령어를 포함하는 다양한 선택적인 실시예들이 개시된다. 상기 콘텐츠 아이템에 기반하여 포인터를 발생하는 명령어가 상기 콘텐츠 아이템에 기반하여 해시값(hash value)을 발생하는 명령어를 포함하는 다양한 선택적인 실시예가 개시된다. 상기 콘텐츠 아이템에 기반하여 해시값을 발생하는 명령어가 상기 콘텐츠 아이템의 이름(name)에 기반하여 해시값을 발생하는 명령어를 포함하는 다양한 선택적인 실시예가 개시된다. 상기 포인터를 포함하는 요구 메시지를 발생하는 명령어가 상기 포인터를 목적지 어드레스로서 상기 메시지에 삽입하는 명령어를 포함하는 다양한 선택적인 실시예가 개시된다.
다양한 예시적인 실시예들은 컴퓨터에 의해 네트워크 내에서의 콘텐츠를 발행(publishing)하는 명령어로 인코딩된 머신 판독 가능 저장 매체에 관한 것으로, 상기 머신 판독 가능 저장 매체는 하나 이상의 다음 명령어, 즉, 발행할 콘텐츠 아이템을 결정하는 명령어와; 상기 콘텐츠 아이템에 기반하여 포인터를 발생하는 명령어와; 상기 포인터를 포함하는 발행 메시지(a publication message)를 발생하는 명령어와; 상기 발행 메시지를 적어도 하나의 네트워크 노드로 송신하는 명령어를 포함한다.
다양한 선택적인 실시예는 추가적으로 하나 이상의 다음 명령어, 즉, 적어도 하나의 네트워크 노드로부터 요구 메시지를 수신하는 명령어―상기 요구 메시지는 포인터를 포함하며 요구 장치(requesting device)를 나타냄―와; 상기 포인터가 콘텐츠 아이템과 연관됨을 결정하는 명령어와; 상기 콘텐츠 아이템을 요구 장치로 송신하는 명령어를 포함한다.
상기 포인터가 요구 메시지의 어드레스 필드에 포함되는 다양한 선택적인 실시예가 설명된다. 상기 콘텐츠 아이템에 기반하여 포인터를 발생하는 명령어가 상기 콘텐츠 아이템에 기반하여 해시값을 발생하는 명령어를 포함하는 다양한 선택적인 실시예가 개시된다. 상기 콘텐츠 아이템에 기반하여 해시값을 발생하는 명령어가 상기 콘텐츠 아이템의 이름에 기반하여 해시값을 발생하는 명령어를 포함하는 다양한 선택적인 실시예가 개시된다.
다양한 예시적인 실시예들은 네트워크 노드에 의해 네트워크 내에서의 콘텐츠 요구를 라우팅(routing)하는 방법에 관한 것으로, 상기 방법은 하나 이상의 다음 단계, 즉, 포인터를 포함하는 요구 메시지를 네트워크 노드에서 수신하는 단계와; 상기 네트워크 노드가 상기 포인터와 연관되는지를 결정하는 단계와; 만약 상기 네트워크 노드가 상기 포인터와 연관된다면, 포인터와 연관된 레이블(label)을 결정하고, 상기 레이블을 포함하는 변경된 메시지를 발생하도록 상기 요구 메시지를 변경하며, 상기 변경된 메시지를 적어도 하나의 다른 네트워크 노드로 송신하는 단계를 포함한다.
다양한 예시적인 실시예들은 네트워크 내에서의 콘텐츠 요구를 라우팅하는 분석 시스템(resolution system)에 관한 것으로, 상기 분석 시스템은 하나 이상의 다음 수단, 즉, 라우팅 정보를 저장하는 라우팅 테이블과; 복수의 상관관계 레코드(correlation records)를 저장하는 상관관계 저장 수단―상기 상관관계 레코드의 각각은 하나의 포인터와 적어도 하나의 레이블을 식별함―과; 요구된 포인터를 포함하는 요구 메시지를 수신하는 수신기 인터페이스와; 메시지를 송신하는 송신기 인터페이스와; 요구된 포인터를 식별하는 상관관계 레코드를 탐색하고, 상기 상관관계 레코드에 의해 식별되는 적어도 하나의 레이블 중 선택된 레이블을 선택하며, 상기 선택된 레이블을 포함하는 변경된 메시지를 발생하도록 상기 요구 메시지를 변경하는 검색 메시지 변경기(search message modifier)와; 상기 라우팅 정보 및 상기 변경된 메시지에 기반하여 네트워크 노드를 결정하고, 상기 송신기 인터페이스를 통해 상기 네트워크 노드로 상기 변경된 메시지를 전달하는 메시지 라우터를 포함한다.
다양한 예시적인 실시예들은 네트워크 노드에 의해 네트워크 내에서의 콘텐츠 요구를 라우팅하는 명령어로 인코딩된 머신 판독 가능 저장 매체에 관한 것으로, 상기 머신 판독 가능 저장 매체는 하나 이상의 다음 명령어, 즉, 포인터를 포함하는 요구 메시지를 네트워크 노드에서 수신하는 명령어와; 상기 네트워크 노드가 상기 포인터와 연관되는지를 결정하는 명령어와; 만약 상기 네트워크 노드가 상기 포인터와 연관된다면, 포인터와 연관된 레이블을 결정하고, 상기 레이블을 포함하는 변경된 메시지를 발생하도록 상기 요구 메시지를 변경하며, 상기 변경된 메시지를 적어도 하나의 다른 네트워크 노드로 송신하는 명령어를 포함한다.
상기 네트워크 노드가 상기 포인터와 연관되는지를 결정하는 단계는 하나 이상의 다음 단계, 즉, 네트워크 노드와 연관된 접두부(a prefix)를 결정하는 단계와; 상기 접두부가 상기 포인터의 적어도 일부분과 일치하는지를 결정하는 단계를 포함하는 다양한 선택적인 실시예가 설명된다. 상기 네트워크 노드가 상기 포인터와 연관되는지를 결정하는 단계는 또한 상기 접두부가 상기 네트워크에서 상기 포인터에 대해 가장 길게 일치하는 접두부(a longest matching prefix)인지를 결정하는 단계를 더 포함하는 다양한 선택적인 실시예가 설명된다. 상기 포인터가 요구 메시지의 어드레스 필드 내에 포함되고, 상기 레이블은 상기 변경된 메시지의 어드레스 필드에 포함되는 다양한 선택적인 실시예가 설명된다. 상기 요구 메시지와 상기 변경된 메시지 중 적어도 하나는 네트워크 계층 패킷(a network-layer packet)인 다양한 선택적인 실시예가 설명된다. 상기 변경된 메시지를 적어도 하나의 다른 네트워크 노드로 송신하는 단계는 상기 레이블의 적어도 일부분과 일치하는 상이한 접두부와 연관된 상이한 노드를 향해 상기 변경된 메시지를 송신하는 단계를 포함하는 다양한 선택적인 실시예가 설명된다. 상기 포인터가 복수의 레이블과 연관되고; 상기 포인터와 연관된 레이블을 결정하는 단계는 복수의 레이블 중 하나의 레이블을 선택하는 단계를 포함하는 다양한 선택적인 실시예가 설명된다. 상기 포인터가 콘텐츠 아이템에 대한 이름의 해시인 다양한 선택적인 실시예가 설명된다.
다양한 선택적인 실시예는 하나 이상의 다음 단계, 즉, 포인터 및 레이블을 포함하는 발행 메시지를 네트워크 노드에서 수신하는 단계와; 상기 발행 메시지로부터 상기 포인터 및 레이블을 추출하는 단계와; 상기 포인터 및 레이블을 함께 메모리에 유지하는 단계를 포함하되, 상기 포인터와 연관된 레이블을 결정하는 단계는 메모리로부터 상기 포인터 및 레이블을 판독하는 단계를 포함한다.
다양한 예시적인 실시예들은 네트워크 노드에 의해 네트워크 내에서의 콘텐츠를 발행하는 방법에 관한 것으로, 상기 방법은 하나 이상의 다음 단계, 즉, 포인터를 포함하는 발행 메시지를 네트워크 노드에서 수신하는 단계와; 상기 포인터와 연관되도록 레이블을 발생하는 단계와; 상기 레이블을 포함하는 변경된 메시지를 발생하도록 상기 발행 메시지를 변경하는 단계와; 상기 변경된 메시지를 적어도 하나의 다른 네트워크 노드로 송신하는 단계를 포함한다.
다양한 예시적인 실시예들은 네트워크 내에서의 콘텐츠를 발행하는 발행 시스템에 관한 것으로, 상기 발행 시스템은 하나 이상의 다음 수단, 즉, 라우팅 정보를 저장하는 라우팅 테이블과; 포인터를 포함하는 발행 메시지를 수신하는 수신기 인터페이스와; 메시지를 송신하는 송신기 인터페이스와; 상기 포인터와의 연관을 위한 레이블을 발생하는 레이블 계산기(label calculator)와; 상기 레이블을 포함하는 변경된 메시지를 발생하도록 상기 발행 메시지를 변경하는 발행 메시지 변경기와; 상기 라우팅 정보 및 상기 변경된 메시지에 기반하여 네트워크 노드를 결정하고, 상기 송신기 인터페이스를 통해 상기 네트워크 노드로 상기 변경된 메시지를 전달하는 메시지 라우터를 포함한다.
다양한 예시적인 실시예들은 네트워크 노드에 의해 네트워크 내에서의 콘텐츠를 발행하는 명령어로 인코딩된 머신 판독 가능 저장 매체에 관한 것으로, 상기 머신 판독 가능 저장 매체는 하나 이상의 다음 명령어, 즉, 포인터를 포함하는 발행 메시지를 네트워크 노드에서 수신하는 명령어와; 상기 포인터와 연관되도록 레이블을 발생하는 명령어와; 상기 레이블을 포함하는 변경된 메시지를 발생하도록 발행 메시지를 변경하는 명령어와; 상기 변경된 메시지를 적어도 하나의 다른 네트워크 노드로 송신하는 명령어를 포함한다.
상기 포인터와 연관되도록 레이블을 발생하는 단계는 하나 이상의 다음 단계, 즉, 네트워크 노드와 연관된 접두부를 결정하는 단계와; 상기 포인터의 적어도 일부분 및 상기 접두부의 적어도 일부분을 상기 레이블에 포함시키는 단계를 포함하는 다양한 예시적인 실시예가 설명된다. 상기 포인터가 상기 발행 메시지와 상기 변경된 메시지 중 적어도 하나의 어드레스 필드 내에 포함되는 다양한 선택적인 실시예가 설명된다. 상기 변경된 메시지를 적어도 하나의 다른 네트워크 노드로 송신하는 단계는 상기 포인터에 기반하여 적어도 하나의 다른 네트워크 노드를 선택하는 단계를 포함하는 다양한 선택적인 실시예가 설명된다. 상기 포인터에 기반하여 적어도 하나의 다른 네트워크 노드를 선택하는 단계는 하나 이상의 다음 단계, 즉, 적어도 하나의 다른 노드와 연관된 접두부를 결정하는 단계와; 상기 접두부가 상기 포인터의 적어도 일부분과 일치하는지 결정하는 단계를 포함하는 다양한 선택적인 실시예가 설명된다. 상기 포인터가 콘텐츠 아이템에 대한 이름의 해시인 다양한 선택적인 실시예가 설명된다. 상기 발행 메시지와 상기 변경된 메시지 중 적어도 하나가 네트워크 계층 패킷인 다양한 선택적인 실시예가 설명된다.
다양한 예시적인 실시예를 더 잘 이해하기 위해서 다음의 첨부 도면을 참조한다.
도 1은 콘텐츠를 분산시키는 예시적인 네트워크를 도시한다.
도 2는 콘텐츠를 발행하는 예시적인 메시지 교환을 도시한다.
도 3은 콘텐츠를 요구하는 예시적인 메시지 교환을 도시한다.
도 4는 콘텐츠를 전달하는 예시적인 메시지 교환을 도시한다.
도 5는 콘텐츠 라우팅 메시지(content-routed message)를 처리하는 예시적인 네트워크 노드를 도시한다.
도 6은 발행 메시지를 처리 및 송신하는 예시적인 시스템을 도시한다.
도 7은 수신된 발행 메시지를 처리하고 검색 메시지를 분석하는 예시적인 시스템을 도시한다.
도 8은 콘텐츠 라우팅 메시지를 처리하는 예시적인 방법을 도시한다.
도 9는 발행 메시지를 처리 및 송신하는 예시적인 방법을 도시한다.
도 10은 수신된 발행 메시지를 처리하고 검색 메시지를 분석하는 예시적인 방법을 도시한다.
DNS 서버의 이용은 데이터의 복제 및 이동을 불편하게 하는데, 만약 콘텐츠가 다른 호스트에서 액세스되어야 하는 경우, 다른 도메인 이름이 사용자에게 반드시 통신되어야 하거나 혹은 DNS 레코드가 신규 호스트가 아닌 포인트에 대해 반드시 갱신되어야 한다. DNS 패러다임에는 다양한 추가의 제약들이 내재한다.
한편, 콘텐츠 중심 네트워킹(CCN;content-centric networking)은 DNS 패러다임에 있을 수 있는 문제점들을 해결한다. CCN 패러다임에서는, 콘텐츠가 그 이름에 기반하여 네트워크로부터 요구될 수 있다. 그러나 CCN은 현실적인 애플리케이션을 가능하게 하기 위해 반드시 처리되어야 하는 많은 쟁점들을 제기한다. 예를 들면, CCN 패러다임은 흔히 확장성(scalability)이 빈약하다는 문제점을 갖는다. 따라서, 콘텐츠가 호스트(즉, 콘텐츠가 상주하는 호스트)가 아닌 그 이름이나 혹은 다른 정의 문자로 요구될 수 있는 확장형 시스템(scalable system)이 요구된다.
이제 도면을 참조하여, 다양한 예시적인 실시예의 개괄적인 양상들에 개시되며, 도면에서 동일한 부호는 유사한 구성요소 또는 단계를 지칭한다.
도 1은 콘텐츠를 분산시키는 예시적인 네트워크(100)를 도시한다. 예를 들어, 네트워크(100)는 인터넷처럼 컴퓨터의 패킷 교환망일 수 있다. 이런 맥락에서, 네트워크(100)는 예컨대 ISP A(110), ISP B(120) 및 ISP C처럼 다중 인터넷 서비스 제공자를 포함할 수 있다. 네트워크(100)는 또한 예컨대 서버(140)같은 다수의 콘텐츠 서버와, 예컨대 시스템(150)같은 최종 사용자 시스템을 포함할 수도 있다.
ISP(110, 120, 130)는 네트워크(100)에 메시지를 라우팅하는 하나 이상의 장치를 포함할 수 있다. 또한, ISP(110, 120, 130)는 직접적이든 혹은 하나 이상의 중간 노드를 통하든 간에 서로 통신할 수 있다. 네트워크(100)의 조직은 간략화된 예시이며 네트워크(100)가 다양한 추가적 ISP(도시 안 됨)를 포함할 수도 있음은 자명하다. 또한, 연결은 예시로 도시되었으며, 다른 토폴로지도 가능하다. 예를 들어, ISP A(110)과 ISP B(120)가 오로지 ISP C(130)를 통해 통신할 수도 있다.
ISP(110, 120, 130) 내부의 하나 이상의 장치는 예컨대 저장 장치(135)같은 하나 이상의 저장 장치에 액세스할 수 있다. 저장 장치(135)는 예컨대 ROM, RAM, 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치 및/또는 그와 유사한 저장 매체같은 머신 판독 가능 저장 매체를 포함할 수도 있다. 저장 장치(135)의 동작은 도 2 내지 도 4와 관련하여 이후에 더 자세하게 설명될 것이다.
서버(140)는 콘텐츠에 대한 요구를 수신하고, 그 이후에 요구된 콘텐츠를 요구한 장치에게 전달하도록 되어 있는 장치일 것이다. 따라서, 서버(140)는 개인용 컴퓨터, 랩탑, 태블릿, 서버, 블레이드(blade), 모바일 폰 및/또는 네트워크를 통해 콘텐츠를 제공하는 임의의 다른 장치일 수 있다.
서버(140)는 저장 장치(145)를 포함하거나 혹은 저장 장치(145)에 액세스할 수 있다. 저장 장치(145)는 예컨대 ROM, RAM, 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치 및/또는 그와 유사한 저장 매체같은 머신 판독 가능 저장 매체를 포함할 수도 있다. 저장 장치(145)는 예컨대 콘텐츠 아이템(147)같은 하나 이상의 콘텐츠 아이템을 저장할 수 있다. 콘텐츠 아이템(147)은 예컨대 텍스트 파일, html 파일, 오디오 파일, 비디오 파일 등처럼 임의의 데이터일 것이다.
장치(150)는 네트워크(100)에 대해 콘텐츠 아이템을 요구 및 수신하도록 구성된 장치이다. 따라서, 장치(150)는 개인용 컴퓨터, 랩탑, 태블릿, 서버, 블레이드, 모바일 폰 및/또는 네트워크를 통해 콘텐츠를 소비하는 임의의 다른 장치일 수 있다.
각각의 ISP는 하나 이상의 어드레스 접두부와 연관될 수 있고, 이때 각각의 접두부는 ISP에 첨부된 하나 이상의 장치의 장치 어드레스의 일부분을 나타내고 있다. 예를 들어, ISP A(110)는 어드레스 접두부 0x68xx와 연관된다. 따라서, ISP에 첨부된 하나 이상의 장치는 0x68로 시작하는 어드레스를 갖고 있다. 예로서, 서버(140)의 어드레스는 0x687c이고, 어드레스 0x687c는 접두부 0x68xx를 갖고 있다. 마찬가지로, 장치(150)는 어드레스 0x1088을 갖고, 이것은 장치(150)가 첨부되어 있는 ISP B(120)의 0x10xx 접두부와 일치한다. 또한, ISP C(130)는 ISP C(130)와 연관된 0x20xx 접두부와 일치하는 하나 이상의 장치를 연결할 수 있다.
가입자 네트워크(100)의 구성요소를 설명하면서, 이제부터 네트워크(100)의 동작이 도 2 내지 도 4를 참조하여 설명될 것이다.
도 2는 콘텐츠를 발행하기 위한 예시적인 메시지 교환(200)을 도시한다. 서버(140)는 콘텐츠 아이템(147)을 발행해야 하는지 결정함으로써 시작할 것이다. 예를 들어, 사용자가 콘텐츠 아이템(147)이 네트워크(100)를 통해 이용 가능하게 되어야 함을 나타낼 수 있다. 이때 서버는 콘텐츠 아이템(147)에 대한 "포인터"를 계산하도록 진행할 것이다. 본원에 이용되듯이, 포인터라는 용어는 콘텐츠 아이템에 대한 영구 식별자(persistent identifier)를 칭하는 것으로, 콘텐츠 아이템의 위치에 의존하지 않는다. 다양한 실시예에서, 서버(140)는 콘텐츠 아이템(147)의 이름이나 혹은 다른 문자에 대해 해시 함수를 수행하여 포인터를 발생할 것이다. 예를 들어, 서버는 SHA-1 알고리즘을 이용해 콘텐츠 아이템(147)의 이름 "XYZ"를 처리하여 해시값 "0x2077"을 발생할 것이다.
서버(140)는 "발행 메시지"를 구성함으로써 진행할 것이다. 본원에서 이용되듯이, 발행 메시지는 식별된 콘텐츠 아이템의 발행을 원하는 다른 장치로 송신하는 임의의 메시지일 수 있다. 다양한 실시예에 따르면, 발행 메시지는 패킷을 발행 메시지로서 식별하는 헤더(header)를 포함하는 네트워크 계층(혹은 "계층 3") 패킷으로 구현될 수 있다. 서버(140)는 포인터 "0x2077"을 포함하여 발행 메시지(210)를 구성할 것이다. 다양한 실시예에서, 포인터는 패킷 헤더의 목적지 어드레스 필드 및/또는 전용 포인터 필드에 포함될 수 있다. 발행 메시지(210)가 구성된 이후에, 서버(140)는 추후의 처리를 위해 발행 메시지(210)를 ISP A(110)로 전달할 것이다.
발행 메시지(210)를 수신하는 즉시, ISP A(110)(혹은 그 내부의 장치)는 발행 메시지(210)를 데이터를 발행하라는 요구로서 식별할 것이다. 이때 ISP A(110)는 데이터에 대한 "레이블"을 계산할 것이다. 본원에서 이용되듯이, 레이블이라는 용어는 콘텐츠 아이템에 대한 위치 의존적인 식별자를 지칭한다. 다양한 실시예에서, ISP A(110)는 콘텐츠 아이템의 포인터와 ISP(110)의 어드레스 접두부에 기반하여 레이블을 발생할 것이다. 예를 들어, ISP A(110)는 간단히 포인터의 상위 비트(high order bits)의 수를 자신의 접두부로 대체할 수 있다. 따라서, ISP A(110)는 자신의 접두부("0x68xx")의 상위 비트와 포인터("0x2077")의 나머지 비트에 기반하여 레이블 "0x6877"을 발생할 수 있다.
콘텐츠 아이템에 대한 레이블을 발생한 이후에, ISP A(110)는 레이블을 포함하도록 발행 메시지(210)를 변경한다. 예를 들어, ISP A(110)는 레이블을 패킷 헤더의 전용 레이블 필드에 삽입할 수 있다. 다음, ISP A(110)는 포인터에 기반하여 발행 메시지(220)를 라우팅할 것이다. 다양한 실시예에서, 라우팅 테이블이나 그와 유사한 데이터 구조를 이용하여, ISP A(110)는 포인터 "0x2077"와 가장 길게 일치하는 공지의 접두부에 기반하여 다음 홉(hop)을 탐색할 것이다. 예를 들어, ISP A(110)는 ISP C(130)가 포인터 "0x2077"와 가장 길게 일치하는 공지의 접두부를 가짐을 결정할 수 있다. 이런 맥락에서, ISP A(110)는 ISP C(130)로 발행 메시지(220)를 전달할 수 있다.
다양한 선택적인 실시예에서, 서버(140)는 대신에 포인터와 레이블을 발생할 수도 있다. 서버(140)는 서버(140) 및/또는 ISP A(110)의 접두부에 기반하여 ISP A(110)와 연계하여 설명된 것과 유사한 방식으로 레이블을 발생할 수 있다. 이 실시예에서, ISP A(110)는 발행 메시지를 ISP C(130)를 향해 간단히 전달할 수 있다. 서버(140)가 포인터를 계산할 수 있게 하기 위해 예시적인 네트워크(100)의 구성요소와 동작에 대한 다양한 추가적인 변경은 당업자에게 명확할 것이다.
발행 메시지(220)를 수신하는 즉시, ISP C(130)(혹은 그 내부 장치)는 이것이 포인터 "0x2077"에 대해 가장 긴 접두부 일치임을 결정할 것이다. 예를 들어, ISP C(130)는 어떠한 다른 공지의 장치도 더 길게 일치하는 접두부와 연관되지 않음을 결정할 수 있다. 이런 맥락에서, ISP C(130)는 콘텐츠 아이템(147)에 대한 분석기(resolver)로 간주될 것이다. 다음, ISP C(130)는 포인터와 레이블 사이의 상관관계를 저장 장치(135)에 저장한다(230). 이 시점에서, 콘텐츠 아이템(147)은 발행되고, 네트워크(100)에 참여중인 다른 장치들에 의해 요구될 수 있을 것이다.
도 3은 콘텐츠를 요구하는 예시적인 메시지 교환(300)을 도시한다. 콘텐츠 아이템(147)이 발행된 이후 어느 시점에서, 장치(150)는 콘텐츠 아이템(147)을 요구해야함을 결정할 수 있다. 예를 들어, 사용자는 특정 파일이 다운로드되어야함을 지시할 수 있다. 장치(150)는 콘텐츠 아이템(147)에 대한 포인터를 결정함으로써 시작할 수 있다. 다양한 실시예에서, 포인터는 예컨대 웹 페이지 혹은 다른 장치(도시 안됨)에 의해 장치(150)로 제공될 것이다. 다양한 실시예에서, 장치(150)가 추가적으로 혹은 선택적으로 포인터를 계산할 수도 있다. 예컨대, 장치(150)는 SHA-1 알고리즘을 이용하여 콘텐츠 아이템(147)의 이름 "XYZ"을 처리하여, 해시값 "0x2077"을 발생할 수 있으며, 이때 이 해시값은 콘텐츠 아이템(147)에 대한 포인터이다.
장치(150)는 "검색 메시지"를 발생함으로써 진행한다. 본원에서 이용되듯이, 검색 메시지는 식별된 콘텐츠 아이템을 수신하길 원한다고 표시한 다른 장치로 전송하기 위한 임의의 메시지일 것이다. 다양한 실시예에 따르면, 검색 메시지는 네트워크 계층(혹은 "계층-3") 패킷으로 구현될 수 있는데, 이러한 네트워크 계층 패킷은 검색 메시지로서 패킷을 식별하는 헤더를 포함한다. 장치(150)는 포인터 "0x2077"을 포함하는 검색 메시지(310)를 구성한다. 다양한 실시예에서, 포인터는 패킷 헤더의 목적지 어드레스 필드 및/또는 전용 포인터 필드에 포함될 수 있다. 검색 메시지(310)가 구성된 이후, 장치(150)는 추가의 처리를 위해 검색 메시지(310)를 ISP A(110)으로 전달한다.
검색 메시지(310)를 수신하는 즉시, ISP B(120)(혹은 그 내부 장치)는 이것이 검색 메시지이며 포인터에 대해 가장 길게 접두부가 일치하는 장치로 라우트되어야 함을 결정할 것이다. 다양한 실시예에서, 라우팅 테이블 혹은 그와 유사한 데이터 구조를 이용하여, ISP B(120)는 포인터 "0x2077"에 대해 가장 길게 일치하는 공지의 접두부에 기반하여 다음 홉을 탐색할 것이다. 예를 들면, ISP B(120)는 ISP C(130)가 포인터 "0x2077"에 대해 가장 길게 일치하는 공지의 접두부를 가짐을 결정할 수 있다. 이런 맥락에서, ISP B(120)는 검색 메시지(320)를 ISP C(130)로 전달할 것이다.
검색 메시지(320)를 수신하는 즉시, ISP C(130)(혹은 그 내부 장치)는 이것이 포인터 "0x2077"에 대해 가장 길게 일치하는 접두부임을 결정할 것이다. 예를 들면, ISP C(130)가 다른 장치는 접두부가 더 길게 일치하지 않음을 결정할 수도 있다. 이런 맥락에서, ISP C(130)는 포인터 "0x2077"에 대한 분석기이다. ISP C(130)는 저장 장치(135)에서 포인터 "0x2077"를 조사하고(330), 레이블 "0x6877"이 이용되어야 함을 나타내는 결과(340)를 검색한다. 이후에, ISP C(130)는 이 레이블을 포함하도록 검색 메시지(320)을 변경한다. 예를 들어, ISP C(130)는 레이블을 패킷 헤더의 전용 레이블 필드에 삽입하거고/하거나 포인터(만약 존재한다면)를 어드레스 필드에 다시 위치시킬 수 있다. 다음, ISP C(130)는 이제 포인터를 대신해 레이블에 기반하여 검색 메시지(350)를 전달할 것이다. 따라서, ISP C(130)는 ISP A(110)가 레이블 "0x6877"에 대해 가장 길게 일치하는 공지의 접두부를 가짐을 결정할 것이고, 그에 따라 검색 메시지(350)를 전달할 것이다.
검색 메시지(350)를 수신하는 즉시, ISP A(110)(혹은 그 내부 장치)는 다시 포인터와 가장 길게 일치하는 공지의 접두부에 기반하여 검색 메시지(360)를 서버(140)로 전달할 것이다. 선택적으로, ISP A(110)가 서버(140)와 포인터 "0x6877" 사이의 대응관계 및/또는 서버(140)와 레이블 "0x2077" 사이의 대응관계를 저장할 수도 있다. 이 경우, ISP A(110)는 레이블에 대해 가장 길게 일치하는 접두부에 기반하기 보다는 이러한 대응관계에 기반하여 메시지를 전달할 것이다. 다양한 실시예에서, 서버(140)는 콘텐츠 아이템(147)과 관련한 레이블에 대해 어떠한 지식도 갖지 않을 수 있다. 이런 실시예에서는, 검색 메시지(360)를 서버(140)로 전달하기 전에 ISP A(110)가 검색 메시지(360)에서 레이블을 제거할 수도 있다.
일단 서버(140)가 검색 메시지(360)를 수신하면, 서버(140)는 이 메시지(360)를 처리하여, 요구된 콘텐츠 아이템(145)을 전달할 것이다.
도 4는 콘텐츠를 전달하는 예시적인 메시지 교환(400)을 도시한다. 서버(140)가 예컨대 메시지(360)같은 콘텐츠 아이템에 대한 요구를 수신한 이후에, 서버(140)는 예컨대 요구된 메시지 내에 포함된 파일 이름, 포인터 혹은 레이블을 이용하여 요구된 파일을 식별할 것이다. 포인터의 경우, 서버(140)는 이미 발행된 포인터와 콘텐츠 아이템 사이의 대응관계를 저장할 수 있다. 레이블인 경우에는, 서버(140)가 하위 비트(예컨대 ISP A(110)에 의해 변경되지 않은 비트)를 이용하여 요구된 콘텐츠 아이템을 식별할 수 있다. 이용되는 방법과 무관하게 서버(140)는 저장 장치(145)로부터 콘텐츠 아이템(147)을 검색한다(410).
서버(140)가 콘텐츠 아이템(147)을 수신(420)한 이후, 서버(140)는 장치(150)로 콘텐츠 아이템(147)을 전달하기 위해 "응답 메시지(430)"를 구성할 것이다. 본원에서 이용되듯이, 응답 메시지는 요구된 콘텐츠 아이템을 포함하는 다른 장치로 전송하기 위한 임의의 메시지일 것이다. 다양한 실시예에 따르면, 검색 메시지는 네트워크 계층(혹은 "계층 3") 패킷으로 구현될 수 있고, 이러한 네트워크 계층 패킷은 패킷을 응답 메시지로 식별하는 헤더를 포함한다. 응답 메시지(430)는 요구하는 장치(150)의 어드레스 혹은 "0x1088"를 포함할 것이다. 이러한 어드레스는 요구 메시지에 포함되어 있을 것이다. 일단 응답 메시지(430)가 구성되면, 서버(140)는 이 메시지(430)를 ISP A(110)로 송신한다.
메시지(430)를 수신하는 즉시, ISP A(110)(혹은 그 내부 장치)는 이 메시지가 응답 메시지이며 포인터에 대해 가장 길게 접두부가 일치하는 장치로 라우트되어야 함을 결정할 것이다. 다양한 실시예에서, 라우팅 테이블 혹은 그와 유사한 데이터 구조를 이용하여, ISP A(110)는 어드레스 "0x1088"에 대해 가장 길게 일치하는 공지의 접두부에 기반하여 다음 홉을 탐색할 것이다. 예를 들어, ISP A(110)는 ISP B(120)가 어드레스 "0x1088"에 대해 가장 길게 접두부가 일치하는 것임을 결정할 수도 있다. 이런 맥락에서, ISP A(110)는 응답 메시지(440)를 ISP B(120)로 전달할 수 있다.
마찬가지로, 메시지(440)를 수신하는 즉시, ISP B(120)(혹은 그 내부 장치)는 이 메시지가 응답 메시지이며 포인터에 대해 가장 길게 접두부가 일치하는 장치로 라우트되어져야 함을 결정할 것이다. 따라서, ISP B(120)는 응답 메시지(450)를 장치(150)로 전달할 것이다. 그 이후, 장치(150)는 응답 메시지(450)에서 콘텐츠 아이템(147)을 추출하여 디스플레이하거나 이 콘텐츠 아이템(147)을 이용할 것이다.
본원의 실시예들이 ISP에 의해 수행되는 기능들을 설명하지만, 이러한 기능들은 ISP의 제어하에 혹은 ISP와 연관된 하나 이상의 컴퓨터 및/또는 다른 장치들에 의해 수행될 수도 있음이 자명하다. 또한, 이러한 기능을 제공하기 위해 각각의 ISP 내부에는 다양한 조합들이 활용될 수도 있다. 예를 들어, 포인터 및/또는 레이블이 ISP의 하나 이상의 광역 라우터, ISP의 중앙 집중형 데이터베이스 및/또는 내부 라우터에 의해 형성된 분산형 해시 테이블에 저장될 수도 있다. 이러한 구현의 세부사항들은 당업자에게 명확할 것이다.
네트워크(100)의 ISP(110, 120, 130)가 특정 기능을 수행하는 것처럼 각기 설명되었지만, 다양한 실시예에서 각각의 ISP는 다른 ISP(110, 120, 130)와 연계하여 기능을 수행할 수도 있음이 자명하다. 예를 들어, ISP A(110)는 추가적으로 포인터 일치 접두부 "0x688xx"에 대한 분석기처럼 작동할 수도 있고, 혹은 ISP B(120)가 추가적으로 장치(150)에 의해 발행된 콘텐츠 아이템에 대한 발행기(publisher)처럼 작동할 수도 있다. 다양한 실시예에서, 각각의 ISP(110, 120, 130)는 본원에 설명된 기능들 중 임의의 기능을 수행할 수 있을 것이다.
도 5는 콘텐츠 라우팅 메시지를 처리하는 예시적인 네트워크 노드(500)를 도시한다. 노드(500)는 예컨대 ISP(110, 120, 130)같은 ISP 또는 그것의 하나 이상의 노드에 대응한다. 다양한 실시예에서, 노드(500)는 라우터 혹은 다른 네트워크 장치일 것이다. 노드(500)는 수신기(510), 메시지 번역기(message interpreter)(520), 라우팅 테이블(530), 발행 모듈(publication module)(540), 분석 모듈(resolution module)(550), 메시지 라우터(560) 및 송신기(570)를 포함할 수 있다.
수신기(510)는 다른 노드로부터 메시지를 수신하도록 구성된 머신 판독 가능 저장 매체에 인코딩된 실행 가능 명령어 및/또는 하드웨어를 포함하는 인터페이스를 포함한다. 예를 들어, 수신기(510)는 예컨대 이더넷(Ethernet) 및/또는 와이파이 인터페이스(WiFi interface)처럼 네트워크 인터페이스이거나 네트워크 인터페이스의 일부일 수 있다. 이러한 다른 노드는 노드(500)와 비슷한 장치들을 포함할 수 있다. 또한, 수신기(510)가 노드(500)의 단일 구성요소처럼 도시되어 있지만, 복수의 상이한 장치들로부터 메시지를 수신하기 위해 노드(500)가 다수의 인터페이스를 포함할 수도 있음은 자명하다.
메시지 번역기(520)는 수신기(510)를 통해 메시지를 수신하고 이 메시지의 콘텐츠를 번역하도록 구성된 머신 판독 가능 저장 매체상의 실행 가능 명령어 및/또는 하드웨어를 포함할 수 있다. 먼저, 메시지 번역기(520)는 노드(500)가 메시지의 수령인(recipient)인지 결정할 것이다. 메시지 번역기(520)는 메시지의 수령인을 조사하거나, 또는 라우팅 테이블(530)을 이용하여 노드(500)가 메시지내에 포함된 포인터 혹은 레이블에 대해 접두부가 가장 길게 일치하는지를 결정할 것이다. 예를 들어, 만약 메시지가 어드레스 필드에 포인터 "0x2077"를 포함하거나 또는 메시지가 포인터 "0x2077"에 기반하여 라우트되어져야 함을 나타낸다면, 메시지 번역기는 라우팅 테이블(530)을 참조하여 다른 노드가 포인터에 대해 더 길게 일치하는 접두부를 갖는지 결정할 것이다.
메시지와 관련하여 더 길게 일치하는 접두부가 노드(500)에 공지되는 경우, 메시지 번역기(520)는 또한 예컨대 메시지의 적절한 헤더 필드를 조사함으로써 이 메시지가 발행 메시지인지 혹은 다른 메시지인지를 결정할 것이다. 만약 메시지가 발행 메시지라면, 메시지 번역기(520)는 추후 처리를 위해 이 메시지를 발행 모듈(540)로 전달할 것이다. 그렇지 않다면, 메시지 번역기(520)는 이 메시지를 메시지 라우터(560)로 곧장 전달하여, 이 메시지가 적절한 노드로 전달될 수 있게 할 것이다. 한편, 만약에 메시지 번역기(520)가 노드(500)가 메시지에 대해 가장 길게 일치하는 접두부를 가짐을 결정하게 되면, 메시지 번역기(520)는 추후 처리를 위해 이 메시지를 분석 모듈(550)로 전달할 것이다.
라우팅 테이블(530)은 메시지 라우팅과 관련된 데이터를 저장할 수 있는 임의의 머신 판독 가능 매체일 것이다. 따라서, 라우팅 테이블(530)은 예컨대 ROM, RAM, 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치 및/또는 그와 유사한 저장 매체같은 머신 판독 가능 저장 매체를 포함할 수도 있다. 다양한 실시예에서, 라우팅 테이블은 다수의 접두부와 그 연관된 다음 홉 장치 또는 포트를 포함할 수 있다.
발행 모듈(540)은 적당한 때에 발행 메시지에 대해 발행 동작을 수행하도록 구성된 머신 판독 가능 저장 매체상의 실행 가능 명령어 및/또는 하드웨어를 포함할 수 있다. 예를 들어, 발행 모듈(540)은 발행된 콘텐츠 아이템에 대한 레이블을 계산하고, 이 레이블을 발행 메시지에 삽입하여, 변경된 메시지를 전달할 것이다. 실시예의 발행 모듈이 도 6을 참조하여 이하에 더 자세하게 설명된다.
분석 모듈(550)은 포인터와 레이블 사이의 상관관계를 저장하고 이 저장된 상관관계에 기반하여 적절한 검색 메시지를 다시 라우팅하도록 구성된 머신 판독 가능 저장 매체상의 실행 가능 명령어 및/또는 하드웨어를 포함할 수 있다. 예시적인 분석 모듈은 도 7과 관련하여 이하에 더 자세하게 설명된다.
메시지 라우터(560)는 다양한 메시지에 대해 적절한 다음 홉을 결정하고 그에 따라 이들 메시지를 송신기(570)를 통해 송신하도록 구성된 머신 판독 가능 저장 매체상의 실행 가능 명령어 및/또는 하드웨어를 포함할 수 있다. 따라서, 메시지 라우터는 각각의 메시지의 어드레스 필드를 검사하거나, 또는 다양한 실시예로 만약 패킷이 포인터나 레이블의 값에 기반하여 라우트되어져야 한다고 나타내는 경우라면, 포인터 또는 레이블 필드를 검사할 것이다. 다음, 메시지 라우터(560)는 라우팅 테이블(530)에 기반하여 각각의 메시지에 대해 다음 홉을 결정할 것이다. 예를 들어, 다양한 실시예로, 메시지 라우터(560)는 라우팅 테이블(530)을 판독하여, 메시지를 라우트하는데 이용되는 어드레스, 레이블 및/또는 포인터에 대해 가장 길게 일치하는 공지의 접두부를 갖는 다음 홉을 결정할 것이다. 마지막으로, 메시지 라우터(560)는 송신기(570)를 통해 적절한 다음 홉으로 메시지를 전달할 것이다.
송신기(570)는 메시지를 다른 노드로 송신하도록 구성된 머신 판독 가능 저장 매체상에 인코딩된 실행 가능 명령어 및/또는 하드웨어를 포함하는 인터페이스일 수 있다. 예를 들어, 송신기(570)는 예컨대 이더넷 및/또는 와이파이 인터페이스처럼 네트워크 인터페이스이거나 네트워크 인터페이스의 일부일 수 있다. 이러한 다른 노드는 노드(500)와 유사한 장치를 포함할 수도 있다. 또한, 송신기(570)가 노드(500)의 단일 구성요소처럼 도시되어 있지만, 복수의 상이한 장치들로부터 메시지를 송신하기 위해 노드(500)가 다수의 인터페이스를 포함할 수도 있음은 자명하다. 더 나아가, 수신기(510)와 송신기(570)는 동일한 인터페이스 장치의 일부일 수도 있다.
도 6은 발행 메시지를 처리 및 송신하는 예시적인 시스템(600)을 도시한다. 시스템(600)은 노드(500)의 발행 모듈(540)에 대응하거나, 다른 노드 내부에 배치되거나, 또는 독립적인 노드로서 배치될 수 있다. 시스템(600)은 포인터 추출기(610), 레이블 계산기(620), 발행 콘텐츠 저장 장치(published content storage)(630) 및 발행 메시지 변경기(640)를 포함할 수 있다.
포인터 추출기(610)는 발행 메시지로부터 포인터를 추출하도록 구성된 머신 판독 가능 저장 매체상의 실행 가능 명령어 및/또는 하드웨어를 포함할 수 있다. 이러한 포인터는 전용 포인터 필드 또는 메시지의 다른 필드에 위치될 수 있다. 포인터 추출기(610)는 다른 장치로부터 혹은 시스템(600)이 배치된 노드의 다른 구성요소로부터 발행 메시지를 수신할 것이다. 시스템(600)이 노드(500)의 발행 모듈(540)에 대응하는 다양한 실시예에서, 포인터 추출기(610)는 메시지 번역기(520)로부터 발행 메시지를 수신할 것이다.
레이블 계산기(620)는 포인터 추출기(610)에 의해 탐색된 포인터와 연관되어 이용될 레이블을 결정하도록 구성된 머신 판독 가능 저장 매체상의 실행 가능 명령어 및/또는 하드웨어를 포함할 수 있다. 예를 들어, 레이블 계산기는 시스템(600) 및/또는 시스템(600)이 배치된 노드와 연계된 포인터 및 접두부에 기반하여 레이블을 발생할 것이다. 다양한 실시예에서, 레이블 계산기는 포인터의 상위 비트를 적절한 접두부로 대체함으로써 레이블을 발생할 수 있다. 이런 맥락에서, 레이블은 이후에 시스템(600) 및/또는 시스템(600)이 배치된 노드를 탐색하는데 이용될 것이다. 다양한 실시예에서, 레이블 계산기는 추후 이용을 위해 레이블, 포인터 및/또는 발행 장치를 발행 콘텐츠 저장 장치에 저장할 수 있다.
발행 콘텐츠 저장 장치(630)는 레이블, 포인터 및/또는 발행 장치 사이의 연관성을 저장할 수 있는 머신 판독 가능 매체일 수 있다. 따라서, 발행 콘텐츠 저장 장치(630)는 예컨대 ROM, RAM, 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치 및/또는 그와 유사한 저장 매체같은 머신 판독 가능 저장 매체를 포함할 수도 있다.
발행 메시지 변경기(640)는 레이블을 발행 메시지에 삽입하도록 구성된 머신 판독 가능 저장 매체상의 실행 가능 명령어 및/또는 하드웨어를 포함할 수 있다. 예를 들어, 발생 메시지 변경기(640)는 레이블 계산기(620)에 의해 발생된 레이블을 메시지 헤더내의 전용 레이블 필드에 삽입할 수 있다. 메시지를 변경한 이후, 발행 메시지 변경기(640)는 이 메시지를 다른 장치 또는 시스템(600)이 배치된 노드 내부의 다른 구성요소로 전달할 것이다. 시스템(600)이 노드(500)의 발행 모듈(540)에 대응하는 다양한 실시예에서, 발행 메시지 변경기(640)는 이 변경된 메시지를 메시지 라우터(560)로 전달할 것이다.
도 7은 수신된 발행 메시지를 처리하고 검색 메시지를 분석하는 예시적인 시스템(700)을 도시한다. 시스템(700)은 노드(500)의 분석 모듈(550)에 대응하거나, 다른 노드 내부에 배치될 수 있거나, 또는 독립적인 노드로서 배치될 수 있다. 시스템(700)은 메시지 분류기(message classifier)(710), 레이블 및 포인터 추출기(720), 상관관계 관리기(730), 상관관계 저장 장치(740) 및 검색 메시지 변경기(750)를 포함할 수 있다.
메시지 분류기(710)는 수신된 메시지의 메시지 유형을 결정하도록 구성된 머신 판독 가능 저장 매체상의 실행 가능 명령어 및/또는 하드웨어를 포함할 수 있다. 메시지 분류기는 다른 장치 또는 시스템(700)이 채용된 노드의 다른 구성요소로부터 메시지를 수신할 수 있다. 시스템(700)이 노드(500)의 분석 모듈(550)에 대응하는 다양한 실시예에서, 메시지 분류기(710)는 메시지 번역기(520)로부터 발행 메시지를 수신할 것이다. 메시지 분류기(710)는 메시지의 적어도 일부분을 판독하여, 이것이 발행 메시지인지 혹은 검색 메시지인지를 결정할 것이다. 예를 들어, 메시지 분류기(710)는 메시지로부터 메시지 유형 필드를 판독할 것이다. 만약 메시지가 발행 메시지라면, 메시지 분류기(710)는 이 메시지를 레이블 및 포인터 추출기(720)로 전달할 것이다. 한편, 만약에 이 메시지가 검색 메시지라면, 메시지 분류기는 이 메시지를 검색 메시지 변경기(750)로 전달할 것이다.
레이블 및 포인터 추출기(720)는 발행 메시지로부터 레이블 및 포인터를 추출하도록 구성된 머신 판독 가능 저장 매체상의 실행 가능 명령어 및/또는 하드웨어를 포함할 수 있다. 예를 들어, 레이블 및 포인터 추출기(720)는 발행 메시지의 전용 레이블 및 포인터 필드로부터 데이터를 판독할 수 있다. 이후, 레이블 및 포인터 추출기는 이 정보를 상관관계 관리기(730)로 전달할 것이다.
상관관계 관리기(730)는 레이블 및 포인터 쌍(a lable and pointer pair)을 이후의 사용을 위해 상관관계 저장 장치에 저장하도록 구성된 머신 판독 가능 저장 매체상의 실행 가능 명령어 및/또는 하드웨어를 포함할 수 있다. 다양한 실시예에서, 상관관계 관리기(730)는 간단히 레이블과 포인터를 함께 상관관계 레코드에 저장할 수 있다. 포인터가 다중 레이블과 연관될 수 있는(즉, 하나의 콘텐츠 아이템에 대해 다중 위치를 나타낼 수 있는) 다양한 선택적인 실시예에서, 상관관계 관리기는 각각의 상관관계 레코드에 다수의 레이블을 저장할 수 있다.
상관관계 저장 장치(740)는 레이블과 포인터 사이의 연관성을 저장할 수 있는 임의의 머신 판독 가능 매체일 수 있다. 따라서, 상관관계 저장 장치(740)는 예컨대 ROM, RAM, 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치 및/또는 그와 유사한 저장 매체같은 머신 판독 가능 저장 매체를 포함할 수도 있다. 이러한 레이블과 포인터 사이의 연관성은 예컨대 일 대 일의 관계이거나 혹은 일 대 다수의 관계일 수 있다.
검색 메시지 변경기(750)는 포인터에 대해 적절한 레이블을 결정한 다음에 이 레이블을 포함하게끔 검색 메시지를 변경하도록 구성된 머신 판독 가능 저장 매체상의 실행 가능 명령어 및/또는 하드웨어를 포함할 수 있다. 먼저, 검색 메시지 변경기(750)는 검색 메시지에 의해 운반된 포인터와 연관되어 있는 상관관계 레코드를 상관관계 저장 장치(740)내에서 탐색할 것이다. 다음, 검색 메시지 변경기(750)는 상관관계 레코드에서 레이블을 판독할 것이다. 만약 상관관계 레코드가 다중 레이블을 포함한다면, 검색 메시지 변경기는 예컨대 레이블의 각각과 연관된 서버까지의 거리(distance)나 또는 서버의 현재 부하(load)에 기반하여 적절한 레이블을 선택할 것이다. 일단 검색 메시지 변경기(750)가 이용할 레이블을 결정하면, 검색 메시지 변경기는 이 레이블을 메시지에 삽입하여, 이 메시지가 레이블에 기반하여 라우트될 것임을 나타낸다. 예를 들어, 검색 메시지 변경기(750)는 레이블을 메시지의 어드레스 필드에 삽입하거나 또는 레이블을 메시지의 전용 레이블 필드에 삽입하고, 이 레이블이 메시지를 라우트하는데 이용되어야 함을 다른 필드에 나타낼 수 있다.
메시지를 변경한 이후에, 검색 메시지 변경기(750)는 이 메시지를 다른 장치로 전달하거나 또는 시스템(700)이 배치된 노드 내부의 다른 구성요소로 전달할 수 있다. 시스템(700)이 노드(500)의 분석 모듈(550)에 대응하는 다른 실시예에서, 검색 메시지 변경기(750)는 변경된 메시지를 메시지 라우터(560)로 전달할 것이다.
도 8은 콘텐츠 라우팅 메시지를 처리하는 예시적인 방법(800)을 도시한다. 방법(800)은 예컨대 메시지 번역기(520), 발행 모듈(540), 분석 모듈(550) 및/또는 메시지 라우터(560)같은 네트워크 노드(500)의 구성요소에 의해 수행될 수 있다.
방법(800)은 단계(810)에서 시작하여, 노드(500)가 메시지를 수신할 수 있는 단계(820)로 진행할 것이다. 다음, 단계(830)에서, 노드(500)는 수신된 메시지를 전달해야 하는지 결정할 것이다. 다양한 실시예에서, 메시지가 응답 메시지일 경우, 또는 다른 공지의 노드에서 더 길게 일치하는 접두부가 존재하는 경우에 노드(500)는 이 메시지가 전달되어져야 함을 결정할 것이다. 만약 메시지가 전달된다면, 방법(800)은 단계(840)로 진행한다.
단계(840)에서, 노드(500)는 예컨대 메시지 헤더의 메시지 유형 필드를 검사함으로써 메시지가 발행 메시지인지 결정한다. 만약 메시지가 발행 메시지라면, 방법(800)은 단계(850)로 진행한다. 단계(850)에서, 노드(500)는 메시지와 관련하여 발행 처리를 수행할 것이다. 예를 들어, 노드(500)는 레이블을 계산하고, 이 레이블을 발행 메시지에 삽입하며, 이 메시지를 다른 장치로 전달할 것이다. 발행 처리와 관련한 실시예의 방법은 도 9를 참조하여 더 자세하게 설명될 것이다. 다음, 방법(800)은 단계(880)에서 종료한다.
한편, 만약에 노드(500)가 단계(840)에서 메시지가 발행 메시지가 아님을 결정할 경우, 방법은 단계(860)로 진행할 것이다. 단계(860)에서, 노드(500)는 메시지가 라우팅을 위해 이용되어야 함을 나타내는 포인터, 레이블 또는 어드레스에 대해 가장 길게 일치하는 접두부에 기반하여 간단히 다른 장치로 메시지를 전달할 수 있다. 이후, 방법(800)은 단계(880)에서 종료하도록 진행한다.
만약 단계(830)에서 노드(500)가 메시지가 현 상태 그대로 전달되어서는 안 된다고 결정하면, 방법(800)은 단계(870)로 진행한다. 예를 들어, 만약 노드(500)가 메시지를 라우트하는데 이용되고 있는 포인터에 대해 가장 길게 접두부가 일치하는 것임을 노드(500)가 결정하면, 노드(500)는 메시지가 현재 상태로 전달되어서는 안 됨을 결정할 것이다. 단계(870)에서, 노드(500)는 메시지에 대한 추가적인 분석 처리를 수행할 수 있다. 예를 들어, 만약 메시지가 발행 메시지이면, 노드(500)는 메시지에 의해 운반된 포인터와 레이블을 추후의 이용을 위해 저장할 수 있다. 다른 예로서, 만약 메시지가 검색 메시지이면, 노드(500)는 레이블을 조사하여 이 레이블을 메시지에 삽입하고, 레이블에 기반하여 메시지를 전달할 수 있다. 분석 처리를 위한 예시적인 방법은 도 10을 참조하여 이하에 더 자세하게 설명될 것이다. 이 후, 방법(800)은 단계(880)에서 종료한다.
도 9는 발행 메시지를 처리 및 송신하는 예시적인 방법(900)을 도시한다. 방법(900)은 방법(800)의 단계(850)에 대응할 것이다. 방법(900)은 예컨대 포인터 추출기(610), 레이블 계산기(620) 및/또는 발행 메시지 변경기(640)와 같은 시스템(600)의 구성요소에 의해 수행될 수 있다.
방법(900)은 단계(910)에서 시작하여, 발행 메시지가 이미 레이블을 포함하는지 여부를 시스템(600)이 결정하는 단계(920)로 진행할 것이다. 만약 발행 메시지가 레이블을 포함한다면, 다른 시스템이 이미 발행기 기능을 수행했다. 이런 경우라면, 방법(900)은 단계(970)로 건너 뛸 것이다. 그렇지 않은 경우라면, 방법(900)은 단계(930)로 진행할 것이다.
단계(930)에서, 시스템(600)은 발행 메시지로부터 포인터를 추출한다. 다음, 단계(940)에서, 시스템(600)은 레이블을 발생할 수 있다. 예를 들어, 시스템(600)은 시스템(600)과 연계된 접두부와 포인터를 조합하여 레이블을 발생할 수 있다. 다음, 단계(950)에서, 시스템(600)은 추후 이용을 위해 선택적으로 레이블과 포인터를 저장 장치에 함께 저장할 수 있다. 다양한 실시예에서, 방법(900)은 단계(950)를 포함하지 않을 수도 있다.
단계(960)에서, 시스템(600)은 예컨대 레이블을 메시지에 삽입함으로써 발행 메시지를 변경할 수 있다. 이 후, 시스템(600)은 단계(970)에서 포인터에 대해 가장 길게 일치하는 공지의 접두부에 기반하여 메시지를 다른 장치로 전송할 수 있다. 다양한 실시예에서, 단계(970)는 예컨대 노드(500)의 메시지 라우터(560)처럼 시스템(600) 외부의 구성요소에 의해 수행될 수도 있다. 방법(900)은 이후에 단계(980)에서 종료할 것이다.
도 10은 수신된 발행 메시지를 처리하고 검색 메시지를 분석하는 예시적인 방법(1000)을 도시한다. 방법(1000)은 방법(800)의 단계(870)에 대응할 것이다. 방법(1000)은 예컨대 메시지 분류기(710), 레이블 및 포인터 추출기(720), 상관관계 관리기(730) 및/또는 검색 메시지 변경기(750)처럼 시스템(700)의 구성요소에 의해 수행될 수 있다.
방법(1000)은 단계(1010)에서 시작하여, 수신된 메시지가 발행 메시지인지를 시스템(700)이 결정하는 단계(1020)로 진행한다. 만약 메시지가 발행 메시지이면, 방법(1000)은 단계(1030)로 진행하여, 시스템(700)이 메시지로부터 포인터와 레이블을 추출한다. 이 후에, 시스템(700)은 단계(1040)에서 포인터 및 레이블을 추후 이용을 위해 저장 장치에 저장한다. 다음, 방법(1000)은 단계(1090)에서 종료하도록 진행한다.
그러나 만약에 단계(1020)에서 시스템(700)이 수신된 메시지가 발행 메시지가 아님을 결정하면, 방법(1000)은 대신에 단계(1050)로 진행한다. 선택적으로, 시스템(700)은 단계(1050)로 진행하기 전에 수신된 메시지가 검색 메시지임을 확실히 할 수도 있다. 단계(1050)에서, 시스템(700)은 수신 메시지로부터 포인터를 추출한다. 다음, 단계(1060)에서, 시스템(700)은 추출된 포인터와 관련해 이미 저장된 레이블을 조사한다. 일단 레이블이 탐색되면, 방법(1000)은 단계(1070)로 진행하여 시스템(700)이 수신된 메시지를 변경한다. 예를 들어, 시스템(700)은 레이블을 메시지에 삽입하여, 이후부터는 포인터 대신에 레이블에 기반하여 메시지가 라우트되어야 함을 나타낼 것이다. 다음, 단계(1080)에서, 시스템(700)은 레이블에 대해 가장 길게 일치하는 접두부에 기반하여 메시지를 다른 장치로 전달한다. 다양한 실시예에서, 단계(1080)는 예컨대 노드(500)의 메시지 라우터(560)처럼 시스템(700) 외부의 구성요소에 의해 수행될 수도 있다. 이 후, 방법(1000)은 단계(1090)에서 종료할 것이다.
전술한 설명으로부터 본 발명의 다양한 예시적인 실시예들은 하드웨어 및/또는 펌웨어로 구현될 수 있음이 자명하다. 더 나아가, 다양한 예시적인 실시예는 머신 판독 가능 저장 매체상에 저장된 명령어로서 구현될 수도 있으며, 이 명령어들은 적어도 하나의 프로세서에 의해 판독 및 실행되어, 본원에 상세하게 설명된 동작들을 수행할 수 있을 것이다. 머신 판독 가능 저장 매체는 예컨대 개인용 컴퓨터나 랩탑 컴퓨터, 서버 또는 다른 컴퓨터 장치같은 기계에 의해 판독 가능한 형태로 정보를 저장하는 임의의 메커니즘을 포함할 수 있다. 따라서, 머신 판독 가능 저장 매체는 ROM, RAM, 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치 및/또는 그와 유사한 저장 매체를 포함할 수도 있다.
본 기술 분야에 통상의 지식을 가진 자라면, 본원의 모든 블록도는 본 발명의 원리를 구현하는 예시적인 회로의 개념도를 나타내는 것임을 인지해야 한다. 마찬가지로, 모든 흐름 차트, 흐름도, 상태 천이도, 의사 코드(pseudo code) 및 그와 유사한 것들은 머신 판독 가능 매체에 사실상 표현되어 컴퓨터나 프로세서(이 컴퓨터나 프로세서가 명시적으로 도시되든지 안되든지 간에)에 의해 실행될 수 있는 다양한 프로세스를 나타내는 것임이 인지될 것이다.
비록 다양한 예시적인 실시예들이 그것의 특정한 예시적인 양상들을 특히 참조하여 상세하게 설명되었더라도, 본 발명은 다른 실시예도 가능하며 그 세부 사항도 다양한 자명한 측면에서 변경이 가능함이 이해되어야 한다. 본 기술 분야에 통상의 지식을 가진 자가 쉽게 인지할 수 있듯이, 본 발명의 사상과 범주내에서 본 발명은 수정과 변경이 가능할 것이다. 따라서, 전술한 개시 내용, 설명 및 도면은 오로지 예시를 목적으로 하는 것으로서 본 발명을 한정하는 것이 아니며, 본 발명은 첨부된 특허청구범위에 의해서만 정의된다.

Claims (15)

  1. 네트워크 노드에 의해 네트워크 내에서의 콘텐츠 요구(content requests)를 라우팅(routing)하는 방법으로서,
    상기 네트워크 노드에서, 콘텐츠 아이템을 요구하는 요구 메시지를 수신하는 단계 - 상기 요구 메시지는 포인터를 포함하고, 상기 포인터는 상기 콘텐츠 아이템의 네트워크 위치에 의존하지 않음 - 와,
    상기 네트워크 노드가 상기 포인터와 연관되는지를 결정하는 단계와,
    상기 네트워크 노드가 상기 포인터와 연관된다면,
    상기 포인터와 연관된 레이블(label)을 결정하고,
    상기 레이블을 포함하는 변경된 메시지를 생성하도록 상기 요구 메시지를 변경하며,
    상기 변경된 메시지를 적어도 하나의 다른 네트워크 노드로 송신하는 단계를 포함하는
    콘텐츠 요구 라우팅 방법.
  2. 제 1 항에 있어서,
    상기 네트워크 노드가 상기 포인터와 연관되는지를 결정하는 단계는,
    상기 네트워크 노드와 연관된 접두부(a prefix)를 결정하는 단계와,
    상기 접두부가 상기 포인터의 적어도 일부분과 일치하는지를 결정하는 단계를 포함하는
    콘텐츠 요구 라우팅 방법.
  3. 제 2 항에 있어서,
    상기 네트워크 노드가 상기 포인터와 연관되는지를 결정하는 단계는,
    상기 접두부가 상기 네트워크에서 상기 포인터에 대해 가장 길게 일치하는 접두부(a longest matching prefix)인지를 결정하는 단계를 더 포함하는
    콘텐츠 요구 라우팅 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 포인터는 상기 요구 메시지의 어드레스 필드 내에 포함되고, 상기 레이블은 상기 변경된 메시지의 어드레스 필드 내에 포함되는
    콘텐츠 요구 라우팅 방법.
  5. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 요구 메시지와 상기 변경된 메시지 중 적어도 하나의 메시지는 네트워크 계층 패킷(a network-layer packet)인
    콘텐츠 요구 라우팅 방법.
  6. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 변경된 메시지를 적어도 하나의 다른 네트워크 노드로 송신하는 단계는,
    상기 레이블의 적어도 일부분과 일치하는 상이한 접두부와 연관된 상이한 노드로 상기 변경된 메시지를 송신하는 단계를 포함하는
    콘텐츠 요구 라우팅 방법.
  7. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 포인터는 복수의 레이블과 연관되고,
    상기 포인터와 연관된 레이블을 결정하는 단계는 상기 복수의 레이블 중 하나의 레이블을 선택하는 단계를 포함하는
    콘텐츠 요구 라우팅 방법.
  8. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 네트워크 노드에서, 포인터 및 레이블을 포함하는 발행 메시지(a publication message)를 수신하는 단계와,
    상기 발행 메시지로부터 상기 포인터 및 상기 레이블을 추출하는 단계와,
    상기 포인터와 상기 레이블을 함께 메모리에 유지하는 단계를 더 포함하되,
    상기 포인터와 연관된 레이블을 결정하는 단계는 메모리로부터 상기 포인터 및 레이블을 판독하는 단계를 포함하는
    콘텐츠 요구 라우팅 방법.
  9. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 포인터는 콘텐츠 아이템에 대한 이름(a name)의 해시(a hash)인
    콘텐츠 요구 라우팅 방법.
  10. 네트워크 내에서의 콘텐츠 요구를 라우팅하는 분석 시스템(resolution system)으로서,
    라우팅 정보를 저장하는 라우팅 테이블과,
    복수의 상관관계 레코드(correlation record)를 저장하는 상관관계 저장 수단 - 상기 상관관계 레코드의 각각은 하나의 포인터 및 적어도 하나의 레이블을 식별함 - 과,
    콘텐츠 아이템을 요구하는 요구 메시지를 수신하는 수신기 인터페이스 - 상기 요구 메시지는 요구된 포인터를 포함하고, 상기 요구된 포인터는 상기 콘텐츠 아이템의 네트워크 위치에 의존하지 않음 - 와,
    메시지를 송신하는 송신기 인터페이스와,
    상기 요구된 포인터를 식별하는 상관관계 레코드를 탐색(locating)하고, 상기 상관관계 레코드에 의해 식별되는 적어도 하나의 레이블 중 선택된 레이블을 선택하며, 상기 선택된 레이블을 포함하는 변경된 메시지를 생성하도록 상기 요구 메시지를 변경하는 검색 메시지 변경기(search message modifier)와,
    상기 라우팅 정보 및 상기 변경된 메시지에 기반하여 네트워크 노드를 결정하고, 상기 송신기 인터페이스를 통해 상기 네트워크 노드로 상기 변경된 메시지를 전달하는 메시지 라우터를 포함하는
    분석 시스템.
  11. 제 10 항에 있어서,
    상기 분석 시스템과 연관된 접두부를 결정하고, 상기 접두부가 상기 요구된 포인터의 적어도 일부분과 일치하는지를 결정하도록 구성된 메시지 번역기(a message interpreter)를 더 포함하는
    분석 시스템.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 요구된 포인터는 상기 요구 메시지의 어드레스 필드 내에 포함되고, 상기 레이블은 상기 변경된 메시지의 어드레스 필드 내에 포함되는
    분석 시스템.
  13. 제 10 항 또는 제 11 항에 있어서,
    상기 네트워크 노드로 상기 변경된 메시지를 전달할 때, 상기 메시지 라우터는 상기 선택된 레이블의 적어도 일부분과 일치하는 상이한 접두부와 연관된 상이한 노드로 상기 변경된 메시지를 송신하도록 구성되는
    분석 시스템.
  14. 제 10 항 또는 제 11 항에 있어서,
    상기 수신기 인터페이스는 포인터 및 레이블을 포함하는 발행 메시지를 수신하도록 또한 구성되고,
    상기 분석 시스템은 상기 발행 메시지로부터 상기 포인터 및 상기 레이블을 추출하고, 상기 포인터와 상기 레이블을 함께 상기 상관관계 저장 장치에 저장하도록 구성된 분석 모듈을 더 포함하는
    분석 시스템.
  15. 제 10 항 또는 제 11 항에 있어서,
    상기 요구된 포인터는 콘텐츠 아이템에 대한 이름의 해시인
    분석 시스템.
KR20137032371A 2011-06-06 2012-05-22 분석에 의한 라우팅 KR101481936B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/154,082 2011-06-06
US13/154,082 US10069720B2 (en) 2011-06-06 2011-06-06 Routing by resolution
PCT/US2012/038939 WO2012170194A1 (en) 2011-06-06 2012-05-22 Routing by resolution

Publications (2)

Publication Number Publication Date
KR20140007953A KR20140007953A (ko) 2014-01-20
KR101481936B1 true KR101481936B1 (ko) 2015-01-13

Family

ID=46208816

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20137032371A KR101481936B1 (ko) 2011-06-06 2012-05-22 분석에 의한 라우팅

Country Status (6)

Country Link
US (1) US10069720B2 (ko)
EP (1) EP2719118B1 (ko)
JP (1) JP5918361B2 (ko)
KR (1) KR101481936B1 (ko)
CN (1) CN103609081B (ko)
WO (1) WO2012170194A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9276850B2 (en) * 2012-07-18 2016-03-01 Electronics And Telecommunications Research Institute Packet processing device for IP-based information-centric network
US9407549B2 (en) * 2013-10-29 2016-08-02 Palo Alto Research Center Incorporated System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers
US10798186B2 (en) 2016-06-09 2020-10-06 International Business Machines Corporation Dynamic generation of network routing configuration with service requirements
US11245625B2 (en) 2019-08-07 2022-02-08 Arista Networks, Inc. Generating entries in a content addressable memory of a network device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675163B1 (en) 2000-04-06 2004-01-06 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
US7586853B2 (en) * 2001-10-17 2009-09-08 British Telecommunications Plc Network location management system
CA2411806A1 (en) 2001-11-16 2003-05-16 Telecommunications Research Laboratory Wide-area content-based routing architecture
US7315541B1 (en) * 2002-04-03 2008-01-01 Cisco Technology, Inc. Methods and apparatus for routing a content request
US20040186768A1 (en) 2003-03-21 2004-09-23 Peter Wakim Apparatus and method for initiating remote content delivery by local user identification
KR100555749B1 (ko) * 2004-01-27 2006-03-03 삼성전자주식회사 애드 혹 네트워크에서 데이터 전송 경로 설정 장치 및 방법
JP2006031522A (ja) 2004-07-20 2006-02-02 Dainippon Printing Co Ltd コンテンツ中継配信サーバ、コンテンツ中継配信コンピュータプログラム
JP4515319B2 (ja) * 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
US7805470B2 (en) * 2005-06-23 2010-09-28 Emc Corporation Methods and apparatus for managing the storage of content in a file system
CN101170425A (zh) 2006-10-25 2008-04-30 摩达网股份有限公司 在内容网络中针对内容标签的广告管理方法与装置
JP4910881B2 (ja) 2007-05-23 2012-04-04 ブラザー工業株式会社 通信システム、ノード装置、ノード処理プログラム、及びメッセージ送受信方法
US8156243B2 (en) 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US7995504B2 (en) * 2008-05-12 2011-08-09 Microsoft Corporation Locality-based routing table generation
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
CN101667958B (zh) * 2008-09-01 2012-08-29 华为技术有限公司 选择哈希函数的方法、存储及查找路由表的方法及装置
US8204060B2 (en) 2009-01-30 2012-06-19 Palo Alto Research Center Incorporated Method and system for facilitating forwarding a packet in a content-centric network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks

Also Published As

Publication number Publication date
CN103609081B (zh) 2017-02-15
WO2012170194A1 (en) 2012-12-13
JP5918361B2 (ja) 2016-05-18
US20120311073A1 (en) 2012-12-06
JP2014519294A (ja) 2014-08-07
CN103609081A (zh) 2014-02-26
US10069720B2 (en) 2018-09-04
EP2719118B1 (en) 2018-10-24
EP2719118A1 (en) 2014-04-16
KR20140007953A (ko) 2014-01-20

Similar Documents

Publication Publication Date Title
KR102072203B1 (ko) 컨텐츠 중심 네트워크에 계층적 이름의 변화에 강인한 단축 이름을 생성하는 방법 및 노드
US9729669B2 (en) Method and system for fast and large-scale longest prefix matching
KR101965794B1 (ko) Ip 라우팅 호환을 위한 패킷의 구조, 네트워크 노드의 통신 방법 및 그 네트워크 노드
KR102052520B1 (ko) 컨텐츠 중심 네트워크에서 컨텐츠의 이동성을 지원하기 위한 노드의 통신 방법 및 노드
US9978025B2 (en) Ordered-element naming for name-based packet forwarding
KR102100710B1 (ko) 컨텐츠 중심 네트워크에서 컨텐츠 소유자 및 노드의 패킷 전송 방법
US9178806B2 (en) High-speed content routing
US20100142401A1 (en) Methods, Systems, And Computer Program Products For Determining A Network Identifier Of A Node Providing A Type Of Service For A Geospatial Region
KR101914318B1 (ko) 수정된 호스트네임을 사용하는 글로벌 트래픽 관리 기법
KR20150102690A (ko) 정보 중심 네트워킹을 위한 콘텐츠 이름 해석
KR20130088774A (ko) 분할 콘텐트 전달 시스템 및 방법
US20070124422A1 (en) Data push service method and system using data pull model
KR101481936B1 (ko) 분석에 의한 라우팅
EP1322094B1 (en) Process for selecting a server in a content delivery network
WO2017151941A1 (en) Method and system for reducing a collision probability of hash-based names using a publisher identifier
US20140025775A1 (en) Content delivery system and method based on information-centric networking
KR102437289B1 (ko) 정보 중심 네트워크에서 프로듀서 이동성 지원을 위한 패킷 경로 설정 방법 및 장치
CN109495525B (zh) 网络组件、解析内容标识的方法和计算机可读存储介质
KR20100054661A (ko) 복수의 cdn 사업자를 통한 컨텐츠 분배시스템 및 방법
Ren et al. CAKA: a novel cache‐aware K‐anycast routing scheme for publish/subscribe‐based information‐centric network
KR101160542B1 (ko) 복수의 cdn 사업자를 통한 컨텐츠 분배시스템 및 방법, 그 컨텐츠 제공자 네임서버
KR101137249B1 (ko) 복수의 cdn 사업자를 통한 컨텐츠 분배시스템 및 방법, 그 컨텐츠서버
KR20100054660A (ko) 복수의 cdn 사업자를 통한 컨텐츠 분배시스템 및 방법, 그 컨텐츠서버
CN116647500A (zh) 一种路由路径生成方法、数据传输方法和计算机可读介质
KR20100054659A (ko) 복수의 cdn 사업자를 통한 컨텐츠 분배시스템 및 방법, 그 컨텐츠서버

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
FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 6