1

I apologize if this question has been asked already because I couldn't find anything related. I'm a beginner in networking and am reading through Computer Networking: A Top-Down Approach, as well as playing around with the Cisco Packet Tracer app.

My question relates to the following diagram from the book on queuing delays and packet loss:

enter image description here

The book says the following about output buffers/queues:

Each packet switch has multiple links attached to it. For each attached link, the packet switch has an output buffer (also called an output queue), which stores packets that the router is about to send into that link. The output buffers play a key role in packet switching. If an arriving packet needs to be transmitted onto a link but finds the link busy with the transmission of another packet, the arriving packet must wait in the output buffer. Thus, in addition to the store-and-forward delays, packets suffer output buffer queuing delays. These delays are variable and depend on the level of congestion in the network. Since the amount of buffer space is finite, an arriving packet may find that the buffer is completely full with other packets waiting for transmission. In this case, packet loss will occur—either the arriving packet or one of the already-queued packets will be dropped.

Here's what I'm wondering:

1) Are there output queues for information being transmitted from the internet to devices on a network? For example, if device C were a video game server transmitting data to video game console A, would the router for A's network have an "output" queue facing the direction of A?

2) On a related note, suppose device D is simultaneously sending data for a YouTube video that's playing on device B. If my understanding in #1 is correct, and each communication link has a corresponding output buffer, then it's my understanding that there would be two buffers: one for the link to A and one for the link to B. So why does streaming a YouTube video on a secondary device in my home network sometimes cause lag on a video game console if those queues are separate from each other? Is it because the router is unable to keep up with processing so much data at once?

I hope it's okay that I'm technically asking two questions here. I don't have a course or instructor and am self studying this material.

  • Also, switch queues are tiny, and router queues are pretty small. It's not like what happens on a PC when you buffer a movie stream, and the buffer grows to hold minutes of a video. – Ron Maupin May 25 '19 at 21:51
2

Are there output queues for information being transmitted from the internet to devices on a network?

Your diagram shows switches, so I'll relate to that.

According to your quote, output buffers exist on every switch port. So, you've got a buffer on A's port and a buffer on B's port.

Internet communication requires a router. Regarding buffers, that is not so much different but let's stick to your example.

So why does streaming a YouTube video on a secondary device in my home network sometimes cause lag on a video game console if those queues are separate from each other?

Let's change that to why does streaming data from C to A cause lag on data streaming from D to B? Assuming all links use 10 Mbit/s but the one from the center switch to the top right one uses 1.5 Mbit/s. Any flows from C/D/E to A/B share that 1.5 Mbit/s bandwidth. Exceeding that bandwidth causes congestion and drops packets. Very short bursts can get away with buffering (increasing latency) but if the flows are not throttled, packet loss continues.

Even if that link supported 10 Mbit/s bandwidth, the aggregate bandwidth of full-speed flows C-A and D-B could easily exceed that, leading to the same situation.

The only real solution is to increase the bandwidth on interlinks. If that center link and the one between the right side switches was changed to 1 Gbit/s, you could run all edge links at full speed simultanously - with very little buffering, low latency and no packet loss.

Modern switches (except for very large ones) usually support running everything at maximum speed (non-blocking). With routers, the situation is generally the same but additionally, the achievable throughput may be further limited by a router's forwarding capability - many low-end routers or ones with a large number of ports may not support running all interfaces at full speed simultaneously.

| improve this answer | |
  • Thank you for the detailed answer! This makes sense. I forgot that the router only has one outgoing link, so the data coming in is also capped at that link's bandwidth. – AleksandrH May 25 '19 at 19:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.