FACULTY OF ENGINEERING
DEPARTMENTS OF ELECTRONICS AND AUTOMATION
TECHNOLOGICAL EDUCATIONAL INSTITUTE OF PIRAEUS
MSc IN NETWORKING AND DATA COMMUNICATIONS
COURSEWORK
MODULE:
CI 7110 - Digital Communications
ID: K1465156
Module Coordinator:
Dr. H. Simos & Dr. Ch. Patrikakis
Date of Module:
14/5/2016
Name of Student:
Grigoropoulos Michail
Kingston University London
FACULTY OF ENGINEERING
DEPARTMENTS OF ELECTRONICS AND AUTOMATION
TECHNOLOGICAL EDUCATIONAL INSTITUTE OF PIRAEUS
Subject: TCP Congestion Control
Submission Date: 14/5/2016
Grade (%): ________________________________________________
% Grade reduction because of submission delay: _____
(5% Grade reduction per every day of Cwk delay).
Final Grade (%): ________________________________________
Kingston University London
Impulse Noise over xDSL Systems – MSc Networks & Data Communications - Kingston University London 3
Abstract - Transmission Control Protocol (TCP) is a
fundamental protocol of the Internet Protocol Suite. TCP
complements the Internet Protocol (IP), therefore it is common to
refer to the internet protocol suit as TCP/IP. TCP is used for
error detection, detection of packet loss or out of order delivery
of data. TCP requests retransmission, rearranges data and helps
with network congestion.
Several congestion control algorithms have been developed,
over the last years, to improve TCP's performance over various
technologies and network conditions.
The purpose of this assignment is to present TCP, network
congestion, congestion algorithms and simulate different
algorithms in different network conditions to measure their
performance. For this assignment's needs, OPNET IT Guru
Academic Edition software was used to accomplish the
reproduction of projects that have been already published and
gave the wanted results.
Keywords: TCP, Congestion Control, Simulation, Congestion
algorithms, performance comparison
I. INTRODUCTION
The idea that was later transformed to Transmission Control
Protocol was originally developed in 1974 by the Institute of
Electrical and Electronic Engineers (IEEE). It was originally
called "Transmission Control Program" but after further
research it was decided that Transmission Control Program
would be divided into a modular architecture consisting of
the Transmission Control Protocol at the transport layer and
the Internet Protocol(IP) at the network layer of OSI 7 layer
model. [1]
TCP method defines how a network conversation between
two terminals / applications can be established and maintained
for data exchange. In contrast with UDP, TCP ensures a
reliable, in-order delivery. It implements congestion control,
flow control and connection setup.
In 1986 the congestion collapse effect was observed and in
1988 several congestion control algorithms were developed.
The main goal of a TCP congestion control algorithm is to
avoid sending more data than the network is capable of
transmitting, so that network congestion is not caused.
Different algorithms respond differently to network loads, but
they are all based on the same principle of avoiding network
congestion.[2]
II. BACKGROUND
A. Transmission Control Protocol (TCP)
TCP provides a link between the application and the
Internet Protocol (IP). The protocol handles all handshaking
and transmission details and presents an abstraction of the
network connection to the application. This way each
application, does not need to know details about the
transmission procedure an mechanisms such as packet
fragmentation.
Due to network's impairments, like network traffic, network
congestion or other unpredicted network behavior, packets
may be lost, reordered or even duplicated. The Transmission
Control protocol, detects such problems and requests
retransmission of lost data. [4,5]
TCP divides data-streams into fragments and adds a TCP
header to each fragment creating a TCP segment. Each
segment is then encapsulated into an IP (Internet Protocol)
datagram. The TCP header consists of the data and a header
section. The data section follows the header section.
Fig 1. TCP Header
The protocol operates in three phases. A multistep
handshake takes place before the data transmission. After data
have been transmitted, the connection termination phase takes
place.
TCP is managed by Internet Socket which is actually an
interface in an operating system. This interface, represents the
local end-point for communications. During TCP's operation,
this interface changes several states: LISTEN, SYN-RENT,
SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1, FIN-
WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-
WAIT, CLOSED. [3]
Fig 2. TCP state diagram
TCP Congestion Control
Michail Grigoropoulos, MSc Networks and Data Communications, Kingston University
Impulse Noise over xDSL Systems – MSc Networks & Data Communications - Kingston University London 4
Internet socket uses ports that are opened when a client
attempts to establish a connection to the host. Some of these
ports are used by the TCP protocol. The host listens for
connections on specific ports and opens them when a
connection request is found (Passive open). When the passive
open is established, the client initiates an active open and
establishes the connection using the three way handshake
(SYN, SYN-ACK, ACK). During the transmission of data,
TCP provides error detection, flow control, ordered data
transfer, retransmission if needed, congestion control and
generally an error free and reliable data transfer. After data has
been transferred, TCP uses a four-way handshake to terminate
the connection. The initiator sends a FIN, the Receiver sends
an ACK and then a FIN and the Initiator answers with a final
ACK and waits for a timeout before closing the connection.
During this time, new connections cannot be established. [5]
Fig 3. Termination four-way handshake
B. Network Congestion Control
Each network node uses a buffer to store received packets
before processing them. Congestion occurs when resource
demands, exceed the buffer's capacity and the packet is
dropped. Congestion could occur from high bit-rate demands
on an overcrowded network, low processing speed of a node,
or loss of connectivity on a node. The node uses a buffer to
store the received packets but when it's buffer is full it drops
the next packets to come. Congestion on a network eventually
leads to long delays or packet loss. [6]
To mitigate the effect of congestion collapse, several
congestion control algorithms where developed and used.
 Transmission Control Protocol and Congestion Control
With TCP Congestion control each node determines how
much capacity is available on the network and adjusts the
number of packets it is safe to transmit. It uses an ACKs
(Acknowledgement) arrival as a signal to confirm that one of
its packets has reached its final destination and has left the
network and it is therefore safe to inject another packet to the
network without increasing the level of congestion.
 Additive Increase / Multiplicative Decrease (AIMD)
When congestion is not present, the sender increases its
congestion window by at most on packet per Round Trip Time
(RTT). when congestion indicates, the sender decreases the
window by half of the minimum congestion window at the
receivers congestion window. For each packet that gets
acknowledged to have left the network, the sender increases
the congestion window by following equation (almost one
packet increase):
Increment = (MSSx
MSS) / CongestionWindow (1)
CongestionWindow += Increment (2)
Fig 4. Additive Increase. Each RTT one packet is added
The continues increase and decrease of the congestion
window continues throughout the life-time of the connection.
If it gets plotted, a sawtooth pattern will occur.
Fig 5. Sawtooth TCP Pattern
 Slow Start Algorithm
Slow Start Algorithm operates on the principle that the rate
at which ACKs are returned by the receiver, is the rate at
which new packets should be inserted into the network. Slow
start, uses a congestion window (CWND) of 1,2 or 10 that
doubles each time an ACK is received. This provides an
exponential rise or the window. If the internet's capacity is
then reached and the node is intermediate, the node will start
discarding packets. At that point the sender will be aware that
its congestion window became too large.
Impulse Noise over xDSL Systems – MSc Networks & Data Communications - Kingston University London 5
Fig 6. Exponential Increase. Each RTT packets are doubled
 Congestion Avoidance
Congestion Avoidance algorithm, is a complement to Slow
Start Algorithm. Slow start and Congestion avoidance are two
separate and independent entities with different objectives but
work well combined and in practice they are implemented
together. The algorithm was developed on the assumption that
packet loss caused by noise is very small. When packet loss
happens, it signals congestion in the network. The TCP then
slows down its transmission rate and invokes Slow start
algorithm to start over increasing the congestion window. The
algorithm uses two variables for each connection. a threshold
size for Slow Start (ssthresh) and a congestion window size
(CWND). Congestion avoidance increases the size of the
congestion window according to the following equation,
where SMSS = Sender Maximum Segment Size. [7]
CWND += SMSS*SMSS/CWND (3)
Fig 7. Congestion Window size for Slow start and Congestion Avoidance
algorithms
 Fast Retransmit (TCP Tahoe)
Fast Retransmit algorithm or TCP Tahoe, was developed in
1990 and is until today widely used in network
communications. Since packets are sent to a specific order
they should be also received in a specific order. If the packets
are reordered, that probably means that packet loss occurred.
With TCP tahoe, each time a packets arrives out of the
expected order, an ACK a duplicate ACK is sent to the sender
to let it know that a packet was received out of order and waht
sequence packet number was expected instead. the sender
then waits for a small number of duplicate ACKs so that it can
determine if the packets where just reordered or there was a
packet loss. Usually when a packet is delayed and the next one
arrives first, there shouldn't be more than two duplicate ACKs.
If more duplicate ACKS are sent to the transmitter, TCP
retransmits the segment that was lost without waiting
retransmission time to expire.
Fig 8. Congestion Window size for TCP Tahoe
Fig 9. Congestion Window size for TCP Tahoe
 Fast Recovery (TCP Reno)
After fast retransmit, congestion avoidance algorithm is
used to allow high throughput under moderate congestion.
This is the Fast Recovery algorithm which is usually
implemented with TCP Tahoe algorithm. When the third
duplicate ACK arrives, TCP sets "ssthresh" to half the current
CWND's size but never less than 2 segments. It retransmits the
missing segment and configures the CWND according to
following equation. [7]
CWND = ssthresh + 3*SMSS (4)
 Swift Start TCP
Swift start algorithm was developed by BBN Technologies
to mitigate the problems of Slow start algorithm in startup.
Impulse Noise over xDSL Systems – MSc Networks & Data Communications - Kingston University London 6
Swift start is still in trial mode and it is a combination of
packet-pair and packet-pacing techniques. [8] It estimates the
path bottle neck bandwidth based on the spacing between two
ACKs from two subsequent data packets. The TCP protocol,
obtains the network capacity much faster than with the Slow
Start algorithm. Packet pacing is used for packet spreading
across an RTT avoiding bursts of packets released to the
network. An initial self-clocking process is established this
way. [9]
III. SIMULATION OF TCP WITH CONGESTION CONTROL
For the needs of this assignment OPNET IT Guru Academic
Edition was used to simulate a network connection between a
Client in Stockholm and a server in Paris. It would be useful to
point that the experiment has been reproduced and certain
instructions where followed.
Fig 10. Network's topology
Paris subnet node includes a Server (ethernet_server with
FT Application Installed) and a router (ethernet4_slip8_gtwy)
connected to each other with a 10BaseT cable. Stockholm's
subnet node includes a client (ethernet_wkstn) and a router
(ethernet4_slip8_gtwy) connected to each other with a
10BaseT cable. Both routers are connected to each other
through the Europe's Internet node which is an IP Cloud
Network. Both nodes are connected to the Europe_Internet
node with a PPP_DS3 cable.
The TCP's Fast Retransmit and Fast recovery can be
disabled from the TCP Parameters. The congestion window's
size can be configured through the "Node Statistics" Menu.
Fig 11. Congestion Window Size configuration
A. Slow start and Congestion avoidance simulation
To simulate the Slow Start with Congestion avoidance the
discrete event simulation's duration was set to 10 minutes and
TCP's Fast Retransmit and Fast recovery were disabled.
B. Fast Retransmit and Fast Recovery simulation
To simulate Fast Retransmit and Fast Recovery, two
additional scenarios were created. Packet loss is implemented
through the "Edit Attributes" menu on the Europe_Internet
node.
Fig 12. Packet Loss ratio of 0.5
Fast Retransmission was also enable on Paris node.
Fig 13. Fast Retransmission enabled
The scenario was then duplicated to create the TCP Reno
scenario. On Paris node the Fast Recovery option was set to
Reno.
Fig 14. Fast Recovery set to Reno
Impulse Noise over xDSL Systems – MSc Networks & Data Communications - Kingston University London 7
IV. RESULTS & DISCUSSION
Running the simulation, the following graphs were
plotted.
Fig 15. Simulation's Results
Observing the graphs, makes it clear that the simulation was
successful. In the first graph for example, we can see the
Slow Start section of the graph and also the Congestion
avoidance as it would be expected.
Fig 16. Slow Start with Congestion Avoidance
The first graph (Fig. 15) illustrates the no packet drop
scenario with Slow Start and Congestion Control. The second
graph illustrates the Tahoe scenario with 0.5% packet loss.
When congestion is indicated by a timeout, duplicate ACKs
are sent and CWND is set to one segment. In other words,
slow start is performed. The third graph illustrates the Reno
scenario which also has 0.5% packet loss. The congestion
window size does not drop to zero as in the Tahoe graph. Fast
recovery is performed instead of slow start.
Fig 17. Slow Start TCP versus TCP Tahoe versus TCP Reno
TCP Reno seems to be faster than TCP Tahoe and TCP
Tahoe seems to be faster than slow start only (Fig. 17).
TCP congestion Control has formed the backbone of
Internet's reliability. Different congestion control algorithms
combined with each other on different network conditions, can
help the stability of a network connection to a great extend.
Different measurements with OPNET and NS3 has proved
that the most efficient algorithm so far is the Swift Start TCP
that is still developed. [10]
REFERENCES
[1] V. Cerf, and R. Kahn, A Protocol for Packet Network
Intercommunication, IEEE Transaction on Communications, Vol.
COMM-22, No.5, pp.637-648, May 1974.
[2] V. Jacobson, Congestion Avoidance and Control, Proceedings of the
ACM SIGCOMM ’88 Conference, nhpp. 314–329, August 1988.
[3] RFC.793, "Transmission Control Protocol", Information Sciences
Institute - University of Southern California, September 1981.
[4] "TCP Definition", Retrieved 2016-05-10.
[5] Comer, Douglas E., "Internetworking with TCP/IP:Principles, Protocols,
and Architecture 1 (5th ed.)", Prentice Hall, ISBN 0-13-187671-6, 2006
[6] Michael Welz, "Congestion Control - Managing Internet Traffic",
University of Innsbruck - john Wiley & Sons ltd., 2005.
[7] M. Allman, W. Richard Stevens , “TCP Congestion Control” RFC
2581, NASA Glenn Research Center, April 1999.
[8] Ningning Hu, Peter Steenkiste, "Estimating Available Bandwidth Using
Packet Pair Probing," CMU-CS-02-166 School of Computer Science
Carnegie Mellon University Pittsburgh, PA 15213 September 9, 2002.
[9] A. A. Elbery, E. A. Khalil, and al. et., Swift Start for TCP Congestion
Control, performance, Problems, Modification and Evaluation, Mater
Thesis, Department of Computer Science & Engineering, Faculty of
Electronic Engineering, Menoufiya University, 2007.
[10] Ehab A. Khalil,"SIMULATION-BASED COMPARISONS OF TCP
CONGESTION CONTROL", Department of Computer Science &
Engineering, Faculty of Electronics Engineering, Menoufiya University,
September 2012.

TCP Congestion Control

  • 1.
    FACULTY OF ENGINEERING DEPARTMENTSOF ELECTRONICS AND AUTOMATION TECHNOLOGICAL EDUCATIONAL INSTITUTE OF PIRAEUS MSc IN NETWORKING AND DATA COMMUNICATIONS COURSEWORK MODULE: CI 7110 - Digital Communications ID: K1465156 Module Coordinator: Dr. H. Simos & Dr. Ch. Patrikakis Date of Module: 14/5/2016 Name of Student: Grigoropoulos Michail Kingston University London
  • 2.
    FACULTY OF ENGINEERING DEPARTMENTSOF ELECTRONICS AND AUTOMATION TECHNOLOGICAL EDUCATIONAL INSTITUTE OF PIRAEUS Subject: TCP Congestion Control Submission Date: 14/5/2016 Grade (%): ________________________________________________ % Grade reduction because of submission delay: _____ (5% Grade reduction per every day of Cwk delay). Final Grade (%): ________________________________________ Kingston University London
  • 3.
    Impulse Noise overxDSL Systems – MSc Networks & Data Communications - Kingston University London 3 Abstract - Transmission Control Protocol (TCP) is a fundamental protocol of the Internet Protocol Suite. TCP complements the Internet Protocol (IP), therefore it is common to refer to the internet protocol suit as TCP/IP. TCP is used for error detection, detection of packet loss or out of order delivery of data. TCP requests retransmission, rearranges data and helps with network congestion. Several congestion control algorithms have been developed, over the last years, to improve TCP's performance over various technologies and network conditions. The purpose of this assignment is to present TCP, network congestion, congestion algorithms and simulate different algorithms in different network conditions to measure their performance. For this assignment's needs, OPNET IT Guru Academic Edition software was used to accomplish the reproduction of projects that have been already published and gave the wanted results. Keywords: TCP, Congestion Control, Simulation, Congestion algorithms, performance comparison I. INTRODUCTION The idea that was later transformed to Transmission Control Protocol was originally developed in 1974 by the Institute of Electrical and Electronic Engineers (IEEE). It was originally called "Transmission Control Program" but after further research it was decided that Transmission Control Program would be divided into a modular architecture consisting of the Transmission Control Protocol at the transport layer and the Internet Protocol(IP) at the network layer of OSI 7 layer model. [1] TCP method defines how a network conversation between two terminals / applications can be established and maintained for data exchange. In contrast with UDP, TCP ensures a reliable, in-order delivery. It implements congestion control, flow control and connection setup. In 1986 the congestion collapse effect was observed and in 1988 several congestion control algorithms were developed. The main goal of a TCP congestion control algorithm is to avoid sending more data than the network is capable of transmitting, so that network congestion is not caused. Different algorithms respond differently to network loads, but they are all based on the same principle of avoiding network congestion.[2] II. BACKGROUND A. Transmission Control Protocol (TCP) TCP provides a link between the application and the Internet Protocol (IP). The protocol handles all handshaking and transmission details and presents an abstraction of the network connection to the application. This way each application, does not need to know details about the transmission procedure an mechanisms such as packet fragmentation. Due to network's impairments, like network traffic, network congestion or other unpredicted network behavior, packets may be lost, reordered or even duplicated. The Transmission Control protocol, detects such problems and requests retransmission of lost data. [4,5] TCP divides data-streams into fragments and adds a TCP header to each fragment creating a TCP segment. Each segment is then encapsulated into an IP (Internet Protocol) datagram. The TCP header consists of the data and a header section. The data section follows the header section. Fig 1. TCP Header The protocol operates in three phases. A multistep handshake takes place before the data transmission. After data have been transmitted, the connection termination phase takes place. TCP is managed by Internet Socket which is actually an interface in an operating system. This interface, represents the local end-point for communications. During TCP's operation, this interface changes several states: LISTEN, SYN-RENT, SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1, FIN- WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME- WAIT, CLOSED. [3] Fig 2. TCP state diagram TCP Congestion Control Michail Grigoropoulos, MSc Networks and Data Communications, Kingston University
  • 4.
    Impulse Noise overxDSL Systems – MSc Networks & Data Communications - Kingston University London 4 Internet socket uses ports that are opened when a client attempts to establish a connection to the host. Some of these ports are used by the TCP protocol. The host listens for connections on specific ports and opens them when a connection request is found (Passive open). When the passive open is established, the client initiates an active open and establishes the connection using the three way handshake (SYN, SYN-ACK, ACK). During the transmission of data, TCP provides error detection, flow control, ordered data transfer, retransmission if needed, congestion control and generally an error free and reliable data transfer. After data has been transferred, TCP uses a four-way handshake to terminate the connection. The initiator sends a FIN, the Receiver sends an ACK and then a FIN and the Initiator answers with a final ACK and waits for a timeout before closing the connection. During this time, new connections cannot be established. [5] Fig 3. Termination four-way handshake B. Network Congestion Control Each network node uses a buffer to store received packets before processing them. Congestion occurs when resource demands, exceed the buffer's capacity and the packet is dropped. Congestion could occur from high bit-rate demands on an overcrowded network, low processing speed of a node, or loss of connectivity on a node. The node uses a buffer to store the received packets but when it's buffer is full it drops the next packets to come. Congestion on a network eventually leads to long delays or packet loss. [6] To mitigate the effect of congestion collapse, several congestion control algorithms where developed and used.  Transmission Control Protocol and Congestion Control With TCP Congestion control each node determines how much capacity is available on the network and adjusts the number of packets it is safe to transmit. It uses an ACKs (Acknowledgement) arrival as a signal to confirm that one of its packets has reached its final destination and has left the network and it is therefore safe to inject another packet to the network without increasing the level of congestion.  Additive Increase / Multiplicative Decrease (AIMD) When congestion is not present, the sender increases its congestion window by at most on packet per Round Trip Time (RTT). when congestion indicates, the sender decreases the window by half of the minimum congestion window at the receivers congestion window. For each packet that gets acknowledged to have left the network, the sender increases the congestion window by following equation (almost one packet increase): Increment = (MSSx MSS) / CongestionWindow (1) CongestionWindow += Increment (2) Fig 4. Additive Increase. Each RTT one packet is added The continues increase and decrease of the congestion window continues throughout the life-time of the connection. If it gets plotted, a sawtooth pattern will occur. Fig 5. Sawtooth TCP Pattern  Slow Start Algorithm Slow Start Algorithm operates on the principle that the rate at which ACKs are returned by the receiver, is the rate at which new packets should be inserted into the network. Slow start, uses a congestion window (CWND) of 1,2 or 10 that doubles each time an ACK is received. This provides an exponential rise or the window. If the internet's capacity is then reached and the node is intermediate, the node will start discarding packets. At that point the sender will be aware that its congestion window became too large.
  • 5.
    Impulse Noise overxDSL Systems – MSc Networks & Data Communications - Kingston University London 5 Fig 6. Exponential Increase. Each RTT packets are doubled  Congestion Avoidance Congestion Avoidance algorithm, is a complement to Slow Start Algorithm. Slow start and Congestion avoidance are two separate and independent entities with different objectives but work well combined and in practice they are implemented together. The algorithm was developed on the assumption that packet loss caused by noise is very small. When packet loss happens, it signals congestion in the network. The TCP then slows down its transmission rate and invokes Slow start algorithm to start over increasing the congestion window. The algorithm uses two variables for each connection. a threshold size for Slow Start (ssthresh) and a congestion window size (CWND). Congestion avoidance increases the size of the congestion window according to the following equation, where SMSS = Sender Maximum Segment Size. [7] CWND += SMSS*SMSS/CWND (3) Fig 7. Congestion Window size for Slow start and Congestion Avoidance algorithms  Fast Retransmit (TCP Tahoe) Fast Retransmit algorithm or TCP Tahoe, was developed in 1990 and is until today widely used in network communications. Since packets are sent to a specific order they should be also received in a specific order. If the packets are reordered, that probably means that packet loss occurred. With TCP tahoe, each time a packets arrives out of the expected order, an ACK a duplicate ACK is sent to the sender to let it know that a packet was received out of order and waht sequence packet number was expected instead. the sender then waits for a small number of duplicate ACKs so that it can determine if the packets where just reordered or there was a packet loss. Usually when a packet is delayed and the next one arrives first, there shouldn't be more than two duplicate ACKs. If more duplicate ACKS are sent to the transmitter, TCP retransmits the segment that was lost without waiting retransmission time to expire. Fig 8. Congestion Window size for TCP Tahoe Fig 9. Congestion Window size for TCP Tahoe  Fast Recovery (TCP Reno) After fast retransmit, congestion avoidance algorithm is used to allow high throughput under moderate congestion. This is the Fast Recovery algorithm which is usually implemented with TCP Tahoe algorithm. When the third duplicate ACK arrives, TCP sets "ssthresh" to half the current CWND's size but never less than 2 segments. It retransmits the missing segment and configures the CWND according to following equation. [7] CWND = ssthresh + 3*SMSS (4)  Swift Start TCP Swift start algorithm was developed by BBN Technologies to mitigate the problems of Slow start algorithm in startup.
  • 6.
    Impulse Noise overxDSL Systems – MSc Networks & Data Communications - Kingston University London 6 Swift start is still in trial mode and it is a combination of packet-pair and packet-pacing techniques. [8] It estimates the path bottle neck bandwidth based on the spacing between two ACKs from two subsequent data packets. The TCP protocol, obtains the network capacity much faster than with the Slow Start algorithm. Packet pacing is used for packet spreading across an RTT avoiding bursts of packets released to the network. An initial self-clocking process is established this way. [9] III. SIMULATION OF TCP WITH CONGESTION CONTROL For the needs of this assignment OPNET IT Guru Academic Edition was used to simulate a network connection between a Client in Stockholm and a server in Paris. It would be useful to point that the experiment has been reproduced and certain instructions where followed. Fig 10. Network's topology Paris subnet node includes a Server (ethernet_server with FT Application Installed) and a router (ethernet4_slip8_gtwy) connected to each other with a 10BaseT cable. Stockholm's subnet node includes a client (ethernet_wkstn) and a router (ethernet4_slip8_gtwy) connected to each other with a 10BaseT cable. Both routers are connected to each other through the Europe's Internet node which is an IP Cloud Network. Both nodes are connected to the Europe_Internet node with a PPP_DS3 cable. The TCP's Fast Retransmit and Fast recovery can be disabled from the TCP Parameters. The congestion window's size can be configured through the "Node Statistics" Menu. Fig 11. Congestion Window Size configuration A. Slow start and Congestion avoidance simulation To simulate the Slow Start with Congestion avoidance the discrete event simulation's duration was set to 10 minutes and TCP's Fast Retransmit and Fast recovery were disabled. B. Fast Retransmit and Fast Recovery simulation To simulate Fast Retransmit and Fast Recovery, two additional scenarios were created. Packet loss is implemented through the "Edit Attributes" menu on the Europe_Internet node. Fig 12. Packet Loss ratio of 0.5 Fast Retransmission was also enable on Paris node. Fig 13. Fast Retransmission enabled The scenario was then duplicated to create the TCP Reno scenario. On Paris node the Fast Recovery option was set to Reno. Fig 14. Fast Recovery set to Reno
  • 7.
    Impulse Noise overxDSL Systems – MSc Networks & Data Communications - Kingston University London 7 IV. RESULTS & DISCUSSION Running the simulation, the following graphs were plotted. Fig 15. Simulation's Results Observing the graphs, makes it clear that the simulation was successful. In the first graph for example, we can see the Slow Start section of the graph and also the Congestion avoidance as it would be expected. Fig 16. Slow Start with Congestion Avoidance The first graph (Fig. 15) illustrates the no packet drop scenario with Slow Start and Congestion Control. The second graph illustrates the Tahoe scenario with 0.5% packet loss. When congestion is indicated by a timeout, duplicate ACKs are sent and CWND is set to one segment. In other words, slow start is performed. The third graph illustrates the Reno scenario which also has 0.5% packet loss. The congestion window size does not drop to zero as in the Tahoe graph. Fast recovery is performed instead of slow start. Fig 17. Slow Start TCP versus TCP Tahoe versus TCP Reno TCP Reno seems to be faster than TCP Tahoe and TCP Tahoe seems to be faster than slow start only (Fig. 17). TCP congestion Control has formed the backbone of Internet's reliability. Different congestion control algorithms combined with each other on different network conditions, can help the stability of a network connection to a great extend. Different measurements with OPNET and NS3 has proved that the most efficient algorithm so far is the Swift Start TCP that is still developed. [10] REFERENCES [1] V. Cerf, and R. Kahn, A Protocol for Packet Network Intercommunication, IEEE Transaction on Communications, Vol. COMM-22, No.5, pp.637-648, May 1974. [2] V. Jacobson, Congestion Avoidance and Control, Proceedings of the ACM SIGCOMM ’88 Conference, nhpp. 314–329, August 1988. [3] RFC.793, "Transmission Control Protocol", Information Sciences Institute - University of Southern California, September 1981. [4] "TCP Definition", Retrieved 2016-05-10. [5] Comer, Douglas E., "Internetworking with TCP/IP:Principles, Protocols, and Architecture 1 (5th ed.)", Prentice Hall, ISBN 0-13-187671-6, 2006 [6] Michael Welz, "Congestion Control - Managing Internet Traffic", University of Innsbruck - john Wiley & Sons ltd., 2005. [7] M. Allman, W. Richard Stevens , “TCP Congestion Control” RFC 2581, NASA Glenn Research Center, April 1999. [8] Ningning Hu, Peter Steenkiste, "Estimating Available Bandwidth Using Packet Pair Probing," CMU-CS-02-166 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 September 9, 2002. [9] A. A. Elbery, E. A. Khalil, and al. et., Swift Start for TCP Congestion Control, performance, Problems, Modification and Evaluation, Mater Thesis, Department of Computer Science & Engineering, Faculty of Electronic Engineering, Menoufiya University, 2007. [10] Ehab A. Khalil,"SIMULATION-BASED COMPARISONS OF TCP CONGESTION CONTROL", Department of Computer Science & Engineering, Faculty of Electronics Engineering, Menoufiya University, September 2012.