PCATTCPC: A benchmarking tool for analyzing the performance of TCP and UDP streams

 

 

ABSTRACT

 

The PCATTCPC is a command line sockets-based benchmarking tool for measuring TCP and UDP performance between two end systems. The original PCATTCP source was modified to provide real time feedback about the performance to the connection to the sender in terms of the number of packets sent/received, loss percentage, roundtrip time and throughput. PCATTCPC attains high-test performance by filling a memory buffer with data and then repeatedly transmitting this data from the sender to the receiver. Since everything runs from memory, we have a traffic transmitter and receiver that can operate at true network speed.

 

The PCATTCPC tool was used to analyze the performance of TCP and UDP over different network configurations (Local Host, Hub Network, Switch Network, LAN, and WAN). The PCATTCPC tool returned a formatted text file, which provided a real time feedback to the sender about the various minutiae of the connection. The available results were used to benchmark the performance of TCP and UDP and also to analyze the significance of the header to payload ratio of TCP and UDP streams.

 

A QUICK OVERVIEW

The Internet is a worldwide system of computer networks – a network of networks in which a user at one computer can get information from any other computer. Technically, what distinguishes the Internet is its use of a set of protocols called the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP). TCP and the UDP are the basic communication languages for many applications and the Internet. Each of our computers runs TCP/IP as every other computer that we may send messages or get information from also has a copy of TCP/IP. There are a number of differences between the TCP and UDP, which are summarized below.

TRANSMISSION CONTROL PROTOCOL (TCP)

 

The TCP is the basic communication language for many applications and the Internet. Each of our computers runs TCP/IP as every other computer that we may send messages or get information from also has a copy of TCP/IP. The TCP relies upon the IP layer to send information from one place to another. The TCP layer manages the assembling of messages into smaller packets that are transmitted over the Internet and received by another TCP layer at the destination, which reassembles the packets into the original message. The IP layer handles the address part of each packet so that it gets to the right destination.

 

Although TCP and UDP use the same IP layer, TCP provides totally different service to the application layer. TCP provides a connection oriented reliable byte stream service. The term connection oriented means the two applications using TCP must establish a connection before they can exchange data with each other. This kind of handshake makes sure that both the client and server are prepared to accept the incoming data. The connection oriented TCP service provides the capability for reliable data transfer. TCP in addition provides flow control and congestion control. In the event of a packet/acknowledgement loss, TCP retransmits the packet to the receiver, adding to TCP’s reliability.

 

USER DATAGRAM PROTOCOL (UDP)

 

The UDP is a simple, datagram oriented transport layer protocol. Each output (write) operation by a process, causes exactly one UDP datagram to be sent. This is different from a stream-oriented protocol such as the TCP, where the amount of data sent has little relationship to what actually gets sent in a packet. Unlike TCP, UDP does not provide the service of dividing a message into packets and reassembling at the other end. UDP does not provide any reliability. UDP is not concerned with the guaranteed delivery of the packets to the receiver and any such reliability should be added on by the concerned application. UDP provides two services not provided by the IP layer. It provides port numbers to help distinguish different user requests and optionally a checksum capability to verify whether the data arrived intact. UDP does not provide flow control and congestion control.

 

MOTIVATION

 

In order to understand the performance and functional implications of the above-mentioned differences, we simulated and analyzed the TCP and UDP streams under different network configurations such as local host, hub network, switched network, local area network and wide area network. For each experiment, we performed a fixed number of trials and gathered Ethereal traces at the sender and the receiver side. We also collected information about the number of packets sent by each connection, the size of each packet, the throughput and the packet loss details which helped us to distinguish the minutiae of TCP and UDP performances under different network configurations. The results of the experiments and the graphs are available for presentation.

 

ACKNOWLEDGEMENTS

 

The PCATTCPC tool was coded by Todd Deshane and Ashwin Venkatraman, Clarkson University and the experiments to benchmark the performance of TCP and UDP streams were performed under the help and guidance of Dr. Jeanna Matthews by Niranjan Srinivasan as a Master’s Dissertation towards the partial fulfillment of the requirements for the degree of Master of Engineering in Computer Science at the Cornell University.