基于QUIC 传输的超大型数据中心网络性能研究
2022-04-28刘景林
刘景林
(泉州经贸职业技术学院信息技术系,福建 泉州 362000)
近年来,在网络直播、网上贸易、云计算等应用需求的推动下,许多全球数据中心网络相继建立。与广域网相比, 数据中心网具有部署灵活、 带宽高、时延低等优点。 数据中心网络是由各种计算设备、 网络互联设备等相关设施组成的基础服务集群。 在数据中心内通过高速链路和交换机连接大量服务器的网络,采用分层结构实现,每个应用程序运行在特定的服务器或虚拟服务器集上。 数据中心网络具有控制域单一、 网络体系结构同质等不同于Internet 的特点,给设计带来了机遇和挑战[1]。由于TCP 协议在数据中心网络应用中存在传输性能方面的局限性, 所以在数据中心网络中引入了Google 开发的新的传输协议QUIC(Quick UDP Internet Connection), 该协议是基于 UDP 的传输协议,目的是保证传输可靠性的同时降低网络延迟。QUIC 不仅减少了握手时延,而且在拥塞控制中引入了严格的递增序列号机制, 实现了无队列头阻塞的复用,理论上,在传输性能方面明显优于TCP协议[2]。
目前,超大型数据中心网络的应用非常广泛,随着通信运营商网络业务的不断增加, 重点研究超大型数据中心数据传输的综合性能, 以实现支持更多的业务系统。 所以,关于如何提高超大型数据中心网络的综合性能方面, 亟待进一步深入的研究。
1 fat-tree 数据中心网络
为了增加吞吐量、 降低时延以及缓解流量拥塞,数据中心网络需要设计不同的拓扑结构[3],如以fat-tree[4]和VL2[5]为代表的新型树状拓扑结构,以Dcell[6]和BCube[7]为代表的分层递归拓扑结构,以 SWDC(Small World Data Center)和 Jellfish[8]为代表的随机小世界拓扑结构。 在数据中心网络中,Leiserson 提出了fat-tree 的分层网络拓扑结构,它具有带宽平分的特点,应用极为广泛。 以下是基于fat-tree 为背景研究QUIC 协议的网络传输。
fat-tree 数据中心网络采用多交换机级联的三层拓扑结构,分为核心层、汇聚层和接入层(见图1)。 然而,其与传统的树状结构不同,接入交换机和汇聚交换机被划分为不同的集群。 在集群中,每个接入交换机与每个汇聚交换机相连, 形成一个完整的二部图。 每个汇聚交换机连接一部分核心交换机,使每个集群连接到核心层交换机[9]。在fattree 结构中, 提供了足够的核心交换机来保证1∶1的网络覆盖率,并提供服务器间的无阻塞通信。
图1 fat-tree 数据中心网络
构建fat-tree 网络拓扑的规则是:fat-tree 拓扑中的(pod point of Delivery)个数为k,每个pod 连接的服务器个数为(k/2)2,每个pod 中的接入交换机和汇聚交换机个数为k/2, 核心交换机个数为(k/2)2,网络中每个交换机的端口个数为k,网络支持的服务器总数为k3/4。
fat-tree 结构可以通过核心层中的多个链路及时处理负载,避免网络中的热点,通过pod 中的合理分流避免过载。 fat-tree 的另一个优点是它使用的所有交换机都是相同的, 这使得我们可以在整个数据中心网络架构中使用普通的交换机[10]。
随着网络规模的扩大,fat-tree 的汇聚带宽增加, 可以为数据中心提供高吞吐量的传输服务[11]。对于不同pod 之间服务器间的通信,源节点和目的节点之间存在多条并行路径, 因此网络的容错性能良好,一般不存在单点故障。 采用商用设备取代高性能交换设备,大大降低了网络设备开销。 网络直径小,可以保证网络上视频、在线会议等业务的实时性要求。 规则对称的拓扑结构,有利于网络布线、网络的自动配置及优化升级。
目前, 数据中心网络中的数据流在很多情况下是分布不均衡的[12],例如,在基于Web 应用的数据中心中,当传输多个小数据流时,占用的带宽较多,因此对拥塞控制突发提出了更高的要求。 而当前的QUIC 传输协议在TCP 拥塞算法的基础上,它不使用TCP 根据字节序列号和ACK 来确认消息的有序到达,而是使用新建的序列号,每个序列号均严格递增,因此如果包n 丢失,则重传包n 的序列号不是n,而是大于n 的值,这样就很容易解决TCP 重传的歧义性问题, 并且这种机制可以显著提高吞吐量[13]。
2 QUIC 协议及其应用
QUIC 是基于UDP 协议的低时延互联网传输层协议,可以通过多路传输解决队头阻塞问题,通过0-RTT 握手降低传输层握手延时, 通过连接迁移更好地对移动性提供支持, 能够较好地解决当今传输层和应用层面临的各种需求, 包括处理更多的连接,减少连接延迟,保障数据传输的可靠性等问题。QUIC 已在SDN 网络和空间网络中进行了评估,其总体上优于传统TCP 协议,因此将其应用于数据中心网络具有很大的优势。
TCP 最重要的特性之一是拥塞控制机制,它通过调整传输速率来避免拥塞崩溃(见图2)。 QUIC在 UDP 上实现类似于 TCP+TLS+HTTP/2。 由于TCP 是在操作系统内核和中间件固件中实现的,因此几乎不可能对TCP 进行重大更改 (TCP 协议栈通常由操作系统实现,如Linux、Windows 内核或其他移动设备操作系统), 修改TCP 协议非常复杂,因为每个设备和系统的实现都需要更新。 但是,由于QUIC 是基于UDP 的, 因此没有这样的限制。QUIC 可以实现可靠的传输,与TCP 相比,它的流量控制功能是在用户空间而不是在内核空间,可以根据应用场景自由选择,甚至自由调整和优化,具有更大的发展优势。
图2 QUIC 与 TCP 协议比较
2.1 0-RTT 往返时延
RTT(Round-Trip Time)是客户端与服务器连接成功以及连接速度的重要参数。
客户端发送数据之前,QUIC 协议下仅需0-RTT 即可与服务器建立安全会话, 而TCP/IP 协议下的TCP+TLS 则需要1-3 RTT (s) 才能够建立连接,其主要的改进是在QUIC 协议下,客户端获取到会话server config 以后,便能计算出密钥,且不再重新建立新会话,直接发送应用数据,此机制称为0-RTT。
QUIC 协议通过合并Transport Layer Security减少了建立安全连接所需的往返次数。 当客户端第一次访问服务器时, 它需要1 个RTT 来交换加密信息。 如果当前客户机已访问服务器,则不再需要RTT。 在QUIC 协议中,客户机和服务器之间的连接时间最多是1 个RTT,是安全的,而TCP 协议需要 2 个 RTT 和另外 1 个 RTT 通过 TLS 加密数据。
QUIC 的连接采用加密和传输握手相结合的方式来减少确认次数,适用于数据中心网络,有利于降低时延。
2.2 灵活的拥塞控制机制
QUIC 的拥塞控制是在传统TCP NewReno 基础上发展而来的,即基于拥塞窗口的拥塞控制,其核心原理基本一样,但QUIC 可以灵活地使用拥塞控制多种算法, 一次选择一个或几个拥塞控制算法同时工作,但QUIC 在应用程序不需要停机和升级,TCP 需要在服务端进行修改, 而QUIC 现在只需要简单的重新加载就能实现不同拥塞控制切换。
2.3 前向纠错
QUIC 传输过程中应用了与TCP 差别很大的纠错机制, 其随时用 Forward Error Correction packet 来代替某些新的packet,由于Forward Error Correction packet 中有奇偶核验机制, 能及时判断出是否丢失, 并恢复packet 内容段, 整个效率极高,且可根据传输请求的某一阶段进一步优化,以实现前向纠错目的。
在QUIC 协议中, 用于确认数据的ACK 包增强了新的功能, 支持从接收包到返回ACK 的延迟值, 增加值的目的是更加精确地计算基于分数的RTT。 所以说在处理数据上, 较先前的TCP/IP 协议,可以综合RTT 与CWND 来调节适合实时的拥塞算法,更加的灵活。 在数据中心网络中,当流量过大时,传统的汇聚交换机对负载均衡能力较弱,且实时性较差, 再者TCP/IP 协议不能较好地适时调节整个网络的拥塞情况,而QUIC 的灵活处理机制具有较好的应用前景。
3 基于QUIC-UDP 传输的fat-tree超大型数据中心网络性能测试
数据中心是大型网络系统的核心, 既是众多服务器的集中地,又是信息数据的总汇。 按文献[14]设计了基于fat-tree 的超大型数据中心网络。 本文的超大型数据中心网络是指Pod 个数k>30 的fattree 数据中心网络。 网络拓扑与图 1 类似,f1 作为服务器,应用TCP 协议与QUIC-UDP 协议,而其他主机fn 作为应用服务器,主要研究其传输性能。
网络中的所有链路均设为全双工链路, 设置链路带宽等, 并使用iperf 工具产生模拟的数据中心流量。传输吞吐量的计算流程为:首先主机f1 作为服务器,客户端主机数据传输前,记录开始时间t1;然后客户端主机fn 向服务器主机f1 发request请求, 服务器主机f1 收到请求时做出response 回应,并传输网页;客户端主机fn 收到网页后,判断是否完整,若完整无误,记录结束时间t2;最后计算本次传输吞吐量,其值为传输网页大小/(t2-t1)。
网络传输中最常见的应用是Web 网页的浏览,即在两主机中通过浏览器渲染包括html、各种脚本、控制样式等文件。 为了进一步研究QUIC 和TCP 两种协议的传输特点,实现在数据中心网络中的不同网络条件下加载相同网页进行性能测试,分别设计了3 种基于fat-tree 拓扑结构的数据中心网络,如表1 所示。
表1 3 种不同类型的fat-tree 数据中心网络
网络传输性能测试所使用的服务器和客户端均采用64 位Linux 内核, 操作系统为xfce 4.10。QUIC 协议的QUIC-go 的较新版本是0.15.4。HTTP服务器是Nginx 1.14。 TCP 初始窗口大小默认设置为1024。测试网页是HTML 语言编写的,包括大量文本、5 幅图像和 JavaScript 脚本, 总大小为15.6MB。网络拓扑工具使用mininet,该软件是一个通过虚拟终端节点、 交换机和路由器连接起来的网络模拟器,可以方便地创建一个数据中心网络,其采用虚拟化技术,使系统与实际网络基本一致。TCP 服务器使用Nginx 服务器, 是一种高性能的Web 服务器,具有低功耗、稳定性好、并发性强以及易于配置等优点。
本次测试使用TC 和 Netem、mahimahi 工具模拟不同的网络环境, 该工具支持TCP 和QUIC 协议, 可以记录整个Web 传输过程, 包括记录Web内容的 recordshell、 回放存储 Web 内容的 replayshell、模拟延迟带宽链路的delayshell,用于模拟指定数据传输的速度带宽链路的linkshell,以及用于模拟指定丢包率链路的lossshell。
LinkShell 的原理是使用数据包传递跟踪文件来模拟链接。uplink 链路跟踪文件模拟从LinkShell容器到Internet 的链接,downlink 链路跟踪文件模拟从 Internet 到LinkShell 容器的链接。 LinkShell可以模拟时变链路(如蜂窝链路)和具有固定链路速度的链路。 当数据包到达链路时(从Internet 或LinkShell), 它将根据其预期的方向直接放入两个数据包队列中的一个:uplink 队列或downlink 队列。 LinkShell 根据相应的输入数据包传递跟踪从每个队列释放数据包。 跟踪文件中的每一行表示一个数据包传递机会:在仿真中可以传递MTU 大小的数据包的时间。 整个记录过程是在字节级别完成的。因此,跟踪wget 请求中的一行可以传递几个较小的数据包,这些数据包的大小总和为1 500字节。 如果在传输过程中出现的瞬间字节不可用,则会再次传输一次。 LinkShell 可以嵌套在DelayShell 中, 以灵活地创建具有用户提供的单向延迟和用户提供的链接速率的链接。
整个测试实验中网络传输和网络信息的具体设置见表2。
表2 数据中心网络参数设置
实验中,将QUIC 部署在基于fat-tree 的超大型数据中心网络中,TCP 和QUIC 服务器部署在主机f1 中,fn 是客户端。 利用 wget 传输工具,得到 TCP和QUIC 的网页传输时间, 并计算出对应的PLT(Page Loading Time)。 为了评价 TCP 与 QUIC 两种不同协议的传输性能, 选择相同单位时间内网页加载时间作为评价标准。 为了消除不稳定因素,每次试验重复60 次。
基于 fat-tree 的 k=2 数据中心网 h1 和 h8 在不同核心交换机和相同聚合交换机下的网络性能分析,如图3 所示。
图3 基于fat-tree 数据中心网络的TCP/QUIC 传输性能测试比较
为了进一步研究移动网络环境下两种协议的传输性能方面的差异, 实验模拟不同upLink 与downLink 下带宽为20Mbps 的网络环境。模拟移动网络命令如下:mm-delay 20 mm-link--meter-all
/usr/share/mahimahi/traces/Verizon-LTE-short.up
/usr/share/mahimahi/traces/Verizon-LTE-short.down
其传输结果见图4。
图4 基于fat-tree 数据中心网络的TCP/QUIC 移动传输性能测试比较
从图3 可以看出, 随着带宽和丢包率的增加,TCP 和QUIC 的传输性能均有所下降,但TCP 的传输性能下降幅度会更大些。 在5Mbps 带宽下,TCP的吞吐量刚开始很高,但随着丢包率增加到1%左右,QUIC 的吞吐量超过了 TCP。 在 20Mbps 带宽下,随着丢包率的增加,QUIC 除了时延5ms 外,其吞吐量始终超过 TCP。 首先,QUIC 在 100Mbps 带宽下的吞吐量较高, 而在100Mbps 带宽下延时2ms 时,QUIC 的吞吐量基本相同, 在 5ms 及 10ms延时时,其输出吞吐量接近于0。
从图4 可知, 在移动网络环境中低丢包率情形下,QUIC 传输性能明显优于TCP。 随着丢包率增加,QUIC 由于其前向纠错等功能, 所以一直优于TCP。
4 结论
通过构建基于超大型数据中心网络中的fattree 拓扑环境,对TCP 和QUIC 的网络传输性能进行研究,并在不同的网络环境中进行测试,比较基于TCP 和QUIC 的数据中心网络传输性能的差异,发现随着丢包率的增加,两种协议的传输性能(指吞吐量)均有所下降,但TCP 的下降幅度要大得多,QUIC 在高丢包率网络环境下传输性能要明显优于TCP。 在移动网络环境下,QUIC 传输性能一直优于传统的TCP 协议, 随着数据中心网络规模的增大,TCP 和QUIC 的网络传输能力趋于稳定。 在今后的研究中,将进一步扩大数据中心网络规模,比较高负载、高丢包率等网络环境中二者的性能差异。