Flow control (data): Difference between revisions

Content deleted Content added
Tag: Reverted
Link suggestions feature: 3 links added.
 
(16 intermediate revisions by 16 users not shown)
Line 1:
{{Short description|Data transmission rate management}}
{{Distinguish|Control flow}}
{{Use dmy dates|date=JulyDecember 20132023}}
 
In [[data communications]], '''flow control''' is the process of managing the rate of data transmission between two nodes to prevent a fast sender from overwhelming a slow receiver. It provides a mechanism for the receiver to control the transmission speed, so that the receiving node is not overwhelmed with data from transmitting node. Flow control should be distinguished from [[congestion control]], which is used for controlling the flow of data when congestion has actually occurred.<ref name=ATM-Traffic-Management /> Flow control mechanisms can be classified by whether or not the receiving node sends feedback to the sending node.
 
Flow control is important because it is possible for a sending computer to transmit information at a faster rate than the destination computer can receive and process it. This can happen if the receiving computers have a heavy traffic load in comparison to the sending computer, or if the receiving computer has less processing power than the sending computer.
Line 23:
The problem with Stop-and-wait is that only one frame can be transmitted at a time, and that often leads to inefficient transmission, because until the sender receives the ACK it cannot transmit any new packet. During this time both the sender and the channel are unutilised.
 
=== Pros and cons of stop and wait ===
c�
 
'''Pros'''
 
The only advantage of this method of flow control is its simplicity.
 
'''Cons'''
 
The sender needs to wait for the ACK after every frame it transmits. This is a source of inefficiency, and is particularly bad when the [[propagation delay]] is much longer than the [[transmission delay]].<ref name="PC-Radio Flow Control" />
 
Stop and wait can also create inefficiencies when sending longer transmissions.<ref name=ak2 /> When longer transmissions are sent there is more likely chance for error in this protocol. If the messages are short the errors are more likely to be detected early. More inefficiency is created when single messages are broken into separate frames because it makes the transmission longer.<ref name=lwilliam />
 
== Sliding window ==
Line 78 ⟶ 88:
In common RS-232 there are pairs of control lines which are usually referred to as ''hardware flow control'':
* RTS (request to send) and CTS (clear to send), used in [[RS-232 RTS/CTS|RTS flow control]]
* DTR ([[Data Terminal Ready|data terminal ready]]) and DSR ([[Data Set Ready|data set ready]]), used in DTR flow control
 
Hardware flow control is typically handled by the DTE or "master end", as it is first raising or asserting its line to command the other side:
* In the case of RTS [[control flow]], DTE sets its RTS, which signals the opposite end (the slave end such as a DCE) to begin monitoring its data input line. When ready for data, the slave end will raise its complementary line, CTS in this example, which signals the master to start sending data, and for the master to begin monitoring the slave's data output line. If either end needs to stop the data, it lowers its respective "data readiness" line.
* For PC-to-modem and similar links, in the case of DTR flow control, DTR/DSR are raised for the entire modem session (say a dialup internet call where DTR is raised to signal the modem to dial, and DSR is raised by the modem when the connection is complete), and RTS/CTS are raised for each block of data.
 
An example of hardware flow control is a [[half-duplex]] [[radio modem]] to computer interface. In this case, the controlling software in the modem and computer may be written to give priority to incoming radio signals such that outgoing data from the computer is paused by lowering CTS if the modem detects a reception.
 
* Polarity:
Line 104 ⟶ 114:
The closed-loop flow control mechanism is characterized by the ability of the network to report pending [[network congestion]] back to the transmitter. This information is then used by the transmitter in various ways to adapt its activity to existing network conditions. Closed-loop flow control is used by [[Available Bit Rate|ABR]] (see [[traffic contract]] and [[congestion control]]).<ref name=ATM-Traffic-Management /> Transmit flow control described above is a form of closed-loop flow control.
 
This system incorporates all the basic control elements, such as, the sensor, transmitter, controller and the regulator. The sensor is used to capture a [[process variable]]. The process variable is sent to a transmitter which translates the variable to the controller. The controller examines the information with respect to a desired value and initiates a correction action if required. The controller then communicates to the regulator what action is needed to ensure that the output variable value is matching the desired value. Therefore, there is a high degree of assurance that the output variable can be maintained at the desired level. The closed-loop control system can be a feedback or a feed forward system:
 
A feedback closed-loop system has a feed-back mechanism that directly relates the input and output signals. The feed-back mechanism monitors the output variable and determines if additional correction is required. The output variable value that is fed backward is used to initiate that corrective action on a regulator. Most control loops in the industry are of the feedback type.
Line 120 ⟶ 130:
* [[Teletraffic engineering]]
* [[Ethernet flow control]]
* [[Handshake (computing)|Handshaking]]
 
== References ==
Line 128 ⟶ 138:
<ref name="Go Back N">[http://www.credoreference.com/entry/bhfidt/go_back_n_arq Focal Dictionary of Telecommunications, Focal Press ] last accessed 3 December 2012.</ref>
<ref name="Selective Repeat">[https://docs.google.com/viewer?a=v&q=cache:rp6GPovdFiIJ:facta.junis.ni.ac.rs/eae/fu2k02/fu06.pdf+&hl=en&gl=us&pid=bl&srcid=ADGEESiFJNDv8E5p9LS_AHD-zZHMUUrWx5FRTU7xolQL_D58JT3mHXPwldc0CQu32LFShXmnc0MleeH6GUvw0qL3jGuxlwlh_SYoA2h0NZqOruQA3mUXAcEK7YW7_lbx_FSKP1ou5473&sig=AHIEtbTxR21FrNmWYX-vN8cV0S3hi4yg2A Data Transmission over Adpative HF Radio Communication Systems using Selective Repeat Protocol ] last accessed 3 December 2012.</ref>
<ref name=ak2>{{cite web|url=httphttps://www.angelfire.com/ak2/wireless/flowctrl.html|author=arun|website=angelfire.com[[Angelfire]]|title=Flow Control Techniques |date=20 November 2012|access-date=10 November 2018}}</ref>
<ref name=lwilliam>{{cite web|url=http://people.bridgewater.edu/~lwilliam/Chapter%2005/sld053.htm|website=people.bridgewater.edu|title=last accessed 1 December 2012|date=1 December 2012|access-date=10 November 2018}}</ref>
<ref name="PC-Radio Flow Control">{{cite web|url=http://www.theparticle.com/cs/bc/net/flowctrl.pdf|date=28 September 2005|title=ERROR CONTROL |access-date=10 November 2018}}</ref>
Line 134 ⟶ 144:
 
Sliding window:
* [http://www.cncroutersource.com/closed-loop-system.html ] last accessed 27 November 2012.
 
== External links ==