0% found this document useful (0 votes)
101 views16 pages

Lec 3 - Transport Layer - V - Pipelining Protocols

1. Selective repeat is a pipelined transport protocol that allows the sender to have multiple unacknowledged packets in the pipeline. The receiver individually acknowledges each correctly received packet and buffers out-of-order packets. 2. With selective repeat, the sender maintains a sending window of sequence numbers and only retransmits packets for which an ACK has not been received. The receiver maintains a receiving window and buffers packets that are out-of-order for eventual in-order delivery. 3. When an ACK for a previously unacknowledged packet arrives, the sender advances its window. The receiver delivers buffered packets in order and acknowledges any new correctly received packets.

Uploaded by

Muhammad Junaid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
101 views16 pages

Lec 3 - Transport Layer - V - Pipelining Protocols

1. Selective repeat is a pipelined transport protocol that allows the sender to have multiple unacknowledged packets in the pipeline. The receiver individually acknowledges each correctly received packet and buffers out-of-order packets. 2. With selective repeat, the sender maintains a sending window of sequence numbers and only retransmits packets for which an ACK has not been received. The receiver maintains a receiving window and buffers packets that are out-of-order for eventual in-order delivery. 3. When an ACK for a previously unacknowledged packet arrives, the sender advances its window. The receiver delivers buffered packets in order and acknowledges any new correctly received packets.

Uploaded by

Muhammad Junaid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Computer and

Communication Networks
EE-357 -TE-54
By Dr Mir Yasir Umair
Assistant Professor, MCS, NUST
Transport Layer
Pipelining Protocols
Chapter 3 outline
3.1 transport-layer services 3.5 connection-oriented
3.2 multiplexing and demultiplexing transport: TCP
▪ segment structure
3.3 connectionless transport: UDP ▪ reliable data transfer
3.4 principles of reliable data transfer ▪ flow control
▪ connection management

3.6 principles of congestion


control
3.7 TCP congestion control

Transport Layer 3-3


Pipelined protocols
pipelining: sender allows multiple, “in-flight”, yet-
to-be-acknowledged pkts
o range of sequence numbers must be increased
o buffering at sender and/or receiver

❖ two generic forms of pipelined protocols: go-Back-


N, selective repeat
Transport Layer 3-4
Pipelining: increased utilization
sender receiver
first packet bit transmitted, t = 0
last bit transmitted, t = L / R

first packet bit arrives


RTT last packet bit arrives, send ACK
last bit of 2nd packet arrives, send ACK
last bit of 3rd packet arrives, send ACK
ACK arrives, send next
packet, t = RTT + L / R
3-packet pipelining increases
utilization by a factor of 3!

U 3L / R .0024
sender = = = 0.00081
RTT + L / R 30.008

Transport Layer 3-5


Pipelined protocols: overview
Go-back-N: Selective Repeat:
• sender can have up to • sender can have up to N
N unacked packets in unack’ed packets in
pipeline pipeline
• receiver only sends • rcvr sends individual ack
cumulative ack for each packet
o doesn’t ack packet if
there’s a gap
• sender has timer for • sender maintains timer
oldest unacked for each unacked
packet packet
o when timer expires, retransmit o when timer expires, retransmit
all unacked packets only that unacked packet

Transport Layer 3-6


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 receiver)
❖ timer for oldest in-flight pkt
❖ timeout(n): retransmit packet n and all higher seq # pkts in
window
Transport Layer 3-7
GBN: receiver
ACK-only: always send ACK for correctly-received pkt
with highest in-order seq #
o may generate duplicate ACKs
o need only remember expectedseqnum

• out-of-order pkt:
o discard (don’t buffer): no receiver buffering!
o re-ACK pkt with highest in-order seq #

Transport Layer 3-8


GBN in action
sender window (N=4) sender receiver
012345678 send pkt0
012345678 send pkt1
012345678 send pkt2 receive pkt0, send ack0
012345678 send pkt3 Xloss receive pkt1, send ack1
(wait)
receive pkt3, discard,
012345678 rcv ack0, send pkt4 (re)send ack1
012345678 rcv ack1, send pkt5 receive pkt4, discard,
(re)send ack1
ignore duplicate ACK receive pkt5, discard,
(re)send ack1
pkt 2 timeout
012345678 send pkt2
012345678 send pkt3
012345678 send pkt4 rcv pkt2, deliver, send ack2
012345678 send pkt5 rcv pkt3, deliver, send ack3
rcv pkt4, deliver, send ack4
rcv pkt5, deliver, send ack5

Transport Layer 3-9


Go-Back-N protocol Demo
Selective repeat
• receiver individually acknowledges all correctly
received pkts
o buffers pkts, as needed, for eventual in-order delivery to upper
layer

• sender only resends pkts for which ACK not


received
o sender timer for each unACKed pkt

• sender window
o N consecutive seq #’s
o limits seq #s of sent, unACKed pkts

Transport Layer 3-11


Selective repeat: sender, receiver windows

Transport Layer 3-12


Selective repeat
sender receiver
data from above: pkt n in [rcvbase, rcvbase+N-1]
❖ if next available seq # in ❖ send ACK(n)
window, send pkt ❖ out-of-order: buffer
❖ in-order: deliver (also
timeout(n): deliver buffered, in-order
❖ resend pkt n, restart timer pkts), advance window to
ACK(n) in [sendbase,sendbase+N]: next not-yet-received pkt
❖ mark pkt n as received pkt n in [rcvbase-N,rcvbase-1]
❖ ACK(n)
❖ if n smallest unACKed pkt,
otherwise:
advance window base to
❖ ignore
next unACKed seq #

Transport Layer 3-13


Selective repeat in action
sender window (N=4) sender receiver
012345678 send pkt0
012345678 send pkt1
012345678 send pkt2 receive pkt0, send ack0
012345678 send pkt3 Xloss receive pkt1, send ack1
(wait)
receive pkt3, buffer,
012345678 rcv ack0, send pkt4 send ack3
012345678 rcv ack1, send pkt5 receive pkt4, buffer,
send ack4
record ack3 arrived receive pkt5, buffer,
send ack5
pkt 2 timeout
012345678 send pkt2
012345678 record ack4 arrived
012345678 rcv pkt2; deliver pkt2,
record ack5 arrived
012345678 pkt3, pkt4, pkt5; send ack2

Q: what happens when ack2 arrives?

Transport Layer 3-14


sender window receiver window
Selective repeat: (after receipt) (after receipt)

dilemma 0123012
0123012
pkt0
pkt1 0123012
0123012 pkt2 0123012
example: 0123012
pkt3
• seq #’s: 0, 1, 2, 3
0123012
X
0123012
• window size=3 pkt0 will accept packet
with seq number 0
(a) no problem
❖ receiver sees no
difference in two receiver can’t see sender side.
scenarios! receiver behavior identical in both cases!
something’s (very) wrong!
❖ duplicate data
accepted as new in 0123012 pkt0
(b) 0123012 pkt1 0123012
0123012 pkt2 0123012
X 0123012
Q: what relationship X
between seq # size timeout
retransmit pkt0 X
and window size to 0123012 pkt0
will accept packet
avoid problem in (b)? with seq number 0
(b) oops!
Transport Layer 3-15
Thank you

EE 451 Mobile Communications

You might also like