- 0
- 0
- 约9.09千字
- 约 7页
- 2017-06-12 发布于北京
- 举报
P2P中的NAT穿越方案简介
1 P2P简介
P2P即点对点通信,或称为对等联网,与传统的服务器客户端模式有着明显的区别,传统的服务器客户端模型如图2所示。P2P这一术语在不同的上下文环境里可能有不同的内涵,它可以指一种通信模式、一种逻辑网络模型、一种技术、甚至一种理念。在P2P网络中如图1所示,所有通信节点的地位都是对等的,每个节点都扮演着客户机和服务器双重角色,节点之间通过直接通信实现文件信息、处理器运算能力、存储空间等资源的共享。P2P网络具有分散性、可扩展性、健壮性等特点,这使得P2P技术在信息共享、实时通信、协同工作、分布式计算、网络存储等领域都有广阔的应用。
图1P2P结构模型
图2CS模式
2 NAT简介
目前,IPv4地址资源的紧缺使得NAT技术获得了广泛的应用。NAT技术是一种把内部网络(简称为内网)私有IP地址转换为外部网络(简称为外网)公共IP地址的技术,它使得一定范围内的多台主机只利用一个公共IP地址连接到外网,可以在很大程度上缓解了公网IP地址紧缺的问题。
3 NAT对P2P通信的影响
NAT技术虽然在一定程度上解决了IPv4地址短缺的问题,在构建防火墙、保证网络安全方面都发挥了一定的作用,却破坏了端到端的网络通信。NAT阻碍主机进行P2P通信的主要原因是NAT不允许外网主机主动访问内网主机,因为NAT设备上没有相关转发表项,要在NAT网络环境中进行有效的P2P通信,就必须寻找相应的解决方案。本文就着重介绍几种常见的解决方案。
4 P2P穿越NAT的几种方案
4.1 反向链接技术
当通信的双方中只有一方位于NAT之后时,它们可以利用反向链接技术来进行P2P通信。图3中Client A(拥有内网IP地址10.0.0.1)位于NAT之后,它通过TCP端口1234连接到服务器(拥有外网IP地址)的TCP端口1235上,NAT设备(拥有外网IP地址155.99.25.11)为这个连接重新分配了TCP端口62000。Client B(拥有外网IP地址138.76.29.7)也通过TCP端口1234连接到服务器端口1235上。Client A和Client B从服务器处获知的对方的外网地址二元组{IP地址:端口号}分别为{138.76.29.7:1234}和{155.99.25.11:62000},它们在各自的本地端口上进行侦听。
由于Client B拥有外网IP地址,所以Client A要发起与Client B的通信,那么它可以直接通过TCP连接到Client B。但如果Client B尝试通过TCP连接到Client A进行P2P通信,则会失败,原因是Client A位于NAT设备后,虽然Client B发出的TCP SYN请求能够到达NAT设备的端口62000,但NAT设备会拒绝这个连接请求。要想与Client A通信,Client B要通过服务器给Client A转发一个连接请求,反过来请求Client A连接到Client B(即进行反向链接),从而建立起它们之间的TCP连接。
图3反向链接示意图
4.2 UDP打洞技术
如果两个P2P客户端都位于NAT设备后面,想要进行P2P通信,那又该如何解决呢?UDP打洞技术就是为解决这个问题而应运而生的,它能够通过中间服务器实现P2P客户端互连。该技术在RFC 3027的第5.1节中有所提及,目前在多种在线游戏协议中已经得到了应用,下面来重点介绍下。
4.2.1 集中服务器
打洞技术假定客户端A和客户端B都可以与公网内的已知集中服务器建立UDP连接,一个客户端在集中服务器上登陆的时候,服务器记录下该客户端的两对地址二元组信息{IP地址:UDP端口},一对是该客户端与集中服务器进行通信的自身的IP地址和端口号,另一对是集中服务器记录下的由服务器“观察”到的该客户端实际与自己通信所使用的IP地址和端口号。我们可以把前一对地址二元组看作是客户端的内网IP地址和端口号,把后一对地址二元组看作是客户端的内网IP地址和端口号经过NAT转换后的外网IP地址和端口号。集中服务器可以从客户端的登陆消息中得到该客户端的内网相关信息,还可以通过登陆消息的IP头和UDP头得到该客户端的外网相关信息。如果该客户端不是位于NAT设备后面,那么采用上述方法得到的两对地址二元组信息是完全相同的。
4.2.2 建立P2P的Session
假定客户端A要发起对客户端B的直接连接,具体的“打洞”过程如下:
(1)客户端A最初不知道如何向客户端B发起连接,于是客户端A向集中服务器发送消息,请求集中服务器帮助建立与客户端B的UDP连接。
(2)集中服务器将含有客户端B的外网和内网的地址二元组发给客户端A,同时,集中服务器将包含有客户端A的外网和内网的地址二元组信息的消息也发给客户端B。这样一来,客户端A
您可能关注的文档
- mysql安装图解、mysql5.6.10安装详细图文教程 (2).doc
- MZ1400T移动模架指导书参考.doc
- NATO软件复用标准简介.doc
- NCCN2010疼痛指南原文翻译P24-P48.doc
- NEC投影机M350XC.doc
- NETGEAR说明手册.doc
- NewMicrosoftWord文档.doc
- NGK火花塞车型对照表.doc
- NIT管理系统中信息技术的应用(机房).doc
- nNOS调控血压:精神状态或许更密切关联血压疾病.docx
- 03-2 2025年度民主生活会征求意见座谈会主持词.docx
- 03-1 2025年度民主生活会主持讲话提纲.docx
- 02-1 会前学习-《县以上党和国家机关党员领导干部民主生活会若干规定》相关要求.docx
- 在2025年度民主生活会上的总结讲话三篇.docx
- 在2025年度民主生活会上的总结讲话三篇 (3).docx
- 市委宣传部2025年度民主生活会查摆问题整改方案两篇.docx
- 在市行政审批和政务信息管理局机关2026年全体干部政绩观教育大会上的党课讲稿.docx
- X市应急管理局2026年度安全生产监督检查计划.docx
- 2025年度民主生活会领导班子对照检查材料(五个带头)三篇.docx
- 2025年度民主生活会“五个带头”个人对照检查材料三篇.docx
原创力文档

文档评论(0)