KR101237342B1 - 피어-투-피어 오버레이 네트워크들에서의 이벤트 분배 및 라우팅을 위한 방법 및 장치 - Google Patents

피어-투-피어 오버레이 네트워크들에서의 이벤트 분배 및 라우팅을 위한 방법 및 장치 Download PDF

Info

Publication number
KR101237342B1
KR101237342B1 KR1020117001428A KR20117001428A KR101237342B1 KR 101237342 B1 KR101237342 B1 KR 101237342B1 KR 1020117001428 A KR1020117001428 A KR 1020117001428A KR 20117001428 A KR20117001428 A KR 20117001428A KR 101237342 B1 KR101237342 B1 KR 101237342B1
Authority
KR
South Korea
Prior art keywords
peer
routing
bucket
buckets
nodes
Prior art date
Application number
KR1020117001428A
Other languages
English (en)
Other versions
KR20110030624A (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 KR20110030624A publication Critical patent/KR20110030624A/ko
Application granted granted Critical
Publication of KR101237342B1 publication Critical patent/KR101237342B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/028Dynamic adaptation of the update intervals, e.g. event-triggered updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups

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)

Abstract

피어-투-피어 오버레이(peer-to-peer overlay) 네트워크들에서 이벤트 분배 및 라우팅을 위한 방법들 및 장치들이 제공된다. 다수의 노드들을 포함하는 피어-투-피어 오버레이네트워크에서의 이벤트 분배 및 라우팅을 위한 방법이 제공된다. 방법은 오버레이 네트워크상에서 다수의 버킷(bucket)들을 식별하는 단계 ― 각각의 버킷은 각각 하나 이상의 노드들을 포함함 ― , 버킷 그룹들을 식별하는 단계 ― 각각의 버킷 그룹은 선택된 개수의 버킷들을 포함함 ― , 버킷 그룹들에 기초하여 이벤트들을 분배하는 단계, 및 이벤트들에 기초하여 라우팅 테이블을 업데이트하는 단계를 포함한다. 노드는 트랜시버, 및 트랜시버에 연결되는 프로세서를 포함하며, 상기 노드는 오버레이 네트워크상에서 다수의 버킷(bucket)들을 식별하고 ― 각각의 버킷은 각각 하나 이상의 노드들을 포함함 ― , 버킷 그룹들을 식별하고 ― 각각의 버킷 그룹은 선택된 개수의 버킷들을 포함함 ― , 버킷 그룹들에 기초하여 이벤트들을 분배하며, 이벤트들에 기초하여 라우팅 테이블을 업데이트하도록 구성된다.

Description

피어-투-피어 오버레이 네트워크들에서의 이벤트 분배 및 라우팅을 위한 방법 및 장치{METHODS AND APPARATUS FOR EVENT DISTRIBUTION AND ROUTING IN PEER-TO-PEER OVERLAY NETWORKS}
본 출원 발명은 2008년 6월 19일자로 출원되고 본 발명의 양수인에게 양도된 "Methods and Apparatus for Information Dissemination in Overlay Networks"라는 제목의 가출원 번호 제61/073,909호에 대한 우선권을 주장하며, 그 모든 내용은 본 명세서에 참조로서 통합된다.
본 발명은 2008년 6월 19일자로 출원되고 본 발명의 양수인에게 양도된 "Methods and Apparatus for Distributed Constant-Hop Routing in Overlay Networks"라는 제목의 가출원 번호 제61/073,920호에 대한 우선권을 주장하며, 그 모든 내용은 본 명세서에 참조로서 통합된다.
본 발명은 일반적으로 오버레이(overlay) 네트워크들의 동작과 관련되며, 특히, 피어-투-피어(peer-to-peer) 오버레이 네트워크들에서의 이벤트 분배 및 라우팅을 위한 방법들 및 장치들과 관련된다.
멤버 노드들이 서버-기반 인프라구조 없이 서비스들을 획득하는 네트워크는 본 명세서에서 "피어-투-피어" 오버레이 네트워크로서 지칭된다. 피어-투-피어 오버레이에서, 피어 노드들은 서비스들을 제공하고 네트워크를 유지하기 위하여 서로와 협력한다. 피어-투-피어 오버레이 네트워크들은 인터넷 프로토콜(IP)을 이용하는 네트워크와 같은 기본(underlying) 네트워크의 최상부상에 구축될 수 있다.
통상적으로, 피어-투-피어 오버레이 네트워크들상의 이벤트들의 라우팅은 라우팅 레이턴시(latency), 대역폭 이용, 및 라우팅 테이블 크기와 관련되는 트레이드-오프(trade-off)들을 나타낸다. 예를 들어, 이벤트들을 라우팅할 때 동일한 레이턴시들을 갖는 것이 바람직하다. 그러나, 작은 레이턴시들을 달성하는 것은 큰 라우팅 테이블들을 초래할 수 있으며, 이는 오버레이 네트워크에 참가하는 노드들의 이용가능한 리소스들에 맞지 않을 수 있다. 추가로, 큰 라우팅 테이블들은 시간에 걸쳐 발생하는 임의의 변화들 및 오버레이 네트워크를 통해 라우팅 테이블들을 전달(communicate)하는데 상당한 대역폭이 필요하기 때문에 불충분한 대역폭 이용을 초래할 수 있다.
종래의 시스템들은 상기 언급된 트레이드-오프들을 관리하기 위한 시도에서 기술들을 이용하였다. 예를 들어, 상기 언급된 바와 같이, 매우 큰 라우팅 테이블들을 이용하는 몇몇 시스템은 레이턴시를 감소시킬 수 있으나, 또한 참가 노드들에서 리소스들을 변형시키거나 초과할 수 있다. 다른 시스템들은 이벤트 보급(dissemination)을 위한 더 많은 책임을 맡는 오버레이 네트워크의 특별한 노드들을 이용한다. 그러나, 이러한 특별한 노드들상에 대역폭 요건들은 그들이 적합하게 프로비져닝(provision)되는 것을 요구하도록 상당하다.
불행하게도, 종래의 시스템에 의하여 사용되는 기술들은 상이한 노드들 상에서 라우팅 테이블들이 불일치하는 결과를 초래하여, 전파 지연을 야기할 수 있다. 또한, 상이한 라우팅 테이블들은 상이한 길이들 및 엔트리들을 가질 수 있으며, 이는 동일한 이벤트 발신자(originator)로부터 이벤트들을 보급하기 위하여 상이한 전파 트리들을 초래할 수 있다. 추가로, 상이한 라우팅 테이블들은 "홀(hole)들"을 초래할 수 있고, 이에 따라 일부 노드들은 보급된 이벤트를 수신할 수 없다.
따라서, 종래의 시스템들과 연관되는 문제들을 극복하는 피어-투-피어 오버레이 네트워크들에서 이벤트 분배 및 라우팅을 위한 효율적인 메커니즘을 갖는 것이 바람직하다.
하나 이상의 양상들에서, 피어-투-피어 오버레이 네트워크들에서 이벤트 분배 및 라우팅을 위한 방법들 및 장치들을 포함하는 이벤트 분배 시스템이 제공된다.
일 양상에서, 다수의 노드들을 포함하는 피어-투-피어 오버레이(peer-to-peer overlay) 네트워크에서의 이벤트 분배 및 라우팅을 위한 방법이 제공된다. 방법은 오버레이 네트워크상에서 다수의 버킷(bucket)들을 식별하는 단계 ― 각각의 버킷은 각각 하나 이상의 노드들을 포함함 ― , 버킷 그룹들을 식별하는 단계 ― 각각의 버킷 그룹은 선택된 개수의 버킷들을 포함함 ― , 버킷 그룹들에 기초하여 이벤트들을 분배하는 단계, 및 이벤트들에 기초하여 라우팅 테이블을 업데이트하는 단계를 포함한다.
일 양상에서, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 장치가 제공된다. 장치는 오버레이 네트워크상에서 다수의 버킷(bucket)들을 식별하기 위한 수단 ― 각각의 버킷은 각각 하나 이상의 노드들을 포함함 ― , 버킷 그룹들을 식별하기 위한 수단 ― 각각의 버킷 그룹은 선택된 개수의 버킷들을 포함함 ― , 버킷 그룹들에 기초하여 이벤트들을 분배하기 위한 수단, 및 이벤트들에 기초하여 라우팅 테이블을 업데이트하기 위한 수단을 포함한다.
일 양상에서, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위해 구성되는 노드가 제공된다. 상기 노드는 트랜시버, 및 트랜시버에 연결되는 프로세서를 포함한다. 상기 노드는 오버레이 네트워크상에서 다수의 버킷(bucket)들을 식별하고 ― 각각의 버킷은 각각 하나 이상의 노드들을 포함함 ― , 버킷 그룹들을 식별하고 ― 각각의 버킷 그룹은 선택된 개수의 버킷들을 포함함 ― , 버킷 그룹들에 기초하여 이벤트들을 분배하며, 이벤트들에 기초하여 라우팅 테이블을 업데이트하도록 구성된다.
일 양상에서, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 컴퓨터 프로그램 물건이 제공된다. 컴퓨터 프로그램 물건은 코드들을 구현하는 컴퓨터-판독가능 매체를 포함하며, 상기 컴퓨터-판독가능 매체는, 오버레이 네트워크상에서 다수의 버킷(bucket)들을 식별하고 ― 각각의 버킷은 각각 하나 이상의 노드들을 포함함 ― , 버킷 그룹들을 식별하고 ― 각각의 버킷 그룹은 선택된 개수의 버킷들을 포함함 ― , 버킷 그룹들에 기초하여 이벤트들을 분배하며, 이벤트들에 기초하여 라우팅 테이블을 업데이트하도록 실행가능한 코드들을 포함한다.
다른 양상들은 아래에 진술된 도면의 간단한 설명, 발명의 실시하기 위한 구체적인 내용, 및 청구항들의 검토 이후에 명백해질 것이다.
본 명세서에 개시된 전술한 양상들은 첨부된 도면들과 함께 취해질 때 하기의 설명을 참고하여 보다 쉽게 명백해질 것이다.
도 1은 이벤트 분배 시스템의 양상들을 예시하는 네트워크를 도시한다.
도 2는 이벤트 분배 시스템에 따라 생성되는 보급 트리(dissemination tree)를 도시한다.
도 3은 이벤트 분배 시스템의 양상들에 따른 2-홉 라우팅을 위해 구성되는 피어-투-피어 오버레이 네트워크를 도시한다.
도 4는 이벤트 분배 시스템의 양상들에 따른 2-홉 라우팅의 프로세스를 예시하는 피어-투-피어 오버레이 네트워크를 도시한다.
도 5는 이벤트 분배 시스템에 따른 다양한 라우팅 구현들의 비교를 예시하는 테이블을 도시한다.
도 6은 이벤트 분배 시스템의 양상들에서 노드에서 사용하기 위한 예시적인 분배 프로세서를 도시한다.
도 7은 이벤트 분배 시스템에 다른 피어-투-피어 오버레이 네트워크에서 이벤트 라우팅을 제공하기 위한 예시적인 방법을 도시한다.
도 8은 이벤트 분배 시스템의 양상들에서 노드에서 사용하기 위한 예시적인 분배 프로세서를 도시한다.
하기의 설명은 피어-투-피어 오버레이 네트워크들에서 이벤트 분배 및 라우팅을 위한 이벤트 분배 시스템의 양상들을 개시한다. 일 양상에서, 노드의 라우팅 테이블에 부가되는 '뷰(view)'를 형성하는데 사용되는 고정된 개수의 "버킷(bucket)들"이 식별된다. 예를 들어, 오버레이 네트워크에 참여하는 노드들은 특정 버킷에 할당된다. 그 결과, 보급 트리들은 식별된 버킷들로부터 형성될 수 있으며, 보급 트리의 어레이 표현은 고정된 길이를 갖는다. 시스템은 레이턴시, 대역폭 이용, 및 라우팅 테이블 크기와 연관되는 트레이드-오프들을 이러한 트레이드-오프들이 효율적으로 관리되도록 허용하는 1, 2, 및 3-홉 라우팅을 제공함으로써 관리하도록 동작한다.
시스템은 특히 IP 네트워크 환경들을 사용하여 피어-투-피어 오버레이 네트워크들에 적합하나, 통신 네트워크들, 공중 네트워크들, 사설 네트워크들, 가상 사설 네트워크(VPN: virtual private network)들, 로컬 영역 네트워크들, 광역 네트워크들, 장거리(long haul) 네트워크, 및/또는 임의의 다른 타입의 네트워크 환경을 포함하지만 이에 제한되지는 않는 임의의 타입의 네트워크 환경에서 사용될 수 있다.
본 명세서에 개시되는 전술한 양상들은 하기의 정의들을 차고하여 보다 쉽게 명백해질 것이다.
오버레이 네트워크
오버레이 네트워크는 피어 노드들이 서비스들을 제공하고 네트워크를 유지하기 위하여 서로 협력하는 네트워크이다. 오버레이 네트워크는 가상으로 임의의 개수의 노드들을 포함할 수 있다.
버킷
버킷은 근접 노드들의 그룹핑(grouping)이다. 오버레이 네트워크는 오버레이 네트워크의 노드들의 개수들에 달하는 전체 "N"개의 버킷들을 포함할 수 있으며, 여기서 각각의 버킷은 하나의 노드를 포함할 것이다. 예를 들어, 오버레이 네트워크는 전체 N = 100개의 버킷들로 그룹화되는 1000개 노드들을 포함할 수 있으며, 여기서, 각각의 버킷은 10개의 노드들을 포함한다. 그러나, 각각의 버킷의 노드들의 개수가 상이할 수 있음을 유의해야 한다.
형제( sibling ) 노드들
버킷 내의 노드들은 형제들 "s"로서 지칭된다.
버킷 그룹
버킷 그룹은 원하는 오버레이 네트워크 구성 및 라우팅을 달성하기 위한 버킷들의 그룹핑이다. "n"은 버킷 그룹들의 전체 개수를 나타낸다. 각각의 버킷 그룹은 (n * m) = N이도록 "m"개의 버킷들을 포함하며, 여기서 N은 버킷들의 전체 개수이다. 시각화의 용이성을 위하여, 각각의 버킷 그룹은 연관된 도면들에 예시되는 것과 동일한 음영(shading)을 갖는 버킷들에 의하여 표현된다.
친구( buddy ) 버킷들
동일한 버킷 그룹 내에 버킷들을 지칭한다.
이웃( Neighborhood )
이웃은 n개의 버킷 그룹들 각각으로부터의 적어도 하나의 버킷을 포함하는 버킷들의 콜렉션이다.
이벤트
이벤트는 노드가 오버레이 네트워크에 합류하거나, 오버레이 네트워크를 이탈할 때, 또는 이웃 업데이트가 발생할 때 발생한다.
다중-레벨 그룹핑
다중-레벨 그룹핑에서, 버킷 그룹들은 추가 그룹들로 자신 스스로 그룹화된다. 예를 들어, 2-레벨 그룹핑에서, 버킷들의 전체 개수가 N = (o*n*m)로부터 결정될 수 있도록 n개의 버킷 그룹들의 o개의 그룹들이 정의된다. 또한 셋 이상의 레벨 그룹핑을 갖는 것도 가능하다; 그러나, 그룹핑의 레벨은 라우팅 테이블 크기 또는 레이턴시에서의 증가들에 대항하여 밸런싱되어야 한다.
도 1은 이벤트 분배 시스템의 양상들을 예시하는 네트워크(100)를 도시한다. 네트워크(100)는 인터넷 프로토콜 네트워크와 같은 임의의 타입의 네트워크를 포함하는 기본 네트워크(102)를 포함한다. 기본 네트워크(102)가 단일 엔티티로서 도시되나, 기본 네트워크는 WAN들, LAN들, 무선 네트워크들 또는 임의의 다른 타입의 네트워크와 같은 임의의 개수 또는 타입들의 네트워크들을 포함할 수 있다.
피어-투-피어 오버레이 네트워크(104)는 기본 네트워크(102)의 노드들의 서브세트를 포함하며, 이러한 노드들이 통신하도록 허용하기 위하여 기본 네트워크(102)의 서비스들을 이용하여 작동한다. 예를 들어, 피어-투-피어 오버레이 네트워크(104) 주변에 순환 라우팅 경로를 형성하기 위하여 통신 링크들에 의하여 접속된다. 통신 링크들은 기본 네트워크(102)에 의하여 제공되는 보안 터널들일 수 있다. 피어-투-피어 오버레이 네트워크(104)가 임의의 라우팅 패턴을 가능하게 하기 위한 임의의 토폴로지 또는 아키텍쳐를 가질 수 있으며, 그것이 도 1에 도시되는 라우팅에 제한되지 않는다는 것을 유념해야 한다. 예를 들어, 오버레이 네트워크(104)의 노드들(106)은 도시된 순환 경로 이외에 다른 라우팅 경로들을 제공하기 위하여 보다 많은 상호접속부들을 가질 수 있다.
이벤트 분배 시스템의 동작 동안에, 피어-투-피어 오버레이 네트워크 토폴로지는 일반적으로 108에서 도시되는 N개의 버킷들로 분할된다. 오버레이의 모든 노드는 각각의 버킷이 S개의 형제 노드들에 기초하여 버킷에 할당된다. 각각의 버킷의 형제 노드들의 개수는 상이할 수 있다는 것을 유념해야 한다. 버킷들은 그 후 하나 이상의 방식들로 그룹핑된다. 예를 들어, n개의 그룹들은 각각의 그룹이 선택된 개수의 버킷들(m)을 포함하도록 생성된다. 시각화의 용이성을 위하여, 각각의 버킷 그룹은 동일한 음영을 갖는 버킷들에 의하여 그래픽적으로 나타난다. 모든 버킷 그룹으로부터의 적어도 하나의 버킷을 포함하는 이웃들이 생성된다. 다중-홉 라우팅을 용이하게 하기 위하여, 버킷 그룹들의 그룹핑을 포함하는 그룹들이 형성된다.
다시 도 1을 참고하여, 피어-투-피어 오버레이 네트워크(104)는 버킷들(0-14)을 포함하도록 이벤트 분배 시스템에 따라 구성된다. 각각의 노드들(106)은 버킷으로 할당된다. 일 구현에서, 2개의 버킷들 사이의 모든 노드들은 조기의(earlier) 버킷에 할당된다. 예를 들어, 노드 식별자의 더 높은 차수의 비트들이 버킷 식별자를 결정하는데 사용된다. 그러나, 각각의 버킷에 노드들을 할당하는데 임의의 알고리즘 또는 할당 기술이 사용될 수 있다는 것을 유념해야 한다. 동일한 버킷 내에 노드들은 서로에 대하여 형제(sibling)들이다. 버킷들의 개수는 고정되기 때문에, 버킷들을 사용하여 형성되는 보급 트리는 모든 노드들이 보급 트리와 동일한 뷰를 형성하는 것을 의미한다. 예를 들어, 모든 노드들은 오버레이 네트워크(104)를 통해 메시지가 라우팅되어야 하는 버킷들의 정확한 차수를 안다.
일 구현에서, 특정 노드는 이벤트 분배 서버로서 작동하며, 버킷들 및 대응 버킷 그룹들을 식별하도록 작동한다. 예를 들어, 오버레이 네트워크(104)에서, 노드(110)는 이벤트 분배 서버로서 동작한다. 노드(110)는 버킷들(0-14)을 식별하고 이에 따라 이러한 버킷들로 노드를 할당하도록 작동하는 분배 프로세서(DP)(112)를 포함한다. DP(112)는 또한 본 명세서에 개시되는 이벤트 분배 시스템에 따라 버킷 그룹들을 결정하도록 작동한다. 분배 프로세서(DP)(112)의 동작은 본 문서의 다른 섹션에서 보다 상세히 설명된다. 버킷들 및 버킷 그룹들의 식별은 다른 방식들로 수행될 수도 있다는 것을 유념해야 한다. 예를 들어, 분배된 프로세스는 다수의 노드들이 버킷들 및 버킷 그룹들을 식별하도록 작동하도록 사용될 수 있다. 다른 구현에서, 버킷 정보가 네트워크 구성, 시작, 또는 등록 동안에 각각의 노드에 제공된다.
도 2는 이벤트 분배 시스템에 따라 생성되는 보급 트리(200)를 도시한다. 예를 들어, 보급 트리(200)는 도 1에 도시된 버킷들(0-14)에 의하여 형성되고, 고정된 길이의 어레이를 나타낸다. 이벤트 보급 동안, 특정 버킷의 노드는 자신의 자기 자신의 버킷의 형제들 및 2개 차일드(child) 버킷들의 하나 이상의 노드들을 통지한다. 예를 들어, 버킷(5)의 노드는 버킷(5)에서 자신의 형제 노드들 및 자신의 2개의 차일드 버킷들(4 및 6)의 노드들을 통지한다.
따라서, 이벤트 분배 시스템의 일 구현에서, 고정된 개수의 버킷들이 식별되고, 이러한 버킷들은 오버레이 네트워크(104)의 모든 노드들에서 보급 트리의 동일한 뷰를 제공하도록 작동하여, 종래의 시스템들에서 발생할 수 있는 라우팅 테이블들에서의 차이들의 효과들을 완화시킨다.
1-홉 라우팅 및 분석(형제들 없음)
다음은 도 2에 도시되는 보급 트리(200)와 연관되는 1-홉 라우팅의 분석이다. 예를 들어, 다음의 전송들은 피어-투-피어 오버레이 네트워크(104)에 보급될 이벤트들에 응답하여 노드에 대하여 발생한다.
1. 노드는 자신의 이벤트에 대하여 페어런트(parent) 버킷의 노드로부터 하나의 메시지를 수신한다.
2. 노드는 자신의 페어런트 버킷의 노드에 하나의 확인응답을 송신한다.
3. 노드는 각각의 차일드 버킷의 하나 이상의 노드들에 메시지를 포워딩한다.
4. 노드는 각각의 차일드 버킷의 노드들로부터 하나의 확인응답을 수신한다.
5. 노드는 자신의 버킷의 모든 형제들에 메시지를 포워딩한다.
6. 노드는 자신의 버킷의 모든 형제들로부터 확인응답들을 수신한다.
추가로, 다음의 조건들이 적용되는 이진 전파 트리가 가정된다.
1. 노드들의 절반이 이탈한다.
2. 노드는 이벤트들의 절반에 대한 리프(leaf)일 것이다.
3. 노드는 이벤트들의 절반만을 포워딩해야한다.
일 실시예에서, 다음의 정보는 보급 트리(200)와 연관되는 1-홉 라우팅을 분석하기 위한 목적으로 추정될 것이다.
1. 메시지 크기 = x 바이트
2. 헤더 크기 = 확인응답 크기 = y 바이트
3. 이벤트 레이트 = r 이벤트들/초
4. 각각의 버킷 내에 형제들이 존재하지 않음.
다운스트림 분석에 대하여, 다음의 전송들이 발생한다.
1. 매 이벤트마다 페이런트로부터의 하나의 메시지는 초당 r*(x+y) 바이트의 전송 레이트를 산출한다.
2. 각각의 차일드로부터의 절반의 이벤트에 대한 확인응답은 초당 2*(r/2)*y 바이트의 전송 레이트를 산출한다.
1-홉에 대한 전체 다운스트림 대역폭은 D1 = r*(x+2y)이다.
업스트림 분석에 대하여, 다음의 전송들이 발생한다.
1. 절반의 이벤트들에 대한 차일드로의 2개의 메시지들은 2*(r/2)*(x+y)를 산출한다.
2. 매 이벤트에 대한 페어런트로의 하나의 확인응답은 초당 r*y 바이트를 산출한다.
3. 1-홉 라우팅에 대한 전체 업스트림 대역폭은 초당 U1 = r*(x+2y) 바이트이다.
따라서, 오버레이 네트워크가 식별된 1백만 버킷들을 가지는 (즉, 형제들이 없는) 1백만 노드들을 포함하는 경우, 다음의 가정들은 대역폭 및 라우팅 테이블 크기 분석을 수행하는데 사용될 수 있다.
1. 초당 r = 200 이벤트들
2. x = 20 바이트
3. y = 30 바이트
4. 라우팅 테이블 엔트리는 40 바이트이다.
상기 식으로 이러한 가정들을 대신함으로써, 다음의 1-홉 대역폭 및 라우팅 테이블 크기가 획득된다.
1. 대역폭 = 128 kbps
2. 라우팅 테이블 크기 = 40 메가바이트
1-홉 라우팅 및 분석(형제들이 있음)
다음은 보급 트리(200)와 연관되는 1-홉 라우팅의 분석이며, 여기서 각각의 버킷에 s개의 형제 노드들이 존재하는 것으로 가정된다. 그 결과, 모든 노드는 (s-1) 형제들을 갖는다. 예를 들어, 다음의 전송들은 보급될 이벤트에 응답하여 노드에 대해 발생한다.
다운스트림 분석에 대하여, 다음의 전송들이 발생한다.
1. 매 1/s 이벤트들마다 페어런트로부터의 하나의 메시지는 초당 (r/s)*(x+y) 바이트의 전송 레이트를 산출한다.
2. (s-l)/s 이벤트들에 대한 형제로부터의 하나의 메시지는 (s-l)/s*r*(x+y)를 산출한다.
3. 절반의 이벤트들에 대한 차일드로부터의 2개의 확인응답들은 초당 2*(r/2)*y 바이트의 전송 레이트를 산출한다.
4. 모든 수신된 이벤트들에 대한 (s-1) 형제들로부터의 하나의 확인응답은 (s- l)*r/s*(x+y)를 산출한다.
5. 1-홉에 대한 전체 다운스트림 대역폭은 D1 = r*(x+2y)이다.
업스트림 분석에 대하여, 다음의 전송들이 발생한다.
1. 절반의 이벤트들에 대한 차일드로의 2개의 메시지들은 2*r/2*(x+y) = r/s(x+y)를 산출한다.
2. 모든 수신된 이벤트들에 대한 형제들로의 (s-1) 메시지들은 (s-l)*r/s*(x+y)를 산출한다.
3. 매 이벤트마다의 페이런트에 대한 하나의 확인응답은 초당 r/s*y 바이트를 초래한다.
4. (s-l)/s 이벤트들에 대한 형제들로의 하나의 확인응답은 (s-l)/s*r*y를 초래한다.
5. 1-홉 라우팅에 대한 전체 업스트림 대역폭은 초당 U1 = r*(x+2y) 바이트이다.
따라서, 각각의 버킷이 s개의 노드들을 포함하는 경우에, 대역폭 요건이 형제들의 개수와 독립적인 것이 보여질 수 있다. 형제들의 개수는 전력 절약을 목적으로 이용될 수 있는 업스트림 트래픽의 버스트성(burstiness)에 영향을 미친다.
1-홉 라우팅 및 K-진 이벤트 전파 트리들
다음은 이벤트 보급을 위한 이진 트리 대신 k-진 트리를 이용하는 1-홉 라우팅의 분석이다. 완전한 k-진 트리에서, 노드들의 대략 (k-l)/k가 이탈된다. 노드는 모든 이벤트들의 프랙션(fraction) (k-l)/k에 대한 리프일 것이며, 노드는 메시지들의 프랙션 1/k만을 포워딩해야 할 것이다.
다운스트림 분석을 위하여, 다음의 전송들이 발생한다.
1. 페이런트로부터의 하나의 메시지는 초당 r*(x+y) 바이트의 전송 레이트를 산출한다.
2. 이벤트들의 1/k에 대한 차일드로부터의 k개의 확인응답들은 초당 k*r/k*y 바이트의 전송 레이트를 산출한다.
3. 1-홉에 대한 전체 다운스트림 대역폭은 D1k = r*(x+2y)이다.
업스트림 분석을 위해, 다음의 전송이 발생한다.
1. 이벤트들의 프랙션 1/k에 대한 차일드로의 k개의 메시지들은 k*r/k*(x+y) = r(x+y)를 산출한다.
2. 페이런트로의 하나의 확인응답은 초당 r*y 바이트를 산출한다.
3. 1-홉 라우팅에 대한 전체 업스트림 대역폭은 초당 U1k = r*(x+2y) 바이트이다.
따라서, k-진 보급 트리가 사용되는 경우에, 대역폭 요건은 트리의 등급에 독립적인 것이 보여질 수 있다. 트리의 차수의 증가는 전력 절약을 목적으로 이용될 수 있는 업스트림 트래픽의 버스트성에 영향을 미친다.
2-홉 라우팅
도 3은 이벤트 분배 시스템의 양상들에 따라 2-홉 라우팅을 위하여 구성되는 피어-투-피어 오버레이 네트워크(300)를 도시한다.
오버레이 네트워크(300)에서, N개의 버킷들은 그룹당 m개의 버킷들의 n개의 그룹들로 분할되었다. 따라서, 버킷들의 전체 개수(N)는 N = (n * m)로부터 결정될 수 있다. 예를 들어, 오버레이 네트워크(300)는 그룹당 m = 4개 버킷들을 포함하는 n = 4개 버킷 그룹들로 분할된 N = 16개 버킷들을 도시한다. 명료성을 위하여, 각각의 그룹의 버킷들은 번호 및 음영에 의하여 식별된다. 예를 들어, 도 3은 하기의 버킷 그룹들을 예증한다.
1. 그룹 1 - g(l,x) 검정 음영
2. 그룹 2 - g(2,x) 회색 음영
3. 그룹 3 - g(3,x) 패턴 음영
4. 그룹 4 - g(4,x) 비-음영(클리어)
도 3의 각각의 버킷들은 그룹 및 개별적인 버킷 번호(즉, g(그룹#, 버킷#))에 의하여 표시된다. 또한 각각의 이웃이 각각의 그룹으로부터의 하나의 버킷을 포함하는 이웃들(1-4)이 도시된다. 네트워크(300)는 버킷 g(1,1)의 노드에 위치되는 DP(302)를 더 포함한다. DP(302)는 버킷들의 개수, 버킷들로의 노드들의 할당, 그룹들의 개수, 및 각각의 그룹의 버킷들의 개수를 식별하기 위하여 이벤트 분배 시스템에 따라 작동한다. DP(302)는 도 1에 도시된 DP(112)로서 사용하기에 적합하다는 것을 유념해야 한다.
제1 구현에서, 동일한 그룹의 2개의 연속 버킷들 사이의 거리는 항상 그룹(m)당 버킷들의 개수이다. 그룹의 버킷들의 순서는 모든 그룹들에 걸쳐 동일하다; 유사하게, 이웃의 버킷들의 순서는 모든 이웃들에 걸쳐 동일하다. 도 3에 사용되는 그룹핑 할당들이 모든 다음의 예시들에서 사용됨을 유념해야 한다.
제2 구현에서, 동일한 음영의 2개의 연속 버킷들 사이의 거리는 맵핑 기능을 사용하여 선택된다. 이러한 접근법은 랜덤화 가능성으로 인하여 원하는 보안 특성들을 가질 수 있다.
이러한 구현들에서, 오버레이 네트워크(300)의 노드는 다음의 정보를 알고 있다.
1. 노드는 자신의 버킷을 포함하는 자신의 이웃의 m개의 버킷들에 모든 노드들에 관하여 알고 있다. 이웃은 m개의 버킷들의 아크(arc)에 의하여 표현된다. 제1 옵션에서, 자신의 이웃의 버킷들의 절반은 자신의 버킷의 어느 한 측면상에 있다. 따라서, 이것은 중간에 자신의 버킷을 갖는 m개의 버킷들의 이웃이다. 제2 옵션에서, 이웃은 노드를 포함하는 임의의 m개의 버킷들의 아크에 의하여 표현된다.
2. 노드는 자신의 그룹에 모든 버킷들의 모든 노드들에 관하여 알고 있다. 이들은 "버디(buddy)" 버킷들로서 지칭되며, 이들은 함께 버디 네트워크를 형성한다.
2-홉 라우팅 예
도 4는 이벤트 분배 시스템의 양상들에 따른 2-홉 라우팅의 프로세스를 예시하는 피어-투-피어 오버레이 네트워크(400)를 도시한다. 하기의 설명에서, 1-홉 라우팅은 제1 노드로부터 제1 노드 자신의 이웃의 m개의 버킷들의 모든 다른 노드들로의 라우팅으로서 정의된다. 2-홉 라우팅은 제1 노드로부터 제1 노드의 버킷 그룹의 그러나 상이한 이웃의 제2 노드로의 라우팅, 및 그 후, 제2 노드의 이웃의 타겟 노드로 라우팅으로서 정의된다. 예를 들어, 도 4를 참조하여, 제1 홉(402)은 메시지가 이웃 3의 버킷 g(1,3)의 노드로부터 타겟 노드의 이웃인 이웃 1의 버디 버킷 g(1,1)의 노드로 송신될 때 발생한다. 제2 홉(404)은 이웃 1의 버디 버킷 g(1,1)의 노드로부터 이웃 1의 버킷 g(4,1)의 타겟 노드로 메시지가 송신될 때 발생한다.
다음은 이벤트 분배 시스템의 양상들에 따른 2-홉 라우팅을 위한 버킷 구성을 예증하며, 여기서 다음의 정보가 추정된다.
1. n = m = 1000인 백만 노드 네트워크.
2. 각각의 노드는 자신의 이웃의 (자신이 포함된) 1000개 노드들에 관하여 안다.
3. 각각의 노드는 자신의 버디 네트워크의 (자신이 포함된) 1000개 노드들에 관하여 알고, 이들 각각은 (자신이 포함된) 1000개의 다른 노드들에 관하여 안다.
4. 모든 버디 버킷들과 연관되는 이웃 아크들은 서로와 오버랩되지 않고, 따라서 상호간에 배타적이다.
5. 모든 버디 버킷들의 이웃 아크들은 그들이 총체적으로 완전하도록(exhaustive) 오버레이 네트워크의 모든 버킷들을 커버한다.
그 결과, 각각의 노드는 1000 * 1000 = 1,000,000개 노드들에 도달할 수 있다. 예를 들어, 노드는 1-홉의 자신의 이웃에서 모두 1000개 노드들에 도달할 수 있다. 추가로, 노드는 자신의 버디 노드들을 사용하여 2-홉들에서 모든 다른 노드들에 도달할 수 있다(즉, 타겟의 이웃에서 버디 노드로의 제1 홉 및 타겟의 이웃의 버디 노드로부터 타겟 노드로의 제2 홉).
2-홉 라우팅에서 이벤트 전파
2-홉 라우팅을 지원하기 위하여, 노드는 자신의 이웃의 모든 버킷들 및 모든 자신의 버킷들에서 합류들/이탈들을 습득한다(learn). 2개의 이진 트리들이 이벤트 전파를 위해 사용된다. 하나의 트리는 노드 자신의 이웃의 모든 버킷들을 포함하며, 이는 로컬 트리로서 지칭될 것이다. 다른 트리는 모든 버디 버킷들을 포함하며, 이는 버디 트리로서 지칭될 것이다. 적절한(graceful) 이탈들 동안에, 노드는 이탈하기 이전에 모든 다른 노드들에 통지한다. 노드 고장(즉, 적절하지 않은(graceless) 이탈들)에 대하여, 모니터 노드는 노드 고장을 검출하고, 고장난 노드의 버디 버킷들의 노드들에 이벤트를 보급한다.
모니터 노드의 버디 버킷들은 고장난 노드(즉, 모니터 노드와 상이한 그룹의 고장난 노드)의 버킷과 상이한 음영을 가질 수 있다는 것을 유념해야 한다. 이러한 경우에, 모니터 노드의 버디 버킷들의 노드들은 고장난 노드의 버디 버킷들의 노드들을 통지한다. 예를 들어, 검정(black) 버킷의 노드는 고장나고, 상기 버킷에 다른 노드들이 존재하지 않는다. 회색(grey) 버킷의 노드가 고장을 검출하고, 상기 그룹의 모든 회색 버킷들에 고정 이벤트에 관한 정보를 보급하는 것으로 추정될 것이다. 회색 버킷들의 노드들은 그 후 이웃 검정 버킷들에 통지한다.
2-홉 라우팅 분석
다음은 이벤트 분배 시스템의 양상들에 따른 2-홉 라우팅의 분석이다. 하기의 파라미터들이 추정된다.
1. 버킷들의 전체 개수 = N, n*m = N이도록 각각의 m개의 버킷들의 n개의 그룹들을 정의.
2. 메시지 크기 = x
3. 헤더 크기 = y
4. 시스템 이벤트 레이트 = r 이벤트/초
5. 각각의 이웃의 이벤트 레이트 = r*(m/N) = r/n
6. 버디 네트워크의 이벤트 레이트 = r*(n/N) = r/m
7. 버킷들에 형제들이 없으며 및 적절한 합류들 및 이탈들임을 추정.
다운스트림 분석을 위해, 하기의 전송들이 발생한다.
1. 로컬 트리의 페어런트로부터의 하나의 메시지는 (r/n)*(x+y)를 산출한다.
2. 버디 트리의 페이런트로부터의 하나의 메시지는 (r/m)*(x+y)를 산출한다.
3. 로컬 이벤트들의 절반에 대한 로컬 트리의 차일드로부터의 2개의 확인응답들은 2*(r/2n)*y를 산출한다.
4. 버디 이벤트들의 절반에 대한 버디 트리의 차일드로부터의 2개의 확인응답들은 2*(r/2m)*y를 산출한다.
5. 2-홉 라우팅에 대한 전체 다운스트림 대역폭은 D2 = r*(x+2y)*((m+n)/mn = D1*(m+n)/mn이다.
업스트림 분석을 위하여, 하기의 전송들이 발생한다.
1. 로컬 이벤트들의 절반에 대한 로컬 트리의 차일드에 대한 2개의 메시지들은 2*(r/2n)*(x+y)를 산출한다.
2. 로컬 이벤트들의 절반에 대한 버디 트리의 차일드에 대한 2개의 메시지들은 2*(r/2m)*(x+y)를 산출한다.
3. 로컬 트리의 페이런트에 대한 하나의 확인응답은 (r/n)*y를 산출한다.
4. 버디 트리의 페이런트에 대한 하나의 확인응답은 (r/m)*y를 산출한다.
5. 2-홉 라우팅에 대한 전체 업스트림 대역폭은 U2 = r*(x+2y)*((m+n)/mn) = U1*(m+n)/mn이다.
상기 공식들로부터 알 수 있는 바와 같이, 2-홉 라우팅에서 대역폭은 (m+n)/mn이 최소화될 때 최소화된다. 그러나, m*n은 고정된다(즉, m*n은 버킷들의 전체 개수(N)와 동일하다). 따라서, 고정된 m*n에 대하여, 수량 (m+n)/mn은 m = n = sqrt(m*n)일 때 최소이다.
실시예로서, 하기의 파라미터들이 추정될 것이다.
1. 106개의 노드들을 포함하는 네트워크
2. x = 20 바이트
3. y = 30 바이트
4. m = n = sqrt(106) = 103
5. 라우팅 테이블 엔트리 크기 = 40 바이트
상기 파라미터들을 2-홉 라우팅에 대한 공식들로 대입(substitute)하면 다음의 결과들을 산출한다.
1. 대역폭 = 256bps
2. 라우팅 테이블 크기 = (m+n) * 40 = 2000 엔트리들 * 40 = 80 kB.
2000 이벤트들/초와 동일한 r 및 108 노드들을 갖는 네트워크에 대한 상기 연산들을 반복하는 것은 다음을 산출한다.
1. m = n = 104
2. 대역폭 = 2.56 kbps
3. 라우팅 테이블 크기 = 20000개 엔트리들 * 40 = 800 kB
따라서, 보여지는 바와 같이, 2-홉 라우팅은 1-홉 라우팅보다 감소된 대역폭 및 작은 라우팅 테이블들을 제공한다.
3-홉 라우팅
이벤트 분배 시스템의 다른 구현에서, 3-홉 라우팅이 제공된다. 3-홉 라우팅에서, 모든 버킷들(N)의 2-레벨 그룹핑은 각각 m개의 버킷들의 n개의 버킷 그룹들의 o개 그룹들로 나뉜다. 예를 들어, o = n = m = 100인 106개 노드 네트워크에서, 각각의 노드는 다음에 관하여 알고 있다.
1. 자신의 이웃에서 100개 노드들(100 노드들로의 1-홉 라우팅)
2. 100개 다른 노드들, 이들 각각은 많아야 1-홉(1000개 노드들로 라우팅하는 2-홉을 제공하는)에서 100개 더 많은 노드들에 도달할 수 있다.
3. 100개 더 많은 노드들, 이들 각각은 많아야 2-홉들(106개 노드들로 라우팅하는 3-홉을 제공하는)에서 10000개 노드들에 도달할 수 있다.
3-홉 라우팅 분석
다음은 이벤트 분배 시스템의 양상들에 따른 3-홉 라우팅의 분석이다. 하기의 파라미터들이 추정된다.
1. 버킷들의 전체 개수 = N, 여기서 m*n*o = N
2. 고정된 m*n*o에 대하여, 수량 (m+n+o)/mno는 m = n = o = 세제곱근(m*n*o)일 때 최소이다.
3. 메시지 크기 = x
상기 파라미터들을 고려하면, 하기의 다운스트림 및 업스트림 대역폭들은 상기 제공된 것과 유사한 분석을 사용하여 결정될 수 있다.
1. 다운스트림 대역폭
D3 =r*(x+2y)*(m+n+o)/mno = D1*(m+n+o)/mno
2. 업스트림 대역폭
U3 = r*(x+2y)*(m+n+o)/mno = U1*(m+n+o)/mno
3-홉 라우팅을 예증하기 위하여, 하기의 파라미터들이 추정될 것이다.
1. 106개 노드들을 포함하는 네트워크
2. x = 20 바이트
3. y = 30 바이트
4. m = n = o = 100
5. 라우팅 테이블 엔트리 크기 = 40 바이트
3-홉 라우팅을 위한 공식들로 상기 파라미터들을 대입하는 것은 다음의 결과들을 산출한다.
1. 대역폭 = 38.4 bps
2. 라우팅 테이블 크기 = (m+n+o) * 40 = 300개 엔트리들 * 40 = 12 kB.
200,000 이벤트들/초와 동일한 r 및 109개 노드들을 갖는 네트워크에 대하여 상기 연산들을 반복하는 것은 다음을 산출한다.
1. m = n = o = 1000
2. 대역폭 = 384 bps
3. 라우팅 테이블 크기 = 3000개 엔트리들 * 40 = 120 kB.
라우팅 구현들의 비교
도 5는 이벤트 분배 시스템에 따른 다양한 라우팅 구현들의 비교를 예시하는 테이블(500)을 보여준다. 일반적으로, n-홉 라우팅 구현에 대하여, 대역폭 및 라우팅 테이블 크기는 다음으로부터 결정될 수 있다.
1. 대역폭 Dn - K*r*(x+2y)
여기서, K = (m1+m2+m3+...+mn) /(m1*m2*m3*...*mn)
2. 라우팅 테이블 크기는 O*(N의 n제곱근)
여기서 N은 노드들/버킷들의 전체 개수이다.
도 5에 예시되는 바와 같이, 라우팅 타입(502), 노드들의 개수(504), 대역폭(506), 및 라우팅 테이블의 크기(508)가 도시된다. 따라서, 테이블(500)은 라우팅 테이블 크기 또는 대역폭과 레이턴시(latency) 사이의 트레이드-오프를 관리하는데 사용될 수 있다. 예를 들어, 106개의 노드들을 갖는 오버레이 네트워크에서, 3-홉 라우팅 결과들을 제공하는 그룹핑 구성은 도 5에 예시되는 가장 작은 라우팅 테이블 크기를 초래한다.
도 6은 이벤트 분배 시스템의 양상들에서 사용하기 위한 예시적인 분배 프로세서(600)를 도시한다. 예를 들어, DP(600)는 예컨대 도 3에 도시되는 DP(302)로서 피어-투-피어 오버레이 네트워크의 노드에서 사용하기에 적합하다. DP(600)는 프로세서(602), 버킷 구성 로직(604), 메모리(606), 및 트랜시버(608)를 포함하며, 이들 모두는 데이터 버스(610)에 결합된다. DP(600)는 단 하나의 구현이고, 양상들의 범위 내에서 다른 구현들이 가능하다는 것을 유념해야 한다.
트랜시버(608)는 DP(600)가 피어-투-피어 오버레이 네트워크상에 다수의 노드들과 데이터, 이벤트들, 또는 다른 정보를 통신하는 것을 허용하도록 작동하는 하드웨어 실행 소프트웨어 및/또는 하드웨어를 포함한다. 일 양상에서, 트랜시버(608)는 피어-투-피어 오버레이 네트워크의 노드들과 하나 이상의 통신 링크들(612)을 설정하도록 작동한다. 예를 들어, 통신 링크들(612)은 기본 IP 네트워크의 서비스들을 이용하여 형성된다.
메모리(606)는 식별된 버킷들을 사용하여 피어-투-피어 오버레이 네트워크상에서 라우팅하는 메시지를 기술하는 라우팅 테이블(614)을 저장하도록 작동하는 임의의 적절한 저장 디바이스를 포함한다. 예를 들어, 라우팅 테이블(614)은 본 명세서에 개시된 바와 같은 이벤트 분배 시스템에 따라 1, 2, 또는 3-홉 라우팅을 허용하기 위하여 라우팅 정보를 제공한다. 메모리(606)는 또한 본 명세서에 개시된 기능들을 제공하기 위하여 프로세서(602)에 의하여 실행가능한 명령들 또는 코드들을 구현하는 하나 이상의 모듈들을 포함하는 분배 모듈(614)을 저장하도록 작동가능하다.
프로세서(602)는 CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 엘리먼트들, 및/또는 하드웨어 실행 소프트웨어 중 적어도 하나를 포함한다. 일 양상에서, 프로세서 모듈(602)은 본 명세서에 개시된 기능들을 수행하도록 DP(600) 모듈을 제어하기 위하여 분배 모듈(616)의 코드들 또는 명령들을 실행하도록 동작한다.
일 구현에서, 프로세서(602)는 노드 식별자들, 버킷 식별자들, 및 버킷 그룹 식별자들을 포함하는 오버레이 네트워크 구성 파라미터들을 수신하도록 작동한다. 오버레이 네트워크 구성 파라미터들은 오버레이 네트워크의 하나 이상의 노드들로부터 수신되거나, 네트워크 구성, 초기화 또는 등록 프로세스들 동안에 중앙집중형 서버로부터 수신될 수 있다. 오버레이 네트워크 구성 파라미터들은 또한 사용자 입력부로부터 수신될 수 있다. 오버레이 네트워크 구성 파라미터들은 메모리(606)에 저장되고, 프로세서(602)는 라우팅 테이블(614)로서 메모리(606)에 저장되는 라우팅 테이블을 최초에 생성하기 위하여 이러한 구성 파라미터들을 사용하도록 작동한다. 라우팅 테이블(614)은 1, 2 또는 3 홉 라우팅을 제공하도록 구성될 수 있다.
다른 구현에서, 버킷 구성 로직(604)은 오버레이 네트워크 구성 파라미터들을 생성하도록 작동한다. 버킷 구성 로직(604)은 CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 엘리먼트들, 및/또는 하드웨어 실행 소프트웨어 중 적어도 하나를 포함한다. 버킷 구성 로직(604)은 버킷들의 고정된 개수 및 그러한 버킷들에 할당되는 노드들들 결정하도록 작동한다. 버킷 구성 로직(604)은 또한 본 명세서에 개시된 바와 같이 하나의 레벨 또는 다중-레벨 그룹핑을 구현하기 위하여 버킷 그룹핑을 수행하도록 작동한다. 버킷 구성 로직(604)에 의하여 생성되는 오버레이 네트워크 구성 파라미터들은 그 후 메모리(606)에 저장되고, 또한 트랜시버(608)를 사용하여 오버레이 네트워크의 다른 노드들에 분배된다. 프로세서(602)는 그 후 라우팅 테이블(614)을 최초에 생성하기 위하여 이러한 구성 파라미터들을 리트리브(retrieve)할 수 있다. 오버레이 네트워크의 다른 노드들은 그들 자신의 라우팅 테이블들을 최초에 생성하기 위하여 동일한 기능들을 수행한다.
동작 동안에, 트랜시버(608)는 하나 이상의 이벤트들을 수신하도록 작동하며, 이벤트들은 프로세서(602)로 통과된다. 프로세서(602)는 라우팅 테이블(614)의 버킷 그룹들에 기초하여 이벤트들을 분배하도록 작동한다. 프로세서(602)는 또한 수신된 이벤트들에 기초하여 라우팅 테이블(614)을 업데이트하도록 작동한다. 예를 들어, 노드 합류들, 이탈들, 또는 이웃으로의 업데이트가 발생할 때, 프로세서(602)는 이러한 이벤트들에 관한 메시지들을 수신한다. 프로세서(602)는 오버레이 네트워크상에 이러한 이벤트들을 라우팅하기 위하여 라우팅 테이블(614)를 사용한다. 프로세서(602)는 또한 이러한 변화들을 반영하기 위하여 라우팅 테이블(614)을 업데이트하도록 작동한다. 이러한 동작은 각각의 노드가 자신의 라우팅 테이블을 업데이트하도록 오버레이 네트워크의 다른 노드들에서 반복된다. 따라서, 시스템은 피어-투-피어 오버레이 네트워크들에서 이벤트 분배 및 라우팅을 위한 효율적인 메커니즘을 제공한다.
일 양상에서, 이벤트 분배 시스템은 기계-판독가능한 매체상에 저장되거나 포함되는 하나 이상의 프로그램 명령들 "명령들" 또는 "코드들"로부터 형성되는 컴퓨터 프로그램을 갖는 컴퓨터 프로그램 물건을 포함한다. 코드들이 적어도 하나의 프로세서, 예를 들어, 프로세서(602)에 의하여 실행될 때, 그들의 실행은 DP(600)가 본 명세서에 개시된 이벤트 분배 시스템의 함수들을 제공하게 한다. 예를 들어, 기계-판독가능 매체는 플로피 디스크, CDROM, 광학 디스크, 메모리 카드, FLASH 메모리 디바이스, RAM, ROM, 또는 DP(600)에 인터페이싱될 수 있는 임의의 다른 타입의 메모리 디바이스 또는 기계-판독가능 매체를 포함한다. 다른 양상에서, 코드들은 외부 디바이스 또는 통신 네트워크 리소스로부터 DP(600)로 다운로딩되고, 추후의 실행을 위해 기계-판독가능 매체에 저장될 수 있다. 실행시, 코드들의 세트들은 본 명세서에 개시된 바와 같은 이벤트 분배 시스템의 양상들을 제공하도록 작동한다.
도 7은 이벤트 분배 시스템에 따라 피어-투-피어 오버레이 네트워크의 이벤트 라우팅을 제공하기 위한 예시적인 방법(700)을 도시한다. 예를 들어, 방법(700)은 도 6에 도시되는 DP(600)에 의하여 노드에서 수행될 수 있다.
명료성을 위하여, 방법(700)은 도 6에 도시되는 DP(600)에 의하여 수행되는 것으로 하기에서 설명된다. 일 양상에서, 프로세서(602)는 하기에 설명되는 기능들을 수행하도록 DP(600)를 제어하기 위하여 메모리(606)에 저장되는 분배 모듈(616)의 하나 이상의 코드들을 실행한다.
블록(702)에서, 피어-투-피어 오버레이 네트워크의 하나 이상의 노드들을 포함하는 고정된 개수의 버킷들이 식별된다. 예를 들어, 프로세서(602)는 버킷들을 식별하도록 작동한다. 일 양상에서, 프로세서(602)는 메모리(606)에 저장되는 구성 정보에 기초하여 버킷들을 식별한다. 예를 들어, 오버레이 네트워크의 노드들은 오버레이 네트워크상에 버킷들의 위치에 기초하여 각각의 버킷에 할당된다. 예를 들어, 버킷 식별자를 결정하기 위하여 노드 식별자의 더 높은 비트들이 사용된다. 일 구현에서, 2개 버킷들 사이의 모든 노드들은 유사한 식별자와 연관되는 버킷에 할당된다. 그러나, 임의의 알고리즘 또는 할당 기술이 각각의 버킷에 노드들을 할당하는데 사용될 수 있다는 것을 유념해야 한다.
블록(704)에서, 하나 이상의 버킷들을 포함하는 고정된 개수의 버킷 그룹들이 식별된다. 예를 들어, 프로세서(602)는 버킷 그룹들을 식별하도록 작동한다. 일 양상에서, 프로세서(602)는 메모리(606)에 저장되는 구성 정보에 기초하여 버킷 그룹들을 식별한다.
블록(706)에서, 라우팅 테이블은 1, 2, 또는 3 홉 라우팅을 제공하기 위하여 버킷 그룹들에 기초하여 최초에 생성된다. 일 양상에서, 프로세서(602)는 버킷 그룹들에 기초하여 라우팅 테이블을 생성하도록 작동한다.
블록(708)에서, 수신된 이벤트들은 라우팅 테이블의 버킷 그룹들에 기초하여 분배된다. 일 양상에서, 이벤트들은 합류들, 이탈들, 또는 이웃 업데이트들을 포함한다. 예를 들어, 프로세서(602)는 라우팅 테이블(614)의 버킷 그룹들에 기초하여 이벤트들을 분배하도록 작동한다. 이벤트들은 트랜시버(608)를 사용하여 오버레이 네트워크상에 분배된다.
블록(710)에서, 라우팅 테이블은 이벤트들에 기초하여 업데이트된다. 예를 들어, 프로세서(602)는 수신되는 합류들, 이탈들, 또는 이웃 업데이트들에 기초하여 라우팅 테이블(614)을 업데이트한다.
따라서, 방법(700)은 이벤트 분배 시스템에 따라 피어-투-피어 오버레이 네트워크에서 이벤트 분배 및 라우팅 테이블 업데이트들을 제공하기 위하여 수행될 수 있다. 방법(700)은 단지 하나의 구현이며, 방법(700)의 동작들은 다양한 양상들의 범위 내에서 재정렬되거나 다른 방식으로 변형될 수 있다는 것을 유념해야 한다. 따라서, 다른 구현들이 본 명세서에 개시되는 다양한 양상들의 범위를 이용하여 가능하다.
도 8은 이벤트 분배 시스템의 양상들에서 노드에서 사용하기 위한 예시적인 분배 프로세서(800)를 도시한다. 예를 들어, 분배 프로세서(800)는 도 6에 도시되는 분배 프로세서(600)로서 구현될 수 있다. 일 양상에서, 분배 프로세서(800)는 본 명세서에서 개시된 바와 같은 이벤트 분배 시스템의 양상들을 제공하도록 구성되는 하나 이상의 모듈들을 포함하는 적어도 하나의 집적 회로에 의하여 구현된다. 예를 들어, 일 양상에서, 각각의 모듈은 하드웨어 및/또는 하드웨어 실행 소프트웨어를 포함한다.
분배 프로세서(800)는 일 양상에서 프로세서(602)를 포함하는, 오버레이 네트워크에 기초하여 다수의 버킷들을 식별하기 위한 수단(802)을 포함하는 제1 모듈을 포함하며, 여기서 각각의 버킷은 각각 하나 이상의 노드들을 포함한다. 분배 프로세서(800)는 버킷 그룹들을 식별하기 위한 수단(804)을 포함하는 제2 모듈을 더 포함하며, 여기서 각각의 버킷 그룹은 선택된 개수의 버킷들을 포함하고, 이는 일 양상에서 프로세서(602)를 포함한다. 분배 프로세서(800)는 버킷 그룹들에 기초하여 이벤트들을 분배하기 위한 수단(806)을 포함하는 제3 모듈을 더 포함하며, 이는 일 양상에서 트랜시버(608)를 포함한다. 분배 프로세서(800)는 이벤트들에 기초하여 라우팅 테이블을 업데이트하기 위한 수단(808)을 포함하는 제4 모듈을 더 포함하며, 이는 일 양상에서 프로세서(602)를 포함한다.
본 명세서에 개시된 양상들과 함께 설명되는 다양한 예증적 로직들, 논리 블록들, 모듈들, 및 회로들은 본 명세서에서 설명하는 기능들을 수행하도록 설계된 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래밍 가능 게이트 어레이(FPGA) 또는 다른 프로그래밍 가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 이들의 임의의 조합으로 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 프로세서는 임의의 종래 프로세서, 제어기, 마이크로컨트롤러 또는 상태 머신일 수도 있다. 프로세서는 또한 계산 디바이스들의 조합, 예를 들어 DSP와 마이크로프로세서의 조합, 다수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 그러한 임의의 다른 구성으로 구현될 수도 있다.
본 명세서에 개시된 예시적인 실시예들과 관련하여 설명되는 방법 또는 알고리즘의 단계들 및/또는 동작들은 하드웨어에 직접, 또는 프로세서에 의해 실행되는 소프트웨어 모듈에, 또는 이 둘의 조합에 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드디스크, 착탈식 디스크, CD-ROM, 또는 공지된 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는 프로세서가 저장 매체로부터 정보를 읽고 저장 매체에 정보를 기록할 수 있도록 프로세서에 연결될 수 있다. 대안적으로, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수도 있다. ASIC는 무선 통신 디바이스에 상주할 수도 있다. 대안으로, 프로세서 및 저장 매체는 무선 통신 디바이스에 개별 컴포넌트들로서 상주할 수도 있다.
개시된 예시적인 실시예들의 상기 설명은 본 기술분야의 당업자들이 본 발명을 제작 또는 사용할 수 있도록 제공된다. 이들 실시예들에 대한 다양한 변형들이 본 기술분야의 당업자들에게 쉽게 명백해질 것이며, 본 명세서에 정의된 일반 원리들은 발명의 진의 또는 범위를 벗어나지 않고 다른 양상들에 적용될 수 있다. 따라서, 본 발명은 본원에 나타낸 양상들로 한정되는 것이 아니라 본원에 개시된 원리 및 신규한 특징들에 부합하는 가장 넓은 범위에 따르도록 의도된다. 본 명세서 전반을 통해 사용되는 "예시적인"이라는 용어는 "예시, 실례 또는 예증이 되는 것"의 의미로 사용된다. "예시적인" 것으로서 본 명세서에 개시되는 임의의 양상이 다른 양상들에 대하여 반드시 바람직하거나 이로운 것으로 해석될 필요는 없다.
따라서, 이벤트 분배 시스템의 양상들이 본 명세서에 예시되고 설명되었으나, 본 발명의 정신 및 본질적인 특징들을 벗어나지 않고 양상들에 대한 다양한 변화들이 이루어질 수 있다는 것이 이해될 것이다. 따라서, 본 명세서의 개시 및 설명들은 비제한적으로 본 발명의 범위를 예시하는 것으로서 고려되며, 본 발명의 범위는 하기의 청구항들에서 진술된다.

Claims (36)

  1. 다수의 노드들을 포함하는 피어-투-피어 오버레이(peer-to-peer overlay) 네트워크에서의 이벤트 분배 및 라우팅을 위한 방법으로서,
    상기 오버레이 네트워크상에서 다수의 버킷(bucket)들을 식별하는 단계 ― 각각의 버킷은 개별적으로 하나 이상의 노드들을 포함함 ― ;
    버킷 그룹들을 식별하는 단계 ― 각각의 버킷 그룹은 각각 선택된 개수의 버킷들을 포함하고, 동일한 버킷 그룹의 2개의 연속하는 버킷들 사이의 거리는 버킷 그룹 내의 버킷들의 선택된 개수에 대응함 ― ;
    상기 버킷 그룹들에 기초하여 이벤트들을 분배하는 단계; 및
    상기 이벤트들에 기초하여 라우팅 테이블을 업데이트하는 단계
    를 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 방법.
  2. 제1항에 있어서,
    상기 이벤트들은 합류(join), 이탈(leave), 및 이웃 업데이트(neighbor update) 중 적어도 하나를 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 방법.
  3. 제1항에 있어서,
    상기 업데이트하는 단계는 고정된 어레이 길이를 갖는 보급 트리(dissemination tree)를 형성하기 위하여 상기 라우팅 테이블을 업데이트하는 단계를 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 방법.
  4. 제1항에 있어서,
    상기 다수의 버킷들을 식별하는 단계는 전체 N개의 버킷들이 존재하도록 상기 다수의 버킷들을 식별하는 단계를 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 방법.
  5. 제4항에 있어서,
    상기 버킷 그룹들을 식별하는 단계는 그룹당 m개의 버킷들을 포함하는 전체 n개의 버킷 그룹들을 형성하도록 상기 버킷 그룹들을 식별하는 단계를 포함하며, 여기서, 상기 N = n * m인, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 방법.
  6. 제1항에 있어서,
    상기 라우팅 테이블을 업데이트하는 단계는 2-홉 라우팅을 용이하게 하기 위하여 상기 이벤트들에 기초하여 상기 라우팅 테이블을 업데이트하는 단계를 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 방법.
  7. 제4항에 있어서,
    상기 버킷 그룹들을 식별하는 단계는 버킷 그룹당 m개의 버킷들을 포함하는 n개의 버킷 그룹들의 전체 o개의 그룹들을 형성하도록 상기 버킷 그룹들을 식별하는 단계를 포함하며, 여기서, 상기 N = n * m * o인, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 방법.
  8. 제7항에 있어서,
    상기 라우팅 테이블을 업데이트하는 단계는 3-홉 라우팅을 용이하게 하기 위하여 상기 이벤트들에 기초하여 상기 라우팅 테이블을 업데이트하는 단계를 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 방법.
  9. 제1항에 있어서,
    상기 버킷 그룹들에 기초하여 상기 라우팅 테이블을 처음 생성하는 단계를 더 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 방법.
  10. 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 장치로서,
    상기 오버레이 네트워크상에서 다수의 버킷들을 식별하기 위한 수단 ― 각각의 버킷은 개별적으로 하나 이상의 노드들을 포함함 ― ;
    버킷 그룹들을 식별하기 위한 수단 ― 각각의 버킷 그룹은 개별적으로 선택된 개수의 버킷들을 포함하고, 동일한 버킷 그룹의 2개의 연속하는 버킷들 사이의 거리는 버킷 그룹 내의 버킷들의 선택된 개수에 대응함 ― ;
    상기 버킷 그룹들에 기초하여 이벤트들을 분배하기 위한 수단; 및
    상기 이벤트들에 기초하여 라우팅 테이블을 업데이트하기 위한 수단
    을 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 장치.
  11. 제10항에 있어서,
    상기 이벤트들은 합류, 이탈, 및 이웃 업데이트 중 적어도 하나를 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 장치.
  12. 제10항에 있어서,
    상기 업데이트하기 위한 수단은 고정된 어레이 길이를 갖는 보급 트리를 형성하기 위하여 상기 라우팅 테이블을 업데이트하기 위한 수단을 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 장치.
  13. 제10항에 있어서,
    상기 다수의 버킷들을 식별하기 위한 수단은 전체 N개의 버킷들이 존재하도록 상기 다수의 버킷들을 식별하기 위한 수단을 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 장치.
  14. 제13항에 있어서,
    상기 버킷 그룹들을 식별하기 위한 수단은 그룹당 m개의 버킷들을 포함하는 전체 n개의 버킷 그룹들을 형성하도록 상기 버킷 그룹들을 식별하기 위한 수단을 포함하며, 여기서, 상기 N = n * m인, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 장치.
  15. 제10항에 있어서,
    상기 라우팅 테이블을 업데이트하기 위한 수단은 2-홉 라우팅을 용이하게 하기 위하여 상기 이벤트들에 기초하여 상기 라우팅 테이블을 업데이트하기 위한 수단을 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 장치.
  16. 제13항에 있어서,
    상기 버킷 그룹들을 식별하기 위한 수단은 버킷 그룹당 m개의 버킷들을 포함하는 n개의 버킷 그룹들의 전체 o개의 그룹들을 형성하도록 상기 버킷 그룹들을 식별하기 위한 수단을 포함하며, 여기서, 상기 N = n * m * o인, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 장치.
  17. 제16항에 있어서,
    상기 라우팅 테이블을 업데이트하기 위한 수단은 3-홉 라우팅을 용이하게 하기 위하여 상기 이벤트들에 기초하여 상기 라우팅 테이블을 업데이트하기 위한 수단을 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 장치.
  18. 제10항에 있어서,
    상기 버킷 그룹들에 기초하여 상기 라우팅 테이블을 처음 생성하기 위한 수단을 더 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 장치.
  19. 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위해 구성되는 노드로서, 상기 노드는,
    트랜시버; 및
    상기 트랜시버에 연결되는 프로세서
    를 포함하며, 상기 프로세서는,
    상기 오버레이 네트워크상에서 다수의 버킷들을 식별하고 ― 각각의 버킷은 개별적으로 하나 이상의 노드들을 포함함 ― ;
    버킷 그룹들을 식별하고 ― 각각의 버킷 그룹은 개별적으로 선택된 개수의 버킷들을 포함하고, 동일한 버킷 그룹의 2개의 연속하는 버킷들 사이의 거리는 버킷 그룹 내의 버킷들의 선택된 개수에 대응함 ― ;
    상기 버킷 그룹들에 기초하여 이벤트들을 분배하며; 그리고
    상기 이벤트들에 기초하여 라우팅 테이블을 업데이트하도록
    구성되는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위해 구성되는 노드.
  20. 제19항에 있어서,
    상기 이벤트들은 합류, 이탈, 및 이웃 업데이트 중 적어도 하나를 포함하는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위해 구성되는 노드.
  21. 제19항에 있어서,
    상기 프로세서는 고정된 어레이 길이를 갖는 보급 트리를 형성하기 위하여 상기 라우팅 테이블을 업데이트하도록 구성되는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위해 구성되는 노드.
  22. 제19항에 있어서,
    상기 프로세서는 전체 N개의 버킷들이 존재하도록 상기 다수의 버킷들을 식별하도록 구성되는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위해 구성되는 노드.
  23. 제22항에 있어서,
    상기 프로세서는 그룹당 m개의 버킷들을 포함하는 전체 n개의 버킷 그룹들을 형성하기 위하여 상기 버킷 그룹들을 식별하도록 구성되며, 여기서, 상기 N = n * m인, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위해 구성되는 노드.
  24. 제19항에 있어서,
    상기 프로세서는 2-홉 라우팅을 용이하게 하기 위하여 상기 이벤트들에 기초하여 상기 라우팅 테이블을 업데이트하도록 구성되는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위해 구성되는 노드.
  25. 제22항에 있어서,
    상기 프로세서는 버킷 그룹당 m개의 버킷들을 포함하는 n개의 버킷 그룹들의 전체 o개의 그룹들을 형성하기 위하여 상기 버킷 그룹들을 식별하도록 구성되며, 여기서, 상기 N = n * m * o인, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위해 구성되는 노드.
  26. 제25항에 있어서,
    상기 프로세서는 3-홉 라우팅을 용이하게 하기 위하여 상기 이벤트들에 기초하여 상기 라우팅 테이블을 업데이트하도록 구성되는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위해 구성되는 노드.
  27. 제19항에 있어서,
    상기 프로세서는 상기 버킷 그룹들에 기초하여 상기 라우팅 테이블을 처음 생성하도록 구성되는, 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위해 구성되는 노드.
  28. 다수의 노드들을 포함하는 피어-투-피어 오버레이 네트워크에서의 이벤트 분배 및 라우팅을 위한 컴퓨터-판독가능 매체로서,
    상기 오버레이 네트워크상에서 다수의 버킷들을 식별하고 ― 각각의 버킷은 개별적으로 하나 이상의 노드들을 포함함 ― ;
    버킷 그룹들을 식별하고 ― 각각의 버킷 그룹은 개별적으로 선택된 개수의 버킷들을 포함하고, 동일한 버킷 그룹의 2개의 연속하는 버킷들 사이의 거리는 버킷 그룹 내의 버킷들의 선택된 개수에 대응함 ― ;
    상기 버킷 그룹들에 기초하여 이벤트들을 분배하며; 그리고
    상기 이벤트들에 기초하여 라우팅 테이블을 업데이트하도록
    실행가능한 코드들을 포함하는, 컴퓨터-판독가능 매체.
  29. 제28항에 있어서,
    상기 이벤트들은 합류, 이탈, 및 이웃 업데이트 중 적어도 하나를 포함하는, 컴퓨터-판독가능 매체.
  30. 제28항에 있어서,
    상기 코드들은 고정된 어레이 길이를 갖는 보급 트리를 형성하기 위하여 상기 라우팅 테이블을 업데이트하도록 구성되는, 컴퓨터-판독가능 매체.
  31. 제28항에 있어서,
    상기 코드들은 전체 N개의 버킷들이 존재하도록 상기 다수의 버킷들을 식별하도록 구성되는, 컴퓨터-판독가능 매체.
  32. 제31항에 있어서,
    상기 코드들은 그룹당 m개의 버킷들을 포함하는 전체 n개의 버킷 그룹들을 형성하기 위하여 상기 버킷 그룹들을 식별하도록 구성되며, 여기서, 상기 N = n * m인, 컴퓨터-판독가능 매체.
  33. 제28항에 있어서,
    상기 코드들은 2-홉 라우팅을 용이하게 하기 위하여 상기 이벤트들에 기초하여 상기 라우팅 테이블을 업데이트하도록 구성되는, 컴퓨터-판독가능 매체.
  34. 제33항에 있어서,
    상기 코드들은 버킷 그룹당 m개의 버킷들을 포함하는 n개의 버킷 그룹들의 전체 o개의 그룹들을 형성하기 위하여 상기 버킷 그룹들을 식별하도록 구성되며, 여기서, N은 버킷들의 전체 개수를 나타내고, 상기 N = n * m * o인, 컴퓨터-판독가능 매체.
  35. 제34항에 있어서,
    상기 코드들은 3-홉 라우팅을 용이하게 하기 위하여 상기 이벤트들에 기초하여 상기 라우팅 테이블을 업데이트하도록 구성되는, 컴퓨터-판독가능 매체.
  36. 제33항에 있어서,
    상기 코드들은 상기 버킷 그룹들에 기초하여 상기 라우팅 테이블을 처음 생성하도록 구성되는, 컴퓨터-판독가능 매체.
KR1020117001428A 2008-06-19 2009-06-19 피어-투-피어 오버레이 네트워크들에서의 이벤트 분배 및 라우팅을 위한 방법 및 장치 KR101237342B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US7390908P 2008-06-19 2008-06-19
US7392008P 2008-06-19 2008-06-19
US61/073,920 2008-06-19
US61/073,909 2008-06-19
US12/487,513 2009-06-18
US12/487,513 US8996726B2 (en) 2008-06-19 2009-06-18 Methods and apparatus for event distribution and routing in peer-to-peer overlay networks
PCT/US2009/048044 WO2009155567A2 (en) 2008-06-19 2009-06-19 Methods and apparatus for event distribution and routing in peer-to-peer overlay networks

Publications (2)

Publication Number Publication Date
KR20110030624A KR20110030624A (ko) 2011-03-23
KR101237342B1 true KR101237342B1 (ko) 2013-02-28

Family

ID=41434725

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117001428A KR101237342B1 (ko) 2008-06-19 2009-06-19 피어-투-피어 오버레이 네트워크들에서의 이벤트 분배 및 라우팅을 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US8996726B2 (ko)
EP (1) EP2304923B1 (ko)
JP (1) JP5524198B2 (ko)
KR (1) KR101237342B1 (ko)
CN (1) CN102067564B (ko)
TW (1) TW201008322A (ko)
WO (1) WO2009155567A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806049B2 (en) * 2011-02-15 2014-08-12 Peerialism AB P2P-engine
US8898327B2 (en) 2011-10-05 2014-11-25 Peerialism AB Method and device for arranging peers in a live streaming P2P network
CN103139079B (zh) * 2011-11-28 2018-01-19 中兴通讯股份有限公司 P2p叠加网中路由表修复方法及p2p叠加网节点
CN104394554B (zh) * 2014-12-19 2019-07-12 湘潭大学 一种预测式低延时地理路由方法
US20160381120A1 (en) * 2015-06-24 2016-12-29 Intel Corporation System for event dissemination
US11487855B2 (en) 2015-07-15 2022-11-01 Nec Corporation Authentication device, authentication system, authentication method, and program
US10567217B2 (en) * 2016-02-29 2020-02-18 Whatsapp Inc. Techniques to perform the dynamic configuration of load-balanced relay operations
CN107483342B (zh) * 2017-09-15 2020-04-28 西安微电子技术研究所 一种面向时间触发网络交换的两级路由系统及方法
US12058025B2 (en) 2020-01-06 2024-08-06 Essence Security International (E.S.I.) Ltd. Hierarchical resource constrained network
US11930074B2 (en) * 2021-10-26 2024-03-12 King Fahd University Of Petroleum And Minerals Content distribution over a network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050027932A (ko) * 2003-09-15 2005-03-21 마이크로소프트 코포레이션 위치 인식 오버레이 네트워크의 측정 기반 구성
KR20060045065A (ko) * 2004-03-31 2006-05-16 마이크로소프트 코포레이션 P2p 네트워크에서의 라우팅
KR20070106971A (ko) * 2005-01-11 2007-11-06 텔코디아 테크놀로지스, 인코포레이티드 애드혹 무선 피어 투 피어 네트워크의 확립 및 구성 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1331331C (zh) 2004-04-27 2007-08-08 国家数字交换系统工程技术研究中心 自组织网络的实现方法
US7350074B2 (en) 2005-04-20 2008-03-25 Microsoft Corporation Peer-to-peer authentication and authorization
DE602005019718D1 (de) * 2005-07-28 2010-04-15 Univ Berlin Tech Kommunikationsnetz, Verfahren zur Leitweglenkung von Datenpaketen sowie Verfahren zum Lokalisieren und Sichern von Daten einer gewünschten Ressource in einem solchen Kommunikationsnetz
WO2007030742A2 (en) 2005-09-08 2007-03-15 Matsushita Electric Industrial Co., Ltd. Parallelizing peer-to-peer overlays using multi-destination routing
JP4670726B2 (ja) 2006-04-28 2011-04-13 ブラザー工業株式会社 ノード装置、情報処理方法及びノード装置用プログラム
JP4281925B2 (ja) 2006-06-19 2009-06-17 株式会社スクウェア・エニックス ネットワークシステム
US9137043B2 (en) 2006-06-27 2015-09-15 International Business Machines Corporation System, method and program for determining a network path by which to send a message
DE602006004073D1 (ko) 2006-11-23 2009-01-15 Ntt Docomo Inc
CN100591028C (zh) 2007-10-15 2010-02-17 北京交通大学 一种基于集中服务的分布式对等网络的实现方法及系统
US20090210489A1 (en) * 2008-02-18 2009-08-20 Supratim Deb Methods for peer-caching for faster lookups in peer-to-peer systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050027932A (ko) * 2003-09-15 2005-03-21 마이크로소프트 코포레이션 위치 인식 오버레이 네트워크의 측정 기반 구성
KR20060045065A (ko) * 2004-03-31 2006-05-16 마이크로소프트 코포레이션 P2p 네트워크에서의 라우팅
KR20070106971A (ko) * 2005-01-11 2007-11-06 텔코디아 테크놀로지스, 인코포레이티드 애드혹 무선 피어 투 피어 네트워크의 확립 및 구성 방법

Also Published As

Publication number Publication date
CN102067564B (zh) 2014-12-31
JP2011525663A (ja) 2011-09-22
US8996726B2 (en) 2015-03-31
TW201008322A (en) 2010-02-16
CN102067564A (zh) 2011-05-18
JP5524198B2 (ja) 2014-06-18
WO2009155567A3 (en) 2010-04-01
KR20110030624A (ko) 2011-03-23
US20100049869A1 (en) 2010-02-25
WO2009155567A2 (en) 2009-12-23
EP2304923B1 (en) 2016-12-21
EP2304923A2 (en) 2011-04-06

Similar Documents

Publication Publication Date Title
KR101237342B1 (ko) 피어-투-피어 오버레이 네트워크들에서의 이벤트 분배 및 라우팅을 위한 방법 및 장치
EP3244574B1 (en) Alternate down paths for directed acyclic graph (dag) routing
US8144621B2 (en) Node, routing control method, and routing control program
US20060268879A1 (en) Quality of service aware robust link state routing for mesh networks
US20130028140A1 (en) Using service discovery to build routing topologies
CN108574628B (zh) 域级拓扑的建立方法及装置、系统
Bhatia et al. A comparative analysis of proactive, reactive and hybrid routing protocols over open source network simulator in mobile ad hoc network
US20090164835A1 (en) Method and system for survival of data plane through a total control plane failure
Shanmugam et al. A dynamic probabilistic based broadcasting scheme for manets
CN103825826A (zh) 一种动态路由的实现方法和装置
Maccari et al. Where have all the MPRs gone? On the optimal selection of Multi-Point Relays
WO2015117412A1 (zh) 基于isis的洪泛方法及装置
KR20050036769A (ko) 자율 시스템, 링크 상태 라우팅 프로토콜 데이터를모니터링하는 시스템 및 이 데이터의 중앙 집권식 수집을위한 방법
Waqas et al. Convergence time analysis of OSPF routing protocol using social network metrics
Singh et al. Address allocation for MANET merge and partition using cluster based routing
Vats et al. Star, dymo and zrp routing protocols of MANET
Deeka et al. Dynamically Packet Routing for QoS Assurances on Internet Networks
Xu et al. A VIRTUAL SUB-DOMAIN ROUTING MECHANISM TO IMPROVE ROUTING EFFICIENCY FOR LOW-POWER AND LOSSY NETWORKS
Ros et al. A low overhead architecture for infrastructure-based wireless mesh networks
Babu et al. Wireless mesh network implementation
Porto et al. MLSD: A Network Topology Discovery Protocol for Infrastructure Wireless Mesh Networks
Zhao et al. LSC 2: An extended link state protocol with centralized control
CN118827505A (zh) 算力路由方法、装置、节点设备及网络设备
Palta et al. Comparison of Optimized Link State Routing Protocol on IPv4 and IPv6
Ye et al. GW-GEM: A Reliable Routing Algorithm for Wireless Sensor Networks

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: 20151230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee