Professional Documents
Culture Documents
Transport Layer Part 2
Transport Layer Part 2
sender receiver
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
udt_send(ACK)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt)
L 8000bits
d trans = = 9
= 8 microseconds
R 10 bps
m U sender: utilization – fraction of time sender busy sending
U L/R .008
= = = 0.00027
sender 30.008
RTT + L / R microsec
onds
m 1KB pkt every 30 msec -> 33kB/sec thruput over 1 Gbps link
m network protocol limits use of physical resources!****
U L/R .008
= = = 0.00027
sender 30.008
RTT + L / R microsec
onds
Increase utilization
by a factor of 3!
U 3*L/R .024
= = = 0.0008
sender 30.008
RTT + L / R microsecon
ds
Transport Layer 3-18
Pipelining Protocols
Go-back-N: big picture: Selective Repeat: big pic
r Sender can have up to r Sender can have up to
N unacked packets in N unacked packets in
pipeline pipeline
r Rcvr only sends r Rcvr acks individual
cumulative acks packets
m Doesn’t ack packet if r Sender maintains
there’s a gap timer for each
r Sender has timer for unacked packet
oldest unacked packet m When timer expires,
m If timer expires, retransmit only unack
retransmit all unacked packet
packets
loop (forever) {
switch(event)
Seq=9 Seq=9
2, 8 b 2, 8 b
ytes d ytes d
ata Seq= ata
Seq=92 timeout
100,
20 by
tes d
ata
timeout
C K =100
A 0
10
X C K
A AC
=
K =120
loss
Seq=9 Seq=9
2, 8 b
2, 8 b
ytes d Sendbase ytes d
ata
ata
= 100
Seq=92 timeout
SendBase
= 120 =120
K
C K =100 AC
A
SendBase
= 100 SendBase
= 120 premature timeout
time time
lost ACK scenario
Transport Layer 3-31
TCP retransmission scenarios (more)
Host A Host B
Seq=9
2, 8 b
ytes d
ata
=100
timeout
Seq=1 A C K
00, 20
bytes
data
X
loss
SendBase C K =120
A
= 120
time
Cumulative ACK scenario
m seq. #s m no data
close
client closes socket: FIN
clientSocket.close();
timed wait
Step 2: server receives A CK
timed wait
A CK
closed
closed