NAT
私网内设备访问外网时, 路由器对其源ip:port转为唯一公网ip:随机端口
| 类型 | 核心特点 |
|---|---|
| 全锥型(Full Cone) | 1. 内网设备主动访问外网后,会开放一个固定公网端口;2. 任何外网设备,只要知道这个公网端口,都能主动连接内网设备。 |
| 地址受限锥型(Address-Restricted Cone) | 1. 仅允许 “内网设备主动访问过的外网 IP” 发起反向连接;2. 不限制外网设备的端口,只验证 IP 是否匹配。 |
| 端口受限锥型(Port-Restricted Cone) | 1. 比地址受限更严格,仅允许 “内网设备主动访问过的外网 IP + 对应端口” 发起反向连接;2. IP 或端口有一个不匹配,连接就会被拒绝。 |
| 对称型(Symmetric) | 1. 内网设备访问不同外网目标时,会分配不同的公网端口;2. 外网设备无法主动发起任何反向连接,仅支持内网主动发起的单向通信。 |
- 对称型对不同的目标地址访问都会分配不同的端口.
- 除了全锥型都会过滤掉 非活跃会话==且==非主动发起 的请求来源.
- NAT的存在使得内网设备几乎只能主动访问外部网络, 对外部来说, 内网部分不仅不透明还有可能被NAT过度保护.
内网穿透
内网设备向公共服务器建立连接, 其他设备通过请求公共服务器来间接与内网通信
p2p
利用机制
- 即使是对称型NAT, 请求一个地址之后的临时port, 被另外地址的请求访问, 会视为原先的目标地址的回应, 会"放行",
- 双方向中间服务器请求, 留下各自的
ip:port, 中间服务器分别响应其另外一方的信息. - 双方收到消息之后立刻高频率发送对应的请求, 争取在其之前的port失效之前
"续"上有效性. - 至此双方都有了对方承认的数据通道, 之后以
1/2port失效期的间隔发送空数据的心跳包, 保持通道有效性.