- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用UDP穿越P2P网络中NAT技术探究
利用UDP穿越P2P网络中NAT技术探究 摘要:介绍了当前互联网主要应用技术P2P和NAT的工作方式,重点分析了NAT对P2P应用的影响,阐述了在P2P网络中如何利用UDP打洞的方式实现NAT之间的穿越方法,并用C++代码实现了该方法的关键技术。
关键词:P2P网络;UDP;NAT;穿越
中图分类号:TP393文献标识码:A文章编号2012)009012603
1 NAT技术的产生
目前的互联网是基于32位IP地址的,这意味着有效的IP地址数目约为四十亿个,由于IP地址使用方式的时效性,实际的数量会少得多。随着可用IP地址越来越少,NAT技术出现。NAT(Network Address Translators),网络地址转换。网络地址转换的主要目的就是为了实现地址重用。NAT技术通过将局域网里的主机地址映射为Internet上的有效IP地址,从而实现了网络地址的复用,NAT技术不仅隐藏了内部网络地址信息,使外界无法直接访问内部网络设备,保护了内部网络,同时也暂时解决了IPv4地址不足的问题。NAT分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。一个NAT处在公用互联网与它所服务的局域网之间,重写数据包头部的IP地址和端口号以使所有的包看上去都像从一个NAT设备的公用IP地址发来(或接收)的,而不是发自(往)实际的源(目标)。
2P2P技术的特性
P2P是一种网络模型,又称对等网。在这种模型中,所有节点都是对等的(称为对等点),各节点具有相同的责任和能力,并协同完成任务。对等点之间直接互连,共享信息资源、处理器资源、存储资源甚至高速缓存资源,无须依赖集中式服务器或资源就可完成。这种模式与当今广泛使用的C/S模式形成鲜明对比,在C/S 模式中,服务器是网络的控制核心,P2P 模式的节点则具有很高的自治性和随意性。随着Naster、Genuella等信息共享应用程序越来越流行,P2P技术更受人们的广泛关注。
3P2P网络中穿越NAT的必要性
NAT技术使局域网的用户可以共享一个IP地址访问Internet,但NAT的存在给P2P应用带来问题。NAT不允许外部主机主动访问内部主机,提高了内部网络的安全,但却不适合P2P应用的需要。在P2P中,无论是内网主机还是外部网络的主机,地位是平等的,它们都可以相互建立直接的连接,实现信息共享。但由于NAT的存在,使得外部网络的主机无法首先主动发出到内网主机的连接。如果外网主机无法穿过NAT主动与内网主机进行通信,P2P网络各主机无法彼此发现对方进行对等信息交换,特别是位于不同NAT之后的不同内网中的计算机,更是无法相互连接。如果不能够穿过NAT,P2P网络就无法实现真正的对等。随着基于Internet的P2P网络技术的广泛应用,更多的内网主机需要参与到P2P中来,P2P网络要求任何主机之间都能够直接对等交换信息,这就使得P2P网络应用必须解决穿越NAT实现双向对等通信的问题。
4P2P网络中利用UDP打洞穿越NAT的技术原理
目前常见的NAT类型是Full Cone型NAT,其工作原理是将来自相同内部IP地址和端口号的请求信息,将被映射为相同的外部地址和端口号。来自NAT之外的节点,可以通过向NAT之后节点的映射地址和端口号发送数据包。
如果P2P网络中的两台主机都位于NAT之后,则双方都不知道对方的因特网地址,从而双方都无法主动发起连接请求,要解决这个问题,需要借助双方都知道的因特网服务器来建立连接,使用UDP在NAT上的打洞技术。
利用UDP打洞穿越NAT的实现过程和原理,如图1。假设有两台主机,分别位于两个NAT之后,Client A和Client B要建立UDP直连。
在Client A和Client B之间建立UDP直连的过程:
(1)Client A登录Server,NATA为Client A的访问线程分配了一个端口5000,则Server收到的Client A的地址是:202.102.2.5:5000,这就是Client A的外网地址。
(2)Client B登录Server,NATB 为Client B的访问线程分配了一个端口6000,则Server收到的Client B的地址是:170.50.5.20:6000,这就是Client B的外网地址。
现在Client A和Client B都可以与Server通信,如果Client A想直接发送UDP数据包给Client B,则Client A可以从Server处获得Client B的公网地址170.50.5.20:6000,但Client A还不能使用该地址直
您可能关注的文档
最近下载
- 专题训练 速度基础计算题.docx VIP
- C586114【冲刺】2024年西安建筑科技大学085400电子信息《883C语言程序设计》考研学霸.pdf VIP
- 建筑消防工程竣工验收资料大全要点.doc
- 第07课 散文诗二首(基础训练)(学生版).docx VIP
- 煤矿劳动防护用品培训.pptx VIP
- [海口]2024年北京师范大学海口附属学校招聘5人笔试历年参考题库附带答案详解.doc
- 广州市建设工程档案编制技术规范.pdf VIP
- 《中国视网膜中央动脉阻塞临床诊疗专家共识2024》解读.pptx
- 普司德(上海)新材料有限公司绍兴分公司新能源汽车用气凝胶镉热板项目环评报告.docx VIP
- (2025秋)人教版二年级数学上册全册教案(新教材).pdf
文档评论(0)