networking – Whats the difference between Flow Control and Congestion Control in TCP?

networking – Whats the difference between Flow Control and Congestion Control in TCP?

As to part 1, super general overview:

Flow control is controlled by the receiving side. It ensures that the sender only sends what the receiver can handle. Think of a situation where someone with a fast fiber connection might be sending to someone on dialup or something similar. The sender would have the ability to send packets very quickly, but that would be useless to the receiver on dialup, so they would need a way to throttle what the sending side can send. Flow control deals with the mechanisms available to ensure that this communication goes smoothly.

Congestion control is a method of ensuring that everyone across a network has a fair amount of access to network resources, at any given time. In a mixed-network environment, everyone needs to be able to assume the same general level of performance. A common scenario to help understand this is an office LAN. You have a number of LAN segments in an office all doing their thing within the LAN, but then they may all need to go out over a WAN link that is slower than the constituent LAN segments. Picture having 100mb connections within the LAN that ultimately go out through a 5mb WAN link. Some kind of congestion control would need to be in place there to ensure there are no issues across the greater network.

As to part 2:

If this is an interview-prep question, as you said above, I would consider taking some time to read up on TCP/IP in general. Dont use Wikipedia. RTFM! This is VERY much worth your time. You could argue that this is the most important protocol holding up most of the modern internet.

Things to read about for Flow Control: stop and wait, sliding window, PAUSE frames.

Things to read about for Congestion Control: QoS (Quality-of-Service), retransmission policies, windowing policies.

Beyond that, you can search for any particular vendor implementations (Cisco, etc..)

Flow Control: Sender will send enough data that can be accommodated at the receiver end.

Congestion Control: Sender will reduce the amount of sent packets to avoid overflowing the routers buffer(Queue).

networking – Whats the difference between Flow Control and Congestion Control in TCP?

Flow Control:

  • It makes sure that the sender does not overload the receiver.
  • Its a local phenomenon, unlike congestion control.
  • Its generally initiated by the sender.

Congestion control:

  • It makes sure that the network is able to handle the load of packets.
  • Its a global phenomenon and affects every host connected with that network.
  • Its initiated by the router.

Leave a Reply

Your email address will not be published.