日前,腾讯应用框架团队正式公布了TQUIC的开源版本:https://github.com/Tencent/tquic 。
TQUIC的目标是打造一个稳定、快速、高性能并具有广泛技术影响力的传输协议库。具体来说,TQUIC具有快传输、高性能、高质量等特性优势,并支持多种类拥塞控制算法,包括BBRv3、BBRv1、COPA、CUBIC等,传输速度和公平性均表现优异,适用于不同网络环境。此外,TQUIC还支持多路径,在弱网和跨网场景下保障业务体验平滑过渡。值得一提的是,TQUIC是基于RUST语言开发的QUIC协议库,保证在提升内存安全性的同时,单机转发性能也非常良好。
目前,TQUIC已应用于腾讯多个业务的核心场景,包括腾讯视频、腾讯会议、腾讯广告、微信、QQ、游戏等业务。结合腾讯云下一代CDN---边缘安全加速平台EdgeOne的能力,显著提升了各个业务的核心体验指标。
特性优势
快传输:TQUIC是业界支持拥塞控制算法最丰富的协议库之一,在全部场景下表现符合RFC预期,在弱网和部分场景下传输效果领先2%-30%。
高性能:在大部分测试场景下的单机处理性能优于同类开源产品,部分场景下单机处理性能领先20%。
高质量 :QUIC 协议栈涵盖10+篇核心的RFC标准或草案,同时涉及到传输层、安全层、应用层,复杂度远大于TCP。TQUIC单元测试覆盖率95%以上,与业界四个主流 QUIC实现的互操性测试用例通过率为100%, 同时采用基于形式化规范的测试方法,严格保障了协议一致性。
易用性:易于使用,支持灵活的配置和丰富的可观察性;提供了Rust/C/C++多语言接口,未来计划进一步提供Kotlin/Swift等语言接口。
基于RUST :基于内存安全语言编写,不受缓冲区溢出漏洞和其他与内存相关缺陷影响。
丰富特性 : 支持所有QUIC和HTTP/3规范的重要特性。
更多TQUIC详情可查看项目网站 https://tquic.net/zh/docs/intro 。
场景价值
广告竞价场景:接入TQUIC后的程序化广告,实时竞价比例提升30个百分点,最优单比例从50%提升到70%,带来的营收增长超过4%。
直播和点播视频场景:通过TQUIC更好的拥塞控制技术,视频首播耗时、卡顿率,均有20%以上的优化,在人均正片播放时长、有效时长等北极星指标,相比原生组均有明显提升。
会议和即时通信场景:TQUIC助力客户提升弱网抗抖动性,当在会议中发生网络切换,如移动场景或进出电梯等环境,平滑过渡无感知。
电商网站类场景:TQUIC可以提升图片加载速度20%以上。
游戏类场景:TQUIC明显提升游戏响应速度和游戏时长。
项目背景
QUIC是一个安全、可靠、快速的通用传输协议。相比TCP具有很多结构性优势,包括0-RTT握手,连接迁移,多路复用,优良的丢包检测和拥塞控制。QUIC完全在应用层实现,不依赖操作系统内核和中间网络设备的支持,具有很强的灵活性和扩展性,特别是拥塞控制算法可以实现更加快速灵活的迭代和优化。
随着QUIC被选为HTTP/3的底层传输协议,QUIC协议的地位和价值变得更加重要,已经应用在几乎所有的业务场景,流量份额上也一直稳步上升,技术优势和业务收益都很明显,我们有理由相信,QUIC协议将主导互联网传输领域至少30年以上。
由于QUIC所具备的广泛性、长期性、创新性特点,我们开源了自研的TQUIC协议库,也希望借TQUIC开源的机会, 吸引更多开发者们共建,一起促进传输协议的发展,提升互联网快速和安全的传输体验。
项目架构
TQUIC项目架构
TQUIC将跨平台兼容及多并发模型支持作为关键的设计目标。核心采用了网络IO及事件循环抽象化设计,并不依赖于套接字,而是通过用户提供的回调来实现。同时,TQUIC核心没有强加特定的事件循环要求,它提供了帮助用户调度事件的函数。TQUIC的灵活性使得易于在各种系统中的定制和集成。
TQUIC接口层提供了面向主流平台编程语言的高层级封装接口,支持同步、异步语义接口,兼容不同的并发模型,并简化用户的使用。
TQUIC的开源只是开始。期待得到大家的指正和参与,共同建设网络传输领域的技术生态。欢迎与我们联系。
TQUIC开源项目网站:https://tquic.netTQUIC
开源项目地址:https://github.com/tencent/tquic
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。