Overview
Above the network layer is the transport layer, which provides end-to-end message delivery services to the layers above. This means that the transport layer does not involve itself in switching or routing, and treats a communication between two nodes on the same desktop the same as two nodes on opposite sides of the world. The transport layer is interested in things like error management, making and terminating connections and interfacing with applications. What makes the transport layer interesting is that it is very nearly at the same level as the network application that you write, and many of the important issues are things you may have experience with. There are two protocols at the transport layer in the Internet protocol stack - UDP (Universal Datagram Protocol) and TCP (Transmission Control Protocol) and each has a unique service model.
Things to Think About
- If you were going to create a service to make it easier for people write applications like ftp, telnet, internet games or database access, what would you include in it?
- How would your protocol be affected by the difference between an unreliable and a reliable network layer service?
- Would you provide reliable or unreliable service, or both?
- What type of protocol would you use to carry your data?
- Would you use fixed-length or variable length messages and how would you manage the data?
Preparation
Read 5.1 through 5.2.4 in the text and the
notes.
Knowledge, Comprehension and Problem Solving
Terms
- Congestion Control
- Karn/Partridge Algorithm
- Jacobsen/Karels Algorithm
- Packet demultiplexor
- End-to-end transport
- Flow control
- Port
- Segment
- TCP
- Three-way handshake
- UDP
Questions
- Diagram the calculation of the UDP checksum for a packet.
- Show the TCP packets that are exchange to start up a connection where the active side uses sequence number 5664 and port 2222, and the passive side uses 20113 and port 55555. Show the flags, ports and sequence and acknowledgement numbers for each packet.
- Give an example where Urgent data would be necessary other than a networked terminal application.
- A TCP connection gets a single buffer from the upper layer consisting of the string: How Now Brown Cow. If it sends segments of size 3, 5, 2 and 4, show the current state of the sliding window and all packets in progress.
- If it receives a packet with an ACK for 8, what should it do?
- If the timer for the third segment expires and the current segment size is 5, what gets sent.
- If the window size if 20 bytes, Last Ack Sent is 10 and Next Byte Expected is 18, what should it do if it receives a segment with sequence number 24 and length 4?
Analysis, Synthesis and Evaluation
-
Why did the designers choose the byte-stream model for TCP instead of a datagram model?
- What effects in the network make it difficult to operate an SWP as theoretically described earlier in the book?
- Using a finite state automata, describe the algorithm for just the TCP data receive (from the other end).
- Write the algorithm for the TCP sliding window protocol.