一种分散式网络信息的交换方法

文档序号:7999510阅读:258来源:国知局
一种分散式网络信息的交换方法
【专利摘要】本发明涉及一种分散式网络信息的交换方法,该方法基于P2P网络系统,包括:接收网络装置发出的服务器地址查询请求后,将通信协议服务器的地址提供予所述网络装置,以令网络装置能通过通信协议服务器,对网络装置所对应的NAT路由器进行NAT行为测试;根据网络装置的判断结果,将对应于不具传递能力的NAT路由器的第一网络装置,分派予对应具有传递能力的NAT路由器的一第二网络装置;若接收到第三网络装置发出的连接埠查询请求,且连接埠查询请求针对第一网络装置时,将第二网络装置的连接埠地址提供予第三网络装置,以令第三网络装置能通过第二网络装置与第一网络装置通信。
【专利说明】一种分散式网络信息的交换方法

【技术领域】
[0001] 本发明涉及一种分散式网络信息的交换方法,尤指一种能判断P2P网络系统中 NAT路由器是否具备传递信息的能力,并将具备传递能力的终端分派予不具传递能力的终 端,以令具备传递能力的终端能协助不具传递能力的终端传递信息的方法。

【背景技术】
[0002] 随着通信科技的发展与进步,各种与网络相关的应用已成为日常生活中的一部 分。日益兴盛的P2P (peer-to-peer)网络技术亦是常见的应用之一,用户可藉由P2P网络 直接与其他用户建立连线,进行语音通话、视频传输或资料共享交换。
[0003] 在现有P2P网络环境中,当两端点(S卩,网络装置)位于不同网络地址转换(Network Address Translation,简称NAT)路由器后方时,如果一端点欲传送一信息或控制信息予另 一端点,则必须先向追踪连线服务器,如:Tracker (跟踪服务器)或Coordinator (协调服 务器),查询所述另一端点的地址,并通过位于公众网域的一通信协议服务器(如:NAT会话 传输应用程序服务器,Session Traversal Utilities for NAT server,简称 STUN服务器) 的协助,将所述信息传递给另一端点。假设Host A (网络装置)位于NAT X (NAT路由器) 后方,Host B (网络装置)位于NAT Y (NAT路由器)后方,通信协议服务器和追踪连线服务 器位于公众网域,当Host A欲传送信息给Host B,Host A必须先向所述追踪连线服务器送 出一第一查询请求,以令所述追踪连线服务器能根据所述第一查询请求(Query Request), 向Host A回传一查询回应(Query Response),所述查询回应会载明Host B在NAT Y上的 一第二映射地址(mapped-address)。在Host A接收到包含有所述第二映射地址的所述查 询回应后,若Host A要传送一信息给Host B,Host A必须将所要传送的所述信息、Host A 的一第一映射地址及所述第二映射地址传送予所述通信协议服务器,以令所述通信协议服 务器能将所述信息及Host A的所述第一映射地址传递至Host B位于NAT Y的所述第二映 射地址,进而使NAT Y能将所述信息转送至Host B。当Host B接收到所述信息后,若Host B欲回复另一信息予Host A,则Host B必须将所述另一信息、所述第二映射地址及所述第 一映射地址传送予所述通信协议服务器,以令所述通信协议服务器能将所述信息及所述第 二映射地址传递至Host A位于NAT X的所述第一映射地址,进而使NAT X能将所述信息转 送至Host A。
[0004] 由上列流程可明显看出,当相互通信的两个网络装置皆位于不同的NAT后方时, 所有信息都必须通过所述通信协议服务器传递,随着P2P网络的用户日益增加,所述通信 协议服务器的负担亦会日形沉重。此外,由于端点间的所有信令或控制信息皆须通过所述 通信协议服务器传递,当所述通信协议服务器无法正常提供服务时,将造成整个P2P网络 完全瘫痪,因此,如何设计出一种分散式网络信息的交换方法,以令P2P网络系统中各种信 息的传递工作不再完全集中于所述通信协议服务器,即成为本发明在此亟欲解决的一重要 课题。


【发明内容】

[0005] 根据现有的P2P网络系统,对于位在不同NAT路由器后方的端点而言,彼此间的相 互通信皆须依赖通信协议服务器协助来传递信息,不仅造成通信协议服务器极大的负担, 亦衍生许多后续的问题,本申请提出一种分散式网络信息的交换方法,使得P2P网络系统 具备传递能力的端点能协助P2P网络系统中不具传递能力的端点传递信息,基于所述技术 手段,改变P2P网络系统中信息传递的方法,进而减轻P2P网络系统中通信协议服务器的负 担。
[0006] 本发明的一目的是提供一种分散式网络信息的交换方法,所述方法能被应用至 P2P网络系统,所述P2P网络系统包括至少一第一网络终端、一第二网络终端、一第三网 络终端、一追踪连线服务器(Tracker/Coordinator)及一通信协议服务器(STUN服务器), 其中,所述第一网络终端包括一第一网络装置(Host)及一第一网络地址转换(Network Address Translation,简称NAT)路由器,以使所述第一网络装置能通过所述第一 NAT路 由器连线至网络(Internet);所述第二网络终端包括一第二网络装置及一第二NAT路由 器,以使所述第二网络装置能通过第二NAT路由器连线至网络;所述第三网络终端包括一 第三网络装置及一第三NAT路由器,以使所述第三网络装置能通过第三NAT路由器连线至 网络;所述追踪连线服务器及所述通信协议服务器位于公众网域;所述第一 NAT路由器不 具传递能力,所述第二NAT路由器则具有传递能力;所述方法是使所述追踪连线服务器能 执行下列步骤:通过网络,接收所述第一或第二网络装置发出的一服务器地址查询请求; 根据所述服务器地址查询请求,将所述通信协议服务器的地址提供予所述第一或第二网络 装置,以令所述第一或第二网络装置能通过网络与所述通信协议服务器连线通信,进而使 所述第一或第二网络装置能藉由所述通信协议服务器,对所述第一或第二NAT路由器进 行NAT行为测试;在所述第一网络装置根据所述通信协议服务器的回应结果,判断出所述 第一 NAT路由器不具传递能力,且所述第一网络装置开启一第一连接埠后,接收所述第一 网络装置发出的一第一注册请求,并根据所述第一注册请求,将所述第一连接埠在所述第 一 NAT路由器上所对应的一第一映射地址,记录为一第一服务连接埠,且记录所述第一 NAT 路由器不具传递能力;在所述第二网络装置根据所述通信协议服务器的回应结果,判断出 所述第二NAT路由器具有传递能力,且所述第二网络装置开启一第二连接埠后,接收所述 第二网络装置发出的一第二注册请求,并根据所述第二注册请求,将所述第二连接埠在所 述第二NAT路由器上所对应的一第二映射地址,记录为一第二服务连接埠,且记录所述第 二NAT路由器具有传递能力;接收所述第一网络终端的一传递请求;根据所述传递请求,向 所述第一网络装置发送一第一分派信息,所述第一分派信息中包含有所述第二网络装置的 识别信息,以令所述第一网络装置,能根据所述第一分派信息,通过所述第二NAT路由器向 所述第二网络装置发送一分派确认请求;根据所述传递请求,向所述第二网络装置发送一 第二分派信息,所述第二分派信息中包含有所述第一网络装置的识别信息,以令所述第二 网络装置在接收到所述分派确认请求后,能根据所述第二分派信息,通过所述第一 NAT路 由器向所述第一网络装置发送一分派确认回复,进而在所述第一及第二网络终端间建立直 接连线;根据所述传递请求,记录所述第一网络装置与所述第二网络装置间的一分派关系; 接收所述第三网络装置的一连接埠查询请求,并判断所述连接埠查询请求所对应的网络装 置;若判断出所述连接埠查询请求所对应的网络装置系所述第一网络装置,则根据所述分 派关系,将所述第二网络装置的所述第二连接埠提供予所述第三网络装置,以令所述第三 网络装置能通过所述第二连接埠,向所述第二网络装置发送信息,且通过所述第二网络装 置,将信息传递至所述第一网络装置;若判断出所述连接埠查询请求所对应的网络装置系 所述第二网络装置,则根据所述第二注册请求,将所述第二网络装置的所述第二连接埠提 供予所述第三网络装置,以令所述第三网络装置能通过所述第二连接埠,直接与所述第二 网络装置建立连线。
[0007] 如此,有别于现有的P2P网络系统中,当相互通信的两个网络装置皆位于不同的 NAT后方时,所有信息都必须通过所述通信协议服务器(STUN服务器)传递,造成所述通信 协议服务器极为沉重的负担,且在所述通信协议服务器无法正常提供服务时,将导致整个 P2P网络系统的瘫痪,本发明的方法能判别P2P网络系统中具备传递能力的网络终端,并通 过具备传递能力的所述等网络终端,协助执行网络信息的传递,有效降低所述通信协议服 务器的负担。通过本发明,除了可以减少所述通信协议服务器的负担,亦可降低建置与维护 成本,并协助端点进行NAT穿透及传送相关的控制信息。
[0008] 为方便贵审查员能对本发明目的、技术特征及其效果做更进一步的认识与了解, 兹举实施例配合附图详细说明如下:

【专利附图】

【附图说明】
[0009] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0010] 图1为本发明提出的P2P网络系统的模型图;
[0011] 图2为网络装置通过通信协议服务器进行NAT映射行为测试的循序图;
[0012] 图3为网络装置通过通信协议服务器进行NAT过滤行为测试的循序图;
[0013] 图4A为本发明的追踪连线服务器为各别网络终端建立分派关系的流程图;
[0014] 图4B为本发明的追踪连线服务器协助网络终端传递信息的流程图。

【具体实施方式】
[0015] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0016] 本发明提出一种分散式网络信息的交换方法,所述方法能被应用至一 P2P网络系 统,以令所述P2P网络系统中位于不同NAT路由器后方的各个网络装置能够藉由所述方法 相互通信。如图1所示,为本发明提出的P2P网络系统的模型图。所述P2P网络系统1包 括至少一第一网络终端11、一第二网络终端12、一第三网络终端13以及在网络10中的 一追踪连线服务器101及一通信协议服务器102,其中,所述追踪连线服务器101可为一 Tracker或一 Coordinator,用以在节点与节点间执行追踪连线,所述通信协议服务器102 可为一 STUN (Session Traversal Utilities for NAT的缩写)服务器,它允许位于NAT路 由器后方的网络装置找出自己的地址,且查出自己位于哪种类型的NAT路由器后方及所述 NAT路由器为某一个本地埠所绑定的Internet端埠等信息,以根据这些信息使两个同时处 于NAT路由器后方的网络装置间能建立UDP (User Datagram Protocol)通信。
[0017] 图1中,所述第一网络终端11包括一第一网络装置111及一第一NAT路由器112, 所述第一网络装置111系位于所述第一 NAT路由器112所建立的私有(Private)网络中。 在本实施例中,所述第一网络装置111的一第一装置IP (Internet Protocol,网际网络协 定)为IPa,且所述第一网络装置111针对所述第一装置IP开启一第一装置连接埠 Pa,所 述第一 NAT路由器112的一第一路由器IP则为IPx,且所述第一 NAT路由器112针对所述 第一路由器IP开启有一第一路由器连接埠 Px,所述第一网络装置111能通过所述第一 NAT 路由器112,连线至所述网络10。所述第二网络终端12包括一第二网络装置121及一第二 NAT路由器122,所述第二网络装置121位于所述第二NAT路由器122所建立的另一私有网 络中。在本实施例中,所述第二网络装置121的一第二装置IP为IPb,且所述第二网络装置 121针对所述第二装置IP开启一第二装置连接埠 Pb,所述第二NAT路由器122的一第二路 由器IP则为IPy,且所述第二NAT路由器122针对所述第二路由器IP开启有一第二路由器 连接埠 Py,所述第二网络装置121能通过所述第二NAT路由器122,连线至所述网络10。所 述第三网络终端13包括一第三网络装置131及一第三NAT路由器132,所述第三网络装置 131位于所述第三NAT路由器132所建立的一私有网络中。在本实施例中,所述第三网络装 置131的一第三装置IP为IPc,且所述第三网络装置131针对所述第三装置IP开启一第三 装置连接埠 Pc,所述第三NAT路由器132的一第三路由器IP则为IPz,且所述第三NAT路 由器132针对所述第三路由器IP开启一第三路由器连接埠 Pz,所述第三网络装置131能通 过所述第三NAT路由器132,连线至所述网络10。在本实施例中,所述第一 NAT路由器112 不具传递能力,所述第二NAT路由器122则具有传递能力。
[0018] 在此一较佳实施例中,所述追踪连线服务器101为一 Tracker或一 Coordinator, 所述通信协议服务器102则为一 STUN服务器。所述追踪连线服务器101的网络接口的传 输地址为IPt,IPt会开启一个通信端点(sockets),IPt的通信端点为使用连接埠 Pt。所 述通信协议服务器102的网络接口包括至少一第一服务器IP及一第二服务器IP,在本实 施例中,所述第一服务器IP为IPsl,第二服务器IP为IPs2,其中,IPsl会开启一第一服 务器连接埠及一第二服务器连接埠,所述第一服务器连接埠为Psll,第二服务器连接埠为 Psl2 ;IPs2则会开启一第三服务器连接埠,所述第三服务器连接埠为Ps21。所述追踪连线 服务器101与所述通信协议服务器102相连线,且在所述追踪连线服务器101接收到一网 络装置发出的一服务器地址查询请求时,所述追踪连线服务器101能将所述通信协议服务 器102的第一服务器连接埠(即IPsl. Psll)、第二服务器连接埠(即IPsl. Psl2)及第三服 务器连接埠 IPs2. Ps21,提供予发出所述服务器地址查询请求的所述网络装置,进而使所述 网络装置,能藉由所述通信协议服务器对其所对应的NAT路由器进行NAT行为测试。在此 一较佳实施例中,所述第一网络装置111及第二网络装置121能通过所述通信协议服务器 102对所述第一 NAT路由器112及第二NAT路由器122进行NAT映射行为测试及NAT过滤 行为测试。
[0019] 如图2所示,兹仅藉所述第一网络装置111为例,说明NAT映射行为测试的流程及 判断NAT映射行为类型的标准。在本实施例中,所述第一网络装置111通过所述第一 NAT路 由器112,向所述通信协议服务器102发送一第一连结请求(Binding Request)、一第二连 结请求及一第三连结请求,其中,所述第一连结请求为发送至所述通信协议服务器102的 所述第一服务器连接埠(即IPsl.Psll);所述第二连结请求系发送至所述通信协议服务器 102的所述第二服务器连接埠(即IPsl. Psl2);所述第三连结请求则系发送至所述通信协议 服务器102的所述第三服务器连接埠(即IPs2. Ps21)。所述通信协议服务器102会根据所 述第一连结请求,自所述第一服务器连接埠,回传一第一连结回应(Binding Response)予 所述第一网络装置111,且根据所述第二连结请求,自所述第二服务器连接埠,回传一第二 连结回应予所述第一网络装置111,并根据所述第三连结请求,自所述第三服务器连接埠, 回传一第三连结回应予所述第一网络装置111。所述第一、第二及第三连结回应中记录有所 述第一 NAT路由器112的IP地址及所开启的连接埠,以令所述第一网络装置111,能根据 所述第一、第二及第三连结回应中所记载的连接埠,判断所述第一 NAT路由器112的NAT映 射行为类型。所述第一网络装置111会比较所述第一、第二及第三连结回应中记录的连接 埠,若所述第一连结回应、第二连结回应及第三连结回应中记录的连接埠相同,则所述第一 网络装置111会判断所述第一 NAT路由器112的NAT映射行为系非依赖型(Incbpendent); 若所述第一连结回应及第二连结回应中记录的连接埠相同,而所述第三连结回应中记录的 连接埠与第一连结回应及第二连结回应中记录的连接埠相异,则所述第一网络装置111会 判断所述第一 NAT路由器112的NAT映射行为为地址依赖型(Address D印endent);若所述 第一连结回应、第二连结回应及第三连结回应中记录的连接埠相异,则所述第一网络装置 111会判断所述第一 NAT路由器112的NAT映射行为为地址与连接埠依赖型(Address&Port Dependent)。
[0020] 如图3所示,同样地,兹仅藉由所述第一网络装置111为例,说明NAT过滤行为测 试的流程及判断NAT过滤行为类型的标准。在本实施例中,所述第一网络装置111通过所 述第一NAT路由器112,向所述通信协议服务器102的所述第一服务器连接埠发送一第四连 结请求、一第五连结请求及一第六连结请求。其中,所述第五连结请求具有一第一变更请求 (CHANGE-REQUEST)属性,所述第一变更请求属性中包含有一变更连接埠标记(Flag),以令 所述通信协议服务器能根据所述第一变更请求属性,变更回传连结回应的服务器连接埠, 在本实施例中,所述通信协议服务器102虽然由所述第一服务器连接埠(即IPsl. Psll)接 收所述第五连结请求,但所述通信协议服务器102会改由所述第二服务器连接埠(即IPsl. Psl2)回传一第五连结回应予所述第一网络装置111,所述第一服务器连接埠(即IPsl. Psll)及所述第二服务器连接埠(即IPsl. Psl2)皆为由所述第一服务器IP (即IPsl)所开 启的服务器连接埠(即,仅变更连接埠而未变更IP);所述第六连结请求具有一第二变更请 求属性,所述第二变更请求属性中包含有一变更IP标记,以令所述通信协议服务器能根据 所述第二变更请求属性,变更回传连结回应的服务器IP。在本实施例中,由于所述第一服 务器连接埠(即IPsl. Psll)与所述第三服务器连接埠(即IPs2.Ps21)分属所述第一服务器 IP (即IPsl)及所述第二服务器IP (即IPs2)所开启的服务器连接埠,因此,所述通信协议 服务器102虽然为由所述第一服务器连接埠(即IPsl. Psll)接收所述第六连结请求,但所 述通信协议服务器102会改由所述第三服务器连接埠(即IPs2. Ps21)回传一第六连结回应 予所述第一网络装置111。
[0021] 基于上述描述,所述第一网络装置111会根据所述第四、第五及第六连结回应的 接收状况,判断所述第一 NAT路由器112的NAT过滤行为类型,若所述第四、第五及第六连 结回应皆被发送至所述第一网络装置111,则所述第一网络装置111会判断所述第一 NAT 路由器112的NAT过滤行为为非依赖型;若仅所述第四及第五连结回应被发送至所述第一 网络装置111,而所述第六连结却未被发送至所述第一网络装置111,则所述第一网络装置 111会判断所述第一 NAT路由器112的NAT过滤行为为地址依赖型;若仅所述第四连结回 应被发送至所述第一网络装置111,所述第五及第六连结回应皆未被发送至所述第一网络 装置111,则所述第一网络装置111会判断所述第一 NAT路由器112的NAT过滤行为为地址 与连接埠依赖型。
[0022] 如图2和图3所示,若所述第一 NAT路由器112的NAT映射行为及NAT过滤行为 皆为非依赖型,则所述第一 NAT路由器112为完全圆锥形NAT (full-cone NAT),如此,即 表示所述第一 NAT路由器112具有传递能力;若所述第一 NAT路由器112的NAT映射行为 或NAT过滤行为,其中任一不是非依赖型(即,NAT映射行为或NAT过滤行为为地址依赖型 或地址与连接埠依赖型),则所述第一 NAT路由器112不是完全圆锥形NAT,如此,即表示所 述第一 NAT路由器112不具传递能力。所述第二NAT路由器122 (如图1所示)的NAT映 射行为测试及NAT过滤行为测试过程,与所述第一 NAT路由器112的NAT映射行为测试及 NAT过滤行为测试过程相同,在此不再赘述。如同前述,在本实施例中,所述第一 NAT路由器 112不具传递能力,所述第二NAT路由器122则具有传递能力。
[0023] 如图1所示,在所述第一网络装置111根据所述通信协议服务器102的回应结果, 判断出其所对应的所述第一 NAT路由器112不具传递能力后,所述第一网络装置111会开 启一第一装置连接埠,并通过所述第一 NAT路由器112,向所述追踪连线服务器101发出一 第一注册请求。所述第一注册请求包含有所述第一装置连接埠在所述第一 NAT路由器112 上所对应的一第一映射地址(mapped-address),此外,在本实施例中,所述第一注册请求尚 包含有所述第一 NAT路由器112不具传递能力的信息。如此,当所述追踪连线服务器101 接收到所述第一网络装置111所发出的所述第一注册请求后,所述追踪连线服务器101便 能根据所述第一注册请求,将所述第一网络装置111的所述第一映射地址,记录为一第一 服务连接埠,且记录所述第一 NAT路由器112不具传递能力。同理,当所述追踪连线服务器 101接收到所述第二网络装置121所发出的一第二注册请求后,所述追踪连线服务器101能 根据所述第二注册请求,将所述第二网络装置121的一第二装置连接埠所对应的一第二映 射地址,记录为一第二服务连接埠,且记录所述第二NAT路由器122具备传递能力。
[0024] 承前所述,由于所述第一 NAT路由器112不具传递能力,所以,在所述第一网络装 置111向所述追踪连线服务器101发出所述第一注册请求后,所述第一网络装置111尚会 通过所述第一NAT路由器112,向所述追踪连线服务器101发出一传递请求。在所述追踪连 线服务器101接收到所述传递请求后,所述追踪连线服务器101会根据所述追踪连线服务 器101已记录的信息,将具备传递能力的一 NAT路由器后方的网络装置分派予所述第一网 络装置111。在本实施例中,在所述追踪连线服务器101接收到所述传递请求后,根据所述 追踪连线服务器101已记录的信息,查出所述第二NAT路由器122具备传递能力,并将所述 第二网络装置121分派予所述第一网络装置111,且根据所述传递请求,记录所述第一网络 装置111与所述第二网络装置121间的一分派关系。
[0025] 下面针对所述追踪连线服务器101接收到所述传递请求后所执行的流程进行详 述。在所述追踪连线服务器101接收到所述传递请求后,所述追踪连线服务器101会根据 所述传递请求,向所述第一 NAT路由器112发送一第一分派信息,所述第一 NAT路由器112 会将所述第一分派信息转送至所述第一网络装置111 ;此外,所述追踪连线服务器101亦会 根据所述传递请求,向所述第二NAT路由器122发送一第二分派信息,所述第二NAT路由器 122会将所述第二分派信息转送至所述第二网络装置121。所述第一分派信息中包含有所 述第二网络装置121的识别信息,如此,不仅能使所述第一网络装置111得知,将协助所述 第一网络装置111传递信息的网络装置系所述第二网络装置121,此外,尚能使所述第一网 络装置111,根据所述第一分派信息,向所述第二NAT路由器122后方的所述第二网络装置 121发送一分派确认请求。所述第二分派信息中包含有所述第一网络装置111的识别信息, 如此,不仅能使所述第二网络装置121得知其应协助所述第一网络装置111传递信息,尚能 使所述第二NAT路由器122在接收到所述分派确认请求后,根据所述第二分派信息,向所述 第一 NAT路由器112发送一分派确认回复,以通过所述第一 NAT路由器112将所述分派确 认回复转送至所述第一网络装置111,进而能在所述第一网络终端11和第二网络终端12间 建立直接连线。
[0026] 如图1所示,藉由本发明的方法,当所述第三网络装置131欲与所述第一网络装 置111交换信息时,将能通过所述第二网络装置121的协助彼此通信。藉所述第三网络装 置131将信息发送至所述第一网络装置111的流程为例,说明所述第二网络装置121协助 所述第三网络装置131与所述第一网络装置111通信的具体细节如下。所述第三网络装置 131会通过所述第三NAT路由器132,向所述追踪连线服务器101发出一服务连接埠查询请 求,在本实施例中,所述服务连接埠查询请求所对应的网络装置为所述第一网络装置111, 所述追踪连线服务器101在接收到所述服务连接埠查询请求后,会根据所述追踪连线服务 器101所记录的所述分派关系将所述第二服务连接埠提供予所述第三网络装置131,以在 所述第三网络装置131欲发送一信息至所述第一网络装置111时,能通过所述第二服务连 接埠,向所述第二NAT路由器122发送所述信息,进而使所述第二NAT路由器122能将所述 信息转送至所述第二网络装置121。所述第二网络装置121接收到所述第三网络装置131 所发出的所述信息后,会根据所述信息的内容,判断所述第三网络装置131所欲通信的对 象系所述第一网络装置111,所述第二网络装置121会将所述信息传递至所述第一 NAT路由 器112,以令所述第一 NAT路由器112能将所述信息转送至所述第一网络装置111,进而完 成整个信息传递的过程。
[0027] 另外,由于所述第二NAT路由器122本身即具备传递能力,因此,当所述第三网络 装置131欲与所述第二网络装置121交换信息,而通过所述第三NAT路由器132,向所述追 踪连线服务器101发出另一服务连接埠查询请求时,由于所述另一服务连接埠查询请求所 对应的网络装置为所述第二网络装置121,所以,所述追踪连线服务器101在接收到所述服 务连接埠查询请求后,会直接将所述第二服务连接埠提供予所述第三网络装置131,以在所 述第三网络装置131欲发送另一信息至所述第二网络装置121时,能通过所述第二服务连 接埠,向所述第二NAT路由器122发送所述另一信息,进而使所述第二NAT路由器122能将 所述另一信息转送至所述第二网络装置121。此时,由于所述第二网络装置121接收到所述 第三网络装置131所发出的所述信息后,判断所述第三网络装置131所欲通信的对象即为 所述第二网络装置121,因此不再传递所述另一信息,并完成所述另一信息传递的过程。
[0028] 以上通过本发明较佳实施例的一简化模型,具体说明P2P网络系统1的一架构,以 及本发明的方法在所述架构下的运作方式。如图4A及图4B所示的流程图,搭配图1的元 件编号,说明在本发明的主要流程中,所述追踪连线服务器101所执行的步骤如下:
[0029] 步骤201):通过所述网际网络10,接收所述第一或第二网络装置111或121发出 的一服务器地址查询请求;
[0030] 步骤202):根据所述服务器地址查询请求,将所述通信协议服务器102的地址提 供予所述第一网络装置111或第二网络装置121,以令所述第一网络装置111或第二网络装 置121能通过网络10,与所述通信协议服务器102连线通信,进而使所述第一网络装置111 或第二网络装置121,能藉由所述通信协议服务器102,对所述第一 NAT路由器112或第二 NAT路由器122进行NAT行为测试,在所述第一网络装置111判断所述第一 NAT路由器112 不具传递能力后,转至步骤203),在所述第二网络装置121判断所述第二NAT路由器122具 备传递能力后,转至步骤204);
[0031] 步骤203):在所述第一网络装置111开启一第一连接埠后,接收所述第一网络装 置111发出的一第一注册请求,并根据所述第一注册请求,将所述第一连接埠在所述第一 NAT路由器112上所对应的一第一映射地址,记录为一第一服务连接埠,且记录所述第一 NAT路由器112不具传递能力;
[0032] 步骤204):在所述第二网络装置121开启一第二连接埠后,接收所述第二网络装 置121发出的一第二注册请求,并根据所述第二注册请求,将所述第二连接埠在所述第二 NAT路由器122上所对应的一第二映射地址,记录为一第二服务连接埠,且记录所述第二 NAT路由器122具有传递能力;
[0033] 步骤205):接收所述第一网络终端11的一传递请求;
[0034] 步骤206):根据所述传递请求,向所述第一网络装置111发送所述第一分派信息、 向所述第二网络装置121发送所述第二分派信息并记录所述第一网络装置111与所述第二 网络装置121间的一分派关系;
[0035] 步骤207):接收所述第三网络装置131的一服务连接埠查询请求,并判断所述服 务连接埠查询请求所对应的网络装置,若所述服务连接埠查询请求所对应的网络装置系所 述第一网络装置111,转至步骤208),若所述服务连接埠查询请求所对应的网络装置系所 述第二网络装置121,转至步骤209);
[0036] 步骤208):根据所述分派关系,将所述第二服务连接埠提供予所述第三网络装置 131,以令所述第三网络装置131能通过所述第二服务连接埠,向所述第二网络装置121发 送信息,且通过所述第二网络装置121,将信息传递至所述第一网络装置111 ;
[0037] 步骤209):根据所述第二注册请求,将所述第二服务连接埠提供予所述第三网络 装置131,以令所述第三网络装置131能通过所述第二服务连接埠,直接与所述第二网络装 置121建立连线。
[0038] 在前述步骤201)及步骤202)中,所述追踪连线服务器101为协助所述第一网络 装置111或第二网络装置121与所述通信协议服务器102通信,以令所述第一网络装置111 或第二网络装置121能藉由所述通信协议服务器102,对所述第一 NAT路由器112或第二 NAT路由器122进行NAT行为测试。在步骤202)中,所述第一网络装置111或第二网络装 置121对所述第一 NAT路由器112或第二NAT路由器122所进行NAT行为测试,包括NAT映 射行为测试及NAT过滤行为测试。根据NAT行为测试的结果,若NAT映射行为类型或NAT过 滤行为类型的任一不属于非依赖型,则受测的所述第一 NAT路由器112或第二NAT路由器 122会被判断为不具传递能力的NAT路由器。在本实施例中,由于所述第一 NAT路由器112 不具传递能力,因此,在前述步骤203)中,当所述追踪连线服务器101接收到所述第一网络 装置111的所述第一注册请求,所述追踪连线服务器101会记录所述第一 NAT路由器112不 具传递能力;由于所述第二NAT路由器122具备传递能力,因此,在前述步骤204)中,当所 述追踪连线服务器101接收到所述第二网络装置121的所述第二注册请求,所述追踪连线 服务器101会记录所述第二NAT路由器122具备传递能力。由于所述第一 NAT路由器112 不具传递能力,在前述步骤205)及步骤206)中,所述追踪连线服务器101会根据所述第一 网络终端11的传递请求,为所述第一网络终端11分派一具备传递能力的网络终端(即,网 络终端的NAT路由器具备传递能力),并记录其间的分派关系。完成分派指定后,当所述第 三网络终端13的所述第三网络装置131欲传送一信息予所述第一网络装置111,在前述步 骤207)及步骤208)中,所述追踪连线服务器101便能根据所述分派关系,令具备传递能力 的所述第二网络终端12协助传递信息,当然,若所述第三网络装置131欲传送另一信息予 所述第二网络装置121,在前述步骤209)中,所述追踪连线服务器101同样能协助所述第三 网络装置131直接与所述第二网络装置121建立连线。因此,除了在步骤201)及步骤202) 中,所述通信协议服务器102为了协助所述第一网络装置111或第二网络装置121对所述 第一 NAT路由器112或第二NAT路由器122进行NAT行为测试外,不须在每一次信息传递 的过程中,频繁地协助端点间的信息传递,因此,能大幅降低所述通信协议服务器102的负 担。
[0039] 综上所述可知,由于本发明的方法能判断出P2P网络系统1中具备传递能力的网 络终端,并将传递信息的工作负担分散予具备传递能力的网络终端,以令具备传递能力的 网络终端,能协助不具传递能力的网络终端传送信息,因此,有别于现有的P2P网络系统1, 当相互通信的两个网络装置皆位于不同的NAT后方时,所有信息都必须通过所述通信协议 服务器102传递,本发明显然能有效降低所述通信协议服务器102的负担,此外,更能有效 避免在所述通信协议服务器102无法正常提供服务时,整个P2P网络系统1瞬间完全瘫痪 的问题。
[0040] 以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进行了进一步 详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发明 的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含 在本发明的保护范围之内。
【权利要求】
1. 一种分散式网络信息的交换方法,所述方法能被应用至一P2P网络系统,所述P2P网 络系统包括至少一第一网络终端、一第二网络终端、一第三网络终端、一追踪连线服务器及 一通信协议服务器,其特征在于; 所述第一网络终端包括一第一网络装置及一第一 NAT路由器,以使所述第一网络装置 能通过所述第一 NAT路由器连线至网络;所述第二网络终端包括一第二网络装置及一第二 NAT路由器,以使所述第二网络装置能通过第二NAT路由器连线至网络;所述第三网络终端 包括一第三网络装置及一第三NAT路由器,以使所述第三网络装置能通过第三NAT路由器 连线至网络;所述追踪连线服务器及所述通信协议服务器位于公众网域;所述第一 NAT路 由器不具传递能力,所述第二NAT路由器则具有传递能力;所述方法系使所述追踪连线服 务器能执行下列步骤: 通过网络,接收所述第一网络装置或第二网络装置发出的一服务器地址查询请求; 根据所述服务器地址查询请求,将所述通信协议服务器的地址提供予所述第一网络装 置或第二网络装置,以令所述第一网络装置或第二网络装置能通过网络与所述通信协议服 务器连线通信,进而使所述第一网络装置或第二网络装置能藉由所述通信协议服务器,对 所述第一 NAT路由器或第二NAT路由器进行NAT行为测试; 在所述第一网络装置根据所述通信协议服务器的回应结果,判断出所述第一 NAT路由 器不具传递能力,且所述第一网络装置开启一第一连接埠后,接收所述第一网络装置发出 的一第一注册请求,并根据所述第一注册请求,将所述第一连接埠在所述第一 NAT路由器 上所对应的一第一映射地址,记录为一第一服务连接埠,且记录所述第一 NAT路由器不具 传递能力; 在所述第二网络装置根据所述通信协议服务器的回应结果,判断出所述第二NAT路由 器具有传递能力,且所述第二网络装置开启一第二连接埠后,接收所述第二网络装置发出 的一第二注册请求,并根据所述第二注册请求,将所述第二连接埠在所述第二NAT路由器 上所对应的一第二映射地址,记录为一第二服务连接埠,且记录所述第二NAT路由器具有 传递能力; 接收所述第一网络终端的一传递请求; 根据所述传递请求,向所述第一网络装置发送一第一分派信息,所述第一分派信息中 包含有所述第二网络装置的识别信息,以令所述第一网络装置,能根据所述第一分派信息, 通过所述第二NAT路由器向所述第二网络装置发送一分派确认请求; 根据所述传递请求,向所述第二网络装置发送一第二分派信息,所述第二分派信息中 包含有所述第一网络装置的识别信息,以令所述第二网络装置在接收到所述分派确认请求 后,能根据所述第二分派信息,通过所述第一 NAT路由器向所述第一网络装置发送一分派 确认回复,进而在所述第一网络终端及第二网络终端间建立直接连线; 根据所述传递请求,记录所述第一网络装置与所述第二网络装置间一分派关系; 接收所述第三网络装置一连接埠查询请求,并判断所述连接埠查询请求所对应的网络 装置; 若判断出所述连接埠查询请求所对应的网络装置系所述第一网络装置,则根据所述分 派关系,将所述第二网络装置的所述第二连接埠提供予所述第三网络装置,以令所述第三 网络装置能通过所述第二连接埠,向所述第二网络装置发送信息,且通过所述第二网络装 置,将信息传递至所述第一网络装置;及 若判断出所述连接埠查询请求所对应的网络装置系所述第二网络装置,则根据所述第 二注册请求,将所述第二网络装置的所述第二连接埠提供予所述第三网络装置,以令所述 第三网络装置能通过所述第二连接埠,直接与所述第二网络装置建立连线。
2. 如权利要求1所述的方法,其特征在于: 所述追踪连线服务器为一跟踪服务器或一协调服务器;及 所述通信协议服务器为一 NAT会话传输应用程序服务器。
3. 如权利要求2所述的方法,其特征在于,所述通信协议服务器的网络接口包括至少 一第一服务器IP及一第二服务器IP,所述第一服务器IP至少会开启一第一服务器连接埠 及一第二服务器连接埠,所述第二服务器IP则至少会开启一第三服务器连接埠,所述方法 尚能使所述第一网络装置或第二网络装置执行下列步骤: 通过所述第一 NAT路由器或第二NAT路由器,向所述通信协议服务器发出复数个连结 请求;及 接收所述通信协议服务器由所述第一服务器、第二服务器及第三服务器连接埠回传的 复数个连结回应,以进行NAT映射行为测试及NAT过滤行为测试。
4. 如权利要求3所述的方法,其特征在于,所述第一网络装置或第二网络装置均通过 下列步骤,对所述第一 NAT路由器或第二NAT路由器进行NAT映射行为测试: 通过所述第一 NAT路由器或第二NAT路由器,向所述第一服务器连接埠发送一第一连 结请求,并接收所述第一服务器连接埠回传的一第一连结回应; 通过所述第一 NAT路由器或第二NAT路由器,向所述第二服务器连接埠发送一第二连 结请求,并接收所述第二服务器连接埠回传的一第二连结回应;及 通过所述第一 NAT路由器或第二NAT路由器,向所述第三服务器连接埠发送一第三连 结请求,并接收所述第三服务器连接埠回传的一第三连结回应,所述第一连结回应、第二连 结回应及第三连结回应中记录有所述第一 NAT路由器或第二NAT路由器的IP地址及所开 启的连接埠,以令所述第一网络装置或第二网络装置,能根据所述第一连结回应、第二连结 回应及第三连结回应中所记载的连接埠,判断所述第一 NAT路由器或第二NAT路由器的NAT 映射行为类型。
5. 如权利要求4所述的方法,其特征在于,所述第一网络装置或第二网络装置均通过 下列步骤判断所述NAT路由器的NAT映射行为类型 : 若所述第一连结回应、第二连结回应及第三连结回应中记录的连接埠相同,则判断所 述第一 NAT路由器或第二NAT路由器的NAT映射行为非依赖型; 若所述第一连结回应及第二连结回应中记录的连接埠相同,而所述第三连结回应中记 录的连接埠与第一连结回应及第二连结回应中记录的连接埠相异,则判断所述第一 NAT路 由器或第二NAT路由器的NAT映射行为地址依赖型; 若所述第一连结回应、第二连结回应及第三连结回应中记录的连接埠皆相异,则判断 所述第一 NAT路由器或第二NAT路由器的NAT映射行为地址与连接埠依赖型。
6. 如权利要求3所述的方法,其特征在于,所述第一或第二网络装置系通过下列步骤, 对所述第一 NAT路由器或第二NAT路由器进行NAT过滤行为测试: 通过所述第一 NAT路由器或第二NAT路由器,向所述第一服务器连接埠发送一第四连 结请求,以令所述通信协议服务器能由所述第一服务器连接埠回传一第四连结回应; 通过所述第一 NAT路由器或第二NAT路由器,向所述第一服务器连接埠发送一第五连 结请求,所述第五连结请求具有一第一变更请求属性,所述第一变更请求属性中包含有一 变更连接埠标记,以令所述通信协议服务器能根据所述第一变更请求属性,改由所述第二 服务器连接埠回传一第五连结回应; 通过所述第一 NAT路由器或第二NAT路由器,向所述第一服务器连接埠发送一第六连 结请求,所述第六连结请求具有一第二变更请求属性,所述第二变更请求属性中包含有一 变更IP标记,以令所述通信协议服务器能根据所述第二变更请求属性,改由所述第三服务 器连接埠回传一第六连结回应;及 根据所述第四连结回应、第五连结回应及第六连结回应的接收状况,判断所述第一 NAT 路由器或第二NAT路由器的NAT过滤行为类型。
7.如权利要求6所述的方法,其特征在于,所述第一网络装置或第二网络装置为通过 下列步骤判断所述NAT路由器的NAT过滤行为类型: 若接收到所述第四连结回应、第五连结回应及第六连结回应,则判断所述第一 NAT路 由器或第二NAT路由器的NAT过滤行为非依赖型; 若仅接收到所述第四连结回应及第五连结回应,而未接收到所述第六连结回应,则判 断所述第一 NAT路由器或第二NAT路由器的NAT过滤行为地址依赖型;及 若仅接收到所述第四连结回应,而未接收到所述第五连结回应及第六连结回应,则判 断所述第一 NAT路由器或第二NAT路由器的NAT过滤行为地址与连接埠依赖型。
【文档编号】H04L29/12GK104104740SQ201310184603
【公开日】2014年10月15日 申请日期:2013年5月17日 优先权日:2013年4月10日
【发明者】曾建超, 林家梁 申请人:友讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1