3.1 – Introduction and Transport-Layer Services
- A transport-layer protocol provides for logical communication (from an applications perspective it is as if the hosts are directly connected while in reality they arent) between the application processes running on different hosts.
3.1.1 – Relationship between Transport and Network Layers
- Transport-layer protocols live in the end-system. Within an end system, a transport protocol moves messages from application processes to the network edge (the network-layer) and vice versa, but it doesn’t have any say about how the messages are moved within the network core.
- A computer network may make available multiple transport protocols, with each protocol offering a different service model to applications.
- The services that a transport protocol can provide are often constrained by the services model of the underlying network-layer protocol.
- If the network-layer protocol cannot provide delay or bandwidth guarantees for transport-layer segments, then the transport-layer protocol cannot provide delay or bandwidth guarantees.
- Certain services can be offered by a transport protocol even when the underlying network protocol doesn’t offer the corresponding service at the network layer. F.ex. a transport layer can offer reliable data transfer service even when the underlying network protocol is unreliable.
3.2.1 – Overview of the Transport Layer in the Internet
- UDP (User Datagram Protocol): provides an unreliable connectionless service to the invoking application.
- TCP (Transmission Control Protocol): provides a reliable, connection-oriented service to the invoking application.
- Transport-layer packet = segment (some calls the packet from UDP = datagram)
- The internet’s network-layer protocol is named IP (Internet Protocol) and provides logical communication between hosts.
- Service model is best-effort delivery service
- It means it makes it best effort to deliver it, but makes no guarantees. Nor does it guarantee the integrity of the data in the segments.
- It is said to be an unreliable service.
- Extending host-to-host delivery to process-to-process delivery is called transport-layer multiplexing and demultiplexing.
- UDP and TCP also provide integrity checking by including error-detection fields in their segments header.
- Minimal transport-layer-process-to-process data delivery and error-detection is the only services UDP provides.
- UDP is an unreliable service.
- TCP offers several additional services:
- Reliable data transfer:
- Using flow control, sequence number, acknowledgements, and timers, TCP ensures that data is delivered from sending process to receiving process correctly and in order.
- Congestion control:
- Prevents any one TCP connection from swamping the links and routers between communication hosts with an excessive amount of traffic. TCP strives to give each connection traversing a congested link and equal share of the link bandwidth.
- Done by regulating the rate at which the sending sides of TCP connection can send traffic into the network.