带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(2)https://developer.aliyun.com/article/1340579?groupCode=taobaotech
如何解决服务端UDP性能问题
相信已经在尝试应用QUIC/HTTP3的服务端开发者,或多或少都会经历UDP在内核方面的性能瓶颈问题,考虑到UDP是在近几年才随着QUIC和流媒体传输的场景的逐渐流行,才被逐渐广泛地应用起来,因此内核UDP在性能方面很难与优化了三十年的TCP相抗衡,同时内核的复杂性和通用性要求,也导致一些新的高性能修改难以被迅速接收。因此,在UDP性能优化方面,我们和龙蜥社区的Anolis内核团队联合做了一版bypass内核的用户态高性能udp收发方案。
首先我们需要了解到,ebpf[6]有一类专门用于网卡驱动处理的filter叫XDP[7],可以实现对于网卡接收和发送的packet进行劫持处理;Anolis内核团队基于XDP实现了一套UDP packet卸载和封装逻辑并封装为XUDP[8]库, 而我们则基于XUDP进行UDP packet的收取和发送,实现完全bypass内核的高性能UDP收发。
这一套方案相较于Linux内核默认的UDP收发 + 四元组hash查找优化的方案,可以在真实场景下,再提升26.3%以上的服务器协议栈处理性能。Tengine + XUDP + XQUIC的打包处理方案,我们后续也会在Tengine社区提供开源版本以供外部开发者参考。
带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(4)https://developer.aliyun.com/article/1340577?groupCode=taobaotech