[发明专利]一种在结构化P2P网络中实现NAT穿越的方法和系统有效
申请号: | 201010174070.0 | 申请日: | 2010-05-12 |
公开(公告)号: | CN101841484A | 公开(公告)日: | 2010-09-22 |
发明(设计)人: | 马晨光;杨平改;王展;孙毅;吴海博 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/12;H04L29/06 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100080 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 结构 p2p 网络 实现 nat 穿越 方法 系统 | ||
技术领域
本发明涉及P2P网络领域,特别是涉及一种在结构化P2P网络中实现NAT穿越的方法和系统。
背景技术
随着计算机网络的不断发展,点对点(Peer-to-Peer,P2P)的通信模式被越来越多的网络应用所使用。在P2P网络中,结构化P2P是指P2P网络叠加层的拓扑结构是严格控制的,资源并不是随机分散存储在节点上,而是以一种使得查询更加高效的方式来存储的。在结构化P2P系统中,每个节点只存储特定的信息或特定信息的索引。当用户需要在结构化P2P系统中获取信息时,必须知道这些信息(或索引)可能存在于哪些节点中。由于用户预先知道应该搜索哪些节点,避免了非结构化P2P系统中使用的泛洪式查找,因此提高了信息搜索的效率。由于结构化P2P能够自适应节点的动态加入和退出,具有良好的可扩展性、健壮性,因此结构化P2P网络的应用得到了快速的发展,也成为研究的热点。
NAT即网络地址转换,它是一种把内部网络(简称内网)私有IP地址转换成外部网络(简称外网)公共IP地址的技术,它使得一个机构的多台主机可以共享Internet连接,以一个(或少数几个)外网IP地址连接到Internet。然而,在目前的IPv4网络环境中,NAT(Network Address Translator)设备的广泛存在使得处于不同内部网络中的主机很难进行直接通信,给P2P通信带来了障碍,这在很大程度上限制了P2P的应用和发展。NAT穿越技术,就是通过采用一定的技术措施,使得处于不同内网的主机间可以实现互联。常用的NAT穿越关键技术包括STUN(Simple Traversal of User Datagram Protocolthrough Network Address Translators)协议、端口预测、TCP穿越NAT等。目前所应用的NAT穿越技术主要是UDP打洞技术。它侧重于在两个不同的内网之间建立其UDP连接,并且需要处于外网的穿越服务器的支持才能实现穿越,同时在穿越过程中需要发送一些控制信息的数据包,这会花费一定的开销。
在结构化P2P网络中,Peer之间传输的信息分为两类,一类是控制信息的传输,一类是数据信息的传输。控制信息包括发布资源、查找资源、更新邻居信息等等,特点是数据量较小;数据信息是Peer之间真正需要下载和上传的数据,如音视频文件等等,特点是数据量较大。然而,目前UDP打洞技术的NAT穿越方案不适合用在结构化P2P网络中,首先,因为UDP打洞技术的NAT穿越方案需要有处于外网的穿越服务器的支持,这会破环结构化P2P完全分布式的特性,同时存在单点失效的缺点;另外,对于结构化P2P网络中的控制信息来说,由于其本身数据量少,穿越过程花费的开销相对较大,不适合用在控制信息的穿越过程中。因此,在结构化P2P网络中,需要研究和实现新的NAT穿越方案以适应结构化P2P网络的需要。
发明内容
本发明的目的在于提供一种在结构化P2P网络中实现NAT穿越的方法和系统,其充分考虑了结构化P2P网络完全分布式的特性,去掉了现有方法中中间服务器的支持,同时,结合控制信息和数据信息本身的特点,对其穿越方式分别处理,加快了穿越的时间,减少了穿越开销,并具有可靠性。
为实现本发明的目的而提供的一种在结构化P2P网络中实现NAT穿越的方法,包括下列步骤:
步骤100.结构化P2P网络中所有用户节点启动后,所述用户节点与一个处于外网的引导节点联系,获得所述引导节点路由表中与所述用户节点的ID异或距离为一设定值的其他用户节点的信息,建立并更新自己的路由表;
步骤200.所述用户节点通过处于外网的用户节点判断自己对外的IP地址和端口号与内网的IP地址和端口号是否相同,若是,表示所述用户节点处于外网;否则表示所述用户节点处于内网;
步骤300.所述用户节点从自己的路由表里随机选择一个处于外网的用户节点作为自己的伙伴节点,添加所述伙伴节点的信息;同时所述用户节点发布包括其伙伴节点的IP地址、端口号、ID的更新消息给路由表内的各节点,各节点更新各自路由表的信息;
步骤400.用户节点间采用让伙伴节点转发的方式传输控制信息;
步骤500.用户节点间采用让伙伴节点协助连接的方式传输数据信息。
所述步骤200,包括下列步骤:
步骤210,所述用户节点从自己的路由表里选择一个处于外网的用户节点,并给所述处于外网的用户节点发送包括自己的ID,本机的IP地址和端口号的Hello消息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010174070.0/2.html,转载请声明来源钻瓜专利网。