Content deleted Content added
m WP:BHGbot 6 (List 3): eponymous category first, per MOS:CATORDER; fixed sort key; WP:GENFIXES |
OslakGaming (talk | contribs) Link suggestions feature: 3 links added. |
||
(27 intermediate revisions by 26 users not shown) | |||
Line 1:
{{Short description|Data transmission rate management}}
{{
{{Use dmy dates|date=
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
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 35:
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
{{Main
A method of flow control in which a receiver gives a transmitter permission to transmit data until a window is full. When the window is full, the transmitter must stop transmitting until the receiver advertises a larger window.<ref name="Sliding Window" />
Line 42:
Sliding-window flow control is best utilized when the buffer size is limited and pre-established. During a typical communication between a sender and a receiver the receiver allocates buffer space for ''n'' frames (''n'' is the buffer size in frames). The sender can send and the receiver can accept ''n'' frames without having to wait for an acknowledgement. A sequence number is assigned to frames in order to help keep track of those frames which did receive an acknowledgement. The receiver acknowledges a frame by sending an acknowledgement that includes the sequence number of the next frame expected. This acknowledgement announces that the receiver is ready to receive n frames, beginning with the number specified. Both the sender and receiver maintain what is called a window. The size of the window is less than or equal to the buffer size.
Sliding window flow control has
Sliding window flow control is a point to point protocol assuming that no other entity tries to communicate until the current data transfer is complete. The window maintained by the sender indicates which frames
=== Go
{{Main | Go-Back-N ARQ}}
An automatic repeat request (ARQ) algorithm, used for error correction, in which a negative acknowledgement (
The normalized propagation delay (a) = {{frac|propagation time (Tp)|transmission time (Tt)}}, where Tp =
To get the utilization you must define a window size (N). If N is greater than or equal to 2a + 1 then the utilization is 1 (full utilization) for the transmission channel. If it is less than 2a + 1 then the equation {{frac|N|1+2a}} must be used to compute utilization.<ref name="Go Back N" />
=== Selective
{{Main | Selective Repeat ARQ}}
''Selective
== Comparison ==
This section is geared towards the idea of comparing [[Stop-and-wait ARQ|
=== Stop-and-
Error free: <math>\frac{1}{2a + 1}</math>.{{citation needed|date=August 2016}}
With errors: <math>\frac{1-P}{2a + 1}</math>.{{citation needed|date=August 2016}}
===Selective
We define throughput T as the average number of blocks communicated per transmitted block. It is more convenient to calculate the average number of transmissions necessary to communicate a block, a quantity we denote by 0, and then to determine T from the equation <math>T = \frac{1}{b}</math>.{{citation needed|date=August 2016}}
Line 88 ⟶ 87:
=== Hardware flow control ===
In common RS-232 there are pairs of control lines which are usually referred to as ''hardware flow control'':
* RTS (
* 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 [[
* Polarity:
** RS-232 level signals are inverted by the driver ICs, so line polarity is TxD-, RxD-, CTS+, RTS+ (
** for microprocessor pins the signals are TxD+, RxD+, CTS-, RTS- (
=== Software flow control ===
Line 108 ⟶ 107:
The open-loop flow control mechanism is characterized by having no feedback between the receiver and the transmitter. This simple means of control is widely used. The allocation of resources must be a "prior reservation" or "hop-to-hop" type.
Open-loop flow control has inherent problems with maximizing the utilization of network resources. Resource allocation is made at connection setup using a CAC (
Open-loop flow control incorporates two controls; the controller and a regulator. The regulator is able to alter the input variable in response to the signal from the controller. An open-loop system has no feedback or feed forward mechanism, so the input and output signals are not directly related and there is increased traffic variability. There is also a lower arrival rate in such system and a higher loss rate. In an open control system, the controllers can operate the regulators at regular intervals, but there is no assurance that the output variable can be maintained at the desired level. While it may be cheaper to use this model, the open-loop model can be unstable.
== Closed-loop flow control ==
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 />
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 131 ⟶ 130:
* [[Teletraffic engineering]]
* [[Ethernet flow control]]
* [[Handshake (computing)|Handshaking]]
== References ==
{{
<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=
<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|
<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 |
}}
Sliding window:
* [http://www.cncroutersource.com/closed-loop-system.html
== External links ==
* [http://www.lammertbies.nl/comm/info/RS-232_flow_control.html RS-232 flow control and handshaking]
{{Authority control}}
{{DEFAULTSORT:Flow Control}}
|