通过二网络装置的协助完成STUN技术的网络系统及其方法转让专利

申请号 : CN201310220864.X

文献号 : CN104104741B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曾建超林家梁

申请人 : 友讯科技股份有限公司

摘要 :

本发明是一种通过二网络装置的协助完成STUN技术的网络系统及其方法,其中第一NAT与第一网络装置位于第一私有网域,该第一网络装置通过该第一NAT向位于公众网域的追踪连线服务器注册第一NAT映射地址及第二NAT映射地址,第二NAT与第二网络装置位于第二私有网域,该第二网络装置通过该第二NAT向追踪连线服务器注册第三NAT映射地址及一第四NAT映射地址,其它网络装置能通过其私有网域的NAT向该追踪连线服务器取得上述映射地址,并通过该第一网络装置及该第二网络装置对其它网络地址转换器进行网络地址转换器行为测试。网络装置能够取得自身所在的私有网域的NAT信息,大幅降低STUN服务器的工作负担。

权利要求 :

1.一种通过二网络装置的协助完成STUN技术的网络系统,其特征在于,所述网络系统包括:

一追踪连线服务器,位于一公众网域;

一第一网络地址转换器,位于一第一私有网域,且为完全圆锥形网络地址转换器类型;

一第一网络装置,位于所述第一私有网域,其通过所述第一网络地址转换器连接至所述公众网域,且具有提供其它网络装置取得网络地址转换器信息的协助能力,并向所述追踪连线服务器注册一第一映射地址及一第二映射地址;

一第二网络地址转换器,位于一第二私有网域,且为完全圆锥形网络地址转换器类型;

一第二网络装置,位于所述第二私有网域,其是通过所述第二网络地址转换器连接至所述公众网域,且具有提供其它网络装置取得网络地址转换器信息的协助能力,并向所述追踪连线服务器注册一第三映射地址及一第四映射地址;

一第三网络地址转换器,位于一第三私有网域;及

一第三网络装置,位于所述第三私有网域,其是通过所述第三网络地址转换器连接至所述公众网域,且会向所述追踪连线服务器取得上述映射地址,并通过所述第一网络装置及所述第二网络装置,据以对所述第三网络地址转换器进行网络地址转换器行为测试,所述第三网络装置在测试后判断出所述第三网络地址转换器为完全圆锥形网络地址转换器类型的状态下,其会向所述追踪连线服务器注册一第五映射地址及一第六映射地址。

2.一种通过二网络装置的协助完成STUN技术的方法,应用于一网络系统,其特征在于,所述网络系统包括一追踪连线服务器、一第一网络地址转换器、一第二网络地址转换器、一第三网络地址转换器、一第一网络装置、一第二网络装置及一第三网络装置,其中所述追踪连线服务器位于一公众网域,所述第一网络地址转换器及所述第一网络装置位于一第一私有网域,所述第二网络地址转换器及所述第二网络装置位于一第二私有网域,所述第三网络地址转换器及所述第三网络装置是位于一第三私有网域,所述第一网络地址转换器及所述第二网络地址转换器为完全圆锥形网络地址转换器类型,且所述网络装置分别通过对应的所述私有网域的所述网络地址转换器连接至所述公众网域,所述第一网络装置具有提供其它网络装置取得网络地址转换器信息的协助能力,并向所述追踪连线服务器注册一第一映射地址及一第二映射地址,所述第二网络装置具有提供其它网络装置取得网络地址转换器信息的协助能力,并向所述追踪连线服务器注册一第三映射地址及一第四映射地址,所述方法包括:所述第三网络装置传送一请求信息至所述追踪连线服务器,以取得上述映射地址;

所述第三网络装置通过所述第一网络装置及所述第二网络装置,对所述第三网络地址转换器进行网络地址转换器行为测试,以取得所述第三网络地址转换器的网络地址转换器信息;及所述第三网络装置取得所述第三网络地址转换器的网络地址转换器信息,且所述第三网络地址转换器为完全圆锥形网络地址转换器类型的状态下,其会向所述追踪连线服务器注册一第五映射地址及一第六映射地址。

3.根据权利要求2所述的方法,其特征在于,所述网络系统尚包括一STUN服务器,所述第一网络装置及所述第二网络装置尚会分别执行下列步骤,以得知所述第一网络地址转换器及所述第二网络地址转换器为完全圆锥形网络地址转换器类型:所述第一网络装置及所述第二网络装置分别送出请求信息至追踪连线服务器,以取得所述STUN服务器提供STUN服务时所需的公众IP地址及连接端口;及所述第一网络装置及所述第二网络装置分别与所述STUN服务器通信,且进行映射行为测试及封包过滤规则测试,并在所述第一网络地址转换器及所述第二网络地址转换器的映射行为和封包过滤规则皆是独立的情况下,则表示第一网络地址转换器及所述第二网络地址转换器为完全圆锥形网络地址转换器类型。

4.根据权利要求2所述的方法,其特征在于,所述方法还包括下列步骤,以使所述追踪连线服务器通知所述第一网络装置及所述第二网络装置协同提供其它网络装置取得网络地址转换器信息的服务:所述追踪连线服务器是分别传送一组织信息至第一网络地址转换器的第一映射地址,及第二网络地址转换器的第三映射地址;

所述第一网络地址转换器会将所述组织信息转送至所述第一网络装置,其中所述组织信息会告知第一网络装置需和所述第二网络装置协同提供其它网络装置取得网络地址转换器信息的服务,第二网络地址转换器会将所述组织信息转送至所述第二网络装置,其中所述组织信息会告知第二网络装置需和所述第一网络装置协同提供其它网络装置取得网络地址转换器信息的服务;

所述第一网络装置会传送一组织确认请求信息至第二网络地址转换器的第三映射地址,所述第二网络地址转换器会将所述组织确认请求信息转送至第二网络装置,且当所述第二网络装置接收到所述组织确认请求信息后,会传送一组织确认回复信息至第一网络地址转换器的第一映射地址,所述第一网络地址转换器会将所述组织确认回复信息转送至第一网络装置;及所述第二网络装置会传送另一组织确认请求信息至第一网络地址转换器的第一映射地址,所述第一网络地址转换器会将所述另一组织确认请求信息转送至第一网络装置,当所述第一网络装置接收到所述另一组织确认请求信息后,其会传送另一组织确认回复信息至第二网络地址转换器的第三映射地址,所述第二网络地址转换器会将所述另一组织确认回复信息转送至第二网络装置。

5.根据权利要求4所述的方法,其特征在于,所述第三网络装置所执行的网络地址转换器行为测试包括映射行为测试及封包过滤规则测试。

6.根据权利要求5所述的方法,其特征在于,所述方法还包括下列步骤,以使所述第三网络装置进行映射行为测试:所述第三网络装置会传送一第一绑定请求信息至第一网络地址转换器的第一映射地址;

所述第一网络地址转换器将所述第一绑定请求信息转送至所述第一网络装置的一第一连接端口;

所述第一网络装置接收到所述第一绑定请求信息后,会回复一第一绑定响应信息至所述第三网络装置,其中所述第一绑定响应信息中会载明所述第三网络地址转换器的一公众IP地址和一开启的连接端口;

所述第三网络装置会传送一第二绑定请求信息至所述第一网络地址转换器的第二映射地址;

所述第一网络地址转换器将所述第二绑定请求信息转送至第一网络装置的一第二连接端口;

所述第一网络装置接收到所述第二绑定请求信息后,会回复一第二绑定响应信息至所述第三网络装置,其中所述第二绑定响应信息中会载明所述第三网络地址转换器的所述公众IP地址和所述开启的连接端口;

所述第三网络装置会传送一第三绑定请求信息至所述第二网络地址转换器的第三映射地址;

所述第二网络地址转换器将所述第三绑定请求信息转送至第二网络装置的一第三连接端口;

所述第二网络装置接收到所述第三绑定请求信息后,会回复一第三绑定响应信息至所述第三网络装置,其中所述第三绑定响应信息中会载明所述第三网络地址转换器的所述公众IP地址和所述开启的连接端口;及在所述第三网络装置接收到所述第一绑定响应信息、所述第二绑定响应信息及所述第三绑定响应信息后,当上述绑定响应信息中所载明的连接端口皆相同的情况下,则代表第三网络地址转换器的映射行为是独立的,当只有第一、二绑定响应信息中所载明的连接端口相同的情况下,则代表第三网络地址转换器的映射行为是依赖地址的,当上述绑定响应信息中所载明的连接端口均不相同的情况下,则代表第三网络地址转换器的映射行为是依赖地址及连接端口的。

7.根据权利要求5所述的方法,其特征在于,所述方法还包括下列步骤,以使所述第三网络装置进行封包过滤规则测试:所述第三网络装置会传送一第四绑定请求信息至第一网络地址转换器的第一映射地址;

所述第一网络地址转换器是将所述第四绑定请求信息转送至所述第一网络装置的一第一连接端口;

所述第一网络装置接收到所述第四绑定请求信息后,会自所述第一连接端口回复一第四绑定响应信息至所述第三网络装置,其中所述第四绑定响应信息中会载明所述第三网络地址转换器的一公众IP地址和一开启的连接端口;

所述第三网络装置会传送一第五绑定请求信息至第一网络地址转换器的第一映射地址,其中所述第五绑定请求信息内的变更要求属性中变更连接端口旗标设为1;

所述第一网络地址转换器是将所述第五绑定请求信息转送至所述第一网络装置的所述第一连接端口;

所述第一网络装置接收到所述第五绑定请求信息后,会自一第二连接端口回复一第五绑定响应信息至所述第三网络装置,其中所述第五绑定响应信息中会载明所述第三网络地址转换器的公众IP地址和开启的连接端口;

所述第三网络装置会传送一第六绑定请求信息至第一网络地址转换器的第一映射地址,其中所述第六绑定请求信息内的变更要求属性中变更IP旗标设为1;

所述第一网络地址转换器是将所述第六绑定请求信息转送至所述第一网络装置的所述第一连接端口;

所述第一网络装置接收到所述第六绑定请求信息后,会通知第二网络装置;

所述第二网络装置会自一第三连接端口回复一第六绑定响应信息至所述第三网络装置,其中所述第六绑定响应信息中会载明所述第三网络地址转换器的所述公众IP地址和所述开启的连接端口;及在所述第三网络装置接收到所述第四绑定响应信息、所述第五绑定响应信息及所述第六绑定响应信息的情况下,则代表第三网络地址转换器的封包过滤规则是独立的,在所述第三网络装置只接收到所述第四绑定响应信息及所述第五绑定响应信息的情况下,则代表第三网络地址转换器的封包过滤规则是依赖地址的,在所述第三网络装置只接收到所述第四绑定响应信息的情况下,则代表第三网络地址转换器的封包过滤规则是依赖地址及连接端口的。

说明书 :

通过二网络装置的协助完成STUN技术的网络系统及其方法

技术领域

[0001] 本发明是关于STUN(Session Traversal Utilities for Network Address Translation)技术,尤指一种通过二网络装置进行NAT行为测试,即可实现STUN技术的网络系统及方法。

背景技术

[0002] 随着通信科技的发展与进步,各种网络服务的应用已成为日常生活中的一部分,其中对等网际网络技术(peer-to-peer,以下简称P2P)已是目前普遍使用的技术之一,通过P2P所形成的网络架构,使用者的网络装置(如:台式电脑)能直接与其他使用者的网络装置建立连线,以进行语音通话、视频传输或数据(如:图片、音乐、录影)共享交换、分散式计算或协同工作…等诸多应用。
[0003] 然而,由于人们大多会在私有网域和公众网域的边界处部署网络地址转换器(network address translation,以下简称NAT),所谓NAT是定义于RFC1631的一个Internet标准,主要是对私有网域的网络装置所发出的封包,进行网际协议(Internet Protocol,以下简称IP)地址转换的动作,以便让私有网域中多台网络装置能够共用一个公众网域IP地址连接上网际网络,意即当私有网域发出的私有网域IP数据封包到达NAT时,NAT负责将私有网域IP地址转换成公众网域IP地址;当有外部发来的封包到达NAT设备后,NAT通过查阅自身保存的映射表(mapping table)里的信息,将公众网域IP地址转换成私有网域IP地址,再转发到私有网域中对应的网络装置。
[0004] 承上所述,当两个网络装置欲以P2P的网络技术相互建立连线时,若该等网络装置均分别位于不同私有网域的NAT后方时,由于NAT的特质是用以屏蔽私有网域,使得位于NAT后方的私有网域中的网络装置,对于公众网域来说皆是不可见,因此,该等网络装置会无法穿透NAT以建立直接连线。为能解决前述NAT穿透(NAT Traversal)问题,目前有研究提出一种(UDP打洞(UDP Hole Punching))技术来进行NAT穿透,所谓的(UDP打洞)技术主要是使位于NAT后方的网络装置,能够先与位于公众网域的服务器进行连线,使得该NAT能建立一私人地址/连接端口(Private IP Address&Port)及该NAT的公众网络地址/连接端口(Public IP Address&Port)的映射(mapping),并在该NAT的公众网络界面上开启一连接端口,如此,位于公众网域上的其他网络装置即可通过NAT在公众网络界面所开启的连接端口,将数据传送至位于该NAT后方的网络装置。然而,(UDP打洞)技术成功与否,主要是受限于NAT的映射行为(Mapping Behavior)和封包过滤规则(Filtering Behavi or),同时,NAT的公众网络界面所开启的连接端口,也须通过位于公众网域的服务器告知,因此,为使(UDP打洞)技术成功,能够使用NAT会话传输应用程序(Session Traversal Utilities for Network Address Translation,以下简称STUN)技术。
[0005] 所谓的STUN技术为一种网络协议,其能允许位于NAT后方的网络装置找出建立连线的相关网络信息,以使两个分别位于不同NAT后方的网络装置间,能够建立连线,兹简单说明如后:首先,位于NAT后方的网络装置会向STUN服务器送出多个绑定请求(binding requests)信息,当STUN服务器收到该等绑定请求信息后,会将其所发现的NAT的映射地址(IP address&port numb er)回复在绑定响应(Binding Response)信息中,如此,位于NAT后方的网络装置,于收到被回复的绑定响应信息后,即能判断出其所在的NAT的映射行为和封包过滤规则,同时也能得知该NAT的公众网络界面所开启的连接端口。
[0006] 简单说明STUN技术,一般言,STUN技术的检测过程中,其需要有一具有两个公众IP的STUN服务器,在NAT后方的网络装置则必须传送多个UDP封包至该STUN服务器,其中该UDP封包中含有网络装置需了解的信息,例如:NAT的公众网络界面所使用的IP及开启的连接端口,如此,网络装置即可通过UDP封包的信息内容判断出自己所在的NAT的类型。举例而言,若一网络装置Host A位于一NAT X的后方,且位于公众网域的STUN服务器包含两个公众IP地址分别为IPs1和IPs2,其中IPs1所开启的两个连接端口分别为P s11和Ps12,而IPs2所开启的一连接端口则为Ps21,又,网络装置Host A的IP地址为IPa,且其所开启的连接端口为Pa1,该网络装置Host A会通过下列步骤,取得NAT X的映射地址(mapped-address)及其映射行为和封包过滤规则,首先说明该网络装置Host A取得NAT X的映射行为如下:
[0007] 网络装置Host A会使用IP地址IPa,且通过连接端口Pa1送出第一个绑定请求信息至STUN服务器的连接端口Ps11的公众IP地址IPs1,当STUN服务器接收到该第一个绑定请求信息后,会使用公众IP地址IPs1且通过连接端口Ps11回复第一个绑定响应信息至网络装置Host A,该第一个绑定响应信息会载明NAT X的公众网络界面的IP地址和开启的连接端口;
[0008] 该网络装置Host A会使用IP地址IPa,且通过连接端口Pa1送出第二个绑定请求信息至STUN服务器的连接端口Ps12的公众IP地址IPs1,当STUN服务器接收到该第二个绑定请求信息后,会使用公众IP地址IPs1且通过连接端口Ps12回复第二个绑定响应信息至网络装置Host A,该第二个绑定响应信息会载明NAT X的公众网络界面的IP地址和开启的连接端口;
[0009] 又,该网络装置Host A会使用IP地址IPa,且通过连接端口Pa1送出第三个绑定请求信息至STUN服务器的连接端口Ps21的公众IP地址IPs2,当STUN服务器接收到该第三个绑定请求信息后,会使用公众IP地址IPs2且通过连接端口Ps21回复第三个绑定响应信息至网络装置Host A,该第三个绑定响应信息会载明NAT X的公众网络界面的IP地址和开启的连接端口;及
[0010] 该网络装置Host A能根据该等绑定响应信息,判断出NAT X的映射行为是独立的(Independent)、依赖地址的(Address Dependent)或依赖地址及连接端口的(Address&Port Dependent)。若该等绑定响应信息中所记载的连接端口均相同,则该NAT X的映射行为是Independent;若仅第一、二绑定响应信息中所记载的连接端口相同,则该NAT X的映射行为是Address Dependent;若该等绑定响应信息中所记载的连接端口皆不相同,则代表该NAT X的映射行为是Address&Port Dependent。
[0011] 另,该网络装置Host A取得NAT X的封包过滤规则如下:
[0012] 该网络装置Host A会使用IP地址IPa,且通过连接端口Pa1送出第一个绑定请求信息至STUN服务器的连接端口Ps11的公众IP地址IPs1,当STUN服务器接收到该第一个绑定请求信息后,会使用公众IP地址IPs1且通过连接端口Ps11回复第一个绑定响应信息至网络装置Host A,该第一个绑定响应信息会载明NAT X的公众网络界面的IP地址和开启的连接端口;
[0013] 该网络装置Host A会使用IP地址IPa,且通过连接端口Pa1送出第二个绑定请求信息至STUN服务器的连接端口Ps11的公众IP地址IPs1,其中该第二个绑定请求信息内的变更要求(CHANGE-REQUEST)属性为连接端口(port),当ST UN服务器接收到该第二个绑定请求信息后,会使用IP地址IPs1且通过连接端口Ps12回复第二个绑定响应信息至网络装置Host A,该第二个绑定响应信息会载明NAT X的公众网络界面的IP地址和开启的连接端口;
[0014] 又,该网络装置Host A会使用IP地址IPa,且通过连接端口Pa1送出第三个绑定请求信息至STUN服务器的连接端口Ps11的公众IP地址IPs1,其中该第三个绑定请求信息的变更要求(CHANGE-REQUEST)属性为IP地址,当STUN服务器接收到该第三个绑定请求信息后,会使用IP地址IPs2且通过连接端口Ps21回复第三个绑定响应信息至网络装置Host A,该第三个绑定响应信息会载明NAT X的公众网络界面的IP地址和开启的连接端口;及[0015] 该网络装置Host A能根据该等绑定响应信息,判断出NAT X的映封包过滤规则是Independent、Address Dependent或Address&Port Dependent。若该网络装置Host A能接收到全部的绑定响应信息,则该NAT X的映封包过滤规则是Independent;若该网络装置Host A仅接收到第一、二个绑定响应信息,则该NAT X的映封包过滤规则是Address Dependent;若该网络装置Host A仅接收到第一绑定响应信息,则代表该NAT X的映封包过滤规则是Address&Port Dependent。
[0016] 综上所述可知,STUN服务器必须与各个网络装置进行多次的互动,才能使位于NAT后方的网络装置得知NAT的映射地址及NAT的映射行为和封包过滤规则,然而,随着IPv4网络地址的使用殆尽,NAT的使用势必更加普及,意即,会有愈来愈多位于NAT后方的网络装置,需通过STUN服务器的协助来取得NAT的映射地址及NAT的映射行为和封包过滤规则,如此,将会造成ST UN服务器的负担大增,故,如何有效解决前述问题,以能减轻STUN服务器的负担,同时,能使各个网络装置能够迅速地取得所在私有网域的NAT的信息,即成为许多网络服务业者努力研发并亟欲达成的一重要目标。

发明内容

[0017] 有鉴于在NAT被广泛使用后,会造成STUN服务器的负担大增,故,发明人经过长久努力研究与实验,终于开发设计出本发明的一种通过二网络装置的协助完成STUN(Session Traversal Utilities for Network Address Translati on)技术的网络系统及其方法,以期通过本发明的问世,能大幅降低STUN服务器的负担。
[0018] 本发明的一目的,提供一种通过二网络装置的协助完成STUN(Session Traversal Utilities for Network Address Translation)技术的网络系统及其方法,其中该网络系统包括一追踪连线服务器、一第一网络地址转换器(Netwo rk Address Translation,简称NAT)、一第一网络装置、一第二NAT、一第二网络装置、一第三NAT及一第三网络装置,其中该追踪连线服务器(Coordin ator Server)是位于公众网域,一第一私有网域中包括该第一NAT及该第一网络装置,且该第一NAT为完全圆锥形NAT(full-cone NAT)类型,该第一网络装置是通过该第一NAT连接至公众网域,且具有提供其它网络装置取得NAT信息的协助能力,并能向该追踪连线服务器注册一第一NAT映射地址及一第二NAT映射地址,另,一第二私有网域中包括一第二NAT及一第二网络装置,其中该第二NAT为完全圆锥形NAT类型,该第二网络装置是通过该第二NAT连接至公众网域,且具有提供其它网络装置取得NAT信息的协助能力,并能向该追踪连线服务器注册一第三NAT映射地址及一第四NAT映射地址,再者,一第三私有网域中包括该第三NAT及该第三网络装置,该第三网络装置是通过该第三NAT连接至公众网域,且会向该追踪连线服务器取得该等NAT映射地址,并据以对该第三NAT进行NAT行为测试(Mapping行为测试、Filtering行为测试),以取得该第三NAT的映射地址及NAT行为,如此,其它网络装置在不经过STUN服务器进行NAT行为测试的情况下,也能够通过已向该追踪连线服务器注册的网络装置实现STUN技术,顺利地取得自身所在的私有网域的NAT信息(如:Mapping行为、Filtering行为、NAT开启的连接端口),以使不同私有网域间的该等网络装置能够建立连线路径。
[0019] 本发明的另一目的,是该第三网络装置在判断出该第三NAT为完全圆锥形NAT类型的状态下,该第三网络装置会向该追踪连线服务器注册一第五NAT映射地址及一第六NAT映射地址,使得该第三网络装置也得以协助其它网络装置完成STUN技术,如此,即可大幅降低STUN服务器的运作负担,且不会造成部份提供STUN服务的网络装置的负担过重。
[0020] 为便贵审查委员能对本发明目的、技术特征及其功效,做更进一步的认识与了解,兹举实施例配合附图,详细说明如下:

附图说明

[0021] 图1是本发明的网络系统架构图;
[0022] 图2是第一网络装置及第二网络装置进行映射行为测试的程序图;
[0023] 图3是第一网络装置及第二网络装置进行封包过滤规则测试的程序图;
[0024] 图4是第三网络装置进行映射行为测试的程序图;及
[0025] 图5是第三网络装置进行封包过滤规则测试的程序图。
[0026] 附图标记
[0027] 网络系统            ……                  1
[0028] 追踪连线服务器      ……                  10
[0029] 第一NAT             ……                  11
[0030] 第二NAT             ……                  12
[0031] 第三NAT             ……                  13
[0032] 第一网络装置        ……                  14
[0033] 第二网络装置        ……                  15
[0034] 第三网络装置        ……                  16
[0035] STUN服务器                                17
[0036] 第一私有网域                              A
[0037] 第二私有网域                              B
[0038] 第三私有网域                              C

具体实施方式

[0039] 本发明是一种通过二网络装置的协助完成STUN(Session Traversal Utili ties for Network Address Translation)技术的网络系统及其方法,请参阅图1所示,在一实施例中,该网络系统1包括一追踪连线服务器10、一第一网络地址转换器(Network Address Translation,简称NAT)11、一第二NAT12、一第三NAT13、一第一网络装置14、一第二网络装置15及一第三网络装置16,其中该追踪连线服务器10是位于公众网域上,且可为一tracker或一coordinat or,用以在节点与节点间执行追踪连线,另,该第一NAT11及该第一网络装置14是位于一第一私有网域A中,且该第一NAT11为完全圆锥形NAT(full-cone NAT)类型,意即,该第一NAT11的映射行为(Mapping Behavior)和封包过滤规则(Filtering Behavior)皆是independent,又,该第一网络装置14是通过该第一NAT11连接至公众网域,且具有提供其它网络装置取得NAT信息的协助能力,并能向该追踪连线服务器10注册一第一映射地址及一第二映射地址。
[0040] 复请参阅图1所示,该第二NAT12及该第二网络装置15是位于一第二私有网域B中,该第二网络装置15是通过该第二NAT12连接至公众网域,且具有提供其它网络装置取得NAT信息的协助能力,并能向该追踪连线服务器10注册一第三映射地址及一第四映射地址,另,该第三NAT13及该第三网络装置16则位于一第三私有网域C中,该第三网络装置16是通过该第三NAT13连接至公众网域,且会向该追踪连线服务器10取得第一、二、三、四映射地址,并据以对该第三NAT13进行NAT行为测试(如:映射行为(Mapping Behavi or)测试、封包过滤规则(Filtering Behavior)测试),以取得该第三NAT的映射地址及NAT行为,如此,第三网络装置16无需通过STUN服务器17进行NAT行为测试,也能够实现STUN技术,顺利地取得自身所在的第三私有网域C的第三NAT13的信息(如:映射行为、封包过滤规则、第三NAT13开启的连接端口),以使不同私有网域间的该等网络装置能够建立连线路径,大幅降低STUN服务器的工作负担。
[0041] 为明确揭露出前述的整体技术特征,首先就如何判断第一网络装置14及第二网络装置15是具有提供其它网络装置取得NAT信息的协助能力的步骤,进行说明,复请参阅图1所示,其中该第一网络装置14的IP地址为IPa,且其所开启的二连接端口为Pa1、Pa2,该第二网络装置的IP地址为IPb,且其所开启的二连接端口为Pb1、Pb2,另,STUN服务器17的网络接口有两个公共(Publ ic)IP地址分别为IPs1与IPs2,其中公众IP地址IPs1会开启两个sockets,以分别使用连接端口Ps11和Ps12,公众IP地址IPs2会开启一个socket并使用连接端口Ps21,该追踪连线服务器10的公众IP地址为IPt,且该IPt会开启一个socket并使用连接端口Pt。另,第一网络装置14会使用IP地址IPa,且该第二网络装置15会使用IP地址IPb,分别送出请求信息至追踪连线服务器10的连接端口Pt的公众IP地址IPt,如此,第一、二网络装置14、15即可取得该STUN服务器17提供STUN服务时所需的公众IP地址IPs1、IPs2及连接端口Ps11、Ps12、Ps21,在此声明者,在后续说明中,当请求信息是由IP地址IPa且通过连接端口Pa1送出,则IP地址及对应的连接端口会简单记载为传输地址IPa.Pa1,以避免文字叙述过于复杂,合先陈明。
[0042] 复请参阅图1所示,第一网络装置14及第二网络装置15取得STUN服务器17的公众IP地址IPs1、IPs2及连接端口Ps11、Ps12、Ps21后,第一网络装置14及第二网络装置15会分别和该STUN服务器17进行通信,以能取得各自对应的第一NAT11及第二NAT12的相关信息(如:公众IP地址、开启的连接端口、映射行为和封包过滤规则),由于第一网络装置14及第二网络装置15于进行NAT行为测试的过程相同,以下仅就第一网络装置14的NAT行为测试进行说明,首先,针对映射行为测试而言,请参阅图2所示:
[0043] 第一网络装置14会从其传输地址IPa.Pa1通过第一NAT11传送第一个绑定请求信息(Binding Request)至STUN服务器17的传输地址IPs1.Ps11(如图2的a1);
[0044] 该STUN服务器17接收到该第一个绑定请求信息后,会自传输地址IPs1.Ps11回复第一个绑定响应信息(Binding Response)至该第一网络装置14(如图2的a2),其中该第一个绑定响应信息中会载明第一NAT11的公众IP地址和开启的连接端口;
[0045] 第一网络装置14会从其传输地址IPa.Pa1通过第一NAT11传送第二个绑定请求信息至STUN服务器17的传输地址IPs1.Ps12(如图2的a3);
[0046] 该STUN服务器17接收到该第二个绑定请求信息后,会自传输地址IPs1.Ps12回复第二个绑定响应信息至该第一网络装置14(如图2的a4),其中该第二个绑定响应信息中会载明第一NAT11的公众IP地址和开启的连接端口;
[0047] 最后,第一网络装置14会从其传输地址IPa.Pa1通过第一NAT11传送第三个绑定请求信息至STUN服务器17的传输地址IPs2.Ps21(如图2的a5);
[0048] 该STUN服务器17接收到该第三个绑定请求信息后,会自传输地址IPs2.Ps21回复第三个绑定响应信息至该第一网络装置14(如图2的a6),其中该第三个绑定响应信息中会载明第一NAT11的公众IP地址和开启的连接端口;
[0049] 当第一网络装置14接收到前述该等绑定响应信息后,若该等绑定响应信息中所载明的连接端口(Port)皆相同,则代表第一NAT11的映射行为为Ind ependent,若只有第一、二绑定响应信息中所载明的连接端口相同,则代表第一NAT11的映射行为为Address Dependent,若该等绑定响应信息中所载明的连接端口均不相同,则代表第一NAT11的映射行为为Address&Port Depen dent。
[0050] 针对封包过滤规则测试而言,请参阅图1及图3所示:
[0051] 第一网络装置14会从其传输地址IPa.Pa2通过第一NAT11传送第四个绑定请求信息至STUN服务器17的传输地址IPs1.Ps11(如图3的b1);
[0052] 该STUN服务器17接收到该第四个绑定请求信息后,会自传输地址IPs1.Ps11回复第四个绑定响应信息至该第一网络装置14(如图3的b2),其中该第四个绑定响应信息中会载明第一NAT11的公众IP地址和开启的连接端口;
[0053] 第一网络装置14会从其传输地址IPa.Pa2通过第一NAT11传送第五个绑定请求信息至STUN服务器17的传输地址IPs1.Ps11(如图3的b3),其中该五个绑定请求信息的CHANGE-REQUEST属性中的变更连接端口(change port)旗标(Flag)设为1;
[0054] 该STUN服务器17接收到该第五个绑定请求信息后,会自传输地址IPs1.Ps12回复第五个绑定响应信息至该第一网络装置14(如图3的b4),其中该第五个绑定响应信息中会载明第一NAT11的公众IP地址和开启的连接端口;
[0055] 最后,第一网络装置14会从其传输地址IPa.Pa2通过第一NAT11传送第六个绑定请求信息至STUN服务器17的传输地址IPs1.Ps11(如图3的b5),其中该六个绑定请求信息的CHANGE-REQUEST属性中的变更IP(change IP)旗标设为1;
[0056] 该STUN服务器17接收到该第六个绑定请求信息后,会自传输地址IPs2.Ps21回复第六个绑定响应信息至该第一网络装置14(如图3的b6),其中该第六个绑定响应信息中会载明第一NAT11的公众IP地址和开启的连接端口;
[0057] 当第一网络装置14能接收到第四、五、六绑定响应信息时,则代表第一NAT11的封包过滤规则为Independent,若第一网络装置14只接收到第四、五绑定响应信息时,则代表第一NAT11的封包过滤规则为Address Dependent,若第一网络装置14只接收到第四绑定响应信息时,则代表第一NAT11的封包过滤规则为Address&Port Dependent。
[0058] 复请参阅图1所示,当第一NAT11及第二NAT12的映射行为和封包过滤规则皆是independent,则表示第一NAT11及第二NAT12为完全圆锥形NAT(full-cone NAT)类型,则位于该等NAT11、12后方的该等网络装置14、15是具有提供其它网络装置取得NAT信息的协助能力,因此,第一网络装置14会向该追踪连线服务器10注册一第一映射地址IPx.Px1及一第二映射地址IPx.P x2,其中该第一映射地址IPx.Px1是对应于第一网络装置14的传输地址IPa.Pa1,该第二映射地址IPx.Px2是对应于第一网络装置14的传输地址IPa.Pa2,又,第二网络装置15会向该追踪连线服务器10注册一第三映射地址IPy.Py1及一第四映射地址IPy.Py2,其中该第三映射地址IPy.Py1是对应于第二网络装置15的传输地址IPb.Pb1,该第四映射地址IPy.Py2是对应于第二网络装置15的传输地址IPb.Pb2。
[0059] 承上,复请参阅图1所示,当追踪连线服务器10中已被注册多个网络装置,且该等网络装置皆具有提供其它网络装置取得NAT信息的协助能力时,该追踪连线服务器10会选出其中两个网络装置,并通知该二网络装置需协同提供S TUN服务(即,供其它网络装置取得NAT信息的服务),其中该追踪连线服务器10的通知程序如下:
[0060] 追踪连线服务器10会分别传送一组织信息至第一NAT11的第一映射地址IPx.Px1,及第二NAT12的第三映射地址IPy.Py1;
[0061] 第一NAT11会将该组织信息转送至第一网络装置14的传输地址IPa.Pa1,其中该组织信息会告知第一网络装置14需和第二网络装置15协同提供STUN服务,又,第二NAT12会将该组织信息转送至第二网络装置15的传输地址IP b.Pb1,其中该组织信息会告知第二网络装置15需和第一网络装置14协同提供S TUN服务;
[0062] 第一网络装置14会传送一组织确认请求信息至第二NAT12的第三映射地址IPy.Py1,该第二NAT12会将组织确认请求信息转送至第二网络装置15的传输地址IPb.Pb1,又,当该第二网络装置15接收到该组织确认请求信息后,其会传送一组织确认回复信息至第一NAT11的第一映射地址IPx.Px1,该第一NAT11会将该组织确认回复信息转送至第一网络装置14的传输地址IPa.Pa1;
[0063] 该第二网络装置15也会传送另一组织确认请求信息至第一NAT11的第一映射地址IPx.Px1,该第一NAT11会将该另一组织确认请求信息转送至第一网络装置14的传输地址IPa.Pa1,又,当该第一网络装置14接收到该另一组织确认请求信息后,其会传送另一组织确认回复信息至第二NAT12的第三映射地址IPy.Py1,该第二NAT12会将该另一组织确认回复信息转送至第二网络装置15的传输地址IPb.Pb1。
[0064] 如此,当其它网络装置欲取得自身所在的私有网域的NAT信息时,该第一网络装置14及第二网络装置15便能够协同提供STUN服务予该其它网络装置。
[0065] 复请参阅图1所示,兹就第三网络装置16如何通过第一、二网络装置14、15,取得第三NAT13的NAT信息,进行说明,其中该第三网络装置16的IP地址为IPc,且其所开启的二连接端口为Pc1、Pc2,首先,该第三网络装置16会通过自身的传输地址IPc.Pc1传送一请求信息至追踪连线服务器10的传输地址IPt.Pt,以能取得提供STUN服务的相关信息(即,第一、二NAT11、12的各该映射地址IPx.Px1IPx.Px2、IPy.Py1和IPy.Py2),以能进行后续NAT行为测试。当该第三网络装置16进行映射行为测试时,是会执行下列步骤,请参阅图4所示:
[0066] 第三网络装置16会从其传输地址IPc.Pc1通过第三NAT13传送第七个绑定请求信息至第一NAT11的第一映射地址IPx.Px1(如图4的c1);
[0067] 第一NAT11会将该第七个绑定请求信息转送至第一网络装置14的传输地址IPa.Pa1(如图4的c2);
[0068] 该第一网络装置14接收到该第七个绑定请求信息后,会回复第七个绑定响应信息至该第三网络装置16(如图4的c3),其中该第七个绑定响应信息中会载明第三NAT13的公众IP地址和开启的连接端口;
[0069] 第三网络装置16会从其传输地址IPc.Pc1通过第三NAT13传送第八个绑定请求信息至第一NAT11的第二映射地址IPx.Px2(如图4的c4);
[0070] 第一NAT11会将该第八个绑定请求信息转送至第一网络装置14的传输地址IPa.Pa2(如图4的c5);
[0071] 该第一网络装置14接收到该第八个绑定请求信息后,会回复第八个绑定响应信息至该第三网络装置16(如图4的c6),其中该第八个绑定响应信息中会载明第三NAT13的公众IP地址和开启的连接端口;
[0072] 最后,第三网络装置16会从其传输地址IPc.Pc1通过第三NAT13传送第九个绑定请求信息至第二NAT12的第三映射地址IPy.Py1(如图4的c7);
[0073] 第二NAT12会将该第九个绑定请求信息转送至第二网络装置15的传输地址IPb.Pb1(如图4的c8);
[0074] 该第二网络装置15接收到该第九个绑定请求信息后,会回复第九个绑定响应信息至该第三网络装置16(如图4的c9),其中该第九个绑定响应信息中会载明第三NAT13的公众IP地址和开启的连接端口;
[0075] 当第三网络装置16接收到前述该等绑定响应信息后,若该等绑定响应信息中所载明的连接端口皆相同,则代表第三NAT13的映射行为为Independent,若只有第七、八绑定响应信息中所载明的连接端口相同,则代表第三NAT13的映射行为为Address Dependent,若该等绑定响应信息中所载明的连接端口均不相同,则代表第三NAT13的映射行为为Address&Port Dependent。
[0076] 当该第三网络装置16进行封包过滤规则测试时,是会执行下列步骤,请参阅图5所示:
[0077] 第三网络装置16会从其传输地址IPc.Pc2通过第三NAT13传送第十个绑定请求信息至第一NAT11的第一映射地址IPx.Px1(如图5的d1);
[0078] 第一NAT11会将该第十个绑定请求信息转送至第一网络装置14的传输地址IPa.Pa1(如图5的d2);
[0079] 该第一网络装置14接收到该第十个绑定请求信息后,会回复第十个绑定响应信息至该第三网络装置16(如图5的d3),其中该第十个绑定响应信息中会载明第三NAT13的公众IP地址和开启的连接端口;
[0080] 第三网络装置16会从其传输地址IPc.Pc2通过第三NAT13传送第十一个绑定请求信息至第一NAT11的第一映射地址IPx.Px1(如图5的d4),其中该第十一个绑定请求信息的CHANGE-REQUEST属性中change port旗标设为1;
[0081] 第一NAT11会将该第十一个绑定请求信息转送至第一网络装置14的传输地址IPa.Pa1(如图5的d5);
[0082] 该第一网络装置14接收到该第十一个绑定请求信息后,会自传输地址IPa.Pa2回复第十一个绑定响应信息至该第三网络装置16(如图5的d6),其中该第十一个绑定响应信息中会载明第三NAT13的公众IP地址和开启的连接端口;
[0083] 最后,第三网络装置16会从其传输地址IPc.Pc2通过第三NAT13传送第十二个绑定请求信息至第一NAT11的第一映射地址IPx.Px1(如图5的d7),其中该第十二个绑定请求信息的CHANGE-REQUEST属性中change IP旗标设为1;
[0084] 第一NAT11会将该第十二个绑定请求信息转送至第一网络装置14的传输地址IPa.Pa1(如图5的d8);
[0085] 该第一网络装置14接收到该第十二个绑定请求信息后,会通知第二网络装置15(如图5的d9);
[0086] 第二网络装置15会自传输地址IPb.Pb1回复第十二个绑定响应信息至该第三网络装置16(如图5的d10),其中该第十二个绑定响应信息中会载明第三NAT13的公众IP地址和开启的连接端口;
[0087] 当第三网络装置16能接收到第十、十一、十二绑定响应信息时,则代表第三NAT13的封包过滤规则为Independent,若第三网络装置16只接收到第十、十一绑定响应信息时,则代表第三NAT13的封包过滤规则为Address Dependent,若第三网络装置16只接收到第十绑定响应信息时,则代表第三NAT13的封包过滤规则为Address&Port Dependent。
[0088] 综上所述可知,通过该第一网络装置14及第二网络装置15所提供的STUN服务,第三网络装置16即可得知第三NAT13的NAT信息,而不需再通过STUN服务器17才能得知第三NAT13的NAT信息,因此,能够大幅降低STUN服务器17的运作负担。此外,当该第三NAT13的映射行为和封包过滤规则皆是independent,则表示第三NAT13为完全圆锥形NAT(full-cone NAT)类型,意即,第三网络装置16具有提供其它网络装置取得NAT信息的协助能力,因此,第三网络装置16尚能向该追踪连线服务器10注册一第五映射地址IPz.Pz1及一第六映射地址IPz.Pz2,其中该第五映射地址IPz.Pz1是对应于第三网络装置16的传输地址IPc.Pc1,该第六映射地址IPz.Pz2是对应于第三网络装置16的传输地址IPc.Pc2,如此,第三网络装置16也得以协助其它网络装置取得自身所在的私有网域的NAT信息。
[0089] 以上所述,仅是本发明的较佳实施例,本发明所主张的权利范围,并不局限于此,本领域相关技术人员,依据本发明所揭露的技术内容,可轻易思及的等效变化,均应属不脱离本发明的权利要求书保护范畴。