NAT穿透技术 的作用只是给应用层提供可用的候选ip对,给应用层提供可用的对端ip(可能是p2p ip 或者relay ip),应用层拿到可用的ip后建立socket连接,然后发送数据给对端,p2p不涉及任何传输
NAT穿透技术
现实生活中,大多数设备都位于NAT后。比如连着同一个基站的移动设备,同一个小区的宽带用户等。NAT的存在使得设备间不能直接进行点对点通信。有时候为了流量节省,以及安全等原因考虑,我们希望不同NAT后的设备也能进行点对点通信,不需要经过第三方的数据转发。为了进行设备间的点对点通信,我们需要使用相关技术检测设备间是否有点对点通信的可能性,以及如何进行点对点通信。这些相关技术就是NAT穿透(NAT traversal)。NAT穿透是为了解决使用了NAT后的私有网络中设备之间建立连接的问题。目前常见的NAT穿越技术、方法主要有:
应用层网关;
中间件技术;
打洞技术(Hole Punching);
Relay(服务器中转)技术。
没有一种完美的NAT穿透,常常是多种技术互相配合,最常见的一种方案是打洞配合中转,例如后面说到的ICE方案。
原理
- 打洞技术的原理比较简单,就是NAT内网的节点需要在