Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Platform differences

udpstp runs on Linux, macOS and Windows. A few features depend on what the operating system offers. Installing udpstp lists the release binaries.

FeatureLinuxmacOSWindows
Don’t Fragment (DF) on Test trafficSetSetNot yet: both ends warn
A packet too large for the pathLost, and reported as the Path MTULostFragmented, since DF isn’t set
DSCP markingYesYesNo: the Client asks for DSCP 0, and the Server changes every Test’s DSCP to 0, each with a warning
Key file checkMode 0600 or stricter, owned by the account or rootAs LinuxOnly the account, SYSTEM and Administrators may have access (details)
The Server’s Data Phase EngineA pool of Engine Threads, one per CPU it may use, each serving many Test ConnectionsOne Engine Thread per Test ConnectionOne Engine Thread per Test Connection
Fast pathsBatched sending (sendmmsg), UDP GSO, batched receiving (recvmmsg), kernel receive timestamps, waking on arrivalNoneNone
Receive Buffer Overflows countedYesNoNo
Socket buffer limit to raisenet.core.rmem_max, net.core.wmem_maxkern.ipc.maxsockbuf—
An interrupted Client exits withThe signal’s status, such as 130 for Ctrl-CThe signal’s status204
Unattended Serversystemd unit, container imageYour own service managerWindows service
Firewall for a ServerA stateful firewall needs only the Standard PortNot testedWindows Defender Firewall needs the whole Ephemeral Port range

Not yet measured

The Server’s pool of Engine Threads has been measured carrying 150 Test Connections of 4 Mbit/s each on one CPU core. These haven’t been measured yet:

  • 1,000,000 Load PDUs a second on one Server, or 10 Gbit/s in all;
  • Test Connections of 500 Mbit/s or more each sharing an Engine Thread. Give a Server that carries high-rate Multi-Connection Tests at least as many CPUs as such a Test has Test Connections.