The Transport Layer - start [kondor.etf.rs]

advertisement
The Transport Layer
The Transport Service
•
•
Services provided to the application layer
by using the network layer service
Transport header of a segment exchanged
between two users is not read by routers
and packet switches.
Transport Service
The nesting of TPDUs, packets, and frames.
Berkeley Sockets
The socket primitives for TCP.
Elements of Transport Protocols
•
•
•
•
•
•
Addressing
Connection Establishment
Connection Release
Flow and Congestion Control
Buffering
Multiplexing, Demultiplexing
UDP and TCP
•
•
User Datagram Protocol (UDP) provides only of
multiplexing/ demultiplexing of data exchange
between different applications. It is connectionless
service.
Transmission Control Protocol (TCP) provides a
reliable service to the applications. It is connection
oriented service.
UDP and TCP Addressing
•
•
•
•
Whenever a UDP socket is created, an available or a
specified port number is assigned to it.
The UDP socket is determined only by the
destination port number. The source port number
serves as a return address.
The TCP server application has a “welcoming
socket” for accepting connection requests. When a
client socket is created, a port number is assigned to
it and a connection is requested.
TCP server socket is determined by the source IP
address, source port number, destination IP address,
destination port number.
The TCP Service Model
Port
21
23
25
69
79
80
110
119
Protocol
FTP
Telnet
SMTP
TFTP
Finger
HTTP
POP-3
NNTP
Use
File transfer
Remote login
E-mail
Trivial File Transfer Protocol
Lookup info about a user
World Wide Web
Remote e-mail access
USENET news
Some assigned ports.
UDP Segment Header
The UDP header.
Real-Time Transport Protocol (RTP)
(a) The position of RTP in the protocol stack. (b) Packet nesting.
RTP Header
Add Hdr
4B pad
Sources #
Coding Type
The RTP header.
Transport Control Protocol (TCP)
•
•
•
•
•
•
TCP Connection Establishment
TCP Connection Release
TCP Connection Management Modeling
TCP Transmission Policy
TCP Flow and Congestion Control
TCP Timer Management
The TCP Segment Header
TCP Header.
The TCP Segment Header
The pseudoheader included in the TCP checksum.
TCP Connection Establishment
6-31
(a) TCP connection establishment in the normal case.
(b) Call collision.
TCP Connection Management Modeling
Client starts TCP
Wait 30s
CLOSED
Send SYN
TIME_WAIT
SYN_SENT
Receive FIN,
Send ACK
Receive SYN & ACK
Send ACK
FIN_WAIT_2
ESTABLISHED
Send FIN
Receive ACK
FIN_WAIT_1
TCP Connection Management Modeling
Server application creates LISTEN socket
Receive ACK
CLOSED
LAST_ACK
LISTEN
Send FIN
Receive SYN
Send SYN & ACK
CLOSE_WAIT
SYN_RCVD
Receive ACK
Receive FIN
Send ACK
ESTABLISHED
TCP Mechanisms
•
•
•
•
TCP is a combination of Go Back N and Selective
Repeat protocols.
Receiver sends ack with the sequence number of
the last received byte. It is cumulative, meaning
that it acks all previously received segments.
Sender keeps only the info about the first unacked segment, and retransmits the previous segment
when it the timer expires or when it receives 3
identical ACKs.
Receiver has buffer and may receive segments out
of order.
TCP ACK Generation
•
•
•
•
When a segment arrives in order and all previous
data are acked, receiver waits for 500ms and
sends ACK.
When a segment arrives in order and there is one
segment waiting for ACK, the ACK is sent
immediately.
When a segment arrives out of order, immediately
send ACK with the next expected sequence
number.
Arrival of segment that fills the gap. Immediately
send ACK.
Flow Control
•
•
•
Processor of the receiver often handles multiple
applications and tasks, so the speed of handling of
a specific application is variable and limited.
Receiver sends the receive window with each
ACK, that specifies the empty space in the
receiver buffer.
Sender makes sure that the difference between the
last byte sent and the last byte acked is smaller
than the receive window, so that the receive
buffer is not overflowed.
TCP Transmission Policy
Window management in TCP.
Congestion Control
•
•
•
•
•
•
When a timeout period expires, sender retransmits a
packet, and timer is triggered again but it is set to twice
the previous value. When a new segment is generated, or
when ACK is received, the timer is set to the estimated
timeout period.
Window size (w) is initially set to 0 and threshold size (t)
is set to some large value.
When w<t, w grows exponentially fast (incremented by
one whenever it receives ACK)-slow-start phase.
When w>t, w grows linearly (roughly by 1 once per RTT).
When triple ACK occcurs, the t=w/2, w=t.
If timeout happens, t=w/2, w=1.
Congestion Control
•
Sender must ensure that:
Last byte sent – Last byte ACKed ≤
min{Congestion Window, Received Window}
TCP Congestion Control
An example of the Internet congestion algorithm.
TCP Timer Management
(a) Probability density of ACK arrival times in the data link layer.
(b) Probability density of ACK arrival times for TCP.
Timeout Calculation
•
Timeout is
Timeout=2RTT
where RTT is a round-trip time:
RTT=αRTT+(1-α)M, α=7/8
• Alternatively timeout is:
Timeout = RTT+4xD
where D is estimated variance:
D=αD+(1-α)|RTT-M|
TCP Versions
•
•
•
TCP Reno
TCP Vegas is modification of Reno
TCP Tahoe is older version
Wireless TCP and UDP
Splitting a TCP connection into two connections.
Download