NAT可以为内网主机提供一条通道以便其访问外网,通道分为共享及独占2个大类,共享又细分全锥形、受限锥形和端口受限锥形

类型

  • 共享通道 - 内网访问不同外网将会使用同一条通道,根据外部数据包到达该通道后的转发规则细分以下3种
    • 全锥形 - 转发任意外部外部IP任意端口发送的数据包
    • 受限锥形 - 只转发内网主机已访问过的外网IP任意端口发送的数据包
    • 端口受限锥形 - 只转发内网主机已访问过的外网IP加端口发送的数据包
  • 独占通道(对称型) - 内网访问不同外网将会拥有不同的通道

穿透

位于NAT下的2端,将具有4的排列组合种可能,即C4 = 10种,下面给出这10种的穿透过程

A端NAT类型 B端NAT类型 是否可穿透 穿透过程
全锥型 全锥型 A往B的NAT端口直接发送数据
B往A的NAT端口直接发送数据
全锥型 受限锥型 B往A的NAT端口直接发送数据
A往B的NAT端口直接发送数据,(一定要B先发,否则B无法接收A发送的数据包)
全锥型 端口受限锥型 B往A的NAT端口直接发送数据
A往B的NAT端口直接发送数据,(一定要B先发,否则B无法接收A发送的数据包)
全锥型 对称型 B往A的NAT端口直接发送数据
A往B实时端口发送数据,(需要根据B发送的数据包端口来给B发送数据,而不是服务器提供的NAT端口)
受限锥型 受限锥型 A往B的NAT端口直接发送数据(B将会丢弃)
B往A的NAT端口直接发送数据(因为A已经给B发送数据,因此可以正常接收)
A再往B的NAT端口发送数据(可正常转发)
受限锥型 端口受限锥型 A往B的NAT端口直接发送数据(B将会丢弃)
B往A的NAT端口直接发送数据(因为A已经给B发送数据,因此可以正常接收)
A再往B的NAT端口发送数据(可正常转发)
受限锥型 对称型 A往B的NAT端口直接发送数据(B将会丢弃)
B往A的NAT端口直接发送数据(因为A已经给B发送数据,因此可以正常接收)
A再往B的实时端口发送数据(可正常转发)
端口受限锥型 端口受限锥型 A往B的NAT端口直接发送数据(B将会丢弃)
B往A的NAT端口直接发送数据(因为A已经给B发送数据,因此可以正常接收)
A再往B的NAT端口发送数据(可正常转发)
端口受限锥型 对称型  
对称型 对称型