There are several references to backpressure as regards to the internal bandwidth and switching fabrics of routers and switches. What exactly does backpressure mean, and what are the real world ramifications?
2 Answers
Backpressure refers to what is essentially concentration of traffic.
E.g. I can have 10 x 1Gbit links internally that are all feeding into a 1Gbit link that provides me with Internet transit.
at saturation point, the router can store packets in its buffer and/or drop them - with no particular configuration, a router will generally fill its buffers and then tail drop, this gives rise to two problems: buffer-bloat and tcp global synchronisation.
The first refers to a case where the buffer is constantly filled due to constantly saturated link utilisation. The second refers to the issue of hosts re-transmitting dropped packets all at the same time, thereby causing a burst of traffic and thus, more drops, more retransmits, ad nauseum.
RED was conceived a long time ago as a means to deal with this issue; namely by randomly selecting packets to drop during times of congestion. This however required careful tuning according to the properties and expected behaviour of the link. Fortunately things have moved on and AQM (Active Queue Management) is now the cutting-edge of the industry.
A top-notch example of AQM is CoDeL - this is an algorithm that focuses purely upon the sojorn of a packet through the system and aims to ensure packets are passed within a specific time rather than caring about whether or not a certain amount of bandwidth/buffer is being utilised.
Another important point on backpressure is that any configured queuing mechanisms don't kick in until there is backpressure. If you have a sub-rate interface (say a 3meg circuit connected to a 100mb interface) there will never be backpressure until you are sending 10mbps. By configuring something like a shaper on the interface you artificially create that backpressure. This causes any traffic greater than the shaper rate (3mb in this example) to be stored in a buffer. Now that we have things in buffers we can apply queuing tools on those packets, like low-latency queuing to let the voice traffic go out first.