In: Computer Science
Could i please have some assistance with the following questions.
a) What is the purpose of port numbers? how are they used?
b) Why does TCP probe the network continuously until it experiences a loss?
c) What is the difference between the congestion window and the received window?
d) What is the benefit of TCP Reno over TCP Tahoe?
Answer:
a) Purpose of port numbers: A port number is a way to identify a specific process to which an Internet or other network message is to be forwarded when it arrives at a server. A port number is the logical address of each application or process that uses a network or the Internet to communicate. Each application/program is allocated a 16-bit integer port number.
how are they used?
Port numbers relate to network addressing. In TCP/IP networking, both TCP and UDP use their own set of ports that work together with IP addresses.
For the Transmission Control Protocol and the User Datagram Protocol, a port number is a 16-bit integer that is put in the header appended to a message unit. This port number is passed logically between client and server transport layers and physically between the transport layer and the Internet Protocol layer and forwarded on.
For example, a request from a client (perhaps on behalf of you at your PC) to a server on the Internet may request a file be served from that host's File Transfer Protocol (FTP) server or process. In order to pass your request to the FTP process in the remote server, the Transmission Control Protocol (TCP) software layer in your computer identifies the port number of 21 (which by convention is associated with an FTP request) in the 16-bit port number integer that is appended to your request. At the server, the TCP layer will read the port number of 21 and forward your request to the FTP program at the server.
b) TCP probe the network continuously until it experiences a loss?
A TCP connection controls its transmission rate by limiting its number of transmitted-but-yet-to-be-acknowledged segments. Let us denote this number of permissible unacknowledged segments as w, often referred to as the TCP window size. Ideally, TCP connections should be allowed to transmit as fast as possible (i.e., to have as large a number of outstanding unacknowledged packets as possible) as long as segments are not lost (dropped at routers) due to congestion. In very broad terms, a TCP connection starts with a small value of w and then "probes" for the existence of additional unused link bandwidth at the links on its end-to-end path by increasing w.
A TCP connection continues to increase w until a segment loss occurs (as detected by a timeout or duplicate acknowledgements). When such a loss occurs, the TCP connection reduces w to a "safe level" and then begins probing again for unused bandwidth by slowly increasing w .
An important measure of the performance of a TCP connection is its throughput - the rate at which it transmits data from the sender to the receiver. Clearly, throughput will depend on the value of w. If a TCP sender transmits all w segments back-to-back, it must then wait for one round trip time (RTT) until it receives acknowledgments for these segments, at which point it can send w additional segments. If a connection transmits w segments of size MSS bytes every RTT seconds, then the connection's throughput, or transmission rate, is (w*MSS)/RTT bytes per second.
c) Difference between congestion window and the received window:
Congestion Window (cwnd) is a TCP state variable that limits the amount of data the TCP can send into the network before receiving an ACK.
The Receiver Window (rwnd) is a variable that advertises the amount of data that the destination side can receive.
Together, the two variables are used to regulate data flow in TCP connections, minimize congestion, and improve network performance.
d) Benefit of TCP Reno over TCP Tahoe:
TCP Reno retains the basic principles of Tahoe such as Slow Start, Congestion Avoidance and Fast Retransmit. However it is not as aggressive as Tahoe in the reduction of the congestion window.
To put this very briefly, Tahoe will reset the congestion window to 1 MSS or 1 Packet after 3 duplicate ACKs are detected by the sender. Reno will reset the congestion window to 1/2 of the previous window. So if the window is 10 packets, Reno will set it 5 and build back up after each RTT. This means that Reno will more quickly recover from loss and is much more in line with modern congestion control methods.
Please give thumbsup, fi you like it. Thanks.