穿透网络位置转换器的方法及通信装置与流程

文档序号:11064857阅读:326来源:国知局
穿透网络位置转换器的方法及通信装置与制造工艺

本发明涉及一种穿透网络位置转换器的方法及装置。



背景技术:

现行的网络为了解决因特网协定(Internet Protocol,IP)地址短缺、提升网络安全性、及阻止外部网络上的主机的恶意活动,大部份的连网设备都会通过一网络位置转换器(Network Address Translation,NAT)才连到外部网络或另一连网设备。这可能会导致连网设备与另一连网设备之间的数据传输因无法穿透网络位置转换器而造成数据传输失败。因此,如何穿透网络位置转换器变成一个必须解决的问题。一种方法是使用中继服务器(relay server)来穿透网络位置转换器,这种方法有较高的传输成功率,然而这种方法传输效率较低,且需要较高的传输成本,例如需要额外频宽或者需要较长的传输时间。另一种方法是使用点对点传输(peer-to-peer,P2P)的方式穿透网络位置转换器,这种方法可有较佳的传输效率并且可节省频宽,但是在使用对称型(symmetric)的网络位置转换器的情况下,P2P传输穿透网络位置转换器的成功率仍然较低。有鉴于此,有必要提供一种传输效率较高、传输成本较低且传输成功率更高的方式来穿透网络位置转换器。



技术实现要素:

本发明的目的在于能有高成功传输率,并以更有效率、更经济的方式来穿透网络位置转换器,更进一步的说,在能成功传输的前提下,能减少使用者联机、等待时间,且能尽量以点对点连接的方式来穿透网络位置转换器并传输数据,以提升传输效率、减少传输成本。

根据本发明的一实施例,提供一种穿透网络位置转换器的方法。此方法用于一通信装置,此通信装置对应连接至一网络位置转换器,此方法包括以下步骤。通信装置与另一通信装置交换一网络位置转换器信息。通信装置与另一通 信装置经由一中继服务器建立一中继连接。根据该网络位置转换器信息判断通信装置与另一通信装置建立一点对点连接是否可行。若通信装置与另一通信装置建立点对点连接为可行,则通信装置尝试与另一通信装置建立点对点连接,若点对点连接建立失败,则通信装置再次尝试与另一通信装置建立点对点连接。

根据本发明的另一实施例,提供一种穿透网络位置转换器的通信装置。此通信装置对应连接一网络位置转换器。通信装置包含一通信单元以及一处理单元。处理单元耦接至通信单元,并用以控制通信单元以执行下列步骤。通信单元与另一通信装置交换一网络位置转换器信息。通信单元与另一通信装置经由一中继器建立一中继连接。根据网络位置转换器信息判断通信单元与另一通信装置建立一点对点连接是否可行。若通信单元与另一通信装置建立点对点连接为可行,则通信单元尝试与另一通信装置建立点对点连接,若点对点连接建立失败,则通信单元再次尝试与另一通信装置建立点对点连接。

以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

附图说明

图1绘示依据本发明第一实施例的穿透网络位置转换器的方法的流程图;

图2A、图2B及图2C绘示依据本发明第二实施例的穿透网络位置转换器的方法的流程图;

图3A及图3B绘示依据本发明又一实施例的穿透网络位置转换器的方法的示意图;

图4绘示依据本发明一实施例的穿透网络位置转换器的通信装置的方框图。

其中,附图标记

110、120、130、140、150、210、220、230、240、250、260、270、280、290、2910、2920、2930、2410、2420、2430、2440、10、20、30、40、50、60、70、80、90、100、112、122、132、142、152、160、170、180、190、200、212、410、420:步骤

A、B、400:通信装置

NAT1、NAT2:网络位置转换器

STUN:NAT会话传输应用程序(Session Traversal Utilities for NAT)服务器

P:代理服务器

RELAY:中继服务器

具体实施方式

下面结合附图对本发明的结构原理和工作原理作具体的描述:

图1绘示依据本发明第一实施例的穿透网络位置转换器的方法的流程图。此实施例用于一通信装置,此通信装置对应连接至一网络位置转换器,对应连接的方式例如通过有线或无线的方式连接,例如通过因特网(internet)、无线区域网络(wireless local area network,WLAN)等,本发明不加以限制。此方法包括以下步骤。首先,执行步骤110,通信装置与另一通信装置交换一网络位置转换器信息。接着,执行步骤120,通信装置与另一通信装置经由一中继服务器建立一中继连接,并传送数据至该另一通信装置。之后,执行步骤130,根据网络位置转换器信息判断通信装置与另一通信装置建立一点对点连接是否可行。最后,若通信装置与另一通信装置建立点对点连接为可行,则执行步骤140,通信装置尝试与另一通信装置建立点对点连接,以通过点对点连接传送数据至另一通信装置。若点对点连接建立失败,则通信装置再次尝试与另一通信装置建立点对点连接。另一方面,若在步骤130中,判断通信装置与另一通信装置建立点对点连接为不可行,则不建立点对点连接,如方框150所示。

此实施例先建立传输成功率较高的中继连接,再尝试建立传输效率较高、传输成本较低的点对点连接,藉由先建立传输成功率较高的中继连接,使用者可不需等待尝试建立点对点连接的时间而使用中继连接传输数据。另外,此实施例在判断点对点连接为可行但建立点对点连接失败的后,会继续尝试建立点对点连接,也就是尽量使用传输效率较高、传输成本较低的点对点连接。

图2A、图2B及图2C绘示依据本发明第二实施例的穿透网络位置转换器的方法的流程图。此方法用于一通信装置,通信装置可与另一通信装置之间进行数据传输,通信装置与另一通信装置分别对应连接至第一网络位置转换器及 第二网络位置转换器。在此实施例中,此方法包含步骤210,预测对应连接至通信装置的网络位置转换器使用的通信端口,以及判断对应连接至通信装置的网络位置转换器的类型。之后,执行步骤220,通信装置传送相关于第一网络位置转换器的第一网络位置转换器信息,并接收相关于对应连接另一通信装置的第二网络位置转换器的第二网络位置转换器信息。第一网络位置转换器信息可例如包含通信装置的区域因特网协定地址(local IP)、区域通信端口(local port)、第一网络位置转换器的公共因特网协定地址(public IP)、第一网络位置转换器使用的公共通信端口(public port)及/或第一网络位置转换器的类型。同理,第二网络位置转换器信息可例如包含另一通信装置的区域因特网协定地址、区域通信端口、第二网络位置转换器的公共因特网协定地址、第二网络位置转换器的使用的公共通信端口及/或第二网络位置转换器的类型。接着,执行步骤230,通信装置与另一通信装置建立一中继连接并开始传送数据至该另一通信装置。之后,执行步骤240,根据第一网络位置转换器信息及第二网络位置转换器信息判断通信装置与另一通信装置建立一点对点连接是否可行。若在步骤240中判断通信装置与另一通信装置建立点对点连接为不可行,则不建立点对点连接,如方框250所示。

而若判断通信装置与另一通信装置建立点对点连接为可行,则执行步骤260,通信装置尝试与另一通信装置建立点对点连接。接着,执行步骤270,判断通信装置与另一通信装置之间的点对点连接是否建立成功。若点对点连接建立成功,则执行步骤280,中断通信装置与另一通信装置建立的中继连接。

然而,若点对点连接建立失败,则会执行步骤290,通信装置再次尝试与另一通信装置建立点对点连接。在一些实施例中,步骤290更可包含多个步骤。首先,执行步骤2910,判断点对点连接失败的次数是否超过特定次数,例如5次,或者可设定为N%10>5次,亦即N除以10的余数大于5。若点对点连接失败的次数超过特定次数,则执行步骤2920,通信装置与另一通信装置交换新的网络位置转换器信息,这个新的网络位置转换器信息包含此通信装置的区域因特网协定地址及区域通信端口。在另一实施例中,由于区域因特网协定地址及区域通信端口已于步骤220中交换,因此在点对点连接失败的次数超过特定次数后,可直接执行步骤260,而不需执行步骤2920。在步骤2920之后,通信装置会执行步骤260,也就是通信装置根据新的网络位置转换器信息尝试与 另一通信装置建立点对点连接。藉由与另一通信装置交换包含区域因特网协定地址及区域通信端口的网络位置转换器信息,可解决通信装置A和通信装置B都连接至同一网络位置转换器且通信装置A和通信装置B连接的网络分享器不支援网络位置转换器回送(loopback)机制而导致使用网络位置转换器的公共因特网协定地址无法连接的情形,故使用通信装置的区域因特网协定地址可增加点对点连接建立的成功率。

若点对点连接失败的次数不超过特定次数,则执行步骤2930,重新预测网络位置转换器使用的通信端口,并且通信装置与另一通信装置交换新的网络位置转换器信息,这个新的网络位置转换器信息包含重新预测过的网络位置转换器使用的通信端口。之后,通信装置会执行步骤260,也就是通信装置根据新的网络位置转换器信息与另一通信装置建立点对点连接。藉由重新预测网络位置转换器使用的通信端口可解决通信端口预测错误或者通信端口被占用而导致无法连接的情形,故使用重新预测的通信端口可增加建立点对点连接的成功率。

另外,请再参照图2C,2C图绘示图2A的步骤240中判断点对点连接是否可行的流程图。步骤240判断点对点连接是否可行更可包含多个步骤。首先,执行步骤2410,根据步骤210中的对应连接至通信装置的网络位置转换器的通信端口预测值判断通信装置的通信端口是否可预测,以及根据步骤210中的对应连接至另一通信装置的网络位置转换器的通信端口预测值判断另一通信装置的通信端口是否可预测。若在步骤2410中判断对应连接至通信装置的网络位置转换器的通信端口与对应连接至另一通信装置的网络位置转换器的通信端口皆为可预测,则执行步骤2420,判断点对点连接为可行。若在步骤2410中判断对应连接至通信装置的网络位置转换器的通信端口与对应连接至另一通信装置的网络位置转换器的通信端口皆为不可预测,则执行步骤2430,判断点对点连接为不可行。若在步骤2410中判断对应连接至通信装置及另一通信装置的两个网络位置转换器的通信端口其中的一为可预测而其中另一为不可预测,则执行步骤2440,判断可预测的网络位置转换器的类型是否为对称型(symmetric)或端口限制型(port restricted cone)。若在步骤2440中,可预测的网络位置转换器的类型为对称型或端口限制型,则执行步骤2430,判断点对点连接为不可行。若在步骤2440中,可预测的网络位置转换 器的类型并非对称型或端口限制型,亦即可预测的网络位置转换器的类型为一对一型(full cone)或地址限制型(address restricted cone),则执行步骤2420,判断点对点连接为可行。

详细的说,表一列出了根据对应连接至通信装置与另一通信装置的网络位置转换器的通信端口是否可预测及对应连接至通信装置与另一通信装置的网络位置转换器的类型而判断建立点对点连接是否可行的结果。如表一第二列所示,若两个网络位置转换器的使用的通信端口皆为可预测,则不论对应连接至两通信装置的网络位置转换器类型为何,可判断这两个通信装置之间建立点对点连接为可行。如表一第三列所示,若两网络位置转换器的使用的通信端口皆为不可预测,则对应连接至两通信装置的网络位置转换器类型必定皆为对称型,可判断这两个通信装置之间建立点对点连接为不可行。然而,在其中的一网络位置转换器使用的通信端口为可预测,而其中的另一网络位置转换器使用的通信端口为不可预测时,则需再根据网络位置转换器的类型判断建立点对点连接是否为可行。在此情况下,其中通信端口为不可预测的网络位置转换器的类型必定为对称型,而通信端口为可预测的网络位置转换器的类型则有四种可能:一对一型(full cone)、地址限制型(address restricted cone)、端口限制型(port restricted cone)及对称型(symmetric),如表一第四~七列所示。而若通信端口为可预测的网络位置转换器的类型为一对一型或地址限制型时,则可判断这两个通信装置之间建立点对点连接为可行。若通信端口为可预测的网络位置转换器的类型为端口限制型或对称型时,则可判断这两个通信装置之间建立点对点连接为不可行。

表一

兹举一例以说明本发明的穿透网络位置转换器的方法。请参照图3A及图3B,图3A及图3B绘示依据本发明又一实施例的穿透网络位置转换器的方法的示意图。首先此方法用于通信装置A与通信装置B之间的传输,通信装置A对应连接至网络位置转换器NAT1,通信装置B对应连接至网络位置转换器NAT2。在此实施例的网络环境中,更包含NAT会话传输应用程序(Session Traversal Utilities for NAT)服务器STUN(在下文中简称为STUN服务器)、代理服务器(proxy)P、及中继服务器RELAY。在一些实施例中,STUN服务器及中继服务器可整合为一装置。在一些实施例中,STUN服务器、代理服务器及中继服务器可整合为一装置。

本发明的穿透网络位置转换器的方法包含下列步骤。首先,执行步骤10,通信装置A先向代理服务器P进行注册。同样的,在步骤12,通信装置B也会向代理服务器P进行注册。接着,执行步骤20,通信装置A会向STUN服务器发送请求,STUN服务器会回传网络位置转换器NAT1的公共因特网协定地址及网络位置转换器NAT1使用的公共通信端口,通信装置A会以这些信息尝试预测网络位置转换器NAT1下一个使用的公共通信端口。

以下兹举一例以说明在步骤20中尝试预测网络位置转换器使用的公共通信端口的4个例子。请参照表二,表二列出了通信装置A向4个服务器发送封包后接收到的公共通信端口值。举例来说,通信装置A例如可使用区域通信端口10000向STUN服务器发送请求以尝试预测网络位置转换器NAT1下一个使用的公共通信端口。在此例中,此请求包含分别向4个STUN服务器(STUN 1~STUN 4)发送4个封包,此4个STUN服务器(STUN 1~STUN 4)则分别回传网络位置转换器NAT1的公共通信端口值至通信装置A。例如,在例1中,4个STUN服务器回传至通信装置A的公共通信端口值皆为10000,因此,在例1中公共通信端口是可预测的,且可预测下一个使用的公共通信端口值亦为 10000。同样的,在例2中,4个STUN服务器回传至通信装置A的公共通信端口值皆为38792,因此,在例2中公共通信端口是可预测的,且可预测下一个使用的公共通信端口值亦为38792。而在例3中,4个STUN服务器回传至通信装置A的公共通信端口值是不同的,也就是在例3中的网络位置转换器NAT1为对称型的。虽然例3中的网络位置转换器NAT1为对称型的,但是4个STUN服务器回传至通信装置A的公共通信端口值分别为40001、40002、40003及40004,也就是说,在例3中公共通信端口值是有规律的,因此在例3中公共通信端口值仍然是可预测的,且可预测下一个使用的公共通信端口值为40005。最后,在例4中,4个STUN服务器回传至通信装置A的公共通信端口值是不同的,故在例4中的网络位置转换器NAT1也为对称型的。然而,在例4中的4个STUN服务器回传至通信装置A的公共通信端口值分别为45792、38729、52900及31803,也就是说,在例4中公共通信端口值是随机的,因此在例4中公共通信端口值是不可预测的。在表二的例子中,请求可包含向4个STUN服务器发送4个封包。然而,封包的数目或请求的数目并不限制,本领域技术人员可视实际需要发送多个封包或多次请求直到预测成功为止。

表二

之后,在步骤30中,通信装置A会指定步骤20中的预测结果作为预测值,例如预测网络位置转换器NAT1下一个使用的公共通信端口为50006。若在步骤20中,无法预测网络位置转换器NAT1下一个使用的公共通信端口,则可在步骤30中,指定预测值为0。接下来,执行步骤40,判断对应连接至通信装置A的网络位置转换器NAT1的类型。举例来说,可利用通信装置A通过网络位置转换器NAT1发送多个请求给STUN服务器的某个通信端口,并要求STUN服务器从其原来的通信端口或不同的通信端口回传网络位置转换器NAT1使用 的公共通信端口,通过检视通信装置A是否能收到STUN服务器回传的信息来判断网络位置转换器的类型。之后,执行步骤50,通信装置A发送请求RQ到中继服务器RELAY,以和中继服务器RELAY建立连接。接着,执行步骤60,通信装置A通过代理服务器P传送相关于网络位置转换器NAT1的信息到通信装置B,这些相关于网络位置转换器NAT1的信息包含通信装置A的区域因特网协定地址、通信装置A使用的通信端口、网络位置转换器NAT1的公共因特网协定地址、网络位置转换器NAT1的下一个使用的公共通信端口的预测值及网络位置转换器NAT1的类型。

之后,当通信装置B接收到通信装置A的传送的信息及连接请求。B也会执行相似的步骤,在步骤70中,通信装置B会向STUN服务器发送请求,以尝试预测网络位置转换器NAT2下一个使用的公共通信端口。同样的,封包的数目或请求的数目并不限制,本领域技术人员可视实际需要发送多个封包或多次请求直到预测成功为止。并在步骤80中,通信装置B会指定步骤70中的预测结果作为预测值,例如预测网络位置转换器NAT2下一个使用的公共通信端口为30016。之后也会在步骤90中,判断网络位置转换器NAT2的类型。并在步骤100中,通信装置B发送请求RQ到中继服务器RELAY,以和中继服务器RELAY建立连接。最后,执行步骤112,通信装置A接收通信装置B通过代理服务器P传送的相关于网络位置转换器NAT2的信息。同样的,这些相关于网络位置转换器NAT2的信息包含通信装置B的区域因特网协定地址、通信装置B使用的通信端口、网络位置转换器NAT2的公共因特网协定地址、网络位置转换器NAT2的下一个使用的公共通信端口的预测值及网络位置转换器NAT2的类型。之后,当通信装置A和通信装置B都接收到相关于网络位置转换器NAT1及NAT2的信息之后,就可执行步骤122,通信装置A与通信装置B经由中继服务器RELAY建立一中继连接并开始传送数据(real-time transport protocol,RTP)。

请继续参照图3B,当通信装置A与通信装置B经由中继服务器RELAY建立一中继连接之后,更执行步骤132,判断通信装置A与通信装置B建立一点对点连接是否可行。若通信装置A与通信装置B建立点对点连接为可行,则执行步骤142,通信装置A与通信装置B尝试建立点对点连接。但假设在此例中,网络位置转换器NAT1使用的公共通信端口50006被占用或者是预测错误,这 会导致通信装置A与通信装置B之间的点对点连接建立失败,例如通信装置A并未接收到通信装置B传送的封包。此时,执行步骤152,通信装置A会再向STUN服务器发送请求,以重新预测网络位置转换器NAT1下一个使用的公共通信端口,并在步骤160中重新指定网络位置转换器NAT1新的预测值,例如为50009。之后,执行步骤170,通信装置A重新传送新的相关于网络位置转换器NAT1的信息到通信装置B,此新的相关于网络位置转换器NAT1的信息包含新的公共通信端口预测值50009。

通信装置B也会执行步骤180,通信装置B会再向STUN服务器发送请求,以重新预测网络位置转换器NAT2下一个使用的公共通信端口,并在步骤190中重新指定网络位置转换器NAT2新的预测值。在此例中,网络位置转换器NAT2的类型例如为一对一型、地址限制型或端口限制型,亦即这些类型的网络位置转换器使用的公共通信端口是不变的,故网络位置转换器NAT2下一个使用的公共通信端口仍然为30016。因此,在步骤200中,通信装置A再次接收到通信装置B传送的相关于网络位置转换器NAT2的信息。最后,在通信装置A和通信装置B都接收到新的相关于网络位置转换器NAT1及NAT2的信息之后,执行步骤212,通信装置A根据新的相关于网络位置转换器NAT1及NAT2的信息再次尝试与通信装置B建立点对点连接,若点对点连接建立成功,则通信装置A即可通过点对点连接开始传送数据(RTP)至通信装置B,并中断通信装置A与通信装置B建立的中继连接。上述步骤的执行顺序仅用以示范性的说明,然而本发明并不以此为限,可视实际使用需要调整上述步骤的顺序,或者可重复执行某些步骤。

本发明更提供一种可执行上述实施例的穿透网络位置转换器的方法的通信装置。图4绘示依据本发明一实施例的穿透网络位置转换器的通信装置400的方框图。通信装置400对应连接网络位置转换器。通信装置400包含通信单元410及处理单元420。通信装置可例如为服务器、电脑、笔记型电脑、平板电脑、手机、智慧电视、或者连接因特网的装置等。通信单元可例如是以硬件电路或软件实现,具有通过因特网与其他装置通信的功能。处理单元可例如是中央处理单元(CPU)、微处理器、巨集处理器、或特殊应用集成电路(ASICs)、多个数字逻辑栅、或其他熟知的电子电路配置,或者也可以软件实现。处理单元420耦接至通信单元410,处理单元420用来控制通信单元410以执行下列 步骤。通信单元410与另一通信装置交换一网络位置转换器信息。通信单元410与另一通信装置经由一中继器建立一中继连接。处理单元420更用来控制通信单元410以根据网络位置转换器信息判断通信单元410与另一通信装置建立一点对点连接是否可行。若通信单元410与另一通信装置建立点对点连接为可行,则通信单元410尝试与另一通信装置建立点对点连接,若点对点连接建立失败,则通信单元410再次尝试与另一通信装置建立点对点连接。

本发明的通信装置400更可执行图2A、图2B、及图2C的步骤或者图3的步骤以穿透网络位置转换器,然而本发明的通信装置400并不以此为限,也可视实际需要调整执行的步骤以穿透网络位置转换器。

根据上述实施例,提供了多种穿透网络位置转换器的方法及装置,藉由先建立传输成功率较高的中继连接,再尝试建立传输效率较高、传输成本较低的点对点连接,而可节省使用者等待尝试建立点对点连接的时间,并且尽量使用传输效率较高、传输成本较低的点对点连接,可同时具有传输效率更高、传输成本更低的方式且传输成功率更高的效果。

当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1