Imagine a network full of routers . The job of a router is to be able to receive multiple packets from multiple sources then send the packets 1 at a time in each of its outputs.If the routers are able to do that then why is there congestion at all?
1 Answer
The job of a router is to be able to receive multiple packets from multiple sources then send the packets 1 at a time in each of its outputs.
No. The job of a router is to route packets between networks.
If the routers are able to do that then why is there congestion at all?
Suppose you have a WAN router with a 1 Gbps LAN and a 100 Mbps WAN. When routing from the LAN to the WAN, the router can receive up to 10 times as much LAN traffic as it is able send on the WAN. That is congestion, and the router could be forced to drop most packets received on the LAN destined to the WAN.
-
But the router only sends 1 packet/output line and it can have many packets in its waiting list. Jun 28, 2022 at 14:48
-
The queues are rather limited (depending on the model, only a few hundred packets), and it takes no time to fill them, forcing later incoming packets to be dropped. When packets must be queued, that is congestion. You can configure QOS to do things like give real-time protocols priority, and randomly drop packets in queues to prevent TCP global synchronization.– Ron Maupin ♦Jun 28, 2022 at 14:55
-
So the inner memory of the router can hold limited # of packets and when that memory is full then depending on if the packets have priority classes the router will replace packets of lower priority with higher priority. Jun 28, 2022 at 15:00
-
There's congestion if a router receives 1 Gbit/s from each of two interfaces and needs to forward that traffic out of a single 1 Gbit/s interface. Queueing is generally limited and can do only very little and only for short bursts.– Zac67 ♦Jun 28, 2022 at 15:02
-
@MissMulan, each interface can have software queues added (the tiny hardware FIFO queue is the default). Different queues can have different priorities, and classified packets can be separated into the different queues, each queue getting to send a number of packets to the hardware FIFO queue per the queue priority. You could also have a priority queue, where it has exclusive use of the hardware FIFO queue when there are any packets in the priority queue. When a queue is full, any incoming packets for that queue are tail-dropped, messing up TCP. QoS is a huge subject that fills books.– Ron Maupin ♦Jun 28, 2022 at 15:08