12

What happens at the time-out is actually pretty clear from the drawing... The congestion window size drops back to its original value of 1 and slow start is run again. The specifics of how a TCP stack will handle congestion events depend on what variant you are using. This drawing looks like an example of the TCP Reno algorithm. When seeing 3 duplicate ...


10

Weighted Fair Queueing (WFQ) is as the name implies a queueing algorithm. Queueing is used when there is congestion on an interface. This is usually detected through that the Transmit Ring (TX-Ring) is full. This means that the interface is busy sending packets. Queuing does not take place unless there is congestion on the interface. In some cases the size ...


8

The concept of a token bucket is generic/universal, but the implementations for QoS may use different token units to control traffic flow at a specified rate. In Cisco traffic policing (the most basic QoS token bucket technique), the token bucket size is specified in bytes (each token is one byte). For example, if you want to police traffic at a rate of ...


8

First of all, don't believe everything you read on the Internet ;-) Sometimes algorithms (or the way they are physically implemented) don't fit neatly into a theoretical category. What you call it is less important than understanding what it does. The whole point of WFQ (or any other scheduling algorithm) is to share the limited link bandwidth among the ...


7

You're referring to 'Fast Retransmit' in the TCP Reno implementation. It is basically an assumption. RFC 2001, TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms covers this: Since TCP does not know whether a duplicate ACK is caused by a lost segment or just a reordering of segments, it waits for a small number of duplicate ...


6

Congestion control enforced by TCP clients is not there to protect the network, it's simply to try determine the maximum network resource that is reliably available for that specific client at that point in time. As TCP is a reliable protocol (acknowledging each packet) any packet loss (for example caused by congestion) will result in the TCP connection ...


5

In short: Flow control makes sure that the receiver is never overloaded with more data it can handle whereas congestion control is used to avoid congesting the network between sender and receiver. Flow control: each ACK the receiver sends to the sender includes the current size of the receive window, which states how many more bytes fit into the receive ...


5

In theory, the answer is yes, but based on your diagram and description, the practical answer is NO. The problem is you can control your outbound traffic, but you have little control over your inbound traffic. For a webserver, traffic loads are very asymmetrical, and the vast amount of traffic is inbound. You can control inbound traffic only to the point ...


5

How does my policy manage to shape traffic to the requested size without dropping packets? ... Tunnel traffic remains 10Mbps and still a few packets in queue but no drops… Your C-class FTP and D-class FTPs are getting handled exactly as you asked for in your well-written CBWFQ policy. The fact that you see some packets in the queues means that the ...


5

The receive window is maintained by the receiver and indicates how much buffer space has to be receiving more segments (from any senders). So a sender would want to take that into account when setting its sender window, not wanting to overload the receiver. However, there could be congestion in the network as well, so the sender wants to take that into ...


4

The Window Size field in each TCP header indicates the amount of empty space, in bytes, remaining in the receive buffer. The field is 16 bits in TCP, but with the Windows Scale option, values larger than 65535 can be used. Windows scale option increases the Window Size from 16 bit to 30 bit. Instead of changing the field size, however, the header still holds ...


4

Errors in transmission are detected in TCP layer. The receiving TCP layer discards the damaged segment, forcing the sender to sent the segment again.


4

The Ethernet connections are full duplex, and in this sense there shouldn't be usually problem on a path from end user to switch, and in most of the time, from switch to ADSL router. However, depending on your end user traffic patterns (applications, time, and so on), the bandwidth available on both upstream and downstream of your ADSL service may be ...


4

What will happen if the sender decides not to listen to the congestion control messages and continues sending packets at a high rate anyway? I would argue that a sender refusing to abide by congestion control algorithms is attempting a DoS attack. To me, it's akin to saying "I don't care if you're getting too much data, out of order, and with missing ...


4

The first thing to realize is that the TCP window size and the round-trip time (RTT) limit the throughput: no more than one window size per RTT can be transported. Essentially, with a large RTT (latency) you need a larger window for the same throughput than with a smaller RTT. If you can't increase the window you can't utilize the full bandwidth. This is ...


3

This is to be expected if your routers are filling the buffers. If you are using ping to test this, understand that ping has the lowest priority. Depending on your traffic mix, you may want to use QoS to define which traffic gets priority. ICMP should be on the bottom of the list, so ping should still not give you a good number when it is under load.


3

To add to Ryan Foley's and iTom's great answers, I just wanted to mention a quick note from a non malicious or compromised host perspective. In TCP, any packet that didn't make it through must be re-transmitted. If I, as the sender, decide to ignore the Congestion indication from the Receiver, and continue to send traffic as fast as I can, I am only ...


3

High re-transmission percentage is a definitive sign of something being wrong. But unfortunately it isn't always a direct sign that congestion is the issue. If you could provide some packet captures, that would help us help you determine what the problem is. I would also suggest running sets of 1000 pings throughout the day. Look at the resulting Round ...


3

I recommend reading RFC 1122 "Requirements for Internet Hosts -- Communication Layers", section 4.2.3.2 "When to Send an ACK Segment", and follow up from there. https://www.rfc-editor.org/rfc/rfc1122 Jonathan.


3

To start off I'm going to first ask you to ignore queueing. Imagine that routers in the following text have no queues at all. It is possible to understand congestion without bringing queues into the picture. So in the text below, a packet enters a router, and either gets transmitted immediately or gets dropped. (I will write a couple of lines about queueing ...


3

Why is an active waiting mechanism employed here, instead of having the receiver just notify the sender that its buffer is no longer full? To prevent a deadlock. Consider your scenario, where the receiver notifies the sender. The sender has data to send, but the receiver is still processing data and sends a rwnd=0. Now the receiver finishes processing ...


3

basically you are correct. packet losses are discovered either by 3 (or more) duplicate ACKs or by a retransmission timeout. The former should happen in about one RTT, provided that there are enough packets that can still be delivered. However: (1) congestion response differes in these two events. if retransmission timeout occurs, TCP starts from the ...


2

There are many ways of addressing this and which one you choose can be dependent on the situation. Let me go over some of the more common ones. Quality of Service (aka QoS) - this could include rate limits, policing, marking traffic, etc. Depending on the capabilities of the device in use, this can take on a number of forms. Storm Control - depending on ...


2

There are a few ways of setting a limit on single user bandwidth consumption. It isn’t very common for an individual to seriously affect your entire network unless they genuinely have malicious intent. Along with technical suggestions, it is also worth adding in administrative ones, too. Access Control: Limit who has access to your machines and what gets ...


2

The codec, the format, and the underlying network determine the quality of the video played out to your viewport/monitor. In case of adaptive bitrate streaming, this quality may change mid stream as the network load changes. Transmission Control Protocol (TCP) uses a network congestion-avoidance algorithm but this does not necessarily result in equal ...


2

Flow control is used to help prevent overloading the receiver with too much data. Flow control uses a sliding window in which the receiver states how much they are able to receive and buffer so that the sender does not send to much data. Congestion control, or congestion avoidance, is used to help avoid the congestion that could occur in the event of packet ...


2

This will be a really long answer, So here it goes. First things first the rate at which TCP will send the data is dependent on 3 things- application generating data, receive window, congestion window. The effective rate will be determined by the minimum these three. Now for this question let us assume there is no flow and congestion control required and ...


2

There is a mechanism that is called TCP delayed acknowledgment. It is used to improve network performance. You can find more info in google. Here is wiki page: https://en.wikipedia.org/wiki/TCP_delayed_acknowledgment Also it might be interesting to read about Nagle's algorithm. It is used to improve network performance where application uses small packet ...


2

In Cisco IOS: The order of removal from the fair queues is determined by the virtual time of the delivery of the last bit of each arriving packet. src: Cisco IOS Quality of Service Solutions Configuration Guide, Release 12.2


Only top voted, non community-wiki answers of a minimum length are eligible