Datacenter & Cloud Networking

a fat-tree topology

Picture a normal family tree: branches get thinner as you go up toward the single root, so the root is a bottleneck for anything passing through it. Now imagine a tree where the branches get FATTER as you climb, so the top has just as much carrying capacity as the bottom. That is the idea behind a fat-tree: there is no skinny root to choke traffic. The trick that achieves this in a datacenter is to replace one big root with MANY parallel switches, so the 'fat' branch is actually a bundle of equal links spread across lots of devices.

A fat-tree (a specific arrangement of a Clos network) is built entirely from small, identical, cheap switches arranged in layers — typically edge switches at the bottom (connecting servers), aggregation switches in the middle, and core switches at the top, wired so that every server can reach every other server through many equal-length paths. In the classic k-ary fat-tree, using switches with k ports, the fabric supports k cubed over 4 servers with full, non-blocking bandwidth: any server can talk to any other at full line rate, in principle, no matter who else is talking. The many paths between two servers are exploited by spreading flows across them with equal-cost multipath (ECMP) routing.

Why it matters: the fat-tree (proposed for datacenters in a famous 2008 paper) showed you can get huge bisection bandwidth cheaply using commodity switches instead of a few monstrous, costly core boxes. It directly solved the three-tier design's oversubscription problem and made warehouse-scale east-west traffic affordable. An honest caveat: 'non-blocking' is a property of the topology's capacity, not a guarantee in practice — real performance still depends on how well traffic is spread across the paths (ECMP can collide flows onto the same link), on failures, and on the transport layer. Leaf-spine, the design most operators actually deploy, is essentially a two-layer folded fat-tree.

Build a fat-tree from 48-port switches. With k = 48, the fabric can connect about 48^3 / 4 = 27,648 servers, all wired with the same cheap switch model, and in principle every server can send at full line rate to any other — no fat, expensive core box required.

Many cheap identical switches replace a few costly giant ones.

'Non-blocking' describes the wiring's theoretical capacity, not a delivered guarantee. Hash-based ECMP can still pile two big flows onto one link and leave others idle, so achieving the fat-tree's full bisection bandwidth in practice needs good load spreading and a congestion-aware transport.

Also called
Clos networkClos fabricfat tree胖樹Clos 網路