十四、网络传输基本知识-NAT

注:以下图片来自慕课网,侵权可删

NAT (Network Address Translator)

我们生活中大部分主机都在网关之后,他有自己的内网IP地址,并不知道自己的外网IP
在网关上有个NAT功能,可以将内网地址映射成外网地址
他就是一个四元组,经过映射后,将内网IP和端口映射成外网IP和端口,其他主机就可以通过公网IP地址通信了


STUN(Simple Traversal of UDP Through NAT)

两台外网主机之间也不能直接通信,它需要第三方服务做介绍,即STUN服务
将各自公网信息进行交换,使他们彼此认识

TURN (Traversal Using Relays around NAT)

p2p连接不成功的情况下,要想保证音视频连接成功,就要引入TURN服务
TURN服务就是在云端架设一个服务器,负责双方之间流媒体数据的转发
当它们进入同一房间时,A发送到TURN的数据,在这个房间里,TURN服务就会给房间内所有人进行转发

ICE (Interactive Connectivity Establishment)

将NAT TURN打包在一起,做一个最优选择
首先尝试p2p,如有两台服务通过,也会选择一个最优服务
不通则选择TURN,如有多个节点,上海TURN不通,则选择北京的TURN
总之,将所有可能性罗列好,在其中找到一条最优路径,将数据发送

NAT产生原因
  • 由于IPV4的地址不够
    一个内网中可能有上千台主机,但映射到外网时只有一个或几个IP地址,通过端口号来区分每台主机
    这样就形成了一对几百,一对几千,大大减少了公网IP地址的使用
  • 出于网络安全的原因
    所有办公内的主机都在内部,他有自己的内网IP地址,但是没有外网IP地址,外面的主机就很难攻击到内网的某一台主机,必须要经过防火墙,经过NAT转换,才能找到内网中的主机
NAT种类以及穿越原理
  • 完全锥型NAT (Full Cone NAT)



    【四元组,内网IP地址和端口对IP(X,y),公网IP地址和端口(A,b)】当内网的某台主机经过NAT的映射,形成外网的IP地址和端口之后,外网所有主机只要知道这个地址,都可以向这个地址发送数据,基本上没有什么限制,安全性比较低

  • 地址限制锥型NAT (Address Restricted Cone NAT)



    【五元组,内网IP地址和端口对IP(X,y),公网IP地址和端口(A,b),请求主机的IP地址(P)】对IP地址做限制,做判断,出去请求时,记录出去的IP地址,当回来的时候,只有这台IP地址的主机才能回消息,对其他IP直接pass掉

  • 端口限制锥型 (Port Restricted Cone NAT)



    【六元组,内网IP地址和端口对IP(X,y),公网IP地址和端口(A,b),请求主机的IP地址和端口(P,q)】地址限制的基础上,对端口也进行限制

  • 对称型NAT(Symmetric NAT)



    当经过NAT转换时,内网的主机出外网的时候形成的映射,并不是一个IP地址和端口,他会形成多个
    和不同的主机连接时形成的地址是不同的

NAT穿越步骤

  1. C1, C2向STUN发消息
  2. 交换公网IP以及端口
  3. C1 -> C2, C2 -> C1, 甚至是端口猜测(对称型)

NAT穿越组合

全锥型 全锥型
全锥型 受限锥型
全锥型 端口受限锥型
全锥型 对称型
受限锥型 受限锥型
受限锥型 端口受限锥型
受限锥型 对称型
端口受限锥型 端口受限锥型
端口受限锥型 对称型 ✘,无法打通
对称型 对称型 ✘,无法打通

NAT类型检测

跟不上老师讲的,直接贴图吧



第一步
第二步
第三步

你可能感兴趣的:(十四、网络传输基本知识-NAT)