TCP

From dankwiki
Jump to: navigation, search

Portable APIs

  • TCP_NODELAY: Disable Nagle's algorithm (coalescing of small packets until an ACK is received or a retransmission triggered). See the Linux APIs page for interactions with TCP_CORK on that platform.

Offloading/Coalescing

LRO/TSO are safe to use on routers and bridges so long as all interfaces involved support the technique.

LRO

Large receive offload. Cannot guarantee refragmentation, and thus ought not generally be used on bridges or routers.

GRO

Generic receive offload. Generalizes LRO to guarantee possibility of refragmentation, but coalesces a proper subset of packets suitable for LRO.

TSO

TCP segmentation offload, also known as TCP Large Send.

GSO

Generic segmentation offload, introduced in Linux 2.6.18. Generalizes TSO to guarantee possibility of refragmentation.

Tuning

TCP auto-tuning on Linux

TCP auto-tuning on FreeBSD

With TCP send buffer auto scaling and the default values below it supports 20Mbit/s at 100ms and 10Mbit/s at 200ms. Both read and write buffer are auto-sized.

See also