[发明专利]一种穿越NAT的通信方法及设备有效
申请号: | 200910008868.5 | 申请日: | 2009-02-10 |
公开(公告)号: | CN101478493A | 公开(公告)日: | 2009-07-08 |
发明(设计)人: | 林鹏程;周迪 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/06;H04L29/12 |
代理公司: | 北京鑫媛睿博知识产权代理有限公司 | 代理人: | 龚家骅 |
地址: | 310053浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 穿越 nat 通信 方法 设备 | ||
技术领域
本发明涉及通信技术领域,尤其涉及一种穿越NAT的通信方法及设备。
背景技术
随着网络应用的多样性,各种终端设备(具有特定功能的设备,例如图像采集设备、声音监控设备等)进行分步式放置,增加了客户端(例如PC机等用户设备)对终端设备访问的复杂性。因此,可以增加一个管理服务器对终端设备进行统一管理,客户端只需要获得管理服务器的地址,通过访问管理服务器,获取终端设备的访问路径(包括终端设备的地址及端口号);终端设备再利用获取的信息,对客户端发起连接,构成集中式管理系统。
其中,集中式管理系统的运行流程如图1所示,包括以下步骤:
步骤101,终端设备向管理服务器进行注册,使管理服务器获取该终端设备的IP地址、端口号等信息;
步骤102,终端设备定期向管理服务器发送保活报文;
步骤103,客户端向管理服务器发送访问申请,包含申请访问的终端设备名称,客户端发起访问申请的源端口号等信息;
步骤104,管理服务器向终端设备发送通告信息,将客户端IP地址和端口号传给终端设备,告知该客户端将访问终端设备;
步骤105,终端设备如果状态正常,则返回OK信息,并将与客户端通信的端口号告知管理服务器;
步骤106,管理服务器向客户端返回OK信息,且将终端设备的IP地址和目的端口号返回给客户端;
步骤107,客户端利用获取到的终端设备的IP地址和目的端口号,向终端设备发起连接;
步骤108,终端设备确定客户端发送的与本地存储的IP地址和端口号匹配,与该客户端进行通信。
通常,上述集中式管理运行流程可以保证客户端、管理服务器与终端设备处在同一个网络(公网或私网),没有经过NAT(Network AddressTranslation,网络地址转换)设备时客户端和终端设备间的通信和访问。但是随着网络应用的发展,必然会遇到终端设备与管理服务器、客户端不在同一个网络中的应用场景。
参考图1,如果终端设备与管理服务器、客户端位于不同的网络(例如,终端设备和管理服务器在一个私网中,客户端在另一个私网中;或终端设备在一个私网中,客户端在另一个私网中,管理服务器在公网中),在步骤107中,客户端向终端设备发起通信时,由于客户端和终端设备分属不同的私网,NAT设备上由于没有对应的客户端与终端设备间私网IP和私网端口号、公网IP和公网端口号之间对应关系的映射表项,导致NAT设备将阻塞报文进入终端设备所在的私网。为了解决这样的问题,可以有以下几种实现方式:
1、在终端设备及与公网连接的NAT设备上进行一对一的地址转换配置,NAT设备将来自终端设备消息的IP数据报报头中的私网IP地址转换为公网IP地址。
该方案的缺点是:配置的静态地址转换并没有节省公网IP地址,每增加新的终端设备,都需要在NAT设备手动配置新的公网IP地址。
2、在公网中增加一台代理服务器,代理服务器同时与一个私网中的客户端和另一个私网中的终端设备进行通信,进而转发两者之间的通信。
该方案的缺点是:需要增加一台额外的代理服务器;代理服务器需要同时与两个网络中的设备进行通信,同时在通信过程中需要一直保持连接关系,增加了网络维护成本。
3、利用STUN(Simple Traversal of UDP Through Network AddressTranslators,UDP对NAT的穿越)协议实现双NAT网络的穿越:管理服务器分别与客户端和终端设备建立连接,获得客户端和终端设备在NAT外网的IP地址;再由客户端或终端设备向对方NAT的外网IP地址发送邀请包,获取 自己与对方通讯的NAT外网的IP地址(即客户端或终端设备的NAT外网IP地址)。客户端或终端设备获取了本地NAT外网IP地址和对方NAT外网IP地址的映射关系,然后在报文负载中所描述的地址信息就直接填写NAT上对外地址,而不是内网的私有IP地址,报文的内容在经过NAT时按普通的NAT流程转换报文头部的IP地址,负载内的IP地址信息无需再修改。STUN协议是客户端/服务器协议,分两种请求方式:一是UDP(User Datagram Protocol,用户数据报协议)发送的绑定请求(Binding Requests),用于确定NAT分配的绑定地址;另一种是TCP(Transmission Control Protocol,传输控制协议)发送的秘密请求(Shared Secret Requests)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910008868.5/2.html,转载请声明来源钻瓜专利网。