研究和草稿

TCP 研究

用于增加 TCP 的初始拥塞窗口的参数

TCP 流在初始拥塞窗口中最多包含 4 个段或大约 4KB 的数据。由于大多数 Web 事务都是短期的,因此初始拥塞窗口是决定数据流完成速度的关键 TCP 参数。在过去十年中,全球网络访问速度的平均速度急剧提高,而 TCP 初始拥塞窗口的标准值则保持不变。在这篇论文中,我们提议将 TCP 的初始拥塞窗口增加到至少 10 个段(约 15KB)。通过大规模的互联网实验,根据网络带宽、往返时间 (RTT)、带宽延迟乘积 (BDP) 和应用性质的影响,我们量化了使用较大窗口时的延迟优势和成本。我们发现,HTTP 响应的平均延迟时间缩短了约 10%,这在高 RTT 和高 BDP 网络中表现出了最大的优势。我们的实验也显著缩短了低带宽网络的延迟时间。平均重新传输速率略有提高 0.5%,其中大部分增长来自那些通过使用多个并发连接有效规避 TCP 慢启动算法的应用。根据我们的实验结果,我们认为初始拥塞窗口应至少为 10 个片段,而 IETF 将对此进行标准化研究。

TCP Fast Open

当今的网络服务主要是 TCP 流,这些流非常短,在握手后会终止几次往返;这种握手是此类流的重要延迟来源。在本文中,我们介绍了 TCP Fast Open 协议的设计、实现和部署。TCP Fast Open 协议是一种新机制,可在 TCP 初始握手期间实现数据交换。这样,TCP Fast Open 就能将应用网络延迟时间缩短一个完整的往返时间,从而缩短过短的 TCP 传输产生的延迟时间。我们解决了允许三次握手期间允许数据交换所固有的安全问题,并使用验证 IP 地址所有权的安全令牌来缓解此问题。我们详细介绍了其他回退防御机制,并解决中间框、现有网络堆栈的向后兼容性以及增量部署等问题。根据流量分析和网络模拟结果,我们表明,TCP 快速打开功能可将 HTTP 事务网络延迟时间缩短 15%,将整页加载时间平均缩短 10% 以上,在某些情况下可缩短 40%

针对 TCP 按比例降低速率

丢包会增加 Web 用户的延迟时间。快速恢复是 TCP 从数据包丢失中恢复的主要机制。在这篇论文中,我们探讨了 RFC 3517 中所述的标准算法以及 Linux 中实现的非标准算法的一些缺点。我们发现,由于短流程、应用暂停、爆发丢失、确认 (ACK) 丢失和重新排序以及拉伸 ACK 的综合影响,这些算法在现实世界中会偏离其预期行为。Linux 遭遇拥塞窗口缩短过多,而 RFC 3517 在高丢失率下传输大量突发,这两种情况都会损害数据流的其余部分并增加 Web 延迟。我们的主要贡献是控制快速恢复中的传输的全新设计,称为“按比例降低速率 (PRR)”。通过在收到的 ACK 之间调整重新传输节奏,PRR 能够快速、流畅、准确地从丢失中恢复。除了 PRR 之外,我们还评估了 TCP 提前重新传输 (ER) 算法,该算法可降低短时间传输的重复确认阈值,结果表明,在出现少量重新排序的情况下,延迟较短的提前重新传输时间可有效避免虚假的重新传输。PRR 和 ER 可将丢失连接的 TCP 延迟时间缩短 3-10%,具体取决于响应大小。根据我们在美国和印度的 Google 网络和 YouTube 服务器上的检测工具,我们还提供关于 TCP 重新传输性质的关键统计信息。

Laminar TCP

Laminar 是用于 TCP 拥塞控制的新框架,它将传输调度(精确确定何时发送数据)与纯拥塞控制(确定每次 RTT 期间发送的总数据量)分开。Laminar 预计将支持新的高级算法,以便更精确地监管 TCP 流量。

SSL 和 TLS 草稿

传输层安全协议 (TLS) 错误开始

False Start 是 TLS 实现的可选行为。它仅影响协议时间,不影响线上协议数据,并且可以单方面实现。TLS False Start 功能可将某些握手的往返延迟时间缩短一次。

传输层安全协议 (TLS) 下一协议协商扩展

用于应用层协议协商的传输层安全协议 (TLS) 扩展。这样,应用层就能够以一种可避免额外的往返且独立于应用层协议的方式,通过安全连接协商应执行哪个协议。

DNS 草稿

DNS 请求中的客户端子网

该草稿定义了一个 EDNS0 扩展,以携带有关发起 DNS 查询的网络的信息,以及可缓存回复的网络的信息。