转自 https://blog.csdn.net/yuanchunsi/article/details/78608924
全锥形NAT
IP、端口都不受限。只要客户端由内到外打通一个洞之后(NatIP:NatPort -> A:P1),其他IP的主机(B)或端口(A:P2)都可以使用这个洞发送数据到客户端。
映射关系为:Client->NatIP:NatPort->Any,即任何外部主机都可通过NatIP:NatPort发送数据到Clietn上。
受限锥形NAT
IP受限,端口不受限。当客户端由内到外打通一个洞之后(NatIP:NatPort -> A:P1),A机器可以使用他的其他端口(P2)主动连接客户端,但B机器则不被允许。
映射关系为:Client-> NatIP:NatPort->A,即只有来自A的数据包才能通过NatIP:NatPort发送到Client上。
端口受限锥型
IP、端口都受限。返回的数据只接受曾经打洞成功的对象(A:P1),由A:P2、B:P1发起的数据将不被NatIP:NatPort接收。
映射关系为:Client->NatIP:NatPort->A:P1,即只有来自A:P1的数据才可通过NatIP:NatPort发送到Client上。
对称型NAT
对称型NAT具有端口受限锥型的受限特性。但更重要的是,他对每个外部主机或端口的会话都会映射为不同的端口(洞)。只有来自相同的内部地址(IP:PORT)并且发送到相同外部地址(X:x)的请求,在NAT上才映射为相同的外网端口,即相同的映射。一个外部地址(X:x)对应一个NAT上的映射,如上图红色三角,每个映射仅接收来自他绑定的外部地址的数据。注:X在这里意为任意一台外部主机,x为这台主机上的任意一个端口。
映射关系为:Client->NatIP:Pa1->A:P1,当Client访问B:P1时,映射关系变为:
Client->NatIP:Pb->B:P1,同理,NatIP:Pa2也就是Client访问A:P2时的映射。