WebRTC学习笔记(三)之NAT类型 - 静夏

时间:2024-02-24 18:41:55

WebRTC学习笔记(三)之NAT类型

        NAT(Network Address Translation,网络地址转换 ),我们平时生活中联网的主机大多都经过了路由器,连接同一路由器下的设备处于同一网段,它们都拥有不同的内网IP地址,但当所有内网设备访问外网地址,比如新浪网址时,映射的外网地址是一样的。这个过程中就存在网络地址转换,而外网地址访问内网设备时,同样也需要经过NAT,用户之间利用WebRTC进行点对点音视频互通,就需要穿越各种网段,即打洞。

       针对不同的NAT类型,可以选择不同的穿网服务器进行穿网。现介绍几种NAT类型:

1、完全锥形(Full Cone)NAT。同一内网主机和端口映射一个固定的外网地址和端口(PublicIP:PublicPort)。任何外部主机只要向(PublicIP:PublicPort)发送数据,内网主机就能接受到。(如上图主机A/B)

图1 完全锥形NAT

2、受限锥形(Restricted Cone)NAT。同一内网主机和端口映射一个固定的外网地址和端口(PublicIP:PublicPort)。外部主机发送的数据要通过(PublicIP:PublicPort)到达内网主机,必须内网主机先发送给外网主机发送过数据。如上图主机A

图2 受限锥形NAT

3、端口受限锥型(Port Restricted Cone )NAT。同一内网主机和端口映射一个固定的外网地址和端口(PublicIP:PublicPort)。只有内网主机先给外网主机和端口发送数据,接受过数据的主机和端口发送给(PublicIP:PublicPort),内网主机才能接受。如上图主机A加端口20202

图3 端口受限锥形NAT

4、对称型(Symmetric)NAT。同一内网主机和端口映射的外网地址和端口根据目的地址的不同而不同,即如果NAT有多个外网地址,则内网主机发送给不同目的地址其映射的外网地址和端口可能都不同,如果NAT只有一个外网地址,则内网主机发送给不同目的地址其映射的端口肯定不同。同样,只有内网主机先给外网主机和端口发送数据,接受到数据的主机和端口发送给内网主机才能接收。

图4 对称型NAT

       位于锥型NAT后的主机利用WebRTC进行音视频互通,可以通过访问STUN服务器获得其外网地址与来完成,而位于对称型NAT后的主机必须通过TURN服务器进行中继,才能与对方进行点对点音视频传输。​

 

       如有问题,欢迎沟通指正!