web 端 udp 信令优化

这篇具有很好参考价值的文章主要介绍了web 端 udp 信令优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目前主流的信令传输协议基本是使用 WebSocket, WebSocket 是基于 tcp 来实现的,其抗弱网能力比较弱,在高丢包的网络环境下无法保证信令的可靠传输,基本会出现延时增高,链路断开等问题。目前新的协议 WebTransport 已经正式使用,百家云已经使用 WebTransport 来改善信令的传输能力。本文将基于我们的实现做一个探讨总结。

WebTransport 是一个全新的 Web 传输协议,其基于 quic 协议,quic 协议基于 udp 协议;旨在为 Web 应用程序提供高性能、低延迟的数据传输机制。该协议设计用于在 Web 浏览器和服务器之间传输数据,以支持更高效的通信。以下是一些关键特点和方面:

  1. 多路复用(Multiplexing): WebTransport 允许在单个连接上进行多个并发数据流的传输。这可以提高网络利用率,降低延迟。

  2. 低延迟: 协议的设计考虑到了减少通信的延迟,使得 Web 应用程序能够更迅速地进行数据传输。

  3. 可靠性: WebTransport 提供可靠的传输机制,确保数据的可靠传递,适用于对数据完整性要求较高的场景。

  4. 适应性: 协议支持不同类型的数据传输,包括双向流、单向流等,以满足不同应用场景的需求。

  5. 安全性: WebTransport 考虑到了安全性问题,采用了一些安全机制来保护数据的传输过程。

  6. 可扩展性: 协议的设计允许将来添加新的功能和扩展,以适应不断变化的网络通信需求。

Web 应用层协议栈

web 端 udp 信令优化,udp,网络协议,网络

WebTransport 优势

1. 更快的握手连接(1-RTT(首次) 或者 0-RTT)
2. 使用 UDP 底层协议,可以支持发送可靠的数据流(单向和双向,多条流同时使用)和不可靠的数据报
3. 更高的抗丢包能力和更好的拥塞控制
4. 改善了队头阻塞的问题
5. 不依赖 ip,port 四元组,可无缝切换网络

WebTransport 信令方案

web 端 udp 信令优化,udp,网络协议,网络

当 rtt 低时使用 1 条双向流传输数据

当 rtt 高时使用 2 条双向流传输数据,每一条信令发双份,服务器使用最先到达的数据,后到达的直接丢弃

WebTransport 可在双向 50%,单向 70% 的丢包下稳定运行

WebTransport 性能数据

测试方法说明


1. 在内网的一台服务器上部署 server 端
2. 本地启动 web 服务使用最新的 chrome 访问测试用例页面
3. 通过弱网工具(本测试使用 mac 系统插件 Network Link Conditioner)设置不同的丢包和延时
4. 通过 WebTransport 与服务器建立连接,循环发送信令到服务器,服务器马上原样返回
5. 记录每次信令往返延时,最终通过 echarts 绘制出折线图

上下行丢包 50% 下 WebTransport 的表现

web 端 udp 信令优化,udp,网络协议,网络

上下行丢包 30% 下 WebSocket 和 WebTransport 的对比


web 端 udp 信令优化,udp,网络协议,网络

上下行丢包 40%,400ms 延时下 WebTransport 的多 stream 对比

web 端 udp 信令优化,udp,网络协议,网络

WebTransport 目前存在的问题和优化方向

1. 上下行高于 60% 丢包下容易断开链接,重连有较大概率无法握手成功
2. 客户端可以调高握手超时时间(chrome 浏览器为 4 秒),去掉心跳来提高 WebTransport 的抗丢包能力。

总结

通过上面的实验可以看到使用 WebTransport 来传输信令在弱网的情况下会比传统的 WebSocket 好很多,特别是使用多路传输可以大大提高抗丢包能力;根据我们的实验,在高丢包下建议使用 4 路流来同时发送信令从而达到一个很好的平衡。

https://www.baijiayun.com/brtc/

https://docs.baijiayun.com/resources/docs/open/download/tpl.html文章来源地址https://www.toymoban.com/news/detail-806297.html

到了这里,关于web 端 udp 信令优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web前端WebRTC攻略:传输协议UDP/RTP/RTC

    我们都知道HTTP协议,运行于TCP协议之上,是万维网的运转的基础。作为一名前端开发,我们似乎理所应当熟悉HTTP、TCP协议,以致于HTTP状态码、报文结构、TCP三次握手、四次挥手等等都已经成为了标配的基础面试题。但对于其他协议,我们似乎多多少少感到陌生。 下图是一个

    2024年02月13日
    浏览(25)
  • [网络编程]UDP协议,基于UDP协议的回显服务器

    目录 1.UDP协议介绍 2.UDP协议在Java中的类 2.1DatagramSocket类 2.2DatagramPacket 3.回显服务器 3.1Sever端  3.2Client端   UDP协议是一种网络协议,它是无连接的,全双工,并且是面向数据报,不可靠的一种协议。 常用于在线视频播放,游戏这种实时性要求比较高的应用。或者无需可靠传输

    2024年01月22日
    浏览(39)
  • 【计算机网络】传输层协议 -- UDP协议

    传输层是计算机网络中的一个重要层次,位于网络层和应用层之间,它的主要功能是为应用层提供端到端的数据传输服务,负责确保数据可靠传输、流浪控制和拥塞控制等。 传输层的两个主要协议是传输控制协议(TCP)和用户数据报协议(UDP)。它们各自有不同的特点和用途

    2024年02月15日
    浏览(65)
  • 网络:TCP、UDP协议

    目录 netstat pidof xargs UDP协议 TCP协议 setsockopt函数 确认应答机制 超时重传机制 流量控制 滑动窗口 拥塞控制 延迟应答 捎带应答 面向字节流 粘包问题 在TCP/IP协议中, 用 \\\"源IP\\\", \\\"源端口号\\\", \\\"目的IP\\\", \\\"目的端口号\\\", \\\"协议号\\\" 这样一个五元组来标识一个通信 0- 1023:知名端口号, HTTP

    2024年04月17日
    浏览(27)
  • 【传输层】网络基础 -- UDP协议 | TCP协议

    端口号(Port)标识了一个主机上进行通信的不同的应用程序 在TCP/IP协议中,用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过 netstat -n 查看) 0 - 1023:知名端口号,HTTP,FTP,SSH等这些广为使用的应用层协议,他

    2024年02月09日
    浏览(40)
  • 【计算机网络】UDP协议与TCP协议

    端口号(Port)标识了一个主机上进行通信的不同的应用程序; 在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看); 服务器的同一个服务会使用多进程或者多线程的方式,对于不同的客户端请

    2024年01月25日
    浏览(44)
  • 【计算机网络】TCP协议与UDP协议详解

    文章目录 一、传输层 1、1 再次理解传输层 1、2 再次理解端口号 1、2、1 端口号范围划分 1、2、2 认识知名端口号 1、3 网络常用指令netstat 与 pidof 二、UDP协议 2、1 UDP协议的报文 2、2 UDP的特点  2、3 UDP的缓冲区 三、TCP协议 3、1 TCP协议的报文 3、2 确认应答 3、3 按序到达 3、

    2024年02月08日
    浏览(40)
  • 【网络原理】| 应用层协议与传输层协议 (UDP)

    🎗️ 主页:小夜时雨 🎗️ 专栏:javaEE初阶 🎗️ 乾坤未定,你我皆黑马 应用层是和代码直接相关的一层,决定了数据要传输什么,怎么去使用这些数据等问题。 应用层这里,虽然存在一些现有的协议(比如HTTP),但是也有很多的情况,需要我们去自定义一些协议,这里的自

    2024年02月06日
    浏览(36)
  • 2.4 - 网络协议 - TCP协议工作原理,报文格式,抓包实战,UDP报文,UDP检错原理

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 TCP

    2024年02月05日
    浏览(33)
  • 【计算机网络篇】UDP协议

    ✅作者简介:大家好,我是小杨 📃个人主页:「小杨」的csdn博客 🐳希望大家多多支持🥰一起进步呀! UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了一种简单的、不可靠的数据传输服务。 UDP 提供了不面向连接的通信,且不对传送的数据报进行可靠的保证,

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包