Discussion 11
1
CS 168, Summer 2026 @ UC Berkeley
Slides credit: Sylvia Ratnasamy, Rob Shakir, Peyrin Kao, Iuniana Oprescu
Host Networking 🧑🍳
Problem
Problem: Datacenter Requirements
Host Networking
What is Host Networking?
Host Networking Stack
Network Interface Card
Sender Application
Advanced Host Networking
Kernel Bypass
App
OS
NIC
App
OS
NIC
User-Space Process
Shared Memory
vs
Data
Data
Data
Data
Data
Data
Data
NIC Offloads
NIC Offloads
← Simple Complex →
Checksum
Segmentation
Match-Action
Protocol Offload
RDMA
Sender
CPU
NIC
Memory
Recipient
CPU
NIC
Memory
Without RDMA: CPU involved in data transfer.
RDMA
Sender
Recipient
CPU
NIC
Memory
CPU
NIC
Memory
RDMA: CPU is minimally involved in transfer!
RDMA - How?
RDMA NIC
Software
CPU
Memory
Queue Pair
Send
Receive
"Send this data."
"Put the data here."
RDMA Example
There are many different RDMA operations:
Let's look at an RDMA Send/Receive.
Steps of RDMA (1/6)
1. Each server designates some memory to be accessible by NIC for RDMA transfers.
Software
CPU
Memory
Software
CPU
Memory
RDMA NIC
Sender
RDMA NIC
Recipient
Readable by NIC.
Writable by NIC.
Steps of RDMA (2/6)
2. Each server sets up queues.
This can be done out-of-band, e.g. use TCP to coordinate between servers.
RDMA NIC
Sender
RDMA NIC
Recipient
Queue Pair
Send
Receive
Completion
Queue Pair
Send
Receive
Completion
Software
CPU
Memory
Software
CPU
Memory
Steps of RDMA (3/6)
3. Servers set up Work Queue Entries (WQEs) in the queues.
WQE contains pointer to buffer in memory.
RDMA NIC
Software
CPU
Memory
Queue Pair
Send
Receive
Sender
RDMA NIC
Software
CPU
Memory
Queue Pair
Send
Receive
Recipient
Completion
Completion
CPU writes WQE to queue.
CPU writes WQE to queue.
Steps of RDMA (3/6)
3. Servers set up Work Queue Entries (WQEs) in the queues.
WQE contains pointer to buffer in memory.
Software
CPU
Memory
Software
CPU
Memory
RDMA NIC
Queue Pair
Send
Receive
Sender
RDMA NIC
Queue Pair
Send
Receive
Recipient
Completion
Completion
"Send this data."
"Put the data here."
Steps of RDMA (4/6)
4. NIC transfers data between memory, without CPU involvement!
Software
CPU
Memory
Software
CPU
Memory
RDMA NIC
Queue Pair
Send
Receive
Sender
RDMA NIC
Queue Pair
Send
Receive
Recipient
Completion
Completion
Steps of RDMA (5/6)
5. NICs generate Completion Queue Entries (CQEs), and delete WQEs.
Software
CPU
Memory
Software
CPU
Memory
RDMA NIC
Queue Pair
Send
Receive
Sender
RDMA NIC
Queue Pair
Send
Receive
Recipient
Completion
Completion
Data successfully sent!
Data successfully received!
Steps of RDMA (6/6)
6. Applications read CQE to understand what happened to the transfer.
Software
CPU
Memory
Software
CPU
Memory
RDMA NIC
Queue Pair
Send
Receive
Sender
RDMA NIC
Queue Pair
Send
Receive
Recipient
Completion
Completion
Advanced Features - Congestion Control
if RTT < Target
increase cwnd
(Additively)
else
decrease cwnd
(Multiplicatively)
Advanced Features - Load Balancing
Advanced Features - Traffic Shaping
To NIC
Shaper
Socket Buffers
Timestamper
Advanced Features - QoS
bandwidth
Receiver
Senders
mid
lo
Switch
Packets in time slots in Egress Link
hi
1: buffer allocation
2: bandwidth allocation
Egress Link
weight
4
2
1
QoS
Worksheet
Question 1: Multiple Choice
Worksheet
Question 2: Software-Defined Networking
Worksheet
Question 3: Network Virtualization Offload
Question 3: Network Virtualization Offload
Worksheet
Question 4: RDMA
Questions?
Feedback Form: https://tinyurl.com/cs168-su26-disc-feedback