WebRTC基础知识

基础概念

零基础快速入门WebRTC:基本概念、关键技术、与WebSocket的区别
真实世界中的WebRTC:STUN, TURN and signaling

  • 标准的、低延迟的方式来传递媒体数据(视频&音频)。
  • 客户端是以P2P的方式,使用UDP协议发送数据。
  • ICE:客户端需要交换ICE和SDP 信令,才能建立链接。
  • WebRTC协议不关心使用什么方式来交换信令,WebSockets、Socket.io、HTTP甚至人工交换都可以,实际上长字符串传递给其他人罢了。

NAT (Network Address Translation) 打洞

STUN(Session Traversal Utilities for NAT)

  • NAT给设备提供了一个IP地址以使用局域网,但是该地址不能在外部使用。由于没有公用地址,WebRTC端对端就无法进行通信,STUN用来解决这个问题。
  • STUN服务器位于公共网络上。
  • 只有一个简单的任务:检查客户端传入请求的IP地址(来自运行在NAT后面的应用程序),并将该地址作为响应发送回去。客户端为自己获得一个公网地址,然后通过信令机制将其传递给另一端以建立P2P直接连接。

在这里插入图片描述

  • 简单理解:STUN服务器是用来获取外部地址的。
    在这里插入图片描述

基于STUN协议的DDoS反射攻击 # TODO

新型DDoS来袭 | 基于STUN协议的DDoS反射攻击分析

  • STUN支持使用UDP协议来发送,STUN请求/响应事务的可靠性是通过客户端应用程序本身重新传输请求消息来实现的。黑客利用UDP无状态的这种机制,伪造攻击目标请求STUN服务器,把开启该服务的主机作为反射源,进行DDoS反射攻击,实现伪装和攻击。

  • STUN响应时会进行重试,黑客利用该机制可放大几倍的攻击量。

  • 防护建议:对于STUN互联网应用提供者,可限制可访问的源IP的地址范围减少利用情况,或者 只准使用tcp发送STUN协议,对于企业用户,推荐接入DDoS防护产品对抗大流量DDoS攻击。

TURN(Traversal Using Relays around NAT)

  • 两个客户端无法直接通信,只能依赖TURN服务。TURN服务往往作为后备。
  • 所有的通信内容都要经过 TURN 服务器的转发,所以 TURN 服务器的维护成本比较高。
  • TURN用于中继对等端之间的音频/视频/数据流,而不是信令数据。
  • TURN服务器都支持 STUN,所以TURN服务器一般内置STUN服务器。

在这里插入图片描述

  • 简单理解:TURN服务器是用来在客户端P2P直连失败的情况下进行中继转发数据流的。
    在这里插入图片描述

ICE(Interactive Connectivity Establishment)

  • ICE是用来对付NAT和防火墙,使用ICE来消除实际网络的复杂性,ICE会试图找到连接对方的最佳途径。
  • ICE会会收集所有可用的通信路径,本地 IP 地址、STUN 和 TURN 服务器提供的地址等等。把收集到的所有地址都将放入 SDP 中,再送到对端,对端通过解析 SDP 来了解我方提供的重要信息。

SDP(Session Description Protocol)

  • SDP信令 是一种用于表述 ICE Candidates 的格式,它描述了网络选项、媒体选项、安全选项和其他很多信息,甚至可以自定义 SDP 内容。

一个典型的WebRTC通信流程

  1. A 想要和B建立连接;
  2. A 创建了一个 offer,它寻找所有的 ICE candidate、安全选项、音视频选项等并创建 SDP(简单来说这个 offer 就是 SDP);
  3. A 将 SDP 信令传递给 B(Signaling);
  4. B 根据 A 的 offer 进行设置,并创建应答(answer);
  5. B 将 Answer 信令传递给 A(Signaling);
  6. 连接建立。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值