每个IP包都有一个ID,本来是用于标识IP包,便于分割和重组长度大于MTU的报文。一般来讲,计算机在启动时会自己指定一个 IP ID 的起始值,然后在发送IP包时有规律的增长。路由器在做源 NAT 的时候一般不会修改 IP 包中的 ID 值。由于每个计算机在启动时的 IP ID 相同的概率非常非常非常低,所以电信的局端设备就可以根据 IP 的 ID 值的变化区间来判断路由器后面有几台计算机,因为每台计算机发送的 IP 包的 ID 值会在各自的区间增长。破解这种限制就需要在路由器做源 NAT 时修改每个IP包的ID值,要么在一个统一的范围内变化,模仿是一台计算机在使用Internet;要么干脆随机,让局端设备分析不出规律。