Routers are not non-blocking devices. When an output port is blocked, packets going to that port must be either buffered or dropped. While it's obviously possible to drop them, like ATM/FR carriers do, ISPs have found they have much happier customers when they do a reasonable amount of buffering.
the important thing to remember about bits per second (or packets per second or anything else per second) is that it's not particularly granular compared to modern link speeds. if at the nanosecond when a packet has finished arriving (assuming that we're not doing cut-through, which is a good assumption in the case of routers) the selected output interface is still busy clocking out another packet, that by itself does not indicate "congestion". it might be that way way later on, like at the end of the current second, that only 1% of the link output space was filled. packet arrival times aren't fractal, or anything like fractal. so we buffer. and because we measure "bits per second" we like to have enough buffering to handle a output pipe worth of inconveniently-timed output events. if the inconveniently-timed packet arrival times are such that more of them arrive than could fit the pipeline between this router and the next one down the line, then we need to (passively) signal the sender that they are trying to put 11 gallons of gasoline into a 10 gallon hat. so we drop in that case. (smd, didn't you write this up for nanog several years ago? encore? encore?)
participants (1)
-
Paul Vixie