webrtc基础 - NAT

NAT

NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭。
外网和内网的映射的解决方案

NAT实现方式:

1、即静态转换Static Nat、
2、动态转换Dynamic Nat
3、端口多路复用OverLoad

NAT穿透方法

目前常用的针对UDP的NAT 穿透(NAT Traversal)方法主要有:
1、STUN、
2、TURN、
3、ICE、
4、uPnP等。其中ICE方式由于其结合了STUN和TURN的特点,所以使用最为广泛。针对TCP的NAT穿透技术目前仍为难点。实用的技术仍然不多。

NAT工作原理

NAT将自动修改IP报文的源IP地址和目的IP地址,Ip地址校验则在NAT处理过程中自动完成。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以还需要同时对报文的数据部分进行修改,以匹配IP头中已经修改过的源IP地址。否则,在报文数据部分嵌入IP地址的应用程序就不能正常工作。简单来讲就是通过一个转换头,将内网地址变为公网地址,接收的时候根据记录将公网地址变成内网,完成传输。

NAT 类型(P2P)

1、完全圆锥型NAT

完全锥形NAT,所有从同一个内网IP和端口号发送过来的请求都会被映射成同一个外网IP和端口号,并且任何一个外网主机都可以通过这个映射的外网IP和端口号向这台内网主机发送包。
内网:IP , port
外网:一个映射,没有任何限制,和静态NAT很像1

2、受限圆锥型NAT

限制锥形NAT,它也是所有从同一个内网IP和端口号发送过来的请求都会被映射成同一个外网IP和端口号。与完全锥形不同的是,外网主机只能够向先前已经向它发送过数据包的内网主机发送包。
内网:IP , port
外网:一个映射,但是前提必须发过数据(记录 IP)才可以接收

3、端口受限圆锥型NAT

端口限制锥形NAT,与限制锥形NAT很相似,只不过它包括端口号。也就是说,一台IP地址X和端口P的外网主机想给内网主机发送包,必须是这台内网主机先前已经给这个IP地址X和端口P发送过数据包。
内网:IP , port
外网:一个映射,但是前提必须发过数据(记录 IP+PORT)才可以接收

4、对称型 NAT(又称为双向NAT),大型公司使用

对称NAT,所有从同一个内网IP和端口号发送到一个特定的目的IP和端口号的请求,都会被映射到同一个IP和端口号。如果同一台主机使用相同的源地址和端口号发送包,但是发往不同的目的地,NAT将会使用不同的映射。此外,只有收到数据的外网主机才可以反过来向内网主机发送包。
内网:IP , port
外网:多个映射。也就是说外网地址和目的地址是一一对应。别人冒充不了。

webrtc基础 - NAT_第1张图片

你可能感兴趣的:(webrtc,webrtc,网络)