M3 - Transport Layer
If reliable transfer is needed over UDP:
- Add needed reliability at app. layer - Acc congestion control at app. layer
What does the receiving host do when it receives UDP segment?
- Checks destination port - Directs UDP segment to socket w/ that port #
What services are not available in the Internet transport protocols ?
- Delay guarantees - Bandwidth guarantees
When creating datagram to send into UDP socket, you must specify:
- Destination IP address - Destination port #
How might a server support many simultaneous TCP sockets?
- Each socket identified by its own 4-tuple - Each socket associated w/ a different connecting client
How does demultiplexing work?
- Host receives IP datagrams - Host uses IP addresses and port numbers to direct segment to appropriate socket
What are the UDP transport layer sender actions?
- Is passed an app. layer message - Determines UDP segment header fields values - Creates UDP segment - Passes segment to IP
Why is there a UDP?
- No connection establishment (Which can add to delay) - Simple: No connection state at sender, receiver - Small header size - No congestion control: UDP can blast away as fast as desired, can function in the face of congestion
What actions are taken by the Transport layer sender?
- Passed an app layer message - Determines segment header fields values - Creates segment - Passes segment to IP (Network layer)
What services are provided by the UDP protocol?
- Provides an unreliable, connectionless service to the invoking application. - Unordered delivery - no-frills extension of "best-effort" IP - Doesn't guarantee that data sent by one process will arrive intact (or at all) to the destination process
What are the UDP transport layer receiver actions?
- Receives segment from IP - Checks UDP checksum header value - Extracts app-layer message - Demultiplexes message up to application via socket
What actions are taken by the Transport layer receiver?
- Receives segment from IP (Network layer) - Checks header values - Extracts app-layer message - Demultiplexes message up to application via socket
What services are provided by the TCP protocol?
- Reliable data delivery - In-order data delivery - Congestion control - Flow control - A byte stream abstraction, that doesn't preserve boundaries between message data sent in diff. socket send calls at the sender.
What does transport-layer multiplexing require?
- Sockets have unique identifiers - Each segment have special fields that indicate the socket to which the segment is to be delivered
In connection-oriented demultiplexing, a TCP socket is identified by:
- Source IP address - Source port # - Dest. IP address - Dest. port #
What do IP datagrams received by the host contain in demultiplexing?
- Source IP address & destination IP address - Each datagram carries one transport-layer segment - Each segment has source, destination port number
What are the special fields of a segment?
- Source port number field - Destination port number field
What is UDP (User Datagram Protocol)?
- Very simple internet transport protocol - "Best effort" service, segments may be lost or delivered out-of-order to app - Connectionless - No handshaking between sender, receiver - Each segment handled independently of others
Which layers does multiplexing/demultiplexing happen at?
All layers
Segments
App-layer messages converted from by the transport layer into transport-layer packets.
In connection-oriented demultiplexing, the receiver uses all 4 TCP identifiers to:
Direct segment to appropriate socket
What is meant by the network layer's "best effort" delivery service?
Does not guarantee: - Segment delivery - Orderly delivery of segments - The integrity of the data in the segments
Where are transport-layer protocols implemented?
End systems. Not in network routers
True or False: When multiple TCP clients send TCP segments to the same destination port number at a receiving host, those segments (from different senders) will always be directed to the same socket at the receiving host.
False
What is meant by logical communication?
From an apps perspective, it's as if the hosts running the processes were directly connected. App. processes use it to send messages to each other
What does multiplexing at the sender do?
Handle data from multiple sockets, add transport header (later used for demultiplexing)
What does the Transport layer provide between application processes running on different hosts?
Logical communication
How are network layer protocols different from transport layer protocols?
Provide logical communication between hosts. EX: Postal service delivering letters between houses
How are transport layer protocols different from network layer protocols?
Provide logical communication between processes. Relies on, enhances, network layer services EX: A parent handing an arriving letter to one of their kids inside the house
What is meant by transport-layer demultiplexing?
Receiving a transport-layer segment from the network layer, extracting the payload (data) and delivering the data to the correct socket
What is multiplexing & demultiplexing based on?
Segment, datagram header field values
What are the two transport protocols available to internet applications ?
TCP and UDP
What is meant by transport-layer multiplexing?
Taking data from one socket (one of possibly many sockets), encapsulating a data chuck w/ header info - thereby creating a transport layer segment - and eventually passing this segment to the network layer
Where will IP/UDP datagrams w/ same dest. port #, but different source IP addresses and/or source port #'s, be directed?
To same socket at receiving host
True or False: It is possible for two TCP segments with source port 80 to be sent by the sending host to different clients.
True
True or False: It is possible for two UDP segments to be sent from the same socket with source port 5723 at a server to two different clients.
True
True or False: When multiple UDP clients send UDP segments to the same destination port number at a receiving host, those segments (from different senders) will always be directed to the same socket at the receiving host.
True
What does multiplexing at the receiver do?
Use header info to deliver received segments to correct sockets
TCP Demultiplexing is made on the bases of what?
Using a 4-tuple: source & dest. IP addresses, and port #'s
UDP Demultiplexing is made on the bases of what?
Using only the destination port number