Flow control (data): Difference between revisions

Content deleted Content added
m lc per MOS:CAPSACRS and other common nouns, wikiformatting
Link suggestions feature: 3 links added.
 
(22 intermediate revisions by 21 users not shown)
Line 1:
{{Short description|Data transmission rate management}}
{{distinguishDistinguish|Control flow}}
{{Short description|the process of managing the rate of data transmission to prevent more data being sent than a recipient can handle}}
{{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 19:
# Go to step 1 when ACK is received, or time out is hit.
 
If a frame or ACK is lost during transmission then the frame is re-transmitted. This re-transmission process is known as ARQ ([[automatic repeat request]]).
 
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.
Line 49:
{{Main | Go-Back-N ARQ}}
 
An automatic repeat request (ARQ) algorithm, used for error correction, in which a negative acknowledgement (NAKNACK) causes retransmission of the word in error as well as the next N–1 words. The value of N is usually chosen such that the time taken to transmit the N words is less than the round trip delay from transmitter to receiver and back again. Therefore, a buffer is not needed at the receiver.
 
The normalized propagation delay (a) = {{frac|propagation time (Tp)|transmission time (Tt)}}, where Tp = length (L) over propagation velocity (V) and Tt = bitrate (r) over framerate (F). So that a ={{frac|LF|Vr}}.
Line 61:
 
== Comparison ==
This section is geared towards the idea of comparing [[Stop-and-wait ARQ|''stop-and-wait'']], ''[[sliding window|]]''sliding window'']] with the subsets of [[Go-Back-N ARQ|''go back N'']] and [[Selective Repeat ARQ|''selective repeat'']].
 
=== Stop-and-wait ===
Line 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 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 130:
* [[Teletraffic engineering]]
* [[Ethernet flow control]]
* [[Handshake (computing)|Handshaking]]
 
== References ==
{{reflistReflist | refs=
<ref name=ATM-Traffic-Management>[https://web.archive.org/web/20020910153543/http://www.parallaxresearch.com/dataclips/pub/infotech/protocols/ATM/ATM_Traffic_Mgmt.PDF Network Testing Solutions, ATM Traffic Management White paper] last accessed 15 March 2005.</ref>
<ref name="Sliding Window">[http://www.webster-dictionary.org/definition/sliding-window Webster Dictionary definition] last accessed 3 December 2012.</ref>
<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 144:
 
Sliding window:
* [http://www.cncroutersource.com/closed-loop-system.html ] last accessed 27 November 2012.
 
== External links ==
* [http://www.lammertbies.nl/comm/info/RS-232_flow_control.html RS-232 flow control and handshaking]
 
{{Authority control}}
 
{{DEFAULTSORT:Flow Control}}