基于sdp自检测nat穿越系统及方法

文档序号:9633837阅读:491来源:国知局
基于sdp自检测nat穿越系统及方法
【技术领域】
[0001]本发明涉及网络技术领域,特别涉及网络地址转换穿越技术领域,具体是指一种基于SDP自检测NAT穿越系统及方法。
【背景技术】
[0002]网络地址转换(NAT, Network Address Translat1n)有效解决了由IPv4协议导致IP地址资源不足所导致Internet主机之间交互的问题,将私有(保留)地址转化为合法IP地址。处于同一 NAT设备后的多台主机共享相同公网IP地址,私网内的主机通过NAT设备与公网的其他主机通信,通常都是由私网内的主机主动发起连接,数据包经过网络地址转换后送给公网上的服务器,私网IP地址通过NAT设备与公网的其他主机通信。NAT不仅完美地解决了 IP地址不足的问题,而且还能够一定程度上实现负载均衡和不透明代理的作用。然而,NAT实现了主机之间的交互,但同时也让主机之间的通信变得复杂,导致网络层协议应用效率降低。现有的解决该问题的穿越NAT技术主要包括ALG方式、UDP打洞技术、中转技术等,ALG技术是通过对多通道协议进行应用层报文信息的解析和地址转换,将需要进行地址转换的IP地址和端口进行相应的转换和处理,从而保证应用层通信的正确性,但ALG技术应用范围有限和准确性较低,导致没法高效的解决NAT穿越问题;UDP打洞技术原理是借助第三方服务器,使得通信双方都主动向对方发送消息,从而在各种NAT设备上留下映射,使得消息可以成功进入NAT内部,实现通讯,对于非对称型NAT,消息可以成功穿越NAT到达通信双方节点;中继方法相对较直接、简便,通信双方利用第三方服务器中转消息,第三方服务器位于公网,从而保证位于NAT后的节点与其通信畅通无阻,所有通过第三方服务器,也可解决NAT穿越问题,但此方法存在致命的缺点,随着通信节点的增加,第三方服务器的负载压力也随之增加,因此采用该技术可实现可靠性通信,但存在效率低的问题。

【发明内容】

[0003]本发明的目的是克服了上述现有技术中的缺点,提供一种能够在提供可靠地NAT穿越时,降低服务器负载的基于SDP自检测NAT穿越系统及方法。
[0004]为了实现上述的目的,本发明的基于SDP自检测NAT穿越系统具有如下构成:
[0005]该基于SDP自检测NAT穿越系统包括:第一终端及第二终端、注册服务器和穿越服务器。
[0006]其中,第一终端及第二终端均通过NAT路由器连接公网,用以发送注册请求,获取注册信息及发送包括所述注册信息的通信请求;
[0007]注册服务器连接公网,与所述的第一终端及第二终端交互,根据获得的所述注册请求,向所述的第一终端和第二终端提供对应的注册信息;
[0008]穿越服务器连接公网,与所述的第一终端、第二终端及注册服务器交互,根据获得的通信请求,实现所述的第一终端与所述的第二终端之间的NAT穿越。
[0009]该基于SDP自检测NAT穿越系统中,所述的注册信息包括终端对应的公网IP地址及NAT路由器绑定端口。
[0010]该基于SDP自检测NAT穿越系统中,所述的通信请求为包括目标终端信息、源终端公网IP地址及源终端NAT路由器绑定端口的SDP信息。
[0011]该基于SDP自检测NAT穿越系统中,所述的穿越服务器实现所述的第一终端与所述的第二终端之间的NAT穿越为将中继端口添加到所述的SDP信息。
[0012]该基于SDP自检测NAT穿越系统中,所述的实现所述的第一终端与所述的第二终端之间的NAT穿越,具体为,穿越服务器顺序选择私有地址、公有地址、中继地址中的一个所述的第一终端与所述的第二终端之间通信方式,实现NAT穿越。
[0013]本发明还提供一种基于SDP自检测NAT穿越方法,该方法包括以下步骤:
[0014](1)第一终端及第二终端通过NAT路由器连接公网,并向连接于公网的注册服务器发送注册请求;
[0015](2)所述的注册服务器根据获得的所述注册请求,向所述的第一终端和第二终端提供对应的注册信息;
[0016](3)所述的第一终端及第二终端中的一个作为源终端,另一个作为目标终端,源终端向连接于公网的穿越服务器发送与目标终端通信的通信请求,该通信请求包括所述注册?目息的通?目请求;
[0017](4)所述的穿越服务器根据获得的通信请求,实现所述的第一终端与所述的第二终端之间的NAT穿越。
[0018]该基于SDP自检测NAT穿越方法中,所述的注册信息包括终端对应的公网IP地址及NAT路由器绑定端口。
[0019]该基于SDP自检测NAT穿越方法中,所述的通信请求为包括目标终端信息、源终端公网IP地址及源终端NAT路由器绑定端口的SDP信息。
[0020]该基于SDP自检测NAT穿越方法中,所述的穿越服务器实现所述的第一终端与所述的第二终端之间的NAT穿越为将中继端口添加到所述的SDP信息。
[0021]该基于SDP自检测NAT穿越方法中,所述的实现所述的第一终端与所述的第二终端之间的NAT穿越,具体为,穿越服务器顺序选择私有地址、公有地址、中继地址中的一个所述的第一终端与所述的第二终端之间通信方式,实现NAT穿越。
[0022]采用了该发明的基于SDP自检测NAT穿越系统及方法,由于终端自主获取公网地址,采用自检测链路连通性保证数据可靠传输,本发明提出的基于SDP自检测NAT穿越系统和方法不但能够成功穿越NAT,使得处于内网的终端可以直接建立点对点的连接,采用服务器中继能够弥补了处于对称性NAT终端无法通信的不足,确保终端之间数据发送的可靠性和稳定性。
【附图说明】
[0023]图1为本发明的基于SDP自检测NAT穿越系统的结构框图。
[0024]图2是本发明的基于SDP自检测NAT穿越方法的流程图。
【具体实施方式】
[0025]为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
[0026]请参阅图1所示,为本发明的基于SDP自检测NAT穿越系统的结构框图。
[0027]在一种实施方式中,该基于SDP自检测NAT穿越系统包括:第一终端及第二终端、注册服务器和穿越服务器。
[0028]其中,第一终端及第二终端均通过NAT路由器连接公网,用以发送注册请求,获取注册信息及发送包括所述注册信息的通信请求;
[0029]注册服务器连接公网,与所述的第一终端及第二终端交互,根据获得的所述注册请求,向所述的第一终端和第二终端提供对应的注册信息;
[0030]穿越服务器连接公网,与所述的第一终端、第二终端及注册服务器交互,根据获得的通信请求,实现所述的第一终端与所述的第二终端之间的NAT穿越。
[0031]本发明还提供一种基于SDP自检测NAT穿越方法,该方法包括以下步骤:
[0032](1)第一终端及第二终端通过NAT路由器连接公网,并向连接于公网的注册服务器发送注册请求;
[0033](2)所述的注册服务器根据获得的所述注册请求,向所述的第一终端和第二终端提供对应的注册信息;
[0034](3)所述的第一终端及第二终端中的一个作为源终端,另一个作为目标终端,源终端向连接于公网的穿越服务器发送与目标终端通信的通信请求,该通信请求包括所述注册?目息的通?目请求;
[0035](4)所述的穿越服务器根据获得的通信请求,实现所述的第一终端与所述的第二终端之间的NAT穿越。
[0036]在较优选的实施方式中,所述的注册信息包括终端对应的公网IP地址及NAT路由器绑定端口。
[0037]在进一步优选的实施方式中,所述的通信请求为包括目标终端信息、源终端公网IP地址及源终端NAT路由器绑定端口的SDP信息。
[0038]在更进一步优选的实施方式中,所述的穿越服务器实现所述的第一终端与所述的第二终端之间的NAT穿越为将中继端口添加到所述的SDP信息。
[0039]在更优选的实施方式中,所述的实现所述的第一终端与所述的第二终端之间的NAT穿越,具体为,穿越服务器顺序选择私有地址、公有地址、中继地址中的一个所述的第一终端与所述的第二终端之间通信方式,实现NAT穿越。
[0040]在本发明的应用中,如图1所示,本发明一种基于SDP自检测NAT穿越系统,包括发送通信请求终端1,被请求终端2,终端通过NAT路由器连接到公网,终端可自主学习获得NAT信息,整合包含通信属性信息的SDP消息;终端注册服务器A,所有需NAT穿越终端于注册服务器上进行注册,终端发送注册消息,消息包括终端唯一标示ID,本地私有地址,注册服务器收到注册信息,保存终端ID和对应源IP地址,注册服务器协助终端获取本地公网地址,服务器与终端进行交互,返回终端对应公网地址,以及对应NAT路由器绑定端口地址;协助NAT穿透服务器B,服务器收到终端请求通信SDP消息,检测消息格式合法性,是否包含私有地址和公网地址,以及待通信收发消息的端口,NAT穿透服务器需绑定端口为中继端口,修改SDP消息内容,添加中继端口。
[0041]在
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1