CN101681337A - 具有边缘路由能力的对等协作系统 - Google Patents

具有边缘路由能力的对等协作系统 Download PDF

Info

Publication number
CN101681337A
CN101681337A CN200880016321A CN200880016321A CN101681337A CN 101681337 A CN101681337 A CN 101681337A CN 200880016321 A CN200880016321 A CN 200880016321A CN 200880016321 A CN200880016321 A CN 200880016321A CN 101681337 A CN101681337 A CN 101681337A
Authority
CN
China
Prior art keywords
peer
message
group
peers
server
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN200880016321A
Other languages
English (en)
Inventor
J·J·王
T·B·蒂奇纳
T·D·桑菲利普
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101681337A publication Critical patent/CN101681337A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • 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/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2567NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
    • 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/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • 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/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2578NAT traversal without involvement of the NAT server
    • 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
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • 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/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms

Abstract

一种对等协作系统,其中可采用结合定址技术发送的消息将共享空间的改变广播至协作会话中的所有对等体。消息可以被定址,用于直接对等传输、通过另一个对等体的间接传输或通过服务器的间接传输。与各对等体通信而使用的定址的类型通过使用路由表被确定。该路由表定义互联的对等体组,并可以被用来选择各组中的一个或多个对等体作为该消息的初始接收者。该初始接收者可将该消息转发至它们组内的其它对等体,使得所有对等体能接收该消息。对于位于NAT后的对等体,可使用一个或多个NAT穿越技术来获取构建路由表的信息。

Description

具有边缘路由能力的对等协作系统
背景
对等协作系统一般被用于商务环境以允许多用户来协作工作,即便用户可能处于不同的位置。对等协作系统采用经网络互连的计算设备来实现。对等设备中的每一个均可维护向协作用户显示或由协作用户对其进行操作的数据或其它信息的副本。该信息创建了所谓的“共享空间”
对等设备中的每一个的客户机软件允许该设备的用户改变由该设备维护的共享空间的副本。随着每一次所作的改变,客户机广播指示对共享空间所作的改变的消息。协作会话中的其它对等设备接收这些改变消息并对它们的共享空间的副本进行相应改变。这样,共享空间的所有副本被同步,并且该协作会话中的每个用户能够查阅每一个其他用户所作的改变。
然而,为了使该协作系统能如所期望地进行工作,每个对等设备必须能够与每一个其它对等设备传输改变。理论上,可以使用诸如因特网等网络来允许耦合至该网络的任何两个对等设备之间的通信。然而,尽管耦合至因特网,一些专用网并没有被配置成允许通过专用网耦合至因特网的对等设备参与同专用网外部的设备的对等通信。例如,许多局域网(LAN)在专用网和因特网的接口处采用网络地址转换(NAT)。地址转换可破坏定向至位于NAT设备后的对等体的消息,从而干扰对等通信。
为了避免当一些设备位于NAT设备后面或由于其它原因无法从其它对等体来访问时破坏协作会话,协作系统使用中继服务器。无法与另一个对等体进行直接通信的对等体可通过首先向中继服务器发送消息来进行间接通信。该中继服务器可将该消息转发至接收对等体。在某些例子中,该中继服务器将该消息直接转发至该接收对等体。然而,在其它场景中,在该消息到达接收对等体之前,该消息将通过一个或多个其它中继服务器被转发。
发明内容
为了减少在对等通信会话中由通过中继服务器来路由改变消息而引起的阻塞,这些改变在可以采用直接对等消息被分发的消息中被传输。尽管中继服务器可以被用于某些消息,然而,减少中继服务器上处理大量改变消息的负载可降低对等协作系统的成本,并且可增加系统的可伸缩性。
为了方便直接对等通信,可采用定义了对等体之间的互连的路由表来定址消息。该路由表可标识可采用直接对等消息来进行通信的诸对等体组。发起改变以及将该改变广播至协作会话中的其它对等体的对等体可在每组中选对等体作为初始接收者,它能从发起对等体直接或间接地接收消息。初始接收者可将消息转发至该组中的一个或多个其它对等体。接收消息的每个对等体可进而通过对等通信将消息传播至该组中的其它对等体,直至协作会话中的所有对等体接收到该消息。
中继服务器或协作系统中的其它组件可参与路由表的构建。这样一种服务器可接收来自对等体的探测消息,并且分析这些消息,以获取其它对等体能够与该对等体进行通信的地址的有关信息。如果该对等体位于网络地址转换(NAT)设备后,则服务器所获得的信息还可被用来标识穿过NAT设备以到达该对等体的方式,潜在地扩张了在协作会话中可采用直接对等通信来到达的对等体的数量。
以上概述是对由所附权利要求定义的本发明的非限定性的概述。
附图简述
附图不旨在按比例绘制。在附图中,各个附图中示出的每一完全相同或近乎完全相同的组件由同样的标号来表示。出于简明的目的,不是每个组件在每张附图中均被标号。在附图中:
图1是现有技术对等协作系统的略图;
图2是根据本发明的一实施例的对等协作系统的略图;
图3A是根据本发明的一实施例的对等协作系统中的对等体的功能性框图;
图3B是根据本发明的一实施例的可用于对等协作系统中的对等体的数据结构的略图;
当图4A和图4B在标记为B1和B2的点处互连时,图4A和图4B形成用于发现对等体位于其后的NAT设备的类型的过程的流程图;
图5A、5B和5C示出根据本发明的一实施例的可被用于对等通信的定址的形式;
图6是根据本发明的一实施例的维护路由表的过程的流程图;以及
图7是根据本发明的一实施例的发送消息的过程的流程图。
详细描述
发明人意识到,使用中继服务器来方便在对等协作系统的协作会话中无法进行直接通信的对等体之间的间接通信会制造出与中继服务器有关的不期望的数量的负载。因此,对于对等协作系统的有效操作会需要与中继服务器相关联的诸如网络带宽或存储器等不期望的数量的资源。发明人还认识到,负载以及与服务器负载相关联的性能降级随着不能被其它对等设备到达的对等设备的数量增加而增加。对等设备不能到达而用于直接通信的一个原因是该对等体可能位于NAT设备之后。不幸的是,随着越来越多的用户在家工作或者越来越多的用户通过使用NAT设备的局域网连接到因特网,对等体设备位于NAT设备后的概率增加。
根据本发明的实施例,通过使用边缘路由技术可减少对等协作系统的中继服务器上的负载。这种技术增加了能够直接被对等传送或通过一个或多个中介对等体被间接传送到其它对等体的改变消息的数量或与对等体协作系统相关联的其它消息的数量。因此,由于那些消息不经过中继服务器而使得服务器负载减少。这样一种系统的有效性还可通过并入允许与位于NAT设备后面的设备进行对等通信的NAT穿越技术来改进。
在一些实施例中,可以使用本领域公知的对等协作系统中的组件来实现本发明。作为公知组件的类型的一个示例,图1示出一现有技术对等协作系统。在图1的示例中,多个对等体设备通过可以是因特网的网络100进行通信。然而,在构建本发明的实施例时,企业网络或者任何其它合适的网络可以承载对等体之间的通信。
如图1所示,一些对等体可以通过LAN连接到网络100。例如,LAN 110通过路由器116耦合至网络100。连接到LAN 110的诸如对等体112和114等对等体设备可通过将LAN 110耦合至网络100的路由器116访问网络100。
在所示出的实施例中,路由器116可以作为一个NAT设备。因此,尽管对等体112和114可以通过路由器116发送消息出站,但局域网110外部的对等体设备可能无法使用这些消息中的地址信息来响应对等体112和114,因为按照这种方式被定址的消息将不能够通过路由器116到达期望的对等体设备。
例如,LAN120被示为包含对等体设备122和124。尽管对等体设备122和124可以通过路由器126来访问网络100,路由器116内的网络地址转换可阻止对等体设备122或124发送的消息到达对等体112和114。在这个示例中,如果路由器126还执行一种阻止进站消息到达对等体122和124的网络地址转换,则无法到达性可以是对称的。
为了允许对等体122或124中的任何一个与对等体112或114中的任一个进行通信,可以使用中继服务器130。中继服务器130在此处示为连接到网络100。对等体112,114,122和124中的每一个可以与中继服务器130建立通信。由于对等体设备112,114,122和124中的每一个可以通过对等体设备122,114,122和124中的每一个位于其后的NAT设备发送出站消息,所以各自可将目的地为其它对等体的消息发送至中继服务器130。然后,中继服务器130可将消息转发至接收对等体。这样,对等协作会话中的每个对等体可与任何其它对等体传输改变消息。然而,需要一个或多个消息通过中继服务器130来传输每个改变。
图1为对等协作系统的简图,该图掩盖了由处理改变消息或与对等协作系统相关联的其它消息所引起的有关服务器130的负载的数量。例如,图1的协作系统所示出的四个对等体可能不代表协作会话中的对等体的数量。在许多示例中,可以有多于四个的用户参加协作会话。随着对等体数量的增加,通过中继服务器130发送的消息数量也随之增加。此外,运行中继服务器130的企业或其它实体会希望支持多个协作会话。每个协作会话可生成经中继服务器130路由的改变消息。因此,中继服务器130必须具备足够的带宽、存储以及其它资源来处理由多个会话中的多个用户生成的改变消息。
为了减少中继服务器130上的负载,图1所示的协作系统中的组件可适于支持改变消息的边缘路由。边缘路由在不涉及中继服务器130的情况下增加对等传输的改变消息的数量。图2示出根据本发明的一实施例的协作系统。在图2的示例中,如图1的示例中,协作会话中示出四个对等体。又如图1所示,对等体连接至两个局域网。在图2的示例中,局域网110’包含对等体112’和114’。局域网120’包含对等体122’和124’。附着于局域网的对等体可以通过诸如路由器116或126等NAT设备耦合至网络100。为了方便不采用直接通信的对等体之间的通信,中继服务器130’可以被包括在对等协作系统中。然而,边缘路由的纳入可以减少采用通过中继服务器130’进行间接通信的情况。
用于实现对等协作系统的具体组件对本发明并不至关重要。因此,可采用具有与图1中的相应设备相同的配置的设备来实现对等体112’、114’、122’和124’,而这些设备根据本发明的一实施例被编程为支持边缘路由。这些设备被示为启用网络的台式计算机。然而,可使用任何合适的联网计算设备。同样,服务器130’被示出采用与服务器130(图1)相同类型的设备来实现,且还被编程为支持边缘路由。然而,可采用任何合适的设备来实现服务器130’。另外,在图2中,NAT设备由路由器116和126示出,当然可以采用任何对等体设备与互连其它对等体设备的网络之间的合适连接,且这种连接可以使用或不使用NAT。
图2进一步示出与先前在图1中所示出的系统之间的不同。在所示出的示例中,服务器232和234被包括在系统中。在这个示例中,服务器232和234可以是任何合适的联网设备,并且被编程为支持NAT穿越以及用于协作会话中的诸如对等体112’、114’、122′和124’等对等体的地址发现。这些功能允许为对等体112’、114’、122′和124’中的每一个确定该设备是否可从其自身的LAN的外部设备被到达并且如果可到达的话,确定其它对等体设备可用来与这些设备传输改变消息的地址信息。有了这个信息,对等体可标识协作会话中的该对等体能直接发送改变信息而不用首先发送消息至中继服务器130’的其它对等体。例如,如果NAT穿越技术被标识用来穿越路由器116,位于LAN110’之外的诸如对等体122’以及124’的对等体可将被定址的改变消息直接发送至对等体112’和114’中的任一个或两者。
在图2的实施例中,两个服务器232和234被示为被包含在对等协作系统中。这些服务器支持NAT标识技术的执行,使得一旦NAT设备的种类被标识,即能采用有效穿越这种NAT设备的技术。
所示出的两个服务器允许执行涉及发送和/或接收来自不同设备的消息的NAT标识技术。服务器232和234可互相通信以协调它们的操作以便执行这样的NAT标识技术。然而,并不一定要求使用两个物理服务器来执行该功能。例如,一个附加的服务器可与中继服务器130′合作执行这样的NAT标识技术。或者,单个服务器可被编程为仿真多个服务器,或者由于其它原因而连接至网络100的多个服务器可执行一些或全部NAT标识技术。因此,本发明并不限于用于NAT标识的具体硬件,且可以采用任何合适的硬件。
对等体可使用NAT穿越信息来增加可无需使用中继服务器而进行通信的对等体的数量。在对对等协作系统的操作中,这些对等体中的一些将建立彼此的连接。然后,对等体被分组到在不使用中继服务器的情况下能进行通信的对等体的诸“邻近区”。通过标识邻近区,消息可以被发送至各邻近区内的一个或一些对等体,从该邻近区消息被传播到其它对等体。
即使与邻近区内的对等体的初始通信需要中继服务器,可以在不进一步增加中继服务器负载的情况下将消息从初始对等体分发至该邻近区内的其它对等体。例如,即使对等体122’不能够穿越由路由器116提供的NAT以将消息直接发送至对等体112’和114’,对等体122’也可以通过中继服务器130’将单个消息发送至对等体112’。然后,对等体112’可将消息转发至对等体114’以及能从对等体112’直接到达的任何其它对等体设备。通过诸如服务器232和234等服务器来获取协作会话中的有关对等体的信息帮助标识这种邻近区。
转向图3A,提供了根据本发明的一实施例的可被用于对等协作系统的对等体设备310的图示。对等体310可以是台式或膝上型计算机。当然,任何合适的计算设备可以被用来作为对等体的平台。为了方便与其它对等体的通信,对等体310包括将对等体310耦合至网络300的网络接口334。网络300可以是可包括一个或多个NAT设备的任何合适的网络。
网络接口334可以是允许经网络300发送或接收分组的任何合适的接口硬件和/或软件。在所示出的实施例中,可以使用一个或多个分组来传递包含有关协作系统中的共享空间的改变信息的消息。然而,用来传递这种消息的具体介质以及用于这些消息的协议对本发明并不重要,可以使用任何合适的网络接口334。例如,网络接口334可以是常规的网络接口卡和根据已知有线或无线协议操作的相关联的驱动软件。
无论网络接口334的具体形式如何,协作客户机组件320可通过网络接口334将消息发送至协作会话中的其它对等体。类似地,协作组件320可通过网络接口334接收来自其它对等体的消息。协作客户机320可使用这些消息来维护共享空间的副本。协作客户机组件320可以将共享空间的描绘通过用户界面332展示给用户。在对等体310是常规台式或膝上型计算机的实施例中,用户界面332可以包括协作客户机组件320在其上可呈现共享空间的描绘的显示屏幕。然而,用户界面332的形式对本发明并不重要。
类似地,用户界面332可包括允许用户输入对共享空间引起改变的命令的一个或多个用户输入装置。协作客户机组件320可接收来自用户界面332的、表示改变共享空间的命令的输入。这些命令可触发协作客户机组件320来生成一个或多个消息,这些消息将共享空间的改变传输至协作会话中的其它对等体。
为了生成和处理改变消息,协作客户机组件320可包括“改变引擎”322。改变引擎322可以是类似于那些在常规对等协作系统中所采用的一个或多个软件组件。然而,改变引擎322的具体实现对本发明来说并不重要,并且可以采用任何合适的实现方式。
这种组件可接收用户输入并将改变转换成改变消息以分发给其它对等体。类似地,改变引擎322内的组件可接收来自协作会话中的一个或多个其它对等体的改变消息,并确定适当的动作来制作共享空间副本以使对等体310中的共享空间副本与其它对等体中的共享空间副本同步。
为了和其它对等体交换改变消息,对等体310包括通信子系统326,该通信子系统326执行与协作会话中的多个对等体间的对改变所进行的通信相关联的功能。对于对等体设备310的用户所作的改变,通信子系统326可向协作会话中的其它对等体广播描述这些变化的消息。对于其它设备的用户所作的改变,通信子系统326可以接收消息并在将消息传送到改变引擎322前对消息排序。这些功能可以按与已知对等体协作系统相同的方式或以其它合适的方式来实现。然而,由于通信子系统326可适用于支持边缘路由,通信子系统326可能与已知对等协作系统中的通信组件不同。
为了方便将消息定向到协作系统中的其它对等体,随边缘路由的发生,协作客户机组件320可包括路由表324。路由表324可包含通信子系统326可从其中确定用于定址传达对等体310的用户所作的改变的消息的适当机制的信息。另外,通信子系统326可使用路由表324来选择通信子系统326将来自协作会话中的其它对等体的消息转发至其的对等体。
图3B提供了路由表324的略图。可采用任何合适的方式实现这种数据结构。例如,路由表324可以作为数据结构被存储在对等设备中的计算机可读介质340中。然而,可采用任何合适的机制来从物理上包含路由表324,并且可采用路由表324中的信息的任何合适的表示。
在图3B的实施例中,路由表324为示为包含有关包括了对等体310(图3A)的对等协作会话中的对等体的信息。如所示的,路由表324被组织成用于传达关于可直接通信的诸对等体组的信息。在图3B的实施例中,两组对等体被示为邻近区350和360。邻近区350被示为包含四个对等体352A、352B、352C和352D。类似地,邻近区360被示为包含对等体362E、362F、362G和362H。
在这个实施例中,每个邻近区被示为包含能与该邻近区内的至少一个其它对等体通信的一组对等体。在邻近区350内,对等体352A与对等体352B形成连接3701。对等体352A还与对等体352C形成连接3702。同样,对等体352C与对等体352D形成连接3704。尽管对等体352A和352B不具有与对等体352D直接形成的连接,但对等体352A和对等体352B可通过经对等体352C发送消息来与对等体352D进行通信。因此,对等体352A、352B、352C和352D均能在不使用中继服务器的情况下与邻近区350内的每一个其它对等体进行通信。这样一种配置缘于邻近区350内的所有对等体均位于同一NAT设备之后,使得直接对等通信是可能的。然而,其它操作条件可引起如邻近区350所描绘的对于对等体的分组。例如,邻近区350中的一个或多个对等体可能不位于NAT设备之后。或者,邻近区350内的一个或多个对等体可位于NAT之后,其它对等体已接收到允许它们穿越该NAT的地址信息。
类似地,邻近区360表示了每一对等体可在不使用中继服务器的情况下与组内的每一个其它对等体进行通信的一组对等体。然而,邻近区360被示为包含与邻近区350不同的连接模式。在所示的实施例中,对等体362E作为“超对等体”,这表示其与多个其它对等体设备建立了连接。在所示的实施例中,对等体362E与对等体362F建立了连接3721。超对等体362E与对等体362G建立了连接3722,并与对等体362H建立了连接3723
每个邻近区内的对等体之间所建立的连接的数量和类型对本发明都不重要。在所示的实施例中,协作系统中的每个对等体设备中的通信子系统326(图3A)可被配置成与其它对等体建立连接以形成邻近区。每个对等体设备确定将与其建立连接的对等体的方式对本发明并不重要。然而,在一些实施例中,在对等协作会话中的其它对等体的特性可确定对等体之间的连接。例如,对等体可基于其可用的用来发送、接收或转发消息的带宽、存储器或其它资源来限制其与其它对等体建立的连接的数量。
相反,具有用来处理大量消息的资源的对等体可以通过形成大量的连接来被编程为超对等体。通过基于其用资源对于对等体进行编程以形成多个连接可触发那些连接的形成。然而,在一些实施例中,对等体可以通过由中继服务器或其它设备发送的命令或请求被触发成为超对等体。
另外,在一些实施例中,对等体可与其它对等体建立新的连接,其中在邻近区中的对等体之间的现有连接不充分支持对等体间的及时通信。例如,对等体352A可通过向对等体352B发送消息来转发至对等体352C然后对等体352C再将消息转发至352D来与对等体352D进行通信。这种的通信路径对于对等体352A和352D之间的可靠通信来说可能太慢、带来损耗大,或者太容易出错。为了响应检测到现有连接不充分,对等体352A可建立向对等体252D提供更多直接通信的连接3702。然而,网络内形成的具体连接对本发明并不重要。同样,用于触发网络内的对等体间的连接形成的具体机制对本发明并不重要。
无论路由表324所传达的有关对等体间的连接的具体信息如何,路由表324可以被通信子系统326(图3A)用来确定可用于向协作会话中的其它对等体广播改变信息的定址信息。例如,路由表324可以被用来选择每个邻近区内的如一个之少非对等体来接收报告改变的消息。在图3B的示例中,带有改变的消息被首先定址到邻近区350中的对等体352A。对等体352A可以向对等体352B和352C分发该消息。对等体352C可接着向对等体352D分发该消息。在类似的方式中,改变消息可以被首先定址到邻近区360中的对等体362E。对等体362E可以向对等体362F、362G和362H中的每一个分发该消息。在这个示例中,通过首先将消息发送至每个邻近区中的仅一个对等体,改变消息被广播至协作会话中的所有对等体。
在所示的实施例中,每个对等体维护一个相似的路由表。由此,每个对等体可以使用路由表来选择该对等体所产生的改变消息的最初接收对等体。此外,每个对等体可使用其路由表的副本或依靠现有的广播会话来标识其将转发消息的对等体。例如,对等体362E可使用其路由表的副本来将消息转发至客户机362F、362G和362H。在所示的实施例中,协作会话中的每个接收对等体以一种每个对等体只能接收相同消息一次的方式向其邻近区广播改变消息。然而,在对等体可接收同一消息的多个副本的实施例中,每个对等体内的通信子系统326(图3A)可被构建成忽视重复的消息。
每个对等体可以合适的方式构建路由表,例如,通过与其它对等体或其它设备交换信息的方式。在图2所示的实施例中,服务器232和234与对等体交换信息以方便路由表的构建。从服务器232、服务器234和协作会话中的对等体之间的交互中,服务器232和234可获取可被用来标识诸如邻近区350和360等设备的邻近区的信息。这个信息可包括位于NAT设备后的对等体的标识以及每个对等体均位于其后的NAT设备的类型。另外,信息可包括能被用来与其它对等体建立连接的地址信息的标识。
随着协作会话的成员的改变或随着能使对等体对其它对等体来说可到达或不可到达的一些网络条件的改变,服务器232和234(图2)可在任何合适的时间收集每个对等体上的信息,以允许对等体来更新它们的路由表。作为一个示例,当各对等体加入协作会话时,服务器232和234可收集和分发信息。
新对等体上的信息可以被分发至协作会话中的对等体中的每一个,对等体中的每一个将使用该信息来确定是否与新对等体建立连接。同样,诸如服务器232或234等服务器可作为离开对等协作会话的对等体的有关信息的中央分发点。更常见地,一旦在协作会话中的成员有改变,一个或多个服务器可分发当前在协作会话中的对等体的有关信息。
不管形成路由表324的具体机制如何,如果NAT设备不限制协作会话中的对等体间的对等通信,则减少网络阻塞是合乎需要的。因此,如果NAT设备出现在网络中,标识那些NAT设备是否能被穿越以允许对等通信是合乎需要的。一旦标识了NAT设备的类型,可选择合适的NAT穿越技术。
所使用的具体的NAT穿越技术对本发明来说并不重要,并且可以采用任何合适的技术。穿越技术对于许多类型的NAT设备已知,并且可以被采用。例如,NAT穿越技术对于诸如定向IP连接、UPnP NAT、全双工锥形NAT、限制锥形NAT或端口受限锥形NAT、具有ISA服务器的对称NAT、具有确定性端口分配的对称NAT以及具有受限传出端口限制的防火墙等已知。众所周知的是,如果适用于一对NAT设备的穿越技术可用,则即使每个对等体均位于不同的NAT设备后,该对对等体可参与直接对等通信。因此,在建立对等通信时,可采用用来标识每个对等体位于其后的NAT设备的类型的技术来选择穿越技术。NAT标识技术可标识上述所列类型的NAT设备。另外,发明人分类了又一类型的NAT设备,称为“对称变量”。
对称变量NAT设备是一种每次将来自相同内部IP地址和端口并发送到任何目的地址和端口的每一个请求映射到相同外部IP地址但不同端口。对称变量显示了与会话相关的绑定行为:地址绑定是一致的,但端口绑定对于来自相同内部主机的每个请求改变。当客户机将本地套接字绑定至特定端口以用于使用TCP的出站连接请求时,许多NAT设备(例如,ISA和NetScreen)就是这样运作的。对称变量是常规对称NAT的变体,并由此可以被进一步分类为具有非确定性端口分配的规则对称变量NAT以及具有确定性端口分配的规则对称变量NAT。由于下一个端口的分配是可预测的,以确定性方式分配端口的对称变量NAT通常是可穿越的。
发明人还分类称为对称防火墙的一类防火墙设备。对称防火墙是一种不提供任何内部主机地址映射、但会阻塞来自外部主机对防火墙后的内部主机的任何主动连接请求的网络设备。在内部主机之前已连接至外部主机后,如果外部主机能连接至内部主机,则对称防火墙是可穿越的。
为了发现NAT设备的类型,并随后穿越该NAT,可采用诸如服务器232或234(图2)等NAT探测服务器。这样一种服务器可位于公共区域并可以从位于待探测的NAT后的对等体到达。图2只是示出具有两个服务器的可能场景。在实践中,如果服务器具有两个可被公共定址的网络接口,则仅可使用一个服务器。另外,诸如服务器130’等公共中继服务器能作为探测服务器。
作为发现NAT的一部分,对等体可向服务器发送消息序列来探测NAT设备及其特性。当接收对等体消息之后,服务器将发回带有由NAT分配的外部地址和端口的响应。因为服务器响应对等体消息,所以对等体发送的消息还被称为回声消息。对等体发送回声消息以确定客户机是否在因特网上开放或者是否在防火墙或诸如NAT设备等地址转换设备后。如果找到NAT设备,则对等体还将想要找出NAT的类型。回声消息还可指令特定服务器连接至位于特定IP地址和端口的对等体,以便观察NAT是否可以被成功穿越。如果位于NAT后的设备检测到外部主机已成功与客户机建立进站连接,则使用TCP可以穿越NAT。
作为根据在其中对等体采用TCP耦合至网络的一实施例的发现NAT的一部分,对等体可发送以下类型的消息至服务器:
回声测试:对等体建立至服务器的TCP连接,并随后发送请求。服务器发回具有对等体的映射后的外部IP地址和端口的响应。当对等体接收响应后,关闭连接。
回声跳测试:对等体建立至服务器的TCP连接,并随后发送请求。服务器发回具有对等体的映射后的外部IP地址和端口的响应,并与此同时将请求转发给一不同的服务器,指令第二服务器在对等体的映射后的外部IP地址和端口处连接至对等体。当对等体接收来自第一服务器的响应后,对等体关闭连接。
带有端口改变的回声测试:对等体建立至服务器的TCP连接,并随后发送具有端口号的请求。服务器发回具有对等体的映射后的外部IP地址和端口的响应,并随后在映射后的外部IP地址和接收到的端口处连接至对等体。当对等体接收来自原始服务器的响应后,对等体关闭连接。
顺序回声测试:端口同时建立至服务器的、具有顺序分配端口号的多个TCP连接,并且服务器针对每个连接发回具有对等体的映射后的外部IP地址和端口的响应。当接收到针对每一连接的响应,对等体关闭该连接。
对等体还可向服务器发送其它特别消息,以便可以在对等体和服务器间或诸服务器间安排NAT穿越尝试。例如,当对等体发现它位于具有可预测端口分配的对称NAT后,对等体可向服务器发送带有端口分配范围的消息,该服务器随后指令第二服务器在客户机的外部IP地址和指定范围内的端口号处连接至对等体。
图4A和4B示出基于TCP的NAT发现过程。在该过程中,对等体向服务器发送一系列回声消息。该过程允许对等体通过与探测服务器建立TCP连接来发现NAT设备是否存在,以及如果找到一个的话,发现该NAT设备的类型。该过程可发现所有锥形类NAT、对称NAT以及对称变量。另外,该过程还检测对等体是否在因特网上开放或者对等体是否位于对称防火墙后。当发现NAT时,可以试图直接穿越NAT或使用联立TCP开关穿越NAT。尽管图4A和4B描绘正被发送的消息和已经完成的测试的序列顺序,但是可并发执行一些动作,所以实际顺序可能随不同的实施例而不同。因此,处理顺序不是对本发明的限制。
该过程可以从为进站连接而监听端口的对等体开始。对于每个新的连接请求,对等体可创建套接字并将其本地端口绑定到对等体的监听端口。例如,对等协作会话中的对等体可通过诸如2492、80或443等特定端口与其对等体或中继服务器通信。此处,对等体模拟在对等协作会话中的进行实际操作的对等体为了启动基于TCP的NAT穿越会做的事。为了使得入站连接请求被对等体接受,外部主机必须连接至外部地址和端口,该外部地址和端口被NAT映射至内部地址和对等体监听的端口。
一旦建立连接,在框410处,对等体首先可向服务器发送回声测试消息。当接收来自服务器的映射后的IP地址和端口,在判定框412处,对等体可以将映射后的IP地址和端口与其本地IP地址和端口进行比较。
如果地址和端口是相同的,则对等体得知没有安装地址翻译设备,但是对等体可能位于防火墙之后。因此,该过程分叉到框430。为了找出防火墙是否允许入站连接,在框430处,对等体发送回声跳测试消息至服务器,该服务器接着指令第二服务器连接至对等体的IP地址和对等体。如果来自第二服务器的入站连接能被成功建立,则该过程在判决框432处分叉至终止点450。如果过程到达终止点450,则对等体得知其在因特网上是开放的;否则过程在判定框432处分叉至终止点452,其中客户机确定其位于阻止主动的入站连接尝试的对称防火墙之后。如果防火墙是对称的,则对等体还可发送特殊消息给服务器,使得对等体和服务器可安排同时互相连接,以便查看至客户机的入站连接是否能够被建立。所建立的入站连接指示对称防火墙是可穿越的。
相反,如果对等体的外部IP地址和端口与对等体的内部IP地址和端口不同,则对等体可断定其位于一地址转换设备后。因此,该过程从判决框412分叉到框414。在框414处,对等体与服务器进行另外的回声测试,然后将新映射的外部IP地址和端口与前一次回声测试的地址与端口进行比较。
基于该比较结果,过程在判决框416处分叉。如果映射不同,则NAT的地址绑定是会话相关的,这意味着NAT绑定随每个出站连接而改变。具有会话相关绑定行为的NAT设备通常是难以穿越的。因此,如果判决框416处确定映射是不同的,则过程分叉至判决框440。根据映射的改变是否仅针对等体口,该过程进一步在判决框440处分叉。如果改变不限于端口,则该过程分叉至终止点454。如果过程到达终止点454,则对等体可断定其位于不可穿越的设备之后。
然而,如果NAT一致地绑定至相同的外部地址,且仅端口随每个会话改变,则NAT被认为是对称变量NAT。在这种情况下,该过程从判决框440分叉至框442。在框442,对等体将采用顺序回声测试来探测NAT的端口分配模式。顺序测试的结果可以被用来指示NAT是确定性地还是不可预测地分配其端口。如果端口分配是不确定的,则该过程从判决框444分叉至终止点458。如果该过程到达终止点458,则对等体可断定其位于对称NAT之后。相反,如果端口分配是可预测的,则该过程从判决框444分叉至终止点460。如果该过程到达终止点460,则客户机可断定其位于具有可预测端口分配的对称NAT或对称NAT变量之后。
相反,如果在判决框416处检测到相同的映射,则该过程分叉至框418。在框418,对等体能开始一个子过程来测试其是否位于一锥形NAT设备之后。为了获得更多的有关NAT设备类型的信息,对等体可向第一服务器发送回声跳测试并等待第二服务器与其连接。如果来自第二服务器的连接被成功建立,则对等体是位于全双工锥形NAT设备之后的。因此,该过程从判决框420处分叉至终止点456,其中客户机可断定其位于全双工锥形NAT设备之后。
相反,如果在一超时期后没有来自第二服务器的入站连接被接受,则该过程可从判决框420处分叉至框422。在框422处,对等体可向第二服务器发送回声测试消息。根据接收自第二服务器的映射,该过程接着在判决框424处分叉。如果来自第二服务器的映射的地址和端口不同于来自第一服务器的,则NAT可以被看作为一对称NAT。因此,该过程可从判决框424分叉至框442以进行如上述的与对称NAT一致的处理。
相反,如果来自两个服务器的经映射的地址和端口保持相同,则该过程分叉至框426。在框426处,对等体可向第一服务器发送带有端口改变的回声测试消息。然后,该对等体可等待第一服务器从特定端口与其连接。
该过程取决于该对等体是否成功接受入站连接可在判决框428处分叉。如果建立了入站连接,则该过程分叉至达终止点462,其中对等体可断定其位于一受限的NAT设备之后。否则,该过程从判决框428处分叉至终止点464,其中对等体断定其位于一端口受限的NAT设备之后。
经所标识的NAT设备的类型可规定通信的格式。如果NAT是端口受限的,则对等体可发送特殊消息给服务器,使得对等体和服务器可安排同时互相连接,以便查看至对等体的入站连接是否能够被建立。所建立的入站连接指示该端口受限的NAT可采用TCP连接穿越。
如果发现NAT是对称NAT或对称变量,则对等体可向具有顺序排本地端口的服务器运行一系列回声测试。将分析来自这些回声测试的映射后的外部端口以确定NAT是否在小范围或以可预测的方式分配其下一个端口。如果按可预测的方式或以小幅增量地方式分配端口号,则NAT被归类为具有确定性的端口分配的对称NAT;否则,该NAT是一具有不确定性的端口分配的对称NAT。
如果NAT是具有确定性的端口分配的对称NAT或对称变量,则对等体可发送特殊消息给服务器,使得对等体和第二服务器可安排同时互相连接,以便查看至对等体的入站连接是否能够被建立。在这种情况下,第二服务器将连接至对等体的映射后的外部IP地址和预测端口。所建立的入站连接指示对称NAT是可穿越的。具有不确定性的端口分配的对称NAT或对称变量一般被认为是不可穿越的。
当穿越具有确定性的端口分配的对称NAT或对称变量时,外部主机可能有必要同时连接至在一预测范围内的数个端口以提高成功穿越的概率。
因此,图4A和4B的过程可以被对等体用来确定它们的连接状态。对等协作系统中的各对等体可执行类似于图4A和4B所示的过程的过程,以确定其连接状态。诸如响应于回声测试等发送给对等体的信息可与NAT设备类型的确定一起被用于标识与该对等体通信的机制。每个对等体可将此信息与对等协作会话中的其它对等体共享。在图2所示的实施例中,可以通过中继服务器130’分享该信息。然而,可按任何其它合适的方式共享该信息,包括通过服务器232和234。
无论对等体中的每一个对等体的传导信息是如何被确定并如何与其它对等体共享的,一旦该信息对于对等协作系统中的对等体可用,则其可被用来支持至其它对等体的定址消息的一个或多个模式,而不采用中继服务器。可以单独或组合使用这些寻址的模式来将消息路由至对等协作系统中的对等体。
图5A示出一直接定址模式。在图5A所示的配置中,对等体510生成被直接定址到对等体512的改变消息514。当没有NAT设备连接在对等体510和512之间时,或者当对等体510和512标识了能穿越对等体510和512之间的任何NAT设备的NAT穿越技术时,可使用这种直接定址。
图5B示出又一定址模式。在图5B所示的场景中,对等体520、522和524在相同的邻近区。对等体520与对等体522建立了连接。接着,对等体522与对等体524建立了连接。在这个场景中,对等体520发起改变消息5261。消息5261被定址到对等体522。
当接收到消息5261,对等体522将转发消息5262定址到对等体524。这样,对等体520内生成的改变可分发至对等体522和524两者。
图5C示出在不通过服务器中继的情况下改变消息被传输至邻近区内的多个对等体的另一场景。在图5C所示的场景中,对等体520、532、534和536均在相同的邻近区。对等体538也在该邻近区内被连接。
在所示的实施例中,对等体520生成改变消息5421。消息5421被定址到对等体538。当接收到这样的消息,对等体538生成被定址至对等体532的转发消息5422、被定址到对等体534的转发消息5423以及被定址到对等体536的转发消息5424
在所示的实施例中,对等体538可作为将接收到的消息转发至多个其它对等体的超对等体。在所示的实施例中,尽管服务器540不参与转发改变消息,但服务器540可协调邻近区内的对等体的操作。在此实施例中,服务器540可以是常规对等协作系统中的中继服务器,但可以被修改成将对等体配置成超对等体。例如,当对等体加入协作会话时,中继服务器540可轮询每个对等体的硬件配置。由此,中继服务器540可获得有关对等体设备中的每一个对等设备的信息,该信息可允许中继服务器标识具有能使得对等体设备比其它对等体设备处理更多消息流量的带宽、存储器和其它资源的对等体设备。因此,中继服务器520可以向对等体538发送控制消息541,用信号向该对等体538表示它应该作为超对等体。被指定为超对等体的设备可试图与其邻近区内的多个设备建立连接。
控制消息541可包含任何合适的类型信息以指明作为超对等体的对等体538操作的参数。例如,控制消息541可标识超对等体538应与之建立连接的对等体设备的数量。然而,诸如中继服务器540等控制服务器与被指定为超对等体的对等体设备之间所交换的具体信息对本发明并没有限制作用。
此外,诸如中继服务器540等控制服务器与被指定为超对等体的诸如对等体538的对等体设备之间的通信可以是双向的。例如,对等体设备538可以向中继服务器540提供有关由对等体538处理的消息流量的信息。这些消息可传输给中继服务器540,告知在邻近区内还需要更多的超对等体以减少对等体538上的负载或降低网络阻塞的可能性。
响应于该消息,中继服务器540可指定邻近区内的另一个设备作为超对等体。然而,本发明并不受限于触发将对等体指定为超对等体的时间或事件。例如,在多个对等体的协作会话之初可以将一个或多个设备指定为超对等体。或者,诸如中继服务器540等控制服务器可监控或以其他方式接收有关对等协作会话的信息,并响应于该信息而指定一个或多个设备作为超对等体。
在一些实施例中,中继服务器收集有关对等体的信息(例如CPU功率、存储器、正常运行时间等)以决定哪些对等体可以成为超对等体的候选者。当邻近区上的流量或资源使用超出一定阈值时,中继服务器可促进邻近区内的候选者成为超对等体。例如,如果每个对等体与邻近区中的每个其它对等体创建连接,从而形成全互联网络,则当对等体数量增加时,一对等体会超出其资源并因此请求中继服务器为邻近区分配一超对等体。
无论超对等体是否或如何在邻近区内建立,可使用有关包含在路由表中的邻近区的信息来标识在不涉及中继服务器的情况下来传输改变消息的机制。在图3A所示的实施例中,邻近区的信息被存储在由对等协作会话中的每个设备所构建的路由表中。图6提供了当设备加入对等协作会话后设备可通过其形成路由表的过程的示例。
图6所示的过程始于框610,在框610处,对等体试图发现该对等体位于其后的NAT设备(如果存在的话)的类型。另外,在框610处,对等体确定一地址,其它对等体设备可采用该地址将消息定向至该对等体。该信息可以用任何合适的方式来获得。例如,可采用图4A和4B所示的过程。
无论该信息是如何获得的,该信息可以被用来形成描述其它对等体设备如何与该对等体通信的地址向量。在框612处,将该地址向量与对等协作会话中的其它对等体共享。在所示出的实施例中,对等体通过将地址向量传输至中继服务器来将其地址向量与其它对等体共享。该中继服务器可将地址向量直接传输至协作会话中的所有其它对等体或通过一个或多个中继服务器来间接传递,其中一个或多个中继服务器被配置成帮助协作会话中的对等体间的通信。
除了获取其自身的地址向量之外,每个对等体接收协作会话中的其它对等体的地址向量。在所示出的实施例中,每个对等体从自己的中继服务器处接收对等协作会话中的所有其它对等体的地址向量。然而,本发明并不受限于各对等体接收协作会话中的其它对等体的地址向量的具体机制,并且,可以使用任何合适的机制。
除了接收有关地址向量的信息,各对等体可接收有关对等体间已建立的连接的信息。例如,如图3B所示,对等体352A已与对等体352B建立连接3701。然而,即使对等体352A和对等体352D位于相同的邻近区,对等体352A并没有与对等体352D建立直接的连接。因此,图6的过程包括处理框616,在框616处,对等体接收已建立直接连接的其它对等体的列表。
该过程继续到框618处。在框618,对等体可采用任何合适的机制与一个或多个对等体建立连接。例如,框618处的处理可包括按建立连接的“握手”协议进行的消息交换。交换的具体消息可取决于互联对等体的网络所采用的协议。因此,本发明并不受限于建立连接的具体机制。
无论连接是怎样建立的,在处理框620处,对等体可与其它对等体共享其已建立的直接连接。可通过将该消息提供至中继服务器或通过对等体的直接连接来共享有关连接的信息。然而,可采用任何合适的机制来共享该信息。
无论该信息是如何与其它对等体共享的,该过程前进至框622。在框622处,对等体可构建一路由表。该对等体可使用包含在框614处接收到的其它对等体的地址向量内的信息、在框616处接收到的有关直接连接的信息以及在框618处所建立的其自己的连接的信息,以标识由对等体组成的邻近区和这些邻近区内的互连。这些信息可反映在诸如图3B所示的路由表324等路由表中。然而,可采用任何合适的机制来捕捉这些信息。
对等体可使用框622处建立的路由表,以供在对等协作会话中传输改变消息。对等体可继续使用路由表,直至检测到工作空间内的成员的改变。当检测出工作空间成员有改变时,路由表不再准确。因此,可重复采用建立路由表的过程中的一些或全部步骤以构建更新的路由表。因此,当检测到工作空间成员或网络配置有改变时,该过程从判决框624分叉回至框612。从框612开始重复建立路由表的过程,并且对等体将采取必需的步骤以保持其路由表是最新的。
在一些示例中,即便没有检测出工作空间成员的改变,路由表也会变得过时。例如,对等体可能丢失与其它对等体的连接,从而改变了对等体之间的连接。任何数量的原因都会造成连接丢失,例如网络的性能问题、超载、给予对等网络中的一对等体的用户命令等。因此,路由表可以随时更新。可使用任何合适的机制来确定何时更新路由表。例如,对等协作系统中的所有对等体可周期性地更新它们的路由表。或者,对等协作系统中的任何设备可响应于协作系统中的感知到的条件信令其它设备更新它们的路由表。例如,如果设备在消息被直接从一个对等体发送至另一个对等体时经历了大量的通信失败,则该设备可以通过发送有关受影响的连接的信息来信令其它设备刷新它们的路由表。
无论在对等协作会话中使用的路由表是如何被确定为过时的,当表被确定为过时时,过程从判决框626分叉至可在其中重复建立路由表的过程的框628。例如,由于与邻近区内的其它对等体的连接已不再可用,对等体可检测出其路由表是过时的。对等体可在其路由表过时时对其更新。由于各对等体使用其自身的路由表来发送消息,因此它将最终检测出连接丢失并随后相应地更新其路由表。如果丢失互相之间的连接的两个对等体的网络配置改变了,则它们可进行NAT探测过程。如果由于例如流量超载等性能原因而丢失连接的,则对等体可等待,直至稍后当负载处于更合适的水平时重新建立连接。
对等协作会话中的对等体中的每一个可重复图6所示的过程,使得各对等体可维护路由表以便根据边缘路由技术有效地与其它对等体进行通信。
图7示出对等体可采用边缘路由技术使用路由表来向其它对等体广播改变信息的过程。广播的过程始于框710。在框710处,对等体生成一消息。在框710处生成的消息可以是采用已知对等协作系统使用的格式的改变消息。然而,本发明并不受限于消息的类型和格式。
在图7的示例中,消息旨在用于向对等协作系统中的所有对等体广播。然而,本发明并不受限于消息的格式以及接收对等体的数量。在框710处生成的消息可以是任何合适的格式,并且可被定向至对等协作会话中的对等体中的任何一个或多个。
无论消息的类型如何以及无论消息的预期接收者,该过程前进至环路起始712。环路起始712表示对包含对等体的每个对等体邻近区进行以接收框710处生成的消息的处理的开始。可使用根据图6的过程构建的路由表来标识各邻近区。然而,可以按任何合适的方式标识邻近区。
无论各邻近区是如何被标识的,该过程前进至框714。在框714处,对于所选的邻近区,构建一个或多个生成树。各生成树定义可定址邻近区内旨在接收框710处生成的消息的所有对等体的分发路径。例如,可为邻近区350(图3B)构建两个可能的生成树。为了到达邻近区350内的所有对等体,可将消息定向至对等体352A,以转发给客户机352B和客户机352C,客户机352C将从对等体352A接收到的消息转发至对等体352B。相反,生成树可由将消息发送至对等体352B的对等体352A来构建,该对等体352B会接着将消息转发至对等体352C。然后,对等体352D可接收由对等体352C转发的消息。因此,在图3B的简化示例中,两个生成树对网络350来说是可能的。对于包含具有对等体间更复杂互联的更多对等体的邻近区,可标识多于两个的生成树。框714的标识生成树的机制对本发明并不重要。然而,在一些实施例中,由对等体维护的路由表可以被看作有向图,在这种情况下,可采用跨有向图来构建生成树的已知算法。
无论这些生成树是如何被构建的,该过程前进至框716。在框716处,选择框714构建的生成树。在所示的实施例中,基于最低“成本”来进行选择。在该上下文中,“成本”可表示用于指示对等协作系统的性能特性的任何一个或多个度量。例如,相对于其它生成树要求消息被转发次数最少的生成树可以被选为最低成本生成树。或者,使得消息通过阻塞节点转发次数最少的生成树可以被选择为最低成本的生成树。然而,在框716处,可使用任何合适类型的度量来作为成本的指示。
无论这些生成树是如何被选择的,该过程继续至判决框718。在判决框718处,过程取决于在环路起始712所选择的邻近区是否可从执行图7的过程的对等体通过直接连接来到达而分叉。在所示出的实施例中,执行判决框718处的检查的一种简单方法是确定起始对等体是否属于所选择的邻近区。如果它是其自身的邻近区,则对等体可将其自身作为根来创建生成树,然后沿该生成树广播改变消息。
如果所选邻近区是可以被直接到达的,则过程分叉至框720。在框720,直接发送消息至形成所选生成树的根节点的对等体。相反,如果起始对等体不属于所选邻近区,则该过程从判决框718分叉至框740。在框740处,消息被发送至执行图7的过程的对等体的归属中继(home relay)。消息可按将消息在常规对等协作系统中被发送至对等体的归属中继的方法发送至归属中继。然而,可采用任何合适的机制在框740进行该处理。
在框742处,归属中继将消息转发至所选生成树的根节点。如常规对等协作系统中,该消息由归属中继转发。通过将消息直接发送至作为所选生成树的根节点的对等体来转发消息。或者,在到达能够与作为生成树的根节点的对等体通信的中继服务器之前,通过一个或多个中继服务器转发消息。
无论该消息是在框720处被直接发送至根节点,还是在框742处间接通过一个或多个中继服务器发送至根节点,该过程继续至框722。在框722,该消息通过生成树被传播。可由转发消息至与其有直接连接的那些节点的根节点来发起传播。然后,这些对等体可将消息转发至生成树中与其具有如在路由表中反映的直接连接的其它对等体。然而,可采用任何合适的机制来传播信息。
在判决框724处,该过程取决于该消息是否到达邻近区内的旨在接收消息的所有对等体而分叉。如果是,则该过程分叉至判决框732,在框732处,该过程进一步取决于是否有更多的剩余邻近区需要处理而分叉。如果是,则该过程分叉回环路起始712,在环路起始712处,对下一个邻近区重复处理过程。相反,如果没有剩余邻近区,则处理终止。
然而,如果发送不成功,则过程分叉至在其中消息被重新发送的框730。该消息可以与初始消息相同的方式被重新发送,或可选择不同路由路径将消息发送至其目的对等体。然而,如果可能有多种途径将消息发送至没有收到消息的对等体,则可以在重新发送时尝试不同的途径。可以按任何合适的顺序尝试这些途径。然而,在所示的实施例中,使用中继服务器进行重新发送可作为最后的手段来尝试,反映减少中继服务器上的负载的努力。
无论重新发送是通过何种机制进行的,一旦成功,则该过程前进至判决框732,在该判决框732处,如果存在下一个邻近区,则该过程对下一个邻近区重复,否则该过程结束。
如上所述,可以增加对等协作系统中直接定址发送到其它对等体的消息的数量,这能减少中继服务器上的负载,允许较低的成本和/或较高效的对等协作系统。
至此描述了本发明的至少一个实施例的若干方面,可以理解,本领域的技术人员可容易地想到各种更改、修改和改进。
这样的更改、修改和改进旨在是本发明的一部分,且旨在处于本发明的精神和范围内。从而,上述描述和附图仅用作示例。
可以用多种方式中的任一种来实现本发明的上述实施例。例如,可使用硬件、软件或其组合来实现各实施例。当使用软件实现时,该软件代码可在无论是在单个计算机中提供的还是在多个计算机之间分布的任何合适的处理器或处理器的集合上执行。
此外,应当理解,计算机可以用多种形式中的任一种来具体化,如机架式计算机、台式计算机、膝上型计算机、或图形输入板计算机。另外,计算机可以具体化在通常不被认为是计算机但具有合适的处理能力的设备中,包括个人数字助理(PDA)、智能电话、或任何其它合适的便携式或固定电子设备。
同样,计算机可以具有一个或多个输入和输出设备。这些设备主要可被用来呈现用户界面。可被用来提供用户界面的输出设备的示例包括用于可视地呈现输出的打印机或显示屏和用于可听地呈现输出的扬声器或其它声音生成设备。可被用于用户界面的输入设备的示例包括键盘和诸如鼠标、触摸板和数字化输入板等定点设备。作为另一示例,计算机可以通过语音标识或以其它可听格式来接收输入信息。
这些计算机可以通过任何合适形式的一个或多个网络来互连,包括作为局域网或广域网,如企业网络或因特网。这些网络可以基于任何合适的技术并可以根据任何合适的协议来操作,并且可以包括无线网络、有线网络或光纤网络。
而且,此处略述的各种方法或过程可被编码为可在采用各种操作系统或平台中任何一种的一个或多个处理器上执行的软件。此外,这样的软件可使用多种合适的程序设计语言和/或常规程序设计或脚本工具中的任何一种来编写,而且它们还可被编译为可执行机器语言代码或在框架或虚拟机上执行的中间代码。
就此,本发明可被具体化为用一个或多个程序编码的一个或多个计算机可读介质(例如,计算机存储器、一个或多个软盘、紧致盘、光盘、磁带、闪存、现场可编程门阵列或其它半导体器件中的电路配置等),当这些程序在一个或多个计算机或其它处理器上执行时,它们执行实现本发明的上述各个实施例的方法。这一个或多个计算机可读介质可以是便携的,使得其上存储的一个或多个程序可被加载到一个或多个不同的计算机或其它处理器上以便实现本发明上述的各个方面。
此处以一般的意义使用术语程序摂或软件摂来指可被用来对计算机或其它处理器编程以实现本发明上述的各个方面的任何类型的计算机代码或计算机可执行指令集。另外,应当理解,根据本实施例的一个方面,当被执行时实现本发明的方法的一个或多个计算机程序不必驻留在单个计算机或处理器上,而是可以按模块化的方式分布在多个不同的计算机或处理器之间以实现本发明的各方面。
计算机可执行指令可以具有可由一个或多个计算机或其它设备执行的各种形式,诸如程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可以按需在各个实施例中进行组合或分布。
本发明的各个方面可单独、组合或以未在前述实施例中特别讨论的各种安排来使用,从而并不将其应用限于前述描述中所述或附图中所示的组件的细节和安排。例如,可使用任何方式将一个实施例中描述的各方面与其它实施例中描述的各方面组合。
在权利要求书中使用诸如“第一”、“第二”、“第三”等序数词来修饰权利要求元素本身并不意味着一个权利要求元素较之另一个权利要求元素的优先级、先后次序或顺序、或者方法的各动作执行的时间顺序,而仅用作将具有某一名字的一个权利要求元素与(若不是使用序数词则)具有同一名字的另一元素区分开的标签以区分各权利要求元素。
同样,此处所使用的短语和术语是出于描述的目的而不应被认为是限制。此处对“包括”、“包含”、或“具有”、“含有”、“涉及”及其变型的使用旨在包括其后所列的项目及其等效物以及其它项目。

Claims (20)

1.一种操作对等协作系统的方法,该对等协作系统中的多个对等体(112、114、122、124)的每一个向该多个对等体中的其它对等体(112、114、122、124)广播协作信息,该方法包括:
确定(610)地址信息,该多个对等体中的第一对等体可采用该地址信息通过网络地址转换(NAT)设备接收分组;
与该多个对等体中的至少第二对等体共享(614)该地址信息;以及
将协作信息从该第二对等体协作信息发送(720,742)至该多个对等体中的其它对等体中的每一个,发送包括使用该地址信息发送包括被定址到该第一对等体的协作信息的至少一个分组。
2.如权利要求1所述的方法,其特征在于,确定地址信息包括:
从该第一对等体发送探测分组(410)至服务器;以及
在该第一对等体处接收响应(412)分组。
3.如权利要求2所述的方法,其特征在于,从该第二对等体发送包括发送(740)至少一个分组至该服务器,以用于分发至该多个对等体中的一部分。
4.如权利要求1所述的方法,其特征在于,共享该地址信息包括:
传输发送(612)地址向量至服务器;以及
分发(614)该地址信息至该多个对等体中的其它对等体的每一个。
5.如权利要求1所述的方法,其特征在于:
该方法还包括将标识该多个对等体中的对等体(352A、352B、352C、352D、362E、362F、362G、362H)组成的多个组(350、360)的数据结构(324)存储于与该第二对等体相关联的计算机可读介质(340)中,各组中的各对等体能够向该组中的至少一个其它对等体直接发送分组;以及
从该第二对等体发送包括将分组发送至该多个组中的每一个组中的至少一个对等体(712)。
6.如权利要求5所述的方法,其特征在于,
还包括将该多个组中的第一组中的多个对等体中的至少一个指定为超对等体(362E);以及
其中从该第二对等体发送包括:
将分组(542)发送至该超对等体;以及
将该分组从该超对等体转发至该第一组中的多个对等体(532、534、536)。
7.如权利要求5所述的方法,其特征在于,从该第二对等体发送包括:
将该分组发送(740)至公共可访问的服务器;以及
将该分组从该公共可访问的服务器分发(742)至该多个组中的至少一个组中的对等体。
8.一种操作对等协作系统的方法,该对等协作系统中的多个对等体的每一个向该多个对等体中的其它对等体中的每一个广播协作信息,该方法包括:
维护多个路由表(324),该多个路由表中的每一个与该多个对等体中的至少一部分中的对等体相关联,并且各路由表标识该多个对等体组成的组(350、360),各组中的各对等体能够使用直接定址到该组中的对等体的分组与该组中的至少一个其它对等体通信;
将分组发送(720、742)至该各组中的每一个组中的至少一个对等体;以及
从该各组中的至少一部分中的该至少一个对等体处,将该分组转发(722)至该组中的至少一个其它对等体,被转发至各其它对等体的分组被直接定址至该其它对等体。
9.如权利要求8所述的方法,其特征在于,还包括从该各组中的至少一个组中的至少一个其它对等体(538)处,将分组转发至该组中的第二其它对等体(532、534、536),转发至该第二其它对等体的分组(5422、5433、5424)被直接定址至该第二其它对等体。
10.如权利要求8所述的方法,其特征在于,将分组发送至该各组中的每个组中的至少一个对等体包括将分组发送至公共可访问的服务器(560)以及将该分组从该公共可访问的服务器转发至该多个组中的一部分中的至少一个对等体(552、554、556)。
11.如权利要求8所述的方法,其特征在于,将分组发送至该各组中的每一个组中的至少一个对等体包括:
将分组发送至该各组中的第一组中的第一对等体(538);以及
将该分组从该第一对等体转发至该第一组中的多个其它对等体(532、534、536)中的每一个。
12.如权利要求11所述的方法,其特征在于,将分组发送至该各组中的每一个组中的至少一个对等体包括:
将该分组发送至服务器(560);以及
将该分组转发至该各组中的第二组中的至少一个对等体(552、554、556)。
13.如权利要求12所述的方法,还包括从该服务器指定(541)该第一对等体应该将该分组转发至该第一组中的该多个其它对等体中的每一个。
14.如权利要求8所述的方法,其特征在于,该多个对等体在协作会话中通信,并且维护多个路由表,包括当对等体进入或离开(624)该协作会话或当对等体之间的互联改变时,重新构建该多个路由表。
15.一种连接至网络的计算设备,该计算设备具有用户界面并且适于作为对等体在对等协作系统中操作,该计算设备包括存储计算机可执行组件的计算机可读介质,包括:
用于通过该用户界面(332)与用户交互的活动组件(322),该活动组件适于生成用于发送至协作会话中的多个其它对等体的数据改变命令,该数据改变命令是基于与用户的交互的;
用于存储定义该多个对等体之间的在网络上的互联的信息的路由表(324);以及
用于通过发送多个消息来经网络发送数据改变命令的通信组件(326),各消息具有基于该路由表中的信息所选择的地址,该各消息中的至少一个被直接定址至该多个对等体中的至少一个。
16.如权利要求15所述的计算设备,其特征在于,该路由表包括被组织为多个邻近区(350、360)的信息,各邻近区包括多个对等体(352A、352B、352C、352D、362E、362F、362G、362H),该邻近区内的各对等体能够与该邻近区内的至少一个其它对等体传输消息。
17.如权利要求16所述的计算设备,其特征在于,各邻近区内的各对等体位于相同的网络地址转换(NAT)设备(116、126)之后,或者位于能从该邻近区内的不位于NAT设备之后的对等体处穿越的NAT设备之后。
18.如权利要求17所述的计算设备,其特征在于,该通信组件适于将该多个消息中的每一个发送至该多个邻近区中的每一个邻近区中的对等体。
19.如权利要求18所述的计算设备,其特征在于,该通信组件适于将该多个消息中的一部分直接发送至该多个邻近区中的至少一个邻近区中的对等体。
20.如权利要求19所述的计算设备,其特征在于,该通信组件适于将该多个消息中的一部分通过中介设备间接发送至该多个邻近区中的至少一个邻近区中的对等体。
CN200880016321A 2007-05-16 2008-04-20 具有边缘路由能力的对等协作系统 Pending CN101681337A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/803,800 US8656017B2 (en) 2007-05-16 2007-05-16 Peer-to-peer collaboration system with edge routing
US11/803,800 2007-05-16
PCT/US2008/060957 WO2008144144A1 (en) 2007-05-16 2008-04-20 Peer-to-peer collaboration system with edge routing

Publications (1)

Publication Number Publication Date
CN101681337A true CN101681337A (zh) 2010-03-24

Family

ID=40028631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880016321A Pending CN101681337A (zh) 2007-05-16 2008-04-20 具有边缘路由能力的对等协作系统

Country Status (7)

Country Link
US (1) US8656017B2 (zh)
EP (1) EP2153337B1 (zh)
JP (1) JP2010527561A (zh)
KR (1) KR101455434B1 (zh)
CN (1) CN101681337A (zh)
MX (1) MX2009012073A (zh)
WO (1) WO2008144144A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102893584A (zh) * 2010-05-21 2013-01-23 斯凯普公司 多级别路由
CN103108057A (zh) * 2011-11-09 2013-05-15 友讯科技股份有限公司 根据网络地址转译器的行为建立传输控制协议联机的方法
CN103119969A (zh) * 2010-07-08 2013-05-22 瑞典移动成像公司 间接设备通信
CN105743739A (zh) * 2016-03-28 2016-07-06 Tcl集团股份有限公司 对称式nat的端口预测方法、探测服务器及受测端设备
CN105847343A (zh) * 2016-03-21 2016-08-10 福建星网锐捷通讯股份有限公司 用于点对点传输的公网信息探测方法、装置及系统
CN107690777A (zh) * 2015-03-30 2018-02-13 爱迪德技术有限公司 监视对等网络
CN110086884A (zh) * 2019-05-09 2019-08-02 俞力奇 一种主机连接通讯系统及连接方法
CN110192382A (zh) * 2018-06-07 2019-08-30 关迟 一种网络通信方法、对等体及系统

Families Citing this family (183)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065418B1 (en) 2004-02-02 2011-11-22 Apple Inc. NAT traversal for media conferencing
DE102004043969A1 (de) * 2004-09-11 2006-03-16 Deutsche Thomson-Brandt Gmbh Netzwerkverbindungsschalteinheit
JP4847403B2 (ja) * 2007-04-20 2011-12-28 パナソニック株式会社 Ip通信装置及びip通信装置によるnat種別の判定方法
US8631155B2 (en) * 2007-06-29 2014-01-14 Microsoft Corporation Network address translation traversals for peer-to-peer networks
TWI363537B (en) * 2007-07-27 2012-05-01 Qubes Inc Method for establishing network connection and mobile communication system thereof
US9178957B2 (en) * 2007-09-27 2015-11-03 Adobe Systems Incorporated Application and data agnostic collaboration services
US9420014B2 (en) 2007-11-15 2016-08-16 Adobe Systems Incorporated Saving state of a collaborative session in an editable format
KR101422213B1 (ko) * 2007-11-23 2014-07-22 삼성전자 주식회사 단말의 능력을 기초로 역할을 설정하는 장치 및 그 방법
CN101965716A (zh) * 2008-01-10 2011-02-02 惠普开发有限公司 多路对等媒体流传送
JP5423401B2 (ja) * 2008-02-22 2014-02-19 日本電気株式会社 情報処理装置、情報処理システム、設定プログラム送信方法及びサーバ設定プログラム
CN101557388B (zh) * 2008-04-11 2012-05-23 中国科学院声学研究所 一种基于UPnP和STUN技术相结合的NAT穿越方法
KR101467512B1 (ko) * 2008-04-30 2014-12-02 삼성전자주식회사 피투피 네트워크 시스템 및 그의 운용 방법
KR101472936B1 (ko) * 2008-04-30 2014-12-17 삼성전자주식회사 피투피 네트워크 시스템 및 그의 지역 기반 운용 방법
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
US20090327187A1 (en) * 2008-06-25 2009-12-31 Broadon Communications Corp. Connectivity in a peer network
EP2216957A1 (en) * 2009-02-06 2010-08-11 Thomson Licensing Device and method for disseminating content data between peers in a P2P mode, by using a bipartite peer overlay
KR101511154B1 (ko) * 2008-07-02 2015-04-10 톰슨 라이센싱 이분 피어 오버레이를 사용함으로써, p2p모드로 피어 사이에 콘텐츠 데이터를 배포하기 위한 디바이스 및 방법
US8631094B1 (en) * 2008-08-08 2014-01-14 Google Inc. Distributed parallel determination of single and multiple source shortest paths in large directed graphs
US8064362B2 (en) * 2008-08-21 2011-11-22 Cisco Technology, Inc. Wide area network optimization proxy routing protocol
US9294291B2 (en) * 2008-11-12 2016-03-22 Adobe Systems Incorporated Adaptive connectivity in network-based collaboration
US7962627B2 (en) * 2008-12-04 2011-06-14 Microsoft Corporation Peer-to-peer network address translator (NAT) traversal techniques
US8924513B2 (en) * 2009-07-08 2014-12-30 International Business Machines Corporation Storage system
US8825820B2 (en) * 2009-09-18 2014-09-02 At&T Intellectual Property I, Lp Network aware application management
JP5273002B2 (ja) * 2009-09-30 2013-08-28 ブラザー工業株式会社 通信システム、通信制御装置、通信制御方法、及び通信制御プログラム
US8700780B2 (en) * 2009-10-15 2014-04-15 Qualcomm Incorporated Group owner selection with crossing requests
US8923293B2 (en) 2009-10-21 2014-12-30 Palo Alto Research Center Incorporated Adaptive multi-interface use for content networking
US8438294B2 (en) * 2010-04-07 2013-05-07 Apple Inc. Application programming interface, system, and method for collaborative online applications
CN102299975B (zh) * 2010-06-28 2014-02-26 杭州华三通信技术有限公司 自适应多层nat环境的nat设备调整方法和系统
US8606884B2 (en) * 2010-09-21 2013-12-10 Taesung Kim System and method for web hosting behind NATs
US8934492B1 (en) 2010-09-28 2015-01-13 Adtran, Inc. Network systems and methods for efficiently dropping packets carried by virtual circuits
US9264459B2 (en) * 2010-12-16 2016-02-16 Palo Alto Research Center Incorporated SIP-based custodian routing in content-centric networks
US9712340B2 (en) * 2011-02-28 2017-07-18 Red Hat, Inc. Using a shared data store for peer discovery
US9503223B2 (en) * 2011-03-04 2016-11-22 Blackberry Limited Controlling network device behavior
CN103037448B (zh) 2011-09-30 2015-05-27 华为技术有限公司 内容发布方法和用户设备
CN103095664B (zh) * 2011-10-31 2015-12-16 国际商业机器公司 Ip多媒体会话建立方法和系统
KR20130052240A (ko) * 2011-11-11 2013-05-22 삼성전자주식회사 네트워크 주소 변환기 통과 기법을 프로비저닝하기 위한 방법 및 장치
EP3800854A1 (en) * 2012-02-14 2021-04-07 INTEL Corporation Peer to peer networking and sharing systems and methods
CN104205741A (zh) * 2012-03-28 2014-12-10 索尼公司 信息处理设备、信息处理方法和程序
US8650309B2 (en) * 2012-06-01 2014-02-11 Cisco Technology, Inc. Cascading architecture for audio and video streams
US9280546B2 (en) 2012-10-31 2016-03-08 Palo Alto Research Center Incorporated System and method for accessing digital content using a location-independent name
US9400800B2 (en) 2012-11-19 2016-07-26 Palo Alto Research Center Incorporated Data transport by named content synchronization
US10430839B2 (en) 2012-12-12 2019-10-01 Cisco Technology, Inc. Distributed advertisement insertion in content-centric networks
US9978025B2 (en) 2013-03-20 2018-05-22 Cisco Technology, Inc. Ordered-element naming for name-based packet forwarding
TWI523456B (zh) * 2013-04-24 2016-02-21 仁寶電腦工業股份有限公司 網路通訊之連線方法與管理伺服器
US9935791B2 (en) 2013-05-20 2018-04-03 Cisco Technology, Inc. Method and system for name resolution across heterogeneous architectures
CN104184755A (zh) * 2013-05-21 2014-12-03 华为终端有限公司 一种网页实时通信方法、系统及终端
US9185120B2 (en) 2013-05-23 2015-11-10 Palo Alto Research Center Incorporated Method and system for mitigating interest flooding attacks in content-centric networks
US9852230B2 (en) 2013-06-29 2017-12-26 Google Llc Asynchronous message passing for large graph clustering
US9596295B2 (en) 2013-06-29 2017-03-14 Google Inc. Computing connected components in large graphs
US9444722B2 (en) 2013-08-01 2016-09-13 Palo Alto Research Center Incorporated Method and apparatus for configuring routing paths in a custodian-based routing architecture
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
US9276840B2 (en) 2013-10-30 2016-03-01 Palo Alto Research Center Incorporated Interest messages with a payload for a named data network
US9282050B2 (en) 2013-10-30 2016-03-08 Palo Alto Research Center Incorporated System and method for minimum path MTU discovery in content centric networks
US9401864B2 (en) 2013-10-31 2016-07-26 Palo Alto Research Center Incorporated Express header for packets with hierarchically structured variable-length identifiers
US9311377B2 (en) 2013-11-13 2016-04-12 Palo Alto Research Center Incorporated Method and apparatus for performing server handoff in a name-based content distribution system
US10129365B2 (en) 2013-11-13 2018-11-13 Cisco Technology, Inc. Method and apparatus for pre-fetching remote content based on static and dynamic recommendations
US10101801B2 (en) 2013-11-13 2018-10-16 Cisco Technology, Inc. Method and apparatus for prefetching content in a data stream
US10089655B2 (en) 2013-11-27 2018-10-02 Cisco Technology, Inc. Method and apparatus for scalable data broadcasting
US9503358B2 (en) 2013-12-05 2016-11-22 Palo Alto Research Center Incorporated Distance-based routing in an information-centric network
US9515995B2 (en) * 2013-12-27 2016-12-06 Futurewei Technologies, Inc. Method and apparatus for network address translation and firewall traversal
US9379979B2 (en) 2014-01-14 2016-06-28 Palo Alto Research Center Incorporated Method and apparatus for establishing a virtual interface for a set of mutual-listener devices
US10098051B2 (en) 2014-01-22 2018-10-09 Cisco Technology, Inc. Gateways and routing in software-defined manets
US10172068B2 (en) 2014-01-22 2019-01-01 Cisco Technology, Inc. Service-oriented routing in software-defined MANETs
US9374304B2 (en) 2014-01-24 2016-06-21 Palo Alto Research Center Incorporated End-to end route tracing over a named-data network
US9954678B2 (en) 2014-02-06 2018-04-24 Cisco Technology, Inc. Content-based transport security
US9531679B2 (en) 2014-02-06 2016-12-27 Palo Alto Research Center Incorporated Content-based transport security for distributed producers
US9678998B2 (en) 2014-02-28 2017-06-13 Cisco Technology, Inc. Content name resolution for information centric networking
US10089651B2 (en) 2014-03-03 2018-10-02 Cisco Technology, Inc. Method and apparatus for streaming advertisements in a scalable data broadcasting system
US9836540B2 (en) 2014-03-04 2017-12-05 Cisco Technology, Inc. System and method for direct storage access in a content-centric network
US9473405B2 (en) 2014-03-10 2016-10-18 Palo Alto Research Center Incorporated Concurrent hashes and sub-hashes on data streams
US9391896B2 (en) 2014-03-10 2016-07-12 Palo Alto Research Center Incorporated System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
US9626413B2 (en) 2014-03-10 2017-04-18 Cisco Systems, Inc. System and method for ranking content popularity in a content-centric network
US9407432B2 (en) 2014-03-19 2016-08-02 Palo Alto Research Center Incorporated System and method for efficient and secure distribution of digital content
US9916601B2 (en) 2014-03-21 2018-03-13 Cisco Technology, Inc. Marketplace for presenting advertisements in a scalable data broadcasting system
US9363179B2 (en) 2014-03-26 2016-06-07 Palo Alto Research Center Incorporated Multi-publisher routing protocol for named data networks
US9363086B2 (en) 2014-03-31 2016-06-07 Palo Alto Research Center Incorporated Aggregate signing of data in content centric networking
US9716622B2 (en) 2014-04-01 2017-07-25 Cisco Technology, Inc. System and method for dynamic name configuration in content-centric networks
US9390289B2 (en) 2014-04-07 2016-07-12 Palo Alto Research Center Incorporated Secure collection synchronization using matched network names
US10075521B2 (en) 2014-04-07 2018-09-11 Cisco Technology, Inc. Collection synchronization using equality matched network names
US9473576B2 (en) 2014-04-07 2016-10-18 Palo Alto Research Center Incorporated Service discovery using collection synchronization with exact names
US9451032B2 (en) 2014-04-10 2016-09-20 Palo Alto Research Center Incorporated System and method for simple service discovery in content-centric networks
US9203885B2 (en) 2014-04-28 2015-12-01 Palo Alto Research Center Incorporated Method and apparatus for exchanging bidirectional streams over a content centric network
US9992281B2 (en) 2014-05-01 2018-06-05 Cisco Technology, Inc. Accountable content stores for information centric networks
US9609014B2 (en) 2014-05-22 2017-03-28 Cisco Systems, Inc. Method and apparatus for preventing insertion of malicious content at a named data network router
US9455835B2 (en) 2014-05-23 2016-09-27 Palo Alto Research Center Incorporated System and method for circular link resolution with hash-based names in content-centric networks
US9276751B2 (en) 2014-05-28 2016-03-01 Palo Alto Research Center Incorporated System and method for circular link resolution with computable hash-based names in content-centric networks
US9516144B2 (en) 2014-06-19 2016-12-06 Palo Alto Research Center Incorporated Cut-through forwarding of CCNx message fragments with IP encapsulation
US9467377B2 (en) 2014-06-19 2016-10-11 Palo Alto Research Center Incorporated Associating consumer states with interests in a content-centric network
US9537719B2 (en) 2014-06-19 2017-01-03 Palo Alto Research Center Incorporated Method and apparatus for deploying a minimal-cost CCN topology
US9426113B2 (en) 2014-06-30 2016-08-23 Palo Alto Research Center Incorporated System and method for managing devices over a content centric network
US9699198B2 (en) 2014-07-07 2017-07-04 Cisco Technology, Inc. System and method for parallel secure content bootstrapping in content-centric networks
US9621354B2 (en) 2014-07-17 2017-04-11 Cisco Systems, Inc. Reconstructable content objects
US9959156B2 (en) 2014-07-17 2018-05-01 Cisco Technology, Inc. Interest return control message
US9729616B2 (en) 2014-07-18 2017-08-08 Cisco Technology, Inc. Reputation-based strategy for forwarding and responding to interests over a content centric network
US9590887B2 (en) 2014-07-18 2017-03-07 Cisco Systems, Inc. Method and system for keeping interest alive in a content centric network
US9535968B2 (en) 2014-07-21 2017-01-03 Palo Alto Research Center Incorporated System for distributing nameless objects using self-certifying names
US9882964B2 (en) 2014-08-08 2018-01-30 Cisco Technology, Inc. Explicit strategy feedback in name-based forwarding
US9729662B2 (en) 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
US9503365B2 (en) 2014-08-11 2016-11-22 Palo Alto Research Center Incorporated Reputation-based instruction processing over an information centric network
US9391777B2 (en) 2014-08-15 2016-07-12 Palo Alto Research Center Incorporated System and method for performing key resolution over a content centric network
US9800637B2 (en) 2014-08-19 2017-10-24 Cisco Technology, Inc. System and method for all-in-one content stream in content-centric networks
US9467492B2 (en) 2014-08-19 2016-10-11 Palo Alto Research Center Incorporated System and method for reconstructable all-in-one content stream
US9497282B2 (en) 2014-08-27 2016-11-15 Palo Alto Research Center Incorporated Network coding for content-centric network
US10204013B2 (en) 2014-09-03 2019-02-12 Cisco Technology, Inc. System and method for maintaining a distributed and fault-tolerant state over an information centric network
US9553812B2 (en) 2014-09-09 2017-01-24 Palo Alto Research Center Incorporated Interest keep alives at intermediate routers in a CCN
US10069933B2 (en) 2014-10-23 2018-09-04 Cisco Technology, Inc. System and method for creating virtual interfaces based on network characteristics
US9536059B2 (en) 2014-12-15 2017-01-03 Palo Alto Research Center Incorporated Method and system for verifying renamed content using manifests in a content centric network
US9590948B2 (en) 2014-12-15 2017-03-07 Cisco Systems, Inc. CCN routing using hardware-assisted hash tables
US10237189B2 (en) 2014-12-16 2019-03-19 Cisco Technology, Inc. System and method for distance-based interest forwarding
US9846881B2 (en) 2014-12-19 2017-12-19 Palo Alto Research Center Incorporated Frugal user engagement help systems
US9585159B2 (en) * 2014-12-19 2017-02-28 Qualcomm Incorporated Opportunistic dual-band relay
US10681145B1 (en) * 2014-12-22 2020-06-09 Chelsio Communications, Inc. Replication in a protocol offload network interface controller
US9473475B2 (en) 2014-12-22 2016-10-18 Palo Alto Research Center Incorporated Low-cost authenticated signing delegation in content centric networking
US10003520B2 (en) 2014-12-22 2018-06-19 Cisco Technology, Inc. System and method for efficient name-based content routing using link-state information in information-centric networks
US9660825B2 (en) 2014-12-24 2017-05-23 Cisco Technology, Inc. System and method for multi-source multicasting in content-centric networks
US9946743B2 (en) 2015-01-12 2018-04-17 Cisco Technology, Inc. Order encoded manifests in a content centric network
US9916457B2 (en) 2015-01-12 2018-03-13 Cisco Technology, Inc. Decoupled name security binding for CCN objects
US9954795B2 (en) 2015-01-12 2018-04-24 Cisco Technology, Inc. Resource allocation using CCN manifests
US9602596B2 (en) 2015-01-12 2017-03-21 Cisco Systems, Inc. Peer-to-peer sharing in a content centric network
US9832291B2 (en) 2015-01-12 2017-11-28 Cisco Technology, Inc. Auto-configurable transport stack
US9462006B2 (en) 2015-01-21 2016-10-04 Palo Alto Research Center Incorporated Network-layer application-specific trust model
US9800659B2 (en) * 2015-02-02 2017-10-24 International Business Machines Corporation Enterprise peer-to-peer storage and method of managing peer network storage
US9552493B2 (en) 2015-02-03 2017-01-24 Palo Alto Research Center Incorporated Access control framework for information centric networking
US10333840B2 (en) 2015-02-06 2019-06-25 Cisco Technology, Inc. System and method for on-demand content exchange with adaptive naming in information-centric networks
US10075401B2 (en) 2015-03-18 2018-09-11 Cisco Technology, Inc. Pending interest table behavior
US10116605B2 (en) 2015-06-22 2018-10-30 Cisco Technology, Inc. Transport stack name scheme and identity management
US10075402B2 (en) 2015-06-24 2018-09-11 Cisco Technology, Inc. Flexible command and control in content centric networks
US10701038B2 (en) 2015-07-27 2020-06-30 Cisco Technology, Inc. Content negotiation in a content centric network
US9986034B2 (en) 2015-08-03 2018-05-29 Cisco Technology, Inc. Transferring state in content centric network stacks
US10610144B2 (en) 2015-08-19 2020-04-07 Palo Alto Research Center Incorporated Interactive remote patient monitoring and condition management intervention system
US9832123B2 (en) 2015-09-11 2017-11-28 Cisco Technology, Inc. Network named fragments in a content centric network
US10355999B2 (en) 2015-09-23 2019-07-16 Cisco Technology, Inc. Flow control with network named fragments
US10313227B2 (en) 2015-09-24 2019-06-04 Cisco Technology, Inc. System and method for eliminating undetected interest looping in information-centric networks
US9977809B2 (en) 2015-09-24 2018-05-22 Cisco Technology, Inc. Information and data framework in a content centric network
US10454820B2 (en) 2015-09-29 2019-10-22 Cisco Technology, Inc. System and method for stateless information-centric networking
US10263965B2 (en) 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
US9794238B2 (en) 2015-10-29 2017-10-17 Cisco Technology, Inc. System for key exchange in a content centric network
US9807205B2 (en) 2015-11-02 2017-10-31 Cisco Technology, Inc. Header compression for CCN messages using dictionary
US10009446B2 (en) 2015-11-02 2018-06-26 Cisco Technology, Inc. Header compression for CCN messages using dictionary learning
US10021222B2 (en) 2015-11-04 2018-07-10 Cisco Technology, Inc. Bit-aligned header compression for CCN messages using dictionary
US10097521B2 (en) 2015-11-20 2018-10-09 Cisco Technology, Inc. Transparent encryption in a content centric network
US9912776B2 (en) 2015-12-02 2018-03-06 Cisco Technology, Inc. Explicit content deletion commands in a content centric network
US10097346B2 (en) 2015-12-09 2018-10-09 Cisco Technology, Inc. Key catalogs in a content centric network
US10078062B2 (en) 2015-12-15 2018-09-18 Palo Alto Research Center Incorporated Device health estimation by combining contextual information with sensor data
US10257271B2 (en) 2016-01-11 2019-04-09 Cisco Technology, Inc. Chandra-Toueg consensus in a content centric network
US9949301B2 (en) 2016-01-20 2018-04-17 Palo Alto Research Center Incorporated Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks
US10305864B2 (en) 2016-01-25 2019-05-28 Cisco Technology, Inc. Method and system for interest encryption in a content centric network
US10043016B2 (en) 2016-02-29 2018-08-07 Cisco Technology, Inc. Method and system for name encryption agreement in a content centric network
US10051071B2 (en) 2016-03-04 2018-08-14 Cisco Technology, Inc. Method and system for collecting historical network information in a content centric network
US10003507B2 (en) 2016-03-04 2018-06-19 Cisco Technology, Inc. Transport session state protocol
US10742596B2 (en) 2016-03-04 2020-08-11 Cisco Technology, Inc. Method and system for reducing a collision probability of hash-based names using a publisher identifier
US10038633B2 (en) 2016-03-04 2018-07-31 Cisco Technology, Inc. Protocol to query for historical network information in a content centric network
US9832116B2 (en) 2016-03-14 2017-11-28 Cisco Technology, Inc. Adjusting entries in a forwarding information base in a content centric network
US10212196B2 (en) 2016-03-16 2019-02-19 Cisco Technology, Inc. Interface discovery and authentication in a name-based network
US11436656B2 (en) 2016-03-18 2022-09-06 Palo Alto Research Center Incorporated System and method for a real-time egocentric collaborative filter on large datasets
US10067948B2 (en) 2016-03-18 2018-09-04 Cisco Technology, Inc. Data deduping in content centric networking manifests
US10091330B2 (en) 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
US10033639B2 (en) 2016-03-25 2018-07-24 Cisco Technology, Inc. System and method for routing packets in a content centric network using anonymous datagrams
US10320760B2 (en) 2016-04-01 2019-06-11 Cisco Technology, Inc. Method and system for mutating and caching content in a content centric network
US9930146B2 (en) 2016-04-04 2018-03-27 Cisco Technology, Inc. System and method for compressing content centric networking messages
US10425503B2 (en) 2016-04-07 2019-09-24 Cisco Technology, Inc. Shared pending interest table in a content centric network
US10027578B2 (en) 2016-04-11 2018-07-17 Cisco Technology, Inc. Method and system for routable prefix queries in a content centric network
US10404450B2 (en) 2016-05-02 2019-09-03 Cisco Technology, Inc. Schematized access control in a content centric network
US10320675B2 (en) 2016-05-04 2019-06-11 Cisco Technology, Inc. System and method for routing packets in a stateless content centric network
US10547589B2 (en) 2016-05-09 2020-01-28 Cisco Technology, Inc. System for implementing a small computer systems interface protocol over a content centric network
US10084764B2 (en) 2016-05-13 2018-09-25 Cisco Technology, Inc. System for a secure encryption proxy in a content centric network
US10063414B2 (en) 2016-05-13 2018-08-28 Cisco Technology, Inc. Updating a transport stack in a content centric network
US10103989B2 (en) 2016-06-13 2018-10-16 Cisco Technology, Inc. Content object return messages in a content centric network
US10305865B2 (en) 2016-06-21 2019-05-28 Cisco Technology, Inc. Permutation-based content encryption with manifests in a content centric network
US10148572B2 (en) 2016-06-27 2018-12-04 Cisco Technology, Inc. Method and system for interest groups in a content centric network
US10009266B2 (en) 2016-07-05 2018-06-26 Cisco Technology, Inc. Method and system for reference counted pending interest tables in a content centric network
US9992097B2 (en) 2016-07-11 2018-06-05 Cisco Technology, Inc. System and method for piggybacking routing information in interests in a content centric network
US10122624B2 (en) 2016-07-25 2018-11-06 Cisco Technology, Inc. System and method for ephemeral entries in a forwarding information base in a content centric network
US10069729B2 (en) 2016-08-08 2018-09-04 Cisco Technology, Inc. System and method for throttling traffic based on a forwarding information base in a content centric network
US10956412B2 (en) 2016-08-09 2021-03-23 Cisco Technology, Inc. Method and system for conjunctive normal form attribute matching in a content centric network
KR101941583B1 (ko) * 2016-08-26 2019-01-23 홍익대학교 산학협력단 P2p 네트워크 기반 피어 관리 방법 및 피어 관리 장치
US10033642B2 (en) 2016-09-19 2018-07-24 Cisco Technology, Inc. System and method for making optimal routing decisions based on device-specific parameters in a content centric network
US10212248B2 (en) 2016-10-03 2019-02-19 Cisco Technology, Inc. Cache management on high availability routers in a content centric network
US10447805B2 (en) 2016-10-10 2019-10-15 Cisco Technology, Inc. Distributed consensus in a content centric network
US10135948B2 (en) 2016-10-31 2018-11-20 Cisco Technology, Inc. System and method for process migration in a content centric network
US10243851B2 (en) 2016-11-21 2019-03-26 Cisco Technology, Inc. System and method for forwarder connection information in a content centric network
US20200145484A1 (en) * 2017-02-03 2020-05-07 Hewlett-Packard Development Company, L.P. Sub-groups of remote computing devices with relay devices
KR101962022B1 (ko) 2017-07-18 2019-03-25 주식회사 에스원 에지 서버를 활용한 피-투-피 접근 시스템 및 그 방법

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807165B2 (en) * 2000-11-08 2004-10-19 Meshnetworks, Inc. Time division protocol for an ad-hoc, peer-to-peer radio network having coordinating channel access to shared parallel data channels with separate reservation channel
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7151769B2 (en) * 2001-03-22 2006-12-19 Meshnetworks, Inc. Prioritized-routing for an ad-hoc, peer-to-peer, mobile radio access system based on battery-power levels and type of service
US7752127B2 (en) * 2001-09-28 2010-07-06 Acs State & Local Solutions, Inc. Apparatus and methods for providing a national portal for electronic services
US7028183B2 (en) * 2001-11-13 2006-04-11 Symantec Corporation Enabling secure communication in a clustered or distributed architecture
US7079520B2 (en) * 2001-12-28 2006-07-18 Cisco Technology, Inc. Methods and apparatus for implementing NAT traversal in mobile IP
US7092391B2 (en) * 2002-02-26 2006-08-15 Skyley Networks, Inc. Multi-hop peer-to-peer telecommunications method in a wireless network, radio terminal telecommunications method, and medium recording a program for causing a processor to implement the radio terminal telecommunications method
US7803052B2 (en) * 2002-06-28 2010-09-28 Microsoft Corporation Discovery and distribution of game session information
US8224985B2 (en) * 2005-10-04 2012-07-17 Sony Computer Entertainment Inc. Peer-to-peer communication traversing symmetric network address translators
US7213047B2 (en) * 2002-10-31 2007-05-01 Sun Microsystems, Inc. Peer trust evaluation using mobile agents in peer-to-peer networks
US7454520B2 (en) * 2002-11-20 2008-11-18 Hewlett-Packard Development Company, L.P. Method and apparatus for generating a routing table
FR2853187B1 (fr) * 2003-03-28 2006-01-13 At & T Corp Systeme permettant a toute application reseau de fonctionner de facon transparente a travers un dispositif de traduction d'adresse de reseau
US20040249973A1 (en) * 2003-03-31 2004-12-09 Alkhatib Hasan S. Group agent
US7949785B2 (en) * 2003-03-31 2011-05-24 Inpro Network Facility, Llc Secure virtual community network system
US7656870B2 (en) * 2004-06-29 2010-02-02 Damaka, Inc. System and method for peer-to-peer hybrid communications
US8571011B2 (en) * 2004-08-13 2013-10-29 Verizon Business Global Llc Method and system for providing voice over IP managed services utilizing a centralized data store
EP1646205A1 (en) * 2004-10-08 2006-04-12 Deutsche Thomson-Brandt Gmbh Method for establishing communication between peer-groups
US7606187B2 (en) * 2004-10-28 2009-10-20 Meshnetworks, Inc. System and method to support multicast routing in large scale wireless mesh networks
US7639681B2 (en) * 2004-11-23 2009-12-29 Microsoft Corporation System and method for a distributed server for peer-to-peer networks
US7443849B2 (en) * 2004-12-30 2008-10-28 Cisco Technology, Inc. Mechanisms for detection of non-supporting NAT traversal boxes in the path
US7912046B2 (en) * 2005-02-11 2011-03-22 Microsoft Corporation Automated NAT traversal for peer-to-peer networks
US7646775B2 (en) * 2005-03-08 2010-01-12 Leaf Networks, Llc Protocol and system for firewall and NAT traversal for TCP connections
US7983254B2 (en) 2005-07-20 2011-07-19 Verizon Business Global Llc Method and system for securing real-time media streams in support of interdomain traversal
US8024727B2 (en) * 2006-06-15 2011-09-20 Microsoft Corporation Enhancing or replacing host operating system functionality by leveraging guest operating system functionality

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9118733B2 (en) 2010-05-21 2015-08-25 Skype Multilevel routing
CN102893584A (zh) * 2010-05-21 2013-01-23 斯凯普公司 多级别路由
US10020997B2 (en) 2010-07-08 2018-07-10 Nokia Technologies Oy Device communication
CN103119969A (zh) * 2010-07-08 2013-05-22 瑞典移动成像公司 间接设备通信
US10200257B2 (en) 2010-07-08 2019-02-05 Nokia Technologies Oy Indirect device communication
CN103108057A (zh) * 2011-11-09 2013-05-15 友讯科技股份有限公司 根据网络地址转译器的行为建立传输控制协议联机的方法
CN103108057B (zh) * 2011-11-09 2016-08-03 友讯科技股份有限公司 根据网络地址转译器的行为建立传输控制协议联机的方法
CN107690777A (zh) * 2015-03-30 2018-02-13 爱迪德技术有限公司 监视对等网络
CN105847343A (zh) * 2016-03-21 2016-08-10 福建星网锐捷通讯股份有限公司 用于点对点传输的公网信息探测方法、装置及系统
CN105847343B (zh) * 2016-03-21 2019-01-25 福建星网锐捷通讯股份有限公司 用于点对点传输的公网信息探测方法、装置及系统
CN105743739A (zh) * 2016-03-28 2016-07-06 Tcl集团股份有限公司 对称式nat的端口预测方法、探测服务器及受测端设备
CN110192382A (zh) * 2018-06-07 2019-08-30 关迟 一种网络通信方法、对等体及系统
CN110192382B (zh) * 2018-06-07 2021-08-31 关迟 一种网络通信方法、对等体及系统
CN110086884A (zh) * 2019-05-09 2019-08-02 俞力奇 一种主机连接通讯系统及连接方法

Also Published As

Publication number Publication date
KR20100019420A (ko) 2010-02-18
US8656017B2 (en) 2014-02-18
JP2010527561A (ja) 2010-08-12
EP2153337A1 (en) 2010-02-17
WO2008144144A1 (en) 2008-11-27
EP2153337A4 (en) 2015-02-25
EP2153337B1 (en) 2020-07-29
KR101455434B1 (ko) 2014-10-27
US20080288580A1 (en) 2008-11-20
MX2009012073A (es) 2009-11-19

Similar Documents

Publication Publication Date Title
CN101681337A (zh) 具有边缘路由能力的对等协作系统
Yassein et al. Internet of Things: Survey and open issues of MQTT protocol
Abdelaziz et al. Distributed controller clustering in software defined networks
Baumgart et al. OverSim: A flexible overlay network simulation framework
US7912959B2 (en) Architecture for building a peer to peer messaging platform
US6505254B1 (en) Methods and apparatus for routing requests in a network
US20150003296A1 (en) System and method for providing p2p based reconfigurable computing and structured data distribution
US11354152B2 (en) Self-evolving microservices
CN102075508A (zh) 针对网络协议的漏洞挖掘系统和方法
US8630837B2 (en) Multicast emulation
CN114598698B (zh) 一种数据传输方法、装置、电子设备及计算机存储介质
CN109194729A (zh) 一种信息通讯系统以及方法
KR20060108126A (ko) 사설망과 공인망이 혼재된 네크워크에서 메시지 전송 방법및 장치
KR102043031B1 (ko) 서버 및 이를 이용한 부하 분산 방법
CN112019641A (zh) 数据传输方法和装置
Ganguly et al. Improving peer connectivity in wide-area overlays of virtual workstations
US20180288140A1 (en) Communication device and a communication network
US11057415B1 (en) Systems and methods for dynamic zone protection of networks
CN113973086B (zh) 一种数据传输方法、装置及存储介质
Pham et al. Elasticity for MQTT Brokers in IoT Applications
Alodat Monitor Potential Attack Locations in a Specific Area within DTN Network
Chamania et al. Lessons learned from implementing a path computation element (PCE) emulator
Bezerra Software-Defined Cluster: an SDN-Based Cluster architecture for IoT
Yang et al. WGMDS: A WSRF-compliant information service on wireless Grids
Okanda et al. A principled approach to the management of overlay networks using reflection

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20100324