1:Full Cone NAT
socket
NAT会给其分配一个公网(PublicIP:PublicPort);
socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort);
任何主机只要知道这个(PublicIP:PublicPort)就可以发送数据给(PublicIP:PublicPort);
这是简单的一一映射关系;
2:Restricted Cone NAT
这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),
以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort);
任何外部主机想要发送数据给这个内网主机,
只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外部主机IP发送过数据.
只要满足这两个条件,这个外部主机就可以用自己的(IP,任何端口)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包;
这是也是一一映射关系,不过外部发送数据的时候,需要前提条件;
3:Port Restricted Cone NAT
跟第二个完全一样的啊;
4:Symmetric NAT
当用这个socket第一次发数据给外部主机1时,NAT为其映射一个(PublicIP-1,Port-1),
以后内网主机发送给外部主机1的所有数据都是用这个(PublicIP-1,Port-1),如果内网主机同时用这个socket给外部主机2发送数据,
第一次发送时,NAT会为其分配一个(PublicIP-2,Port-2),以后内网主机发送给外部主机2的所有数据都是用这个(PublicIP-2,Port-2);
只要知道B向A发送数据时NAT为其映射的(PublicIP:PublicPort),并且B之前用这个socket曾向这个外部主机A发送过数据.
满足这两个条件,这个外部主机A就可以用自己的(IP,任何端口)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包;
这种NAT无法实现UDP-P2P通信;
二:NAPT具体类型检测
省去;
三:特性:
外出的连接才允许进入
socket
NAT会给其分配一个公网(PublicIP:PublicPort);
socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort);
任何主机只要知道这个(PublicIP:PublicPort)就可以发送数据给(PublicIP:PublicPort);
这是简单的一一映射关系;
2:Restricted Cone NAT
这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),
以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort);
任何外部主机想要发送数据给这个内网主机,
只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外部主机IP发送过数据.
只要满足这两个条件,这个外部主机就可以用自己的(IP,任何端口)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包;
这是也是一一映射关系,不过外部发送数据的时候,需要前提条件;
3:Port Restricted Cone NAT
跟第二个完全一样的啊;
4:Symmetric NAT
当用这个socket第一次发数据给外部主机1时,NAT为其映射一个(PublicIP-1,Port-1),
以后内网主机发送给外部主机1的所有数据都是用这个(PublicIP-1,Port-1),如果内网主机同时用这个socket给外部主机2发送数据,
第一次发送时,NAT会为其分配一个(PublicIP-2,Port-2),以后内网主机发送给外部主机2的所有数据都是用这个(PublicIP-2,Port-2);
只要知道B向A发送数据时NAT为其映射的(PublicIP:PublicPort),并且B之前用这个socket曾向这个外部主机A发送过数据.
满足这两个条件,这个外部主机A就可以用自己的(IP,任何端口)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包;
这种NAT无法实现UDP-P2P通信;
二:NAPT具体类型检测
省去;
三:特性:
外出的连接才允许进入