Transport Layer
Download
Report
Transcript Transport Layer
Section 23.1 Process-to-process delivery
Client/server paradigm
Port numbers
Sockets
Plus a few other definitions
We’ve covered most of this
TCP section 23.3
Layer 4 protocol
Connection oriented (virtual connection)
TCP segment (embedded in an IP packet) looks like
Figure 23.16 TCP segment format
23.3
Most fields have been described previously
Bit fields and the urgent pointer are used to identify
data that needs special handling.
See book for more detail.
Three-way handshake
Client and server exchange packets to set up a
connection.
Packets also identify some parameters for the
connection.
For example, TCP uses a sliding window protocol
but counts bytes instead of segments.
Figure 23.18 Connection establishment using three-way handshaking
23.6
Data transfer
Very similar to what we did when discussing flow
control (go-back-n and selective repeat) protocols.
Two differences:
The protocol numbers the bytes in a stream instead of
packets.
Protocol can increase and decrease the sending window
size dynamically.
Figure 23.25 Lost segment
23.8
Congestion control (congestion window) –
section 24.4
A receiver can tell the sender to increase or decrease
its window size depending on the receiver’s ability
to handle the data.
If segments are timing out a lot, the sender might
suspect there’s some congestion in the network. It
can then reduce the flow of new segments into the
network.
If acks are coming back quickly the sender suspects
it might be able to increase the flow of new
segments.
window size = MIN {receiver window size, size of
congestion window).
This latter value can vary (we’ll see how)
If congestion window is large => no change from
before.
Suppose timeouts occur on outstanding segments.
If caused by congestion (usually the case, since reliability
is high), resending them adds to it.
In this case, cut congestion window in half and resend
segments in the new window.
Repeat above as often as needed (minimum
congestion window would contain 1 segment)
If congestion clears
If all segments are ack’d, increase congestion window by
1 segment
Repeat until the window hits a max value
Initialization
congestion window = 1 segment.
If no timeouts occur, double it for the next set of
segments.
Keep doubling until timeouts occur or receiver window
size is reached.
Figure 24.8 Slow start, exponential increase
24.13
Figure 23.20 Connection termination using three-way handshaking
23.14
UDP (connectionless layer 4 protocol) – section
23.2
Figure 23.9 User datagram format
23.16
no connection established - Connectionless
No flow control, limited error checking.
Simple, minimum overhead
Useful for sending short messages where reliability
is less of a concern
Example
traceroute command causes the following actions:
Source creates a UDP probe packet with an unused
port number.
It puts it in an IP packet with a TTL value of 1 and
sends it to the destination.
The first router decreases the TTL value and, seeing
it is 0, replies with an ICMP (Internet Control
Message Protocol) time exceeded packet.
The source gets this reply and records the router
address and the round-trip time.
The source creates another similar UDP probe
packet and puts it in a IP packet, this time with a
TTL value of 2.
This time the packet makes it past the first router but
the second router responds as in a previous step.
Again, the source responds as previously.
The source repeatedly sends probes in IP packets
with increasing TTL values.
Each time the packet reaches one more router on the
route before it is dropped. In each case that router
responds as described and the source records the
information.
Eventually the TTL value is large enough so that the
packet reaches the destination (if it exists and is
within reach of the maximum hop value).
Because the UDP probe packet specified an unused
port, the destination responds with a “port
unreachable” message. The source recognizes this as
the last response it will see. It logs the information
and finishes.
Note: also possible to do socket exchanges using
UDP.
Other uses
Used with an app that has its own flow and error
control. Example: There is a TFTP (Trivial File
Transfer Protocol) that uses it.
Used in multicasting protocols
Used in management protocols such as SNMP
(Simple Network Management protocol – chapter 28
Routing protocols such as RIP.