Rethinking host network stack architecture using - ETH E

DISS.ETH NO. 23474
Rethinking host network stack architecture
using a dataflow modeling approach
A thesis submitted to attain the degree of
DOCTOR OF SCIENCES of ETH ZURICH
(Dr. sc. ETH Zurich)
presented by
Pravin Shinde
Master of Science, Vrije Universiteit, Amsterdam
born on 15.10.1982
citizen of Republic of India
accepted on the recommendation of
Prof. Dr. Timothy Roscoe, examiner
Prof. Dr. Gustavo Alonso, co-examiner
Dr. Kornilios Kourtis, co-examiner
Dr. Andrew Moore, co-examiner
2016
Abstract
As the gap between the speed of networks and processor cores
increases, the software alone will not be able to handle all incoming
data without additional assistance from the hardware. The network
interface controllers (NICs) evolve and add supporting features which
could help the system increase its scalability with respect to incoming
packets, provide Quality of Service (QoS) guarantees and reduce the
CPU load. However, modern operating systems are ill suited to both
efficiently exploit and effectively manage the hardware resources of
state-of-the-art NICs. The main problem is the layered architecture of
the network stack and the rigid interfaces.
This dissertation argues that in order to effectively use the diverse
and complex NIC hardware features, we need (i) a hardware agnostic
representation of the packet processing capabilities of the NICs, and
(ii) a flexible interface to share this information with different layers
of the network stack.
This work presents the Dataflow graph based model to capture both
the hardware capabilities for packet processing of the NIC and the state
of the network stack, in order to enable automated reasoning about
the NIC features in a hardware-agnostic way. It also describes the
implementation of the Dragonet network stack which uses the dataflow
model to support the diversity and complexity in the NICs.
Dragonet enables effective use of the available hardware features
in a portable way by using the dataflow model to share the packet processing capabilities of a particular NIC configuration with the runtime
system, which can then automatically specialize the network stack
based on this information.
Furthermore, the dataflow model enables systematic exploration
of the hardware configuration space and allows reasoning about the
hardware capabilities in the context of application requirements. Thus,
allowing policy-based management of the NIC’s resources.
The dissertation shows the effectiveness of the dataflow model by
implementing several high-level policies for managing different hardware resources on two separate NICs.
Kurzfassung
Mit der wachsenden Diskrepanz zwischen der Geschwindigkeit
des Netzwerks und der CPU-Leistung ist Software nicht mehr in der
Lage alle eingehenden Daten ohne jegliche Hilfe von der Hardware zu
bewältigen. Netzwerk Interface Controller (NIC) entwickeln sich daher ständig weiter und können mittlerweile den Systemen helfen, höhere Skalierbarkeit bezüglich eingehender Pakete zu erreichen, Qualityof-Service (QoS) Garantien bereitzustellen oder die CPU-Last zu reduzieren. Modernen Betriebssystemen fehlt allerdings die Unterstützung um diese Erweiterungen moderner NICs effizient auszunutzen
und verwalten zu können. Das Hauptproblem in diesem Zusammenhang ist die Architektur des Netzwerkstapels in Schichten sowie zu
inflexible Schnittstellen.
Diese Dissertation argumentiert, dass für die effektive Nutzung
vielfältiger und komplexer NIC-Hardware sowohl eine Repräsentation der Paketverarbeitung existieren muss, die unabhängig von der verwendeten Hardware ist, als auch eine flexible Schnittstelle um diese
Information in allen Schichten des Netzwerkstapels verfügbar zu machen.
Diese Arbeit präsentiert ein auf einem Dataflow-Graph basierende
Modell, welches sowohl die Fähigkeiten der Hardware im Bezug auf
die Paketverarbeitung eines NIC als auch den Status des Netzwerkstapels darstellt. Dies erlaubt die automatische, hardware-unabhängige
Auswahl der verfügbaren Fähigkeiten der NIC-Hardware. Des Weiteren beschreibt die Arbeit die Implementierung des Dragonet Netzwerkstapels, welcher das Dataflow-Modell benutzt um die Vielfalt und
Komplexität der NICs optimal zu unterstützen.
Dragonet erlaubt mit Hilfe des Dataflow-Modells, die Fähigkeiten der Hardware plattformunabhängig und effektiv einzusetzen um
die Paketverarbeitung zwischen der Laufzeitumgebung und des NIC
aufzuteilen. Die Laufzeitumgebung kann dann automatisch den Netzwerkstapel aufgrund dieser Informationen spezialisieren.
Des Weiteren erlaubt das Dataflow-Modell die systematische Erschließung aller möglichen Hardware-Konfigurationen und erlaubt es
zu beurteilen, wie die verschiedenen Hardware-Fähigkeiten im Kontext von verschiedenen Anwendungen eingesetzt werden können.
Diese Dissertation zeigt die Effektivität des Dataflow-Modells durch
die Implementierung von mehreren abstrakten Strategien zur Verwaltung von unterschiedlichen Hardware-Ressourcen mit zwei unterschiedlichen NICs.