四种NAT类型

1.全锥型NAT(Full Cone NAT)

全锥型NAT(Full Cone NAT),又称为一对一NAT,是四种主要NAT类型之一,用于实现私有网络与公共网络之间的IP地址转换和端口转换。在全锥型NAT中,一个内部IP地址和端口的组合被映射到一个公共IP地址和端口的组合。一旦映射建立,任何外部设备都可以使用这个公共IP地址和端口与内部设备通信,而不管外部设备的IP地址和端口是什么。这种映射是持久的,直到NAT设备决定删除映射。

全锥型NAT的行为特点如下:

  • 映射的一致性:内部IP和端口映射到一个固定的公共IP和端口。
  • 接收外部请求:任何外部主机都可以通过映射的公共IP和端口发送数据到内部主机,只要内部主机之前至少发送过一次数据包到任意外部主机。
  • 简单性:这种类型的NAT简单易懂,容易实现P2P通信。

全锥型NAT是最友好的NAT类型,对于P2P通信和VoIP等应用来说是理想的。然而,它提供的安全性较低,因为任何知道了映射的公共IP和端口的外部主机都可以发送数据到内部网络。

在WebRTC场景中,全锥型NAT是最容易进行NAT穿透的,因为STUN服务器可以帮助发现映射的公共IP地址和端口,然后这些信息可以被用来建立直接的P2P连接。由于全锥型NAT的开放性,通常不需要使用TURN服务器来作为中继,这样可以减少延迟和成本。

2. 限制锥型NAT(Restricted Cone NAT)

限制锥型NAT与全锥型NAT相似,但它增加了一些限制。内部主机在发送数据给外部主机后,只有收到过来自该外部主机的响应数据包的外部主机才能回送数据包。这意味着:

  • 内部主机必须先发送数据到外部主机,这样NAT设备才会创建一个映射。
  • 只有先前接收到内部主机数据的外部主机才能向内部主机发送数据。

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

端口限制锥型NAT比限制锥型NAT更加严格。它不仅要求内部主机先向外部主机发送数据,而且外部主机回送数据时必须使用同样的端口号,即使是来自已经发送过数据的外部主机也不例外。其特点包括:

  • 内部主机必须先发送数据到外部主机特定的端口,NAT才会创建映射。
  • 只有从相同端口发送数据到内部主机的外部主机,NAT才会允许数据通过。

4. 对称型NAT(Symmetric NAT)

对称型NAT是最严格的NAT类型,它对每个外部目的地(IP地址和端口)使用不同的映射。如果一个内部主机使用相同的内部IP地址和端口号发送数据包到两个不同的外部IP地址,NAT设备会为每个外部IP地址分配不同的公共IP地址和端口号。这意味着:

  • 对于内部主机与每个外部主机的每个会话,NAT设备都会创建一个唯一的映射。
  • 即使是来自同一个内部主机,只要目标外部主机的IP地址或端口不同,NAT设备就会为其分配不同的公共端口。

对称型NAT对于P2P通信(如WebRTC)来说是个挑战,因为STUN服务器无法提供一个稳定的公共端口来建立直接通信。在这种情况下,通常需要使用TURN服务器来中继所有流量。

前三种nat有一个共同点:只要内网中的(IP,端口)相同的请求就会被NAT映射到同一个外网(IP,port)。

  1. 全锥形NAT    任何公网主机都可与之通讯。双方都可以主动发起
  2. 地址受限锥形NAT    只有内网主动连接的公网主机可与之通讯,必须内网主机发起。且此公网主机可通过任意端口与内网主机通讯。
  3. 端口受限锥形NAT    只有内网主动连接的公网主机的连接可与之通讯,必须内网主机发起。且此公网只能通过固定的端口与之进行通讯。
  4. 对称NAT    根据四元组创建NAT映射,四元组中的任何一项发生变化均导致NAT映射的更换。此形状双方一对一映射,因此被称之为对称NAT

你可能感兴趣的:(计算机网络,NAT,ICE,stun,turn)