Wormhole routing is primarily used in multiprocessor systems, notably hypercubes. In a hypercube computer each CPU is attached to several neighbours in a fixed pattern, which reduces the number of hops from one CPU to another. Each CPU is given a number (typically only 8 to 16-bit), which is its network address, and messages to CPUs are sent with this number in the header. When the message arrives at an intermediate CPU for forwarding, the CPU examines the header (very quickly), sets up a circuit to the next CPU, and then bows out of the conversation. In this way the messages rarely (if ever) have any delay as they travel though the network, so the speed is similar to the speed at which the computers would function if they were directly connected.