In data communications, wormhole switching a flow control technique where large data frames or packets are partitioned and then transmitted. When a switching device (a bridge or a switch) receives a data packet, it partitions the packet into small parts called flow control units or flits. The flits are transmitted one by one instead of the whole packet. Also called wormhole flow control, wormhole switching is subtype of flit-buffer flow control methods and is based upon fixed links.
In this technique, each packet or frame is broken into smaller pieces of data called flits. The header flits contain the destination address and other routing information for the all of the flits comprising the packet. The header flits are followed by body flits and finally tail flits denoting end of the data packet.
The buffers and channels are allocated on flit levels rather than for the entire packet. When the header flit arrives, a free buffer is allocated to the entire packet. The header flit is forwarded as soon as the routing information is decoded without waiting for arrival of rest of the flits. The subsequent flits are allocated to the same buffers before forwarding them. Once a buffer is full, no more flits can be allocated. The tail flits free up the buffer.
Wormhole switching is usually deployed in multi-computers and for real-time communication due to low latency and lesser memory requirement of switches.