CS475: Computer Networks - The Transport Layer
Activity Goals
The goals of this activity are:- To describe the role of the Transport Layer
- To describe protocols for various levels of quality-of-service including UDP and TCP
- To explain how congestion managemnt is handled in a distributed and passive manner using TCP
- To differentiate between quality-of-service levels with different Transport Layer protocols
- To define a sliding window protocol using TCP for efficient and in-order buffered communications
Supplemental Reading
Feel free to visit these resources for supplemental background reading material.The Activity
Directions
Consider the activity models and answer the questions provided. First reflect on these questions on your own briefly, before discussing and comparing your thoughts with your group. Appoint one member of your group to discuss your findings with the class, and the rest of the group should help that member prepare their response. Answer each question individually from the activity on the Class Activity Questions discussion board. After class, think about the questions in the reflective prompt and respond to those individually in your notebook. Report out on areas of disagreement or items for which you and your group identified alternative approaches. Write down and report out questions you encountered along the way for group discussion.Model 1: User Datagram Protocol (UDP)
Source Port (16 bits) | Destination Port (16 bits) |
---|---|
Length (16 bits) | Checksum (16 bits) |
Questions
- What do you think a port number represents? In other words, how does the Transport Layer multiplex or share the network?
- Review the UDP RFC and describe the format of the checksum.
- Error detection is also employed at the link layer. Why might error detection occur at this layer?
- UDP does not inherently acknowledge packet receipt. Why is it valuable to detect packet errors anyway?
- What must one do if ordered, reliable packet delivery is essential?
- What kind of applications might benefit from a transport layer protocol that does not provide reliable automatic retransmission?
- Review the example socket program using the UDP protocol. What revisions might you make to incorporate ordered packet delivery, and reliable retransmission of packets?
Model 2: Transmission Control Protocol (TCP)
Source Port (16 bits) | Destination Port (16 bits) | ||
---|---|---|---|
Sequence Number (32 bits) | |||
Acknowledgement Number (32 bits) | |||
Offset (4 bits) | Reserved (3 bits) | Bit Flags (9): Nonce, Congestion Window Reduced, ECN Echo, Urgent, ACK, Push, Connection Reset, SYN, FIN |
Window Size (16 bits) |
Checksum (16 bits) | Urgent Pointer (16 bits) | ||
Options |
Questions
- Which field helps ensure that packets are delivered in the order in which they are sent?
- What is the disadvantage of starting the sequence numbering at 0?
- How might the sender and receiver agree on starting sequence numbers?
- Which fields are used to establish and terminate a connection?
Model 3: The Three-Way Handshake
Questions
- Review the flowchart to terminate a connection. How many connections are present in a typical TCP communication, and why?
- The SYN packet is used to synchronize, or start, a connection. Three messages are used to establish such a bidirectional connection: what do you think they contain?
- Do you think a UDP connection is also bidirectional? Why or why not?
Model 4: Reliable Retransmission Protocol with TCP
Sender | Receiver |
---|---|
Send 100 Bytes SEQ=0 | ACK 100 |
Send 100 Bytes SEQ=100 | ACK 200 |
Send 100 Bytes SEQ=200 | (Lost) |
Send 100 Bytes SEQ=300 | (Received, ACK 200) |
Send 100 Bytes, SEQ=400 | (Received, ACK 200) |
Retransmit Starting at SEQ=200 | ACK 500 |
Questions
- What does ACK 100 imply?
- Why does the sender continue to send ACK 200 message even as additional packets are received?
- Why did the sender retransmit duplicate packets, and what happens to those packets?
- What might be an improved sequencing protocol?
Model 5: Congestion and Flow Control with TCP
Questions
- Which phase of TCP transmission features the fastest growth?
- When a loss occurs, implying congestion, slow start begins again by sending 1 maximum-segment-size (MSS) and doubling with each successful ACK received. At what point does Slow Start transition to congestion avoidance following a loss?
- What are some ways a sender might determine that a loss has occurred?
- Might it be a good idea to "fast retransmit" a packet that has been lost perhaps for reasons other than congestion, without restarting Slow Start?
- How might you compute a round trip time estimate for determining that a packet has been lost? Should you assume a loss as soon as this estimate has been reached?
- How does TCP Tahoe improve over TCP Reno by avoiding a return to Slow Start from the beginning on packet loss?
- What would be the advantages and disadvantages of leaving Slow Start after observing rising round trip times, rather than waiting for a loss, as TCP Vegas does?
- Suppose you have a UDP socket open and transmitting, causing congestion on the network. The TCP senders throttle back automatically due to congestion control. What happens to the UDP sender? Over time, what happens to the throughputs of the TCP senders?