Adapted from: Computer Networking, Kurose/Ross 1DT066 Distributed Information Systems Chapter 3 Transport Layer Adapted from: Computer Networking, Kurose/Ross Transport Layer 3-2 Our Goals: Transport Layer ! principles of transport services ! Internet transport layer protocols: " UDP: connectionless transport " TCP: connection-oriented reliable transport
16
Embed
Chapter 3 · Transport 3-3 Layer Chapter 3, Transport, Outline! 3.1 Internet transport-layer services: UDP & TCP! 3.3 connectionless transport: UDP! 3.4 principles of reliable data
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Adapted from: Computer Networking, Kurose/Ross!
1DT066"Distributed Information Systems"
" Chapter 3!
Transport Layer"!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-2
Our Goals: Transport Layer!
! principles of transport services!
! Internet transport layer protocols:!" UDP: connectionless
transport!" TCP: connection-oriented
reliable transport!!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-3
Chapter 3, Transport, Outline!
3.1 Internet transport-layer services: UDP & TCP!3.3 connectionless transport: UDP!3.4 principles of reliable data transfer!3.5 connection-oriented transport: TCP!
" name look-up services (e.g. the Domain Name Service protocol) Why?!
" apps that adds reliability (e.g. remote procedure calls)!
" apps that use specific error recovery (e.g. TV broadcast).!
pp 224-230!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-7
Why is there a UDP!
! no connection establishment before sending data (which adds delay)!
! simple: no connection state at sender, receiver that has to be maintained.!
! no flow control: UDP can blast away segments as fast as desired without waiting for a receiver OK.!!
pp 244-!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-8
UDP: segment(data packet) header!
source port # dest port #
32 bits
Application data
(Payload)
UDP segment format
length checksum
length, in bytes of UDP segment,
including header
pp 224-230!
To detect if there are bit errors in the
header & data sections
Header
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-9
Principles of reliable data transfer!! important in application, transport, link layers!
" top-10 list of important networking topics!!
! characteristics of unreliable channel will determine the complexity of a reliable data transfer protocol (rdt)!
pp 230-233!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-10
! characteristics of unreliable channel will determine the complexity of a reliable data transfer protocol (rdt)!
Principles of reliable data transfer!! important in application, transport, link layers!
" top-10 list of important networking topics!!
pp 224-230!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-11
! characteristics of unreliable channel will determine the complexity of a reliable data transfer protocol (rdt)!
! important in application, transport, link layers!" top-10 list of important networking topics!!
Principles of reliable data transfer!
pp 224-230!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-12
sender receiver
rcv pkt1
rcv pkt0
send ack0
send ack1
send ack0
rcv ack0
send pkt0
send pkt1
rcv ack1
send pkt0 rcv pkt0
pkt0
pkt0
pkt1
ack1
ack0
ack0
(a) no loss
sender receiver
rcv pkt1
rcv pkt0
send ack0
send ack1
send ack0
rcv ack0
send pkt0
send pkt1
rcv ack1
send pkt0 rcv pkt0
pkt0
pkt0
ack1
ack0
ack0
(b) packet loss
pkt1 X
loss
pkt1 timeout
resend pkt1
Example of a Reliable Data Transfer Protocol: Packet Loss !
pp 238-241!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-13
rcv pkt1 send ack1
(detect duplicate)
pkt1
sender receiver
rcv pkt1
rcv pkt0
send ack0
send ack1
send ack0
rcv ack0
send pkt0
send pkt1
rcv ack1
send pkt0 rcv pkt0
pkt0
pkt0
ack1
ack0
ack0
(c) ACK loss
ack1 X
loss
pkt1 timeout
resend pkt1
rcv pkt1 send ack1
(detect duplicate)
pkt1
sender receiver
rcv pkt1
send ack0 rcv ack0
send pkt1
send pkt0 rcv pkt0
pkt0
ack0
(d) premature timeout/ delayed ACK
pkt1 timeout
resend pkt1
ack1
send ack1
send pkt0 rcv ack1
pkt0
ack1
ack0
send pkt0 rcv ack1 pkt0
rcv pkt0 send ack0 ack0
rcv pkt0
send ack0 (detect duplicate)
pp 238-241!
Example of a Reliable Data Transfer Protocol: Ack loss!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-14
stop-and-wait operation!
first packet bit transmitted, t = 0
sender receiver
Round Trip Time=RTT
last packet bit transmitted, t = L / R
first packet bit arrives last packet bit arrives, send ACK
ACK arrives, send next packet, t = RTT + L / R
U sender = L / R
RTT + L / R
pp 241-244!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-15
Pipelined protocols!
pipelining: sender allows multiple, �in-flight�, yet-to-be-acknowledged packets!" range of sequence numbers must be increased!" buffering at sender and/or receiver!
! two generic forms of pipelined protocols: go-Back-N, selective repeat!
pp 244-!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-16
Pipelining: increased utilization!
first packet bit transmitted, t = 0
sender receiver
RTT
last bit transmitted, t = L / R
first packet bit arrives last packet bit arrives, send ACK
ACK arrives, send next packet, t = RTT + L / R
last bit of 2nd packet arrives, send ACK last bit of 3rd packet arrives, send ACK
3-packet pipelining increases utilization by a factor of 3!
U sender = 3L / R
RTT + L / R
pp 241-244!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-17
Pipelined protocols: overview!
Go-back-N:!! sender can have up to
N un-acked packets in pipeline!
! Receiver sends a cumulative ack!" Doesn’t ack packet if
there’s a gap!! sender has timer for
oldest un-acked packet!" when timer expires,
retransmit all un-acked packets!
Selective Repeat:!! sender can have up to N
unack’ed packets in pipeline!
! receiver sends individual ack for each packet!!! sender maintains timer for
each un-acked packet!" when timer expires,
retransmit only that unacked packet!
pp 244-251!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-18
Go-Back-N: sender!! k-bit seq # in pkt header!! �window� of up to N, consecutive unack’ed pkts allowed!
! ACK(n): ACKs all pkts up to, including seq # n - �cumulative ACK�!" may receive duplicate ACKs (see next slide)!
! timer for oldest in-flight pkt!! timeout(n): retransmit packet n and all higher seq # pkts in
window!
pp 244-251!
Adapted from: Computer Networking, Kurose/Ross! Transport Layer 3-19