Tutotial n2 TCP Update2017
Tutotial n2 TCP Update2017
1. Lab introduction
This lab is designed to demonstrate the congestion control algorithms implemented by the
Transmission Control Protocol (TCP). The lab provides a number of scenarios to simulate these
algorithms. You will compare the performance of the algorithms through the analysis of the
simulation results.
The Internet’s TCP guarantees the reliable, in-order delivery of a stream of bytes. It includes a flow-
control mechanism for the byte streams that allows the receiver to limit how much data the sender
can transmit at a given time. In addition, TCP implements a highly tuned congestion-control
mechanism. The idea of this mechanism is to throttle how fast TCP sends data to keep the sender
from overloading the network.
The idea of TCP congestion control is for each source to determine how much capacity is available in
the network, so that it knows how many packets it can safely have in transit. It maintains a state
variable for each connection, called the congestion window, which is used by the source to limit how
much data it is allowed to have in transit at a given time. TCP uses a mechanism, called additive
increase / multiplicative decrease, that decreases the congestion window when the level of
congestion goes up and increases the congestion window when the level of congestion goes down.
TCP interprets timeouts as a sign of congestion. Each time a timeout occurs, the source sets the
congestion window to half of its previous value. This halving corresponds to the multiplicative
decrease part of the mechanism. The congestion window is not allowed to fall below the size of a
single packet (the TCP maximum segment size, or MSS). Every time the source successfully sends a
congestion window’s worth of packets, it adds the equivalent of one packet to the congestion
window; this is the additive increase part of the mechanism.
TCP uses a mechanism called slow start to increase the congestion window “rapidly” from a cold start
in TCP connections. It increases the congestion window exponentially, rather than linearly. Finally,
TCP utilizes a mechanism called fast retransmit and fast recovery. Fast retransmit is a heuristic that
sometimes triggers the retransmission of a dropped packet sooner than the regular timeout
mechanism.
In this lab you will set up a network that utilizes TCP as its end-to-end transmission protocol and
analyse the size of the congestion window with different mechanisms.
2. Procedure
2.1 Create a New Project
1. Start Modeler Academic Edition -> Choose New from the File menu.
2. Select Project and click OK -> Name the project <your initials>_TCP, and the scenario
No_Drop -> Click OK.
3. In the Startup Wizard: Initial Topology dialog box, make sure that Create Empty Scenario is
selected -> Click Next -> Select Choose From Maps from the Network Scale list -> Click Next
-> Choose USA from the Border Map List -> Click Next twise -> Click Finish.
1. The Object Palette dialog box should now be on top of your project workspace. If it is not
there, open it by clicking . Make sure that the Internet_toolbox item is selected from
the pull-down menu on the object palette.
2. Add to the project workspace the following objects from the palette: Application Config,
Profile Config, an Ip32_Cloud, and two subnets.
a. To add an object from a palette, click its icon in the object palette -> Move your
mouse to the workspace -> Click to drop the object in the desired location -> Right-
click to finish creating objects of that type.
3. Close the palette.
4. Rename the objects you added as shown and then save your project:
Comment:
The Ip32_cloud node model represents an IP cloud supporting up to 32 serial line interfaces at a
selectable data rate through which IP traffic can be modelled. IP packets arriving on any cloud
interface are routed to the appropriate output interface based on their destination IP address. The RIP
or OSPF protocol may be used to automatically and dynamically create the cloud’s routing tables and
select routes in an adaptive manner. This cloud requires a fixed amount of time to route each packet,
as determined by the Packet Latency attribute of the node.
1. Right-click on the Applications node -> Edit Attributes -> Expand the Application Definitions
attribute and set rows to 1 -> Expand the new row -> Name the row FTP_Application.
a. Expand the Description hierarchy -> Edit the FTP row as shown below.
1. Right-click on the Profiles node -> Edit Attributes -> Expand the Profile Configuration
attribute and set rows to 1.
a. Name and set the attributes of row 0 as shown -> Click OK.
1. Double-click on the West subnet node. You get an empty workspace, indicating that the
subnet contains no objects.
Comment:
The ethernet4_slip8_gtwy node model represents an IP-based gateway supporting four Ethernet hub
interfaces and eight serial line interfaces.
1. Double-click on the East subnet node. You get an empty workspace, indicating that the
subnet contains no objects.
2. Open the object palette and make sure that the Internet_toolbox item is selected from
the pull-down menu.
3. Add the following items to the subnet workspace: one ethernet_wkstn, one
ethernet4_slip8_gtwy router, and connect them with a bidirectional 100_BaseT link -> Close
the palette -> Rename the objects as shown:
Comment:
OPNET provides the following capture modes:
o All values — collects every data point from a statistic.
o Sample — collects the data according to a user-specified time interval or sample
count. For example, if the time interval is 10, data is sampled and recorded every 10th
second. If the sample count is 10, every 10th data point is recorded. All other data
points are discarded.
o Bucket — collects all of the points over the time interval or sample count into a
“data bucket” and generates a result from each bucket. This is the default mode.
1. Select Duplicate Scenario from the Scenarios menu and give it the name Drop_Tahoe ->
Click OK.
Comment:
With Tahoe mode, TCP performs a retransmission of what appears to be the missing segment, without
waiting for a retransmission timer to expire.
After fast retransmit sends what appears to be the missing segment, congestion avoidance but not
slow start is performed. This is called the fast recovery algorithm.
The fast retransmit and fast recovery algorithms are usually implemented together and called Tahoe
(RFC 2001).
3. Click OK to run the three simulations. Depending on the speed of your processor, this may
take several seconds or minutes to complete.
4. After the three simulation runs complete, one for each scenario, click Close and then save
your project.
7. Notice the Segment Sequence Number is almost flat with every drop in the congestion
window.
8. Close the View Results dialog box and select Compare Results from the Result menu.
9. Fully expand the Object Statistics hierarchy as shown and select the following result: Sent
Segment Sequence Number and compare it through all three scenarios.
3. Questions
1. Why does the Segment Sequence Number remain unchanged (indicated by a horizontal line
in the graphs) with every drop in the congestion window?
3. In the Drop_Tahoe scenario, obtain the overlaid graph that compares Sent Segment
Sequence Number with Received Segment ACK Number for Server_West. Explain the graph.
Hint:
Make sure to assign all values to the Capture mode of the Received Segment ACK
Number statistic.
4. Create another scenario as a duplicate of the Drop_Tahoe scenario. Name the new scenario
Drop_Tahoe_Buffer. In the new scenario, edit the attributes of the Client_East node and
assign 65535 to its Receiver Buffer (bytes) attribute (one of the TCP Parameters). Generate a
graph that shows how the Congestion Window Size (bytes) of Server_West gets affected by
the increase in the receiver buffer (compare the congestion window size graph from the
Drop_Tahoe scenario with the corresponding graph from the Drop_Tahoe_Buffer scenario).
Prepare a lab report (DOC/DOCX file). The report should include the answers to the
above questions as well as the graphs you generated from the simulation scenarios.
Discuss the results you obtained and compare these results with your expectations.
Mention any anomalies or unexplained behaviours.