用于点对点传输的公网信息探测方法、装置及系统的制作方法

文档序号:10492276阅读:222来源:国知局
用于点对点传输的公网信息探测方法、装置及系统的制作方法
【专利摘要】本发明属于数据网络传输技术领域,具体涉及一种用于点对点传输的公网信息探测方法、装置及系统。本方法包含步骤:客户端通过本地端口PORT_A往STUN服务器的端口PORT_X发送绑定请求一,并通过本地端口PORT_A往STUN服务器的端口PORT_Y发送绑定请求二;若客户端未收到所述绑定请求一或所述绑定请求二的响应消息,则本次探测失败;否则客户端解析所述绑定请求一的响应消息,得到公网IP地址NAT_IP1以及公网端口NAT_PORT1,解析所述绑定请求二的响应消息,得到公网IP地址NAT_IP2以及公网端口NAT_PORT2;客户端通过本地端口PORT_A往所述公网IP地址NAT_IP1以及所述公网端口NAT_PORT1发送回环测试消息;客户端通过本地端口PORT_B往STUN服务器的端口PORT_X发送绑定请求三,并设置参数请求服务器通过端口PORT_Z回复响应信息;客户端进行公网信息的判断。
【专利说明】
用于点对点传输的公网信息探测方法、装置及系统
技术领域
[0001] 本发明属于数据网络传输技术领域,具体设及一种用于点对点传输的公网信息探 测方法、装置及系统。
【背景技术】
[0002] 在IPV4环境下,中国IP地址紧缺,NAT(化twork Ad化ess Translation,网络地址 转换)设备将私网转换成公网,但是NAT设备无法直接获取自己的公网信息(包括公网IP,公 网端口,MT类型,是否支持回环),需要与位于公网上的设备进行通讯来获取自己的公网信 息。
[0003] STUN(Simple Traversal Of UDP over NATs,NAT的UDP简单穿越)是一种网络协 议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址。STUN的探测过程需要有 一个公网IP的STUN服务器,在NAT后面的客户端必须和此STUN服务器配合,互相之间发送若 干个UDP(User Datagram Protocol,用户数据报协议)数据包。UDP包中包含有客户端需要 了解的信息,比如MT公网IP,公网端口等,客户端通过是否得到运个UDP包和包中的数据判 断自己所属的NAT类型。
[0004] STUN的公网信息探测过程通常包括W下几个步骤:检测客户端是否有能力进行 UDP通信W及客户端是否位于NAT后;判断NAT属于对称型NAT还是非对称型NAT;对于非对称 型NAT还要进一步判断属于化11 Cone NAT(完全圆锥型NAT)、Res化icted Cone NAT(地址 限制圆锥型)或是化d Restricted Cone NAT(端口限制圆锥型);判断网络是否支持回环。 为实现判断NAT类型是否是IP限制型NAT(包括地址限制圆锥型和端口限制圆锥型),STUN服 务端必须部署在一台有着两个公网IP的服务器上。
[0005] 对于点对点数据传输应用而言,由于传输双方都只有一个固定的IP地址,不论是 否为IP限制的NAT类型,都不影响客户端之间的点对点传输数据,在运种情况下采用传统 STUN探测方法存在W下问题:1.STUN服务器端需要两个不同公网IP地址,造成网络设备和 IP地址资源的浪费;2.存在不必要的协议交互过程,浪费交互时间,降低了探测效率。另外, 目前研究认为当点对点一方是对称型NAT的情况下,若另一方不是完全圆锥型NAT,则无法 进行点对点(P2P)数据传输,需要通过公网上的TURN服务器中转进行数据传输。运种处理方 式,没有根据NAT的过滤属性进一步细分对称型NAT,忽略了部分类型的对称型NAT可W和其 他MT的网络实现点对点数据传输的可能性。

【发明内容】

[0006] 本发明的目的之一在于克服W上缺点,提供一种用于点对点传输的公网信息探测 方法,精简协议交互步骤,缩短协议交互探测时间,提高探测效率,同时提高点对点数据传 输连接的的成功率。
[0007] 为了解决上述技术问题,本发明提供了一种用于点对点传输的公网信息探测方 法,包括W下步骤:
[000引客户端通过本地端口 ?031'_4往51'?服务器的端口 P0RT_X发送绑定请求一,并通过 本地端口 ?(《1'_4往51'?服务器的端口 P0RT_Y发送绑定请求二;
[0009]若客户端未收到所述绑定请求一或所述绑定请求二的响应消息,则本次探测失 败;否则客户端解析所述绑定请求一的响应消息,得到公网IP地址NAT_IP1 W及公网端口 NAT_P0RT1,解析所述绑定请求二的响应消息,得到公网IP地址NAT_IP2 W及公网端口NAT_ P0RT2;
[0010] 客户端通过本地端口 p〇RT_A往所述公网IP地址NAT_IP 1W及所述公网端口 NAT_ PORTl发送回环测试消息;
[0011] 客户端通过本地端口 ?〇1?1'_8往51'?服务器的端口 P0RT_X发送绑定请求S,并设置 参数请求服务器通过端口 ?〇脚_2回复响应信息;
[0012] 客户端进行公网信息的判断。
[0013] 由于在点对点数据传输应用中,传输双方都只有一个固定的IP地址,不论是否为 IP限制的NAT类型,都不影响客户端之间的点对点传输数据,本发明的技术方案通过省略判 断是否为IP限制的NAT类型的步骤,缩短了探测交互时间,提高了探测效率;同时,由于省略 了该步骤,也就不需要STUN服务器配置2个公网IP地址,节省了硬件和IP地址资源。
[0014] 进一步地,所述公网信息包括客户端是否在NAT后面、客户端所在的NAT类型W及 网络是否支持回环。
[0015] 进一步地,所述客户端所在的NAT类型,根据NAT设备的映射表现和过滤表现属性 分为非端口限制型,端口限制型,支持点对点的对称型NAT和不支持点对点的对称型NAT四 类,所述非端日限制型包括完全圆锥型,地址限制型。
[0016] 进一步地,所述支持点对点的对称型NAT包括SymNat 1、SymNat2、SymNat3、SymNat4 W及SymNatS,所述不支持点对点的对称型NAT为SymNate。
[0017]本发明上述技术方案通过细分对称型NAT,增加了多种对称NAT可W实现点对点数 据传输的情形,提高了不同NAT间的点对点成功率。
[0018]进一步地,所述客户端进行公网信息的判断,包括W下步骤:
[0019 ] 判断所述公网IP地址NAT_I P1、所述公网端口 NAT_P0RT 1与本地IP地址、本地端口 口031'_4是否相同,若相同则客户端不是在NAT后面,否则客户端在NAT后面,并进行后续判 断;
[0020] 判断客户端所在的MT类型;
[0021] 判断是否收到所述回环测试消息的响应信息,若有收到,则网络支持回环,否则网 络不支持回环。
[0022] 进一步地,所述判断客户端所在的MT类型,包括W下步骤:
[0023] 判断所述公网IP地址NAT_IP1、所述公网端口 NAT_P0RT1与所述公网IP地址NAT_ IP2、所述公网端口NAT_P0RT2是否相同,若均相同,则客户端所在的NAT是非对称型NAT,否 则客户端所在的NAT是对称型NAT;
[0024] 若客户端所在的NAT是非对称型MT,进一步判断是否收到所述绑定请求S的响应 信息,若有收到,则客户端所在的NAT为非端口限制型NAT,否则客户端所在的NAT为端口限 制型NAT;
[0025] 若客户端所在的NAT是对称型NAT,进一步判断是否收到所述绑定请求S的响应信 息,若有收到,则客户端所在的NAT为支持点对点的对称型NAT,否则客户端所在的NAT为不 支持点对点的对称型NAT。
[0026] 相应地,本发明还提供了一种用于点对点传输的公网信息探测装置,包括:
[0027] 第一请求模块,用于客户端通过本地端口 ?01?1'_4往51'1^服务器的端口 P0RT_X发送 绑定请求一,并通过本地端口 ?〇脚_4往51'1^服务器的端口 P0RT_Y发送绑定请求二;
[0028] 消息解析模块,用于若客户端未收到所述绑定请求一或所述绑定请求二的响应消 息,则本次探测失败;否则客户端解析所述绑定请求一的响应消息,得到公网IP地址NAT_ IPl W及公网端口NAT_P0RT1,解析所述绑定请求二的响应消息,得到公网IP地址NAT_IP2 W 及公网端口 NAT_P0RT2;
[0029] 回环测试模块,用于客户端通过本地端口 P0RT_A往所述公网IP地址NAT_IP1W及 所述公网端口 NAT_P0RT1发送回环测试消息;
[0030] 第二请求模块,用于客户端通过本地端口 ?01?1'_8往51'1^服务器的端口 P0RT_X发送 绑定请求S,并设置参数请求服务器通过端口 ?01?1'_2回复响应信息;
[0031] 公网信息判断模块,用于客户端进行公网信息的判断。
[0032] 进一步地,所述公网信息判断模块,包括:
[0033] 第一判断子模块,用于判断所述公网IP地址NAT_IP1、所述公网端口 NAT_P0RT1与 本地IP地址、本地端口 ?01?1'_4是否相同,若相同则客户端不是在NAT后面,否则客户端在NAT 后面,并进行后续判断;
[0034] 第二判断子模块,用于判断客户端所在的MT类型;
[0035] 第S判断子模块,用于判断是否收到所述回环测试消息的响应信息,若有收到,贝U 网络支持回环,否则网络不支持回环。
[0036] 进一步地,所述第二判断子模块,包括:
[0037] 第一判断构件,用于判断所述公网IP地址NAT_IP 1、所述公网端口 NAT_P0RT 1与所 述公网IP地址NAT_IP2、所述公网端口NAT_P0RT2是否相同,若均相同,则客户端所在的NAT 是非对称型NAT,否则客户端所在的NAT是对称型NAT;
[0038] 第二判断构件,用于若客户端所在的NAT是非对称型NAT,进一步判断是否收到所 述绑定请求S的响应信息,若有收到,则客户端所在的NAT为非端口限制型NAT,否则客户端 所在的NAT为端口限制型NAT;
[0039] 第S判断构件,用于若客户端所在的NAT是对称型MT,进一步判断是否收到所述 绑定请求S的响应信息,若有收到,则客户端所在的NAT为支持点对点的对称型NAT,否则客 户端所在的NAT为不支持点对点的对称型NAT。
[0040] 相应地,本发明还提供了一种楼宇对讲系统,包含所述的用于点对点传输的公网 信息探测装置。
[0041] 本发明的技术方案通过省略判断是否为IP限制的NAT类型的步骤,减少了点对点 数据传输时的探测交互时间,提高了探测效率;同时,由于省略了该步骤,也就不需要STUN 服务器配置2个公网IP地址,节省了硬件和IP地址资源。另外,本发明通过进一步细分MT类 型,保证部分对称型MT环境下也可W进行点对点数据传输,提高了点对点传输成功率。
【附图说明】
[0042] 图I是本发明实施例的用于点对点传输的公网信息探测方法步骤流程图。
[0043] 图2是本发明实施例的客户端进行公网信息的判断步骤流程图。
[0044] 图3是本发明实施例的判断客户端所在的MT类型步骤流程图。
[0045] 图4是本发明实施例的用于点对点传输的公网信息探测装置结构框架图。
[0046] 图5是本发明实施例的公网信息判断模块结构框架图。
[0047] 图6是本发明实施例的第二判断子模块结构框架图。
[0048] 图7是本发明实施例的楼宇对讲系统框架图。
【具体实施方式】
[0049] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0050] 如图1,是本发明实施例的用于点对点传输的公网信息探测方法步骤流程图,包括 W下步骤:
[0化1 ] 步骤1、客户端通过本地端口 ?0脚_4往51'1^服务器的端口 P0RT_X发送绑定请求一, 并通过本地端口 ?〇1?1'_4往51'?服务器的端口 P0RT_Y发送绑定请求二;
[0052] 作为STUN公网信息探测的第一步,客户端首先需要确认能否与STUN服务器进行通 信。通过发送绑定请求一给STUN服务器并测试能否接收到回复消息,就可确定客户端与 STUN服务器之间通信是否正常,运里的P0RT_A是客户端本地任意端口,P0RT_X是STUN服务 器的任意端口。
[0053] 同时,发送绑定请求一的另一目的是可根据返回信息确认客户端是在公网上还是 MT后。另外,为了后续判断客户端所在的NAT类型,客户端从端口 P0RT_A再发送绑定请求二 给STUN服务器不同于端口 P0RT_X的另一端口 P0RT_Y。
[0054] 步骤2、若客户端未收到所述绑定请求一或所述绑定请求二的响应消息,则本次探 测失败;否则客户端解析所述绑定请求一的响应消息,得到公网IP地址NATJPl W及公网端 口 NAT_P0RT 1,解析所述绑定请求二的响应消息,得到公网IP地址NAT_IP2 W及公网端口 NAT_P0RT2;
[0055] 在具体的实施例中,客户端通常会设置等待响应消息的超时时间,例如,超时时间 设置为300毫秒,在超时时间内没有收到所述绑定请求一或所述绑定请求二的响应消息,贝U 客户端可W尝试多次发送绑定请求并接收回复消息,在多次均收不到响应消息的情况下, 可W确认客户端和STUN服务器之间无法通信,本次探测失败,在具体的网络环境中,运种情 况可能是由于防火墙或MT阻止了通信导致。如果收到了响应消息,客户端分别解析响应消 息,得到两次返回的公网IP地址NAT_IP1、NAT_IP2和公网端口NAT_P0RT1、NAT_P0RT2,用于 后续判断是否为对称型NAT。
[0056] 步骤3、客户端通过步骤一使用的本地端口 P0RT_A向响应消息中解析出的公网IP 地址NATJPl W及公网端口 NAT_P0RT1发送回环测试消息;后续根据能否收到回环测试响应 消息判断网络是否支持回环。
[0化7] 步骤4、客户端通过本地端口 ?01?1'_8往51'1^服务器的端口 P0RT_X发送绑定请求S, 并设置参数请求服务器通过端口 ?〇抓_2回复响应信息;运里的PORT_B是不同于步骤一中 PORT_A的任意端口,?301'_2是不同于PORT_X,PORT_Y的任意端口,本步骤的目的是为了后续 判断是否为端口限制型NAT。
[0058] 步骤5、客户端进行公网信息的判断。
[0059] 根据上述步骤能否收到响应消息W及响应消息的内容,客户端进行公网信息的判 断,运里的判断包括客户端是否在MT后面、客户端所在的MT类型W及网络是否支持回环。
[0060] 例1,在某一具体的场景中,客户端进行公网信息探测的步骤如下:
[0061 ] 客户端通过本地IP地址192.168.1.10、本地端口 8000往STUN服务器的端口 8001发 送绑定请求一,并通过本地端口 8000往STUN服务器的端口 8002发送绑定请求二;
[0062] 客户端收到绑定请求一的响应消息,解析出公网IP地址211.97.123. IW及公网端 口 9001,解析所述绑定请求二的响应消息,得到公网IP地址211.97.123.2W及公网端口 9002;
[0063] 客户端通过本地端口8000往公网IP地址211.97.123. IW及公网端口9001发送回 环测试消息,运里的公网IP地址和公网端口是绑定请求一的响应消息中解析出来的;
[0064] 客户端通过本地端口 7000往STUN服务器的端口 8001发送绑定请求=,并设置参数 请求服务器通过端口 8003回复响应信息;
[0065] 客户端根据绑定请求一,绑定请求二解析出的消息,W及能否收到回环探测响应 消息,能否收到绑定请求=的响应消息,进行公网信息的判断。
[0066] 传统的STUN公网信息探测流程中,由于需要判断NAT是否为IP地址限制型(包括地 址限制型NAT和端口限制型NAT),必须存在如下步骤:客户端向STUN服务器的公网IP地址 NATIP_1,公网端口 NAT_P0RT1发送数据包,并要求服务器用另一对公网IP地址NAT_IP2、公 网端口 NAT_P0RT2响应客户端的请求往回发送响应信息,如果客户端不能收到响应信息,贝U NAT类型是IP地址限制型(不允许外网客户端W不同的IP地址给内网客户端发送消息包), 否则是完全圆锥型NAT(允许外网客户端W不同的IP地址给内网客户端发送消息包)。运就 要求STUN服务器必须部署两张网卡,并配置两个公网IP地址,才能与客户端进行探测信息 的交互。
[0067] 在针对点对点数据传输的应用中,传输双方都只有一个固定的IP地址,不会存在 客户端之间通过不同的IP地址进行通信的情况,所W不论是否为IP限制的NAT类型,都不影 响客户端之间的点对点传输数据,所W判断NAT是否为IP地址限制型的步骤完全可W省略。 本发明的技术方案通过省略判断是否为IP限制的NAT类型的步骤,缩短了探测交互时间,提 高了探测效率;同时,由于省略了该步骤,也就不需要STUN服务器配置2个公网IP地址,节省 了硬件和IP地址资源。
[0068] 如图2,是本发明实施例的客户端进行公网信息的判断步骤流程图,包括W下步 骤:
[0069] 步骤501、判断所述公网IP地址NAT_IP1、所述公网端口 NAT_P0RT1与本地IP地址、 本地端口 口01?1'_4是否相同,若相同则客户端不是在NAT后面,否则客户端在MT后面,并进行 后续判断;
[0070] 由于绑定请求一中返回的NAT_IP1是公网IP地址,NAT_P0RT1是公网端口,如果与 客户端本地IP地址、本地端口均相同,运说明客户端本身就在公网上,具有公网IP可W直接 监听UDP端口进行点对点数据通信;否则,说明客户端在NAT后面,必须进行NAT类型的判断。 [0071 ] 在例1中,客户端的本地IP地址192.168.1.10、本地端口 8000,绑定请求一的响应 消息解析出公网IP地址211.97.123.1、公网端口 9001,它们并不相同,说明客户端在NAT后 面。
[0072] 步骤502、判断客户端所在的NAT类型;
[0073] 传统的NAT分类方法将NAT分成化IlConeNat(完全圆锥NAT) ,Res化icte抓at(地址 限制NAT ),PortRes tri CtedNat (端 口限制NAT ),SymNat (对称型NAT)四大类。
[0074] 为了提高不同NAT情况下客户端A和客户端B之间点对点连接的成功率,W及根据 点对点数据传输应用的特点,本发明将NAT类型分为非端口限制型NAT(包括传统的完全圆 锥NAT、地址限制NAT),端口限制型NAT、支持点对点的对称型NATW及不支持点对点的对称 型MT总共四大类。具体的分类步骤如下:
[0075] 1)根据NAT设备的NAT_BEHAVI0R(映射表现)属性和NAT_FILTERING(过滤表现)属 性将对称型NAT进一步细分成6类,对应SymNatl~SymNate,总共分为9种NAT类型,具体分类 如下表格所示:
[0076]
[(
[0078] 其中,Endpoint-Ind邱endent Mapping(端点独立映射):对于从一个相同的内部 IP地址和端口(X: X)发往任何外部IP地址和端口的随后数据包,NAT会重用端口映射; AcMress-Dependent Mapping(地址依赖性映射):对于接下来要从同一个内部IP地址和端 口(X:x)发往同一个外部地址,不管外部端口号是多少,NAT都会重用端口映射;Address and ^d-Dependent Mapping(地址和端口依赖性映射):对于接下来要从同一个同部IP地 址和端口(X:x)发往同一个外部地址和端口号的数据包,当映射依然处于活动状态的时候, NAT设备会重用端口映射。
[OOW] Elndpoint-Independent Filtering(端点独立的过滤):不管外部IP地址和端口号 (Z:z)是多少,NAT都只过滤不发往内部IP地址和端口号(X:x)的数据包。NAT会转发所有发 往X: X的数据包;AcMress-Dependent FiItering(地址依赖性过滤):NAT过滤不发往内部地 址X:x的数据包。并且,如果X:x之前没有发送任何数据包给Y(和Y使用的端口无关),那么 NAT设备就会过滤从Y:y发往X:x的数据包;AcMress and化;Tt-Dependent Filtering地址 和端口依赖性过滤:NAT过滤不发往内部地址X:x的数据包。并且,如果X:x之前没有发送任 何数据包给Y: y,那么MT设备就会过滤从Y: y发往X: X的数据包。
[0080] 2)得到客户端A的NAT类型、客户端B的NAT类型、W及客户端A和客户端B是否支持 点对点通讯的=者映射关系表。
[0riRi 1 [(
[0083] 从上述映射关系表可W看出并非所有对称网络都无法实现点对点,只有SymNate 与 SymNate W 及 SymNatG 与化;TtRestrictedNat、SymNatG 与 SymNat3 运S 种NAT类型搭配无法 实现点对点传输,其余的都可W实现点对点传输。因此,本发明将对称型NAT分为支持点对 点的对称型NAT,包括SymNat 1、SymNat2、SymNat3、SymNat4 W及SymNatS;不支持点对点的对 称型NAT,包括SymNate。
[0084] 同时,对于点对点数据传输双方均为固定IP地址的情况,Ful ICone化t (完全圆锥 NAT)和Restricted化t(地址限制NAT),后续可采取统一的处理方式,所W将他们归为非端 口限制型NAT。
[0085] 如图3,是本发明实施例的判断客户端所在的MT类型步骤流程图。
[0086] 将根据绑定消息一的响应消息解析出的公网IP地址NAT_IP1、公网端口 NAT_P0RT1 与根据绑定消息二的响应消息解析出的公网IP地址NAT_IP2、公网端口 NAT_P0RT2进行比 较,如果NAT_IP1与NAT_IP2相同且NAT_P0RT1与NAT_P0RT2相同,则客户端所在的NAT是非对 称型NAT,否则客户端所在的NAT是对称型NAT;
[0087] 若客户端所在的NAT是非对称型MT,进一步判断是否收到所述绑定请求S的响应 信息,若有收到,则客户端所在的NAT为非端口限制型NAT,否则客户端所在的NAT为端口限 制型NAT;由于绑定请求=要求STUN服务器通过不同的端口回复响应消息,客户端若能收到 消息,说明了客户端所在的NAT没有对端口号进行限制,允许外部客户端通过不同的端口给 内部客户端发送消息,所W属于非限制端口型NAT,否则属于限制端口型NAT。
[0088] 若客户端所在的NAT是对称型NAT,进一步判断是否收到所述绑定请求S的响应信 息,若有收到,则客户端所在的NAT为支持点对点的对称型NAT,否则客户端所在的NAT为不 支持点对点的对称型NAT。
[0089] 在例1中,绑定请求一的响应消息解析出公网IP地址211.97.123.1、公网端口 9001,绑定请求二的响应消息解析出公网IP地址211.97.123.2、公网端口 9002,它们并不相 同,说明客户端所在MT是对称型NAT;
[0090] 在进一步判断,客户端若收到了服务器通过端口8003回复的绑定请求S响应信 息,说明客户端所在MT是支持点对点的对称型MT。
[0091 ] 又如,在另一实施例中,绑定请求一的响应消息解析出公网IP地址211.97.123.1、 公网端口 9001,绑定请求二的响应消息解析出公网IP地址211.97.123.1、公网端口 9001,它 们完全相同,说明客户端所在MT是非对称型NAT;
[0092] 在进一步判断,客户端若收到了服务器通过端口8003回复的绑定请求S响应信 息,说明客户端所在MT是非端口限制型MT。
[0093] 步骤503、判断是否收到所述回环测试消息的响应信息,若有收到,则网络支持回 环,否则网络不支持回环。
[0094] 在例1中,若客户端收到回环测试消息,则网络支持回环,否则网络不支持回环。
[0095] 如图4,是本发明实施例的用于点对点传输的公网信息探测装置结构框架图,包 括:
[0096] 第一请求模块,用于客户端通过本地端口 ?01?1'_4往51'1^服务器的端口 P0RT_X发送 绑定请求一,并通过本地端口 ?〇脚_4往51'1^服务器的端口 P0RT_Y发送绑定请求二;
[0097] 消息解析模块,用于若客户端未收到所述绑定请求一或所述绑定请求二的响应消 息,则本次探测失败;否则客户端解析所述绑定请求一的响应消息,得到公网IP地址NAT_ IPl W及公网端口NAT_P0RT1,解析所述绑定请求二的响应消息,得到公网IP地址NAT_IP2 W 及公网端口 NAT_P0RT2;
[009引回环测试模块,用于客户端通过本地端口 P0RT_A往所述公网IP地址NAT_IP1 W及 所述公网端口 NAT_P0RT1发送回环测试消息;
[0099] 第二请求模块,用于客户端通过本地端口 ?01?1'_8往51'1^服务器的端口 P0RT_X发送 绑定请求S,并设置参数请求服务器通过端口 ?01?1'_2回复响应信息;
[0100] 公网信息判断模块,用于客户端进行公网信息的判断。
[0101] 如图5,是本发明实施例的公网信息判断模块结构框架图,包括:
[0102] 第一判断子模块,用于判断所述公网IP地址NAT_IP1、所述公网端口 NAT_P0RT1与 本地IP地址、本地端口 ?01?1'_4是否相同,若相同则客户端不是在NAT后面,否则客户端在NAT 后面,并进行后续判断;
[0103] 第二判断子模块,用于判断客户端所在的MT类型;
[0104] 第S判断子模块,用于判断是否收到所述回环测试消息的响应信息,若有收到,贝U 网络支持回环,否则网络不支持回环。
[0105] 如图6,是本发明实施例的第二判断子模块结构框架图,包括:
[0106] 第一判断构件,用于判断所述公网IP地址NAT_IP 1、所述公网端口 NAT_P0RT 1与所 述公网IP地址NAT_IP2、所述公网端口NAT_P0RT2是否相同,若均相同,则客户端所在的NAT 是非对称型NAT,否则客户端所在的NAT是对称型NAT;
[0107] 第二判断构件,用于若客户端所在的NAT是非对称型NAT,进一步判断是否收到所 述绑定请求S的响应信息,若有收到,则客户端所在的NAT为非端口限制型NAT,否则客户端 所在的NAT为端口限制型NAT;
[0108] 第S判断构件,用于若客户端所在的NAT是对称型MT,进一步判断是否收到所述 绑定请求S的响应信息,若有收到,则客户端所在的NAT为支持点对点的对称型NAT,否则客 户端所在的NAT为不支持点对点的对称型NAT。
[0109] 本发明的用于点对点传输的公网信息探测装置可应用在两个设备需进行数据传 输的场景中。例如,楼宇对讲领域、安防监控领域、对讲领域等等。在楼宇对讲领域中,客户 端可W是梯口机,室内机等楼宇设备,也可W是移动终端,例如手机、平板、智能穿戴式设备 AfrAfr 寸寸O
[0110] 如图7,是本发明实施例的楼宇对讲系统框架图,包含上述的用于点对点传输的公 网信息探测装置。
[0111] 该楼宇对讲系统可用于实现访客与用户之间的视频对讲功能,通过包含本发明用 于点对点传输的公网信息探测装置,双方客户端可W各自探测自己公网信息,判断客户端 是否在MT后面、客户端所在的NAT类型W及网络是否支持回环,再根据双方的公网信息,选 择合适的点对点连接方式进行数据通信。
[0112] 在一具体的应用实施例中,客户端A为梯口机,客户端B为手机。当梯口机和手机需 要进行点对点数据传输时候,梯口机应用本发明的用于点对点传输的公网信息探测装置进 行公网信息探测时,
[0113] 第一请求模块,用于梯口机通过本地地址192.168.1.1、本地端口 11000往STUN月良 务器的端口 12000发送绑定请求一,并通过本地端口 11000往STUN服务器的端口 13000发送 绑定请求二;
[0114] 消息解析模块,用于若梯口机未收到所述绑定请求一或所述绑定请求二的响应消 息,则本次探测失败,无法和手机进行点对点连接;否则梯口机解析所述绑定请求一的响应 消息,得到公网IP地址211.97.123.183 W及公网端口 14000,解析所述绑定请求二的响应消 息,得到公网IP地址211.97.123.100 W及公网端口 15000;
[0115] 回环测试模块,用于梯口机通过本地端口 1 1 000往所述公网IP地址 211.97.123.183 W及所述公网端口 14000发送回环测试消息;
[0116] 第二请求模块,用于梯口机通过本地端口 16000往STUN服务器的端口 12000发送绑 定请求=,并设置参数请求服务器通过端口 19000回复响应信息;
[0117] 公网信息判断模块,用于梯口机进行公网信息的判断。在本实施例中,绑定请求一 返回的公网IP地址、公网端口与本地地址、本地端口均不相同,所W梯口机在NAT后;由于绑 定请求一返回的公网IP地址、公网端口与绑定请求二返回的公网IP地址、公网端口均不相 同,所W梯口机所在的NAT是对称型NAT;同时,梯口机可W收到服务端从端口 19000回复的 响应消息,所W梯口机所在的NAT是支持点对点传输的对称型NAT。另外,梯口机未收到回环 测试响应消息,则本网络不支持回环。
[0118] 同样的,对于另一客户端B手机,应用本发明的用于点对点传输的公网信息探测装 置进行公网信息探测时,
[0119] 第一请求模块,用于手机通过本地地址192.168.1.2、本地端口 21000往STUN服务 器的端口 22000发送绑定请求一,并通过本地端口 21000往STUN服务器的端口 23000发送绑 定请求二;
[0120] 消息解析模块,用于若手机未收到所述绑定请求一或所述绑定请求二的响应消 息,则本次探测失败,无法和梯口机进行点对点连接;否则手机解析所述绑定请求一的响应 消息,得到公网IP地址211.97.123.50W及公网端口24000,解析所述绑定请求二的响应消 息,得到公网IP地址211.97.123.50 W及公网端口 24000;
[0121 ] 回环测试模块,用于手机通过本地端口 21000往所述公网IP地址211.97.123.50 W 及所述公网端口 24000发送回环测试消息;
[0122] 第二请求模块,用于手机通过本地端口 26000往STUN服务器的端口 22000发送绑定 请求=,并设置参数请求服务器通过端口 29000回复响应信息;
[0123] 公网信息判断模块,用于手机进行公网信息的判断。在本实施例中,绑定请求一返 回的公网IP地址、公网端口与本地地址、本地端口均不相同,所W手机在NAT后;由于绑定请 求一返回的公网IP地址、公网端口与绑定请求二返回的公网IP地址、公网端口均相同,所W 手机所在的NAT是非对称型NAT;同时本实施例中,手机可W收到服务端从端口29000回复的 响应消息,所W手机所在的NAT是非端口限制型NAT。另外,手机未收到回环测试响应消息, 则本网络不支持回环。
[0124] 在梯口机和手机都探测到自己的公网信息后,根据本发明的不同NAT类型点对点 传输映射关系表可W知道,支持点对点传输的对称型NAT与非端口限制型NAT之间是可W进 行点对点数据传输,梯口机和手机就可W建立点对点连接进行数据通信。
[0125] 总之,两个W上设备之间需要进行点对点数据传输时,均可应用本发明的装置。通 过包含本发明用于点对点传输的公网信息探测装置,各自探测公网信息,并根据结果判断 是否能进行点对点的数据传输。
【主权项】
1. 一种用于点对点传输的公网信息探测方法,其特征在于,包括以下步骤: 客户端通过本地端口 ?〇訂_4往31'1^服务器的端口 PORT_X发送绑定请求一,并通过本地 端口 ?01?1'_4往31'·服务器的端口 PORT_Y发送绑定请求二; 若客户端未收到所述绑定请求一或所述绑定请求二的响应消息,则本次探测失败;否 则客户端解析所述绑定请求一的响应消息,得到公网IP地址NAT_IP1以及公网端口NAT_ P 0 R T1,解析所述绑定请求二的响应消息,得到公网IP地址N A T _ IP 2以及公网端口 N A T _ P0RT2; 客户端通过本地端口 P〇RT_A往所述公网IP地址NAT_IP 1以及所述公网端口 NAT_PORT 1 发送回环测试消息; 客户端通过本地端口 ?〇訂_8往31'1^服务器的端口 PORT_X发送绑定请求三,并设置参数 请求服务器通过端口 ?〇訂_2回复响应信息; 客户端进行公网信息的判断。2. 如权利要求1所述的用于点对点传输的公网信息探测方法,其特征在于,所述公网信 息包括客户端是否在NAT后面、客户端所在的NAT类型以及网络是否支持回环。3. 如权利要求2所述的用于点对点传输的公网信息探测方法,其特征在于,所述客户端 所在的NAT类型,根据NAT设备的映射表现和过滤表现属性分为非端口限制型,端口限制型, 支持点对点的对称型NAT和不支持点对点的对称型NAT四类,所述非端口限制型包括完全圆 锥型,地址限制型。4. 如权利要求3所述的用于点对点传输的公网信息探测方法,其特征在于,所述支持点 对点的对称型NAT包括SymNat 1、SymNat2、SymNat3、SymNat4以及SymNat5,所述不支持点对 点的对称型NAT为SymNat6。5. 如权利要求1所述的用于点对点传输的公网信息探测方法,其特征在于,所述客户端 进行公网信息的判断,包括以下步骤: 判断所述公网IP地址NAT_I P1、所述公网端口 NAT_PORT 1与本地IP地址、本地端口 PORT_ A是否相同,若相同则客户端不是在NAT后面,否则客户端在NAT后面,并进行后续判断; 判断客户端所在的NAT类型; 判断是否收到所述回环测试消息的响应信息,若有收到,则网络支持回环,否则网络不 支持回环。6. 如权利要求5所述的用于点对点传输的公网信息探测方法,其特征在于,所述判断客 户端所在的NAT类型,包括以下步骤: 判断所述公网IP地址NAT_I P1、所述公网端口 NAT_PORT 1与所述公网IP地址NAT_I P2、所 述公网端口NAT_P0RT2是否相同,若均相同,则客户端所在的NAT是非对称型NAT,否则客户 端所在的NAT是对称型NAT; 若客户端所在的NAT是非对称型NAT,进一步判断是否收到所述绑定请求三的响应信 息,若有收到,则客户端所在的NAT为非端口限制型NAT,否则客户端所在的NAT为端口限制 型 NAT; 若客户端所在的NAT是对称型NAT,进一步判断是否收到所述绑定请求三的响应信息, 若有收到,则客户端所在的NAT为支持点对点的对称型NAT,否则客户端所在的NAT为不支持 点对点的对称型NAT。7. -种用于点对点传输的公网信息探测装置,其特征在于,包括: 第一请求模块,用于客户端通过本地端口 服务器的端口 PORT_X发送绑定 请求一,并通过本地端口 服务器的端口 PORT_Y发送绑定请求二; 消息解析模块,用于若客户端未收到所述绑定请求一或所述绑定请求二的响应消息, 则本次探测失败;否则客户端解析所述绑定请求一的响应消息,得到公网IP地址NAT_IP1以 及公网端口 NAT_P0RT1,解析所述绑定请求二的响应消息,得到公网IP地址NAT_IP2以及公 网端口 NAT_P0RT2; 回环测试模块,用于客户端通过本地端口 P〇RT_A往所述公网IP地址NAT_IP1以及所述 公网端口 NAT_P0RT1发送回环测试消息; 第二请求模块,用于客户端通过本地端口 ?01?1'_8往51'·服务器的端口 PORT_X发送绑定 请求三,并设置参数请求服务器通过端口 ?〇訂_2回复响应信息; 公网信息判断模块,用于客户端进行公网信息的判断。8. 如权利要求7所述的用于点对点传输的公网信息探测装置,其特征在于,所述公网信 息判断模块,包括: 第一判断子模块,用于判断所述公网IP地址NAT_I P1、所述公网端口 NAT_PORT 1与本地 IP地址、本地端口 ?0打_4是否相同,若相同则客户端不是在NAT后面,否则客户端在NAT后 面,并进行后续判断; 第二判断子模块,用于判断客户端所在的NAT类型; 第三判断子模块,用于判断是否收到所述回环测试消息的响应信息,若有收到,则网络 支持回环,否则网络不支持回环。9. 如权利要求8所述的用于点对点传输的公网信息探测装置,其特征在于,所述第二判 断子模块,包括: 第一判断构件,用于判断所述公网IP地址NAT_IP1、所述公网端口 NAT_P0RT1与所述公 网IP地址NAT_IP2、所述公网端口 NAT_P0RT2是否相同,若均相同,则客户端所在的NAT是非 对称型NAT,否则客户端所在的NAT是对称型NAT; 第二判断构件,用于若客户端所在的NAT是非对称型NAT,进一步判断是否收到所述绑 定请求三的响应信息,若有收到,则客户端所在的NAT为非端口限制型NAT,否则客户端所在 的NAT为端口限制型NAT; 第三判断构件,用于若客户端所在的NAT是对称型NAT,进一步判断是否收到所述绑定 请求三的响应信息,若有收到,则客户端所在的NAT为支持点对点的对称型NAT,否则客户端 所在的NAT为不支持点对点的对称型NAT。10. -种楼宇对讲系统,其特征在于,包含权利要求7-9任一所述的用于点对点传输的 公网信息探测装置。
【文档编号】H04L29/12GK105847343SQ201610160234
【公开日】2016年8月10日
【申请日】2016年3月21日
【发明人】李维勤, 陈风, 卢云飞, 陈荣木, 林傅荣
【申请人】福建星网锐捷通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1