# Homa: A Receiver-Driven Low-Latency Transport Protocol Using Network Priorities

### Abstract&#x20;

* Homa: new transport protocol for DC networks&#x20;
* Provides low latency, especially for workloads with a high volume of very short messages, and it also supports large messages and high network utilization&#x20;

### Introduction&#x20;

* Existing transport protocols are ill-suited to these conditions, so the latency they provide for short messages is far higher than the hardware potential, particularly under high network loads&#x20;
* Homo&#x20;
  * Favors small messages
  * But also improves the performance of large messages in comparison to TCP-like approaches based on fair sharing&#x20;
* Two innovations&#x20;
  * Aggressive use of priority queues provided by modern network switches&#x20;
    * Assigns priorities dynamically on receivers, and it integrates the priorities with a receiver-driven flow control mechanism&#x20;
  * Controller over-commitment: a receiver allows a few senders to transmit simultaneously&#x20;
    * Utilizing the bandwidth efficiently&#x20;
* Unusual features&#x20;
  * Message-based architecture rather than a streaming approach
    * Eliminates head-of-line blocking at senders and reduces tail latency&#x20;
  * Connectionless&#x20;
  * No explicit ack&#x20;
  * At-least-once semantics&#x20;
* Metric: tail message latency (99th percentile): most important metric for datacenter application&#x20;

### Motivation and Key ideas&#x20;

Motivation&#x20;

* NIC and software stack advances&#x20;
* All prior work has focused on workloads with very large messages&#x20;
* Existing DC transport design cannot achieve the lowest possible latency for tiny messages at high network load&#x20;

Design space&#x20;

* Key design principles&#x20;
  * Transmit short messages blindly&#x20;
  * Using in-network priorities&#x20;
  * Allocate priorities dynamically at receivers in conjunction with receiver-driven rate control
  * Controlled over-commitments of receiver downlinks&#x20;
* Focus on message latency (instead of packet latency), since it reflects application performance&#x20;
* Key
  * There is no time to schedule every packet
    * Short messages are transmitted blindly, without considering potential congestion&#x20;
  * Buffering is a necessary evil&#x20;
    * Latency penalty of buffering&#x20;
  * In-network priorities are a must&#x20;
    * Assign packet priorities so that short messages bypass queued packets for longer messages&#x20;
  * Making best use of limited priorities requires receiver control&#x20;
    * In order to produce the best approximation of SRPT with only a small number of priority levels&#x20;
  * Receivers must allocate priorities dynamically
    * Two mechanisms:&#x20;
      * For messages larger than RTTbytes, the receiver communicates a priority for each packet to its sender dynamically based on the exact set of inbound messages&#x20;
      * For short messages that sent blindly, the sender cannot know about other messages inbound for the receiver&#x20;
  * Receivers must overcommit their downlink in a controlled manner&#x20;
    * Intentionally overcimmit their downlinks by granting simultaneously to a small number of senders&#x20;
  * Senders need SRPT also&#x20;
