WebRTC学习进阶之路 --- 三、WebRTC网络知识详解(一)(P2P/STUN/TURN/ICE)

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274

在介绍这些基本知识之前我们要清楚WebRTC的目的以及根本要解决的问题是什么。WebRTC首要要解决的问题是两个浏览器之间如何进行音视频的实时互动,对于底层来说就是两个端点之间如何进行高效的网络传输。下边我们来一项一项的详细介绍这些内容。

一、NAT(Network Address Translator)

        网络上的主机要有一个公网的地址才能进行通讯,现实中我们大部分主机都是在网关之后的,实际是有一个映射,在网关上有一个NAT功能,将内网的地址映射成外网的地址。

NAT的工作原理:


其实就是一个地址的映射,上图左半部分是几台内网机器,有自己的内网IP,他们之间可以通讯,但与互联网没法通讯 ,因此需要NAT进行转换。如11.0.25.23转换成122.35.10.11,每台内网主机实际要映射成不同的端口,IP不变。

NAT产生的原因
1,IPv4的地址不够
2,出于网络安全的原因

NAT种类
1,完全锥型NAT(Full Cone NAT)
      当内网中的某一台主机经过NAT的映射后形成外网IP地址和端口号,外网的所有主机只要知道这个地址就都可以向这台主机发送数据,安全性低;
2,地址限制性锥型NAT(Address Restricted Cone NAT)
      对出去请求的时候会对出去的IP地址做一些限制,当回来的时候只有出去的IP地址主机才能回消息,也就是我没有向你发送请求你向我发数据是不允许的;
3,端口限制锥形NAT(Port Restricted Cone NAT)
      在IP地址限制的基础上又增加了端口的限制,给某台主机的某个应用发送,也就是只有有个应用或者说这个端口回来的数据才会接收;
4,对称型NAT(Symmetric NAT)
      当经过NAT转换的时候,内网的主机出外网的时候形成的映射并不是一个,而是多个IP地址和端口,也就是说访问不同的主机他会形成自己的IP地址和端口,这就更加严格,你想知道我的IP地址都很困难。我请求A出去的是一个IP地址和端口,A告诉B有一个内网他的映射地址是这个,通过这个地址访问的时候实际是不能访问的,因为如果内网的主机与第三个主机进行连接的时候会新建一个IP地址和端口,基本不能穿越。
NAT穿越的原理
下边对每一种NAT类型的穿越原理进行介绍。
1,完全锥型NAT
                 
       左边是内网自己的IP地址和端口X,y,通过防火墙转换之后形成外网的IP地址和端口A,b,外边的三台主机要想与内网的主机进行通讯的时候,首先要由内网的主机向外请求,请求外网中的某一台主机,这样会在NAT上打一个洞,形成一个外网的IP地址和端口,然后其他的主机只要获得了这个IP地址和端口都可以通过防火墙与内网主机进行通讯。
2,地址限制锥形  
              
      会在防火墙上形成一个五元组:内网主机的IP地址和端口,外网映射后的公网IP地址和端口以及要请求的主机的IP地址和端口。同样的第一步要由内网向外网发送请求,在NAT上形成一个映射表,外网主机就可以和内网主机通讯。如图可以看到&#

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值