[Back to Lecture Notes page]
The Transport Layer
Topic Outline:
- Services of the Transport Layer
- The Internet Transport Protocols
- Transport Control Protocol (TCP)
- User Datagram Protocol (UDP)
- Network Performance Issues
Transport Layer Services
- Purpose: To provide reliable, efficient transport of data from a source to a destination across a network for the users using applications.
- Compare with DLL, which only deals with adjacent machines (source to next router, router to next router, etc).
- Why have a Transport layer (TL)?
- Why not just depend on the NL and DLL services to provide the service?
- Because NL and DLL are services of the subnet, which is beyond the control of the source and destination.
- We want a layer existing in the source and destination hosts which is able to handle problems like errors and delays.
Some Terminology
: the hardware and software which provides TL services
- Transport Protocol Data Unit (TPDU)
: the message sent by the TL of the source to the TL of the destination.
The primary aim of TL is to enhance the QoS (Quality of Service) provided by the NL.
- If the NL already provides very good QoS, then the job of the TL becomes very simple.
The TL allows the applications to specify what level of QoS required, and tries to achieve it based on the available NL services.
Transport Layer Service Primitives
- Service primitives applications can call on:
- LISTEN
- CONNECT
- SEND
- RECEIVE
- DISCONNECT
- How it works: Fig 6-5 p486
Elements of Transport Layer
- The purpose of TL is very similar to DLL, Eg:
- But because TL works over a subnet rather than between adjacent machines:
- Establishing and releasing a connection more complicated
- Subnet may delay a packet
- The TL needs to handle a much larger number of connections.
Establishing a Connection
- Complicated because of delayed and duplicated packets.
- Eg. Hosts sends packets to establish connection, transfer data and release connection, but all the packets are duplicated, and received a second time.
- Possible solution: keep track of obsolete connection numbers
- Requires hosts to keep history of connection numbers indefinitely
- Cannot use algorithms like sliding windows because we don’t know how long the duplicates can be delayed for.
Establishing a Connection
- Another solution: ensure packets are not held in the subnet indefinitely, by
- Hop count for the packets
- Time-stamping the packets
- But having the packets’ lifetime restricted, we can use sliding-window-like algorithms
Releasing a Connection
- Asymmetric
release: like telephone connection, when one side hangs up, the connection is released
- Symmetric
release: connection is two unidirectional connections, must be released separately.
- Asymmetric release can result in data loss. Eg. Fig 6-12 p498.
- Better to use symmetric release
Symmetric Release
- One party sends a "I am done" message to another.
- The other party sends an acknowledgment.
- Both parties release the connection.
- Two-army problem
: can’t ever guarantee acknowledgment is received.
- How about sending an acknowledgment for the acknowledgment? - When do you stop?
- It can be proven that no protocol is guaranteed to work for all scenarios.
[Back to Lecture Notes page]