Labs / Under Load / TCP performance, QoS, MTU & load balancing

Lab 3 of 4 · TCP performance, QoS, MTU & load balancing

MTU and fragmentation: when a packet is too big for the next link

Send packets too big for the path and fix the downloads that hang.

Open this lab Pro 6 steps

The idea

A laptop reaches a file server through two routers joined by a smaller link. Every link has a largest packet; a packet too big is split, or refused with a message that keeps TCP working.

One packet, two fragments
One packet, two fragments
Why big things hang
Why big things hang

Steps

  1. Every link has an MTU

    Every size limit in this lab starts on one link, so find the laptop's own first. Its link carries packets of up to 1500 bytes. Send officeRouter the biggest ping that fits, unsplit.

    laptop:~# ping -M do -c 1 -s 1472 10.0.1.2
    laptop:~# ping -M do -c 1 -s 1473 10.0.1.2
  2. Too big for the next link: fragmentation

    Networks mix link sizes, so a router must handle a packet too big for its next link. A smaller link lies between the routers. Read its MTU, then ping the file server with 1450 bytes, splitting allowed. The server records.

    officeRouter:~# ip link show tunnelNetwork
    laptop:~# ping -M dont -c 1 -s 1450 10.0.3.10

Pro

4 more steps in the app

  1. Don't Fragment: path MTU discovery
  2. TCP: the MSS, and discovery doing its job
  3. The black hole: when the message never arrives
  4. The fix: MSS clamping
Get Pro

Learn it on real machines.

Every lab is a small network of real Linux machines in your browser. Start with a free account: Google or email, no card.

Open this lab