WebRTC建立互联的技术与步骤

         WebRTC是基于ICE来建立来我Web应用间的互联的。由于A和B所处理的网络环境不同,A和B都没有固定我外网IP,当两个处理同一个NAT内部网络时,是能够直接连接成功的。当如A和B处理在NAT的两侧或隔了多个NAT时,中间会有很多防火墙并且网络地址也可能经过了多次转换,就没办法直连了,这时需要借助STUN来处理。STUN就是借助一个中间服务器,来建立A与B的直接连接,也就是我们常说的穿越。顾名思义,穿越就是要穿过重重防火墙来建立双方的连接。当A和B中间的NAT是采用一种被称为对称NAT的限制,那这里就没办法建立A和B的直连了,只能借助中间的TURN服务器来转发消息了。

ICE(Interactive Connectivity Establishment,互动式连接建立)

        ICE是一个可以将web浏览器互联的框架。从A到B无法直连的原因有很多,它需要绕过阻止打开连接的防火墙;需要独一无二的ip地址,但在很多情况下你的设备会没有公网IP地址;如果你的路由器不允许直连,则通过服务器中继数据。ICE通过STUN和TURN服务器来实现浏览器互联

NAT(Network Address Translation,网络地址转换)

        NAT是用来给你的设备一个公共IP地址的技术。作用就是可以给和多私网内部的机器用一个或少数的IP进行公网通讯。路由器拥有一个或少数几个公网IP地址,每个和路由器相连的设备有一个私有地址。请求将通过一个唯一的端口从设备的私有IP转换为路由器的公共IP。通过这种方式,每个设备无需公网IP,但仍然可以在互联网上被发现。

STUN(Session Traversal Utilities for NAT,NAT会话穿越应用程序)

        STUN是一种用于发现您的公网地址,并确定路由器中阻止与对外直连的限制原因的网络协议。客户端会通过互联网向STUN服务器发送请求,STUN服务器会返回客户端的公网地址,以及该客户端是否可以通过路由器的NAT访问。

TURN(Traversal Using Relays around NAT)

        一些使用NAT的路由器采用一种被称为对称NAT的限制。这意味着路由器将只接受来自你曾经连接过的连接。TURN意味着,通过打开与TURN服务器的连接,并通过该服务器转发所有信息,从而绕过了对称NAT限制。你可以创建一个与TURN服务器的连接,并告诉所有对端向服务器发送数据包,然后这些数据包将被转发给你。这显然会带来一些开销,所以只有在别无选择的时候才会使用它。

ICE每次在建立连接时会用上述三种情况逐一尝试,首先尝试直连,不行就尝试使用STUN看是否可以穿越,如果无法穿越就采用转发。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值