P2P 穿越技术
-
Upload
shantell-allen -
Category
Documents
-
view
32 -
download
5
description
Transcript of P2P 穿越技术
P2P穿越技术
P2P穿越技术概述互联网最初的体系结构中,每个节点都有一个全局唯一的 IP地址,能够直接互相通信。
但为了解决地址空间缺乏等问题,网络上普遍存在 NAT等中介设备,最初的体系结构已变成了一个全局地址空间和许多私有地址空间的结构。
公共 IP地址和私有 IP地址
Main Internet(全局 IP地址空间 )
私有地址空间
NAT
NAT NAT
NAT NAT
私有空间
私有空间
私有空间
私有空间
P2P穿越技术概述全局地址空间和私有地址空间并存的结构中, NAT等中介设备为 P2P应用程序和相关协议制造了独特的问题。
NAT ( Network Address Translator)的类型最常见的 NAT是传统的或者说是外出的
( outbound ) NAT。外出 NAT默认情况下仅允许向外的会话通过;到来的数据包将会被丢弃,除非 NAT表示它们是从私有网络内部初始化的现存会话的一部分。
外出 NAT分为基础 NAT:仅转换 IP地址NAPT:转换 IP地址和端口号
会话一个会话由它的两个会话终端唯一标识,一个 TCP 或 UDP会话终端是一个 IP地址、端口号对。
会话的方向通常是初始化该会话的数据包的流向
两种可行的 NAT穿越方案方案一:中转
两个节点间通过一个中转服务器,实现穿越NAT的通信
只要两个节点能够连接到中转服务器即可实现,但是消耗了服务器的处理能力和网络带宽。该方案可靠但是效率低下。
两种可行的 NAT穿越方案方案二:反向连接
若仅有节点 a 在 NAT后,则另一节点 b可通过中介服务器向节点 b发送一个连接请求,然后由节点 a初始化一个到节点 b的会话,实现穿越 NAT的通信
中介服务器的引入是一个关键的步骤
私有会话终端和公共会话终端
对于中介服务器来说,一个节点向它注册时,将会记录下该节点的两个会话终端。一个是该节点认为它在使用的终端,称为私有会话终端;
另一个是中介服务器认为它在使用的终端,称为公共会话终端
UDP/TCP打洞的基本原理 由于外出 NAT的行为特性,从 NAT外初始化会话进入到 NAT后的私有网络是不行的
但可以通过中介服务器将会话发起节点 a所用的会话终端通知给 NAT后的节点 b,之后节点 b向收到的会话终端发送数据包,此时 NAT将认为 a和 b之间的会话是由节点 b发起的,从而允许来自 NAT外的节点 a的数据进入到私有网络中