美文网首页
NAT网络类型 打洞

NAT网络类型 打洞

作者: 再凌 | 来源:发表于2020-07-06 12:37 被阅读0次

1. 对称型NAT

对称型NAT 将内网和外网的IP一一对应, 常用于电信系网关.

特征: 即使同一个设备的同一个进程向外网访问, 也会得到不同的IP和端口

2. 锥形NAT

2.1 完全锥形NAT

常见于家用路由器.

内网某{IP, 端口}会被映射成一个固定的{IP, 端口}地址. 即使是第三方外网程序访问之, 也可以成功.

2.2 限制锥形NAT

2.2.1 限制IP型NAT

相比于2.1的完全锥形NAT, 这里路由器会查询NAT表, 如果外网访问进来的数据包在自己的NAT表中没有记录, 则不能访问.

2.2.2 端口限制NAT

相比于IP限制型NAT, 端口限制NAT额外又限制了端口, 即, 对方的端口也要和我NAT表中记录的一样才能访问内网.


NAT 穿越技术

这里主要讨论的是完全锥形NAT

UDP最适合打洞, 只要服务器提前给路由器打出洞后, 其他设备/程序就可以直接利用这个"洞"

更高级的处理方式是利用UPnP技术, 提前向路由器告知要使用的映射端口. 即, 外网对这个{地址, 端口}的访问要交付给某个{地址 端口}.
不过当前应用前景不是很明亮, 因为其十分依赖于路由器是否支持UPnP

TCP也能够打洞, 不过过程比较繁琐.

假设两个节点A,B 分别位于自己的NAT_A和NAT_B之后,两者想直接建立关系, 都需要先访问中间服务器.

  1. 服务器收集NAT_A和NAT_B的{地址, 端口}信息,并告知节点A
  2. 节点A构造一个TTL很小的TCP数据包, 目的地址为NAT_B. 这个TTL使得数据包能够穿越NAT_A却到达不了NAT_B, 因此中间被丢弃(但是已经在NAT_A建立了NAT表项). 节点A还要记录这个TCP数据包的seq_num值, 通过中间服务器或者UDP打洞告诉节点B
  3. 节点B伪造一个TCP的SYN数据包 , 该包源地址为{NAT_A}, 目的地址为{节点B}
  4. 当自己收到这个SYN的时候, 会生成一个ACK返回
  5. NAT_B为这个ACK建立了NAT表, 成功打洞

相关文章

  • NAT网络类型 打洞

    1. 对称型NAT 对称型NAT 将内网和外网的IP一一对应, 常用于电信系网关. 特征: 即使同一个设备的同一个...

  • NAT打洞

    对称型NAT相互之间也可能打洞成功 使用端口预测还有生日攻击算法:https://github.com/jflyu...

  • Docker网络模型

    1. Docker支持的网络类型 bridge网络类型:相当于搭建虚拟机时候使用的NAT网络模型: host网络类...

  • 2018.04.03 腾讯Android内推一面

    一面(电话面试 50min) 介绍项目P2P_UDP,介绍P2P、NAT、IM、打洞相关知识 NAT相关知识(对称...

  • P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解

    P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解

  • NAT类型及工作原理

    NAT类型及工作原理 在计算机网络中,网络地址转换(Network Address Translation,缩写为...

  • docker网络

    Docker0 默认容器与宿主机之间的沟通桥梁 ,ip a查看 网络类型 bridge 默认nat网络模型虚拟交换...

  • NAT类型

    考虑到UDP的无状态特性,目前针对其的NAT实现大致可分为Full Cone、Restricted Cone、Po...

  • 运维面试题(一)

    1、NAT和PAT的区别 NAT的分为:静态NAT、动态NAT、端口NAT(PAT)。 静态NAT:内部网络中的每...

  • Nintendo Switch Nat 类型对动森联机的影响

    1、问:什么是 Nintendo Switch Nat 类型? 答:用图片作答,通过下图的方式查看Nat类型: (...

网友评论

      本文标题:NAT网络类型 打洞

      本文链接:https://www.haomeiwen.com/subject/nsewqktx.html