Overheads in Operating System kernel network stacks and sockets have been hindering OSes from managing networking operations efficiently for years. Moreover, when building Remote Procedure Calls over TCP, certain TCP features do not match the needs of RPCs, imposing additional overheads. These issues degrade the performance of distributed systems, which rely on fast communications between machines to be able to serve a large number of client requests with low latency and high throughput. The purpose of this literature survey is to look into recent proposals in research literature that aim to overcome these issues. The survey investigates research literature published between 2010-2020, in order to include important advancements during the most recent decade at the time of writing. The proposals found in papers have been categorized into hardware-based and software-based approaches. The former require specialized hardware to offer high communications performance. The latter are implemented in software and don't rely on specialized hardware or require only certain hardware features. Furthermore, the proposals where also classified according to whether they implement kernel bypass, to avoid using the Operating System kernel network stack, or not. The hardware-based approaches examined here are RDMA, programmable Network Interface Controllers (NIC) and System-on-a-Chip (SoC), while the software-based approaches include optimized socket implementations and RPC frameworks, as well as user space networking.
翻译:操作系统内核网络堆叠和插座的覆盖层多年来一直阻碍操作系统高效率地管理网络运作。此外,在通过TCP建立远程程序电话时,某些TCP特征与RPC的需要不符,造成额外的间接费用。这些问题削弱了分布式系统的业绩,这些系统依赖机器之间的快速通信,以便能够满足大量客户要求,而低潜值和高吞吐量。本文献调查的目的是研究旨在克服这些问题的研究文献中的最新建议。调查调查2010-2020年期间出版的研究文献,以便纳入最近十年在撰写时的重要进展。文件中发现的建议被归类为基于硬件和基于软件的方法。前者需要专门硬件才能提供高通信性能。后者在软件中实施,不依赖专门硬件或仅需要某些硬件特性。此外,还根据是否采用内核绕线进行分类,以避免使用操作系统内核网堆,或者不使用。在这里审查的基于硬件的方法是:在撰写文件时最近十年期间,基于硬件的方法被分类为基于硬件的硬件和基于软件的方法。前者需要专门硬件的硬件才能提供高水平的通信;后者在软件上,作为可优化的网络框架。