当前位置: X-MOL 学术Comput. Commun. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Beyond socket options: Towards fully extensible Linux transport stacks
Computer Communications ( IF 6 ) Pub Date : 2020-08-17 , DOI: 10.1016/j.comcom.2020.07.036
Viet-Hoang Tran , Olivier Bonaventure

The Transmission Control Protocol (TCP) is one of the most important protocols in today’s Internet. It was designed to be extensible for various use cases. A client can propose to use an extension over a given TCP connection by sending a TCP option that identifies this extension. In practice, deploying a TCP extension is difficult as the maintainers of client stacks often wait until servers implement a given extension and server maintainers look at clients in the same manner. It often takes several years if not a decade to actually deploy a TCP option widely. Our goal is to support experimenting and deploying new TCP options in a quick, simple, and efficient way. This includes inserting new TCP options at the sender side and parsing them at the receiver side. The implementation and the interface should be simple, generic, and introduce as few changes to the kernel code as possible. In this paper, we focus on the Linux TCP stack since it is one of the most widely used TCP stacks, given its utilization on many servers and Android devices. For this purpose, we leverage the extended Berkeley Packet Filter (eBPF), which is a recently developed in-kernel infrastructure to enable high performance and safe programmability to the Linux kernel space.

Multipath TCP (MPTCP) is a major TCP extension that enables more capabilities and has richer semantics than regular TCP. We implemented a similar methodology in the Linux MPTCP stack to support new use-cases through custom MPTCP options. Moreover, an eBPF-based framework for user-defined path managers is also proposed, given that subflow management is an important task in Multipath TCP.



中文翻译:

套接字选项之外:转向完全可扩展的Linux传输堆栈

传输控制协议(TCP)是当今Internet中最重要的协议之一。它被设计为可扩展用于各种用例。客户端可以通过发送标识此扩展名的TCP选项来建议在给定的TCP连接上使用扩展名。在实践中,部署TCP扩展很困难,因为客户端堆栈的维护者通常要等到服务器实现给定的扩展并且服务器维护者以相同的方式查看客户端。实际上,广泛部署TCP选件通常需要几年甚至十年的时间。我们的目标是支持以快速,简单和有效的方式试验和部署新的TCP选项。这包括在发送方插入新的TCP选项,并在接收方进行解析。实现和接口应该简单,通用,并尽量减少对内核代码的更改。在本文中,我们将重点放在Linux TCP堆栈上,因为考虑到它在许多服务器和Android设备上的利用率,它是使用最广泛的TCP堆栈之一。为此,我们利用扩展的Berkeley数据包过滤器(eBPF)(这是最近开发的内核内基础结构)来实现对Linux内核空间的高性能和安全可编程性。

多路径TCP(MPTCP)是主要的TCP扩展,与常规TCP相比,它具有更多的功能并具有更丰富的语义。我们在Linux MPTCP堆栈中实现了类似的方法,以通过自定义MPTCP选项支持新的用例。此外,考虑到子流管理是多路径TCP中的重要任务,还提出了一种基于eBPF的用户定义路径管理器框架。

更新日期:2020-09-03
down
wechat
bug