Cut-Through Switching vs Store and Forward
Last Updated: (UTC)
To favour speed, or to favour reliability, that is the question…
The the world of switching, data is typically represented in frames. A frame arrives on one port (the ingress port), and is usually sent out a different port (the egress port). The switch will add a small amount of latency to the traffic as is processes the frames.
Store and Forward
When a frame arrives on a switch port, the switch has a decision to make. It can wait until the entire frame has been received, then forward it out the egress port, or it can begin forwarding the bits of the frame immediately, before the entire frame has even been received. The first option is the store and forward method.
The store and forward method is the more classical approach, and focuses on reliability. As the entire frame is received, the FCS (Frame Check Sequence) at the end of the frame is checked and if the frame contains errors, it is discarded. This increases reliablity as it discards faulty frames closer to the source, rather than forwarding them on. The down side is that it also increases latency for the traffic, as the switch has to wait for the entire frame to be received and checked before forwarding it out.
This method is used in the Cisco Catalyst range of switches, and is especially useful in environments with intermittent connectivity (such as remote locations or networks with high mobility). It is better used when line-rate speeds are not required, and real-time services are not the priority.
If low-latency is the goal, then Cut-Through is the method of choice. This varies from Store and Forward, as the switch does not wait for the entire frame to be received before it begins sending it out the egress port (of course, it must wait for the entire destination MAC address to arrive before forwarding).
As the frame is forwarded before the FCS arrives, the frame cannot be checked for errors before it leaves the switch. As a result, faulty frames may be forwarded through the network. In this case, higher level protocols (such as TCP) or applications are relied upon to handle errors.
Cut-Through is used to approach Line-Rate speeds, where the switch adds very little latency. For this to work in practice, the egress port has to be of equal or greater speed than the ingress port, and the backplane has to be capable of forwarding at the appropriate speed.
This is typically used in data centres, and in other applications where low-latency is critical, such as High Frequency Trading or Fibre Channel traffic. The Cisco Nexus range of switching utilise Cut-Through by default in many cases. The exception to this is when the ingress rate is less than the switching capacity of the egress port, in which it will utilise Store and Forward.
In the Nexus 3000 series and 9000 series, it is possible to enable store and forward mode if required.
Fragment Free Switching
However, each port on a switch is a separate collision domain, so collisions are rarer today than in past years. A collision could still occur if an old hub were connected to a switch port.
Some switches support Adaptive Mode, where cut-through switching is used by default, but store and forward can dynamically be turned on per port if the error rate jumps too high.