Eng 3553 Lab #5 TCP Throughput Overview TCP (Transmission Control Protocol) is a means for building a reliable communications stream, enabling two hosts to establish a connection and exchange streams of data made up a large number of discrete packets of data. TCP guarantees delivery of data and also guarantees that packets will be delivered in the same order in which they were sent. One of the functions TCP performs is flow control, using the sliding windows method, which permits multiple data packets to be in transit concurrently, making more efficient use of network bandwidth. The destination advertises how much buffer space it has available, and the source restricts its transmissions such that the receiver is not overloaded. A small flow control window, however, can adversely affect the throughput of the TCP connection. An overly small flow control window can cause TCP to act like a stop-andwait protocol, whereas a very large flow control window would allow the sender to transmit continuously. In this lab we will investigate the effect that the size of the flow control window has on the throughput of a TCP connection. Procedure Go to Start -> All Programs -> OPNET IT Guru Academic Edition 9.1 -> OPNET IT Guru Academic Edition This runs OPNET File -> New Project Name: Lab5 Scenario Name: TCPwindow1 Create Empty Scenario World world Select Technologies Next OK We will be using FTP (File Transfer Protocol) to test the throughput of TCP, so we will need to configure an FTP object. In Object Palettes->internet_toolbox, Select Application Config object from the 1
name->ftp Application Expand Application Definitions Name->FTP_Large_File Expand Description and edit the FTP attribute Inter-Request Time (seconds)->constant(10000) File Size (bytes)->constant(1000000) This FTP application will transfer a 1 MB file so we can evaluate TCP s behaviour. Next, we must associate the FTP application to a profile that will drive the simulated network devices. In Shared Object Palettes->internet_toolbox, Select Profile Config object from the name->ftp Profile Expand Profile Configuration Profile Name->FTP_Large_File_Profile Expand Applications Name->FTP_Large_File Repeatability->Once at Start Time 2
Next, we need to configure a WAN that connects the FTP client and server. In Shared Object Palettes->internet_toolbox, select ip32_cloud object from the Object Palette and place it in the project workspace. Right click on the icon. Set Name->ip32_cloud Packet Latency (secs)->constant(0.25) Next, we need to configure the FTP client and server. In Shared Object Palettes->internet_toolbox, select ppp_wkstn object from the Object Palette and place it in the project workspace. Right click on the icon. name->ftp Client Expand the Application: Supported Profiles attribute. Set the Rows field to 1 then expand row 0 and set the Profile Name to FTP_Large_File_Profile. Expand the TCP->TCP Parameters attribute and note that the Receive Buffer (bytes) field is set to 8760. This means that the TCP source may not send more than 8760 bytes of data without receiving an acknowledgement. In Shared Object Palettes->internet_toolbox, Select ppp_server object from the name->ftp Server Edit the Application: Supported Services attribute. Set the Rows field to 1 and set the Name to FTP_Large_File. Expand the TCP->TCP Parameters attribute and set the Maximum Segment Size (bytes) attribute to 512. This will ensure that each TCP packet is 512 bytes long. Finally, we need to connect the client and server to the WAN. Select a Shared Object Palettes->internet_toolbox->Link Models->PPP_DS1 link from the Object Palette and use it to connect the FTP client to the ip32_cloud and the FTP server to the cloud. Keep in mind that DS1 speed is 1.5 Mbps. Now we have set up our network and we have configured the receiver s window size. Now we need to configure our simulation to collect the statistics we want. 3
Simulation->Choose Individual Statistics Expand Global Statistics->Ftp Check Download Response Time (sec) Expand Node Statistics->TCP Connection Check Sent Segment Sequence Number Traffic Received (bytes/sec) Right click on the Sent Segment Sequence Number statistic. Choose Change Collection Mode, check Advanced, and set the Capture Mode to all values. This will give us a more detailed graph. Close the window. Now the network is set to run. We will now create a duplicate network with a client that advertises a different receive window size, to see the effect that having a larger window size has. Scenarios->Duplicate Scenario Chose the default name, TCPwindow2. Right click FTP Client in the second scenario. Expand the TCP->TCP Parameters attribute and click the Receive Buffer (bytes) field and set the value to 32768. Scenarios->Manage Scenarios Click the Results field for both scenarios and set to <collect>. Hit OK. This runs simulations for both scenarios. When simulation has stopped, hit Close to close the resulting window. Next, we will look at the statistics generated by the simulation. Results->Compare Statistics The Compare Results window will open. The three statistics of major interest will be download response time, traffic received at the client and sequence numbers used at the server. Global Statistics->FTP->Download Response Time (sec) 4
This graph shows how long the download took in seconds on the vertical scale, with TCPwindow1 shown in blue and TCPwindow2 shown in red. As can be seen from the graph, the 32 kb receive window significantly lowered the time that the download took. Record the values. Object Statistics->FTP Client->TCP Connection->Traffic Received (bytes/sec) This graph shows the throughput of each connection. Enlarging the client s receive window substantially raised the throughput in scenario two. Print. Object Statistics->FTP Server->TCP Connection->Sent Segment Sequence Number This graph shows the server incrementing a counter as packets are sent over time. To get the proper detail from the graph click the Show button and drag a box repeatedly around where both plots intersect until you can see the stair-step pattern of both plots. This graph shows both servers sending data and incrementing their counters (vertical portions of graphs) and waiting for acknowledgements from the client (horizontal portions of graphs). The difference that the larger receive window has is obvious. Although both servers wait about the same amount of time for each acknowledgement, the server from scenario two transmits much more packets between each acknowledgement, thus completing the download much more quickly. Print. Question 1. To see what would be the effect of increasing the capacity of the lines connecting the server and client to the IP cloud to DS-3 speeds (45 Mbps). 2. To see what would be the effect of decreasing the capacity of the lines connecting the server and client to the IP cloud to DS-0 speeds (64 Kbps). 5