lecture13 - Academic Csuohio

Download Report

Transcript lecture13 - Academic Csuohio

EEC-484/584
Computer Networks
Lecture 13
Wenbing Zhao
[email protected]
(Part of the slides are based on Drs. Kurose &
Ross’s slides for their Computer Networking book)
2
Outline
• New deadline for wiki project
(undergraduate students only): 11/21
• Sliding window protocols
• CSU IS&T Tour
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
3
Reliable Data Transfer
characteristics of unreliable channel will determine
complexity of reliable data transfer protocol (rdt)
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
4
Reliable Data Transfer
• Basic reliable data transfer mechanisms
– Acknowledgement
– Retransmission
– Sequence numbers
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
5
Reliable Data Transfer:
Sliding Window Protocols
• A One-Bit Sliding Window Protocol
• A Protocol Using Go Back n
• A Protocol Using Selective Repeat
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
6
Sliding Window Protocols
• Full-duplex: Use same connection for data in
both directions (AB and BA)
• Interleave data and ack packets
– B piggybacks its ack for A’s packet onto B’s next
packet
– Savings of header in separate ack packet
• If B sends data infrequently, use timeout to
determine when B should send ack in separate
ack packet
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
7
Sliding Window Protocols
• Each packet contains sequence number in ranges
0..2n-1 (for n-bit sequence numbers)
• Sending window – list of consecutive sequence
numbers of packets that sender is permitted to send
1st outstanding Last packet
packet
sent
0
0
1
2
3
4
5
6
1
1
2
3
4
5
6
3
4
5
6
7
4
5
6
7
7
A new packet sent
(if send window allows)
0
2
0
7
1
ack
3
2
3
Sent window shrinks when the ack corresponding
Sent window enlarges when more packet is sent
to the 1st outstanding packet Is received
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
8
Sliding Window Protocols
• When new packet arrives from application layer, it is
given next highest sequence number, and upper edge of
window is incremented
• When ack arrives from receiver, lower edge of window is
incremented
• Within sending window, packets sent but not acked
– Sender must keep those packets for possible retransmission
– If max window size = w, need w buffers
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
9
Sliding Window Protocols
• Receiving window – list of consecutive sequence
numbers of packets that receiver is permitted to accept
• When packet with (seq num = lower edge of window) arrives
– Packet is passed to higher layer
– Ack is generated
– Window slid down by 1 (remains same size as was initially)
3
Fall Semester 2007
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
EEC-484/584: Computer Networks
Wenbing Zhao
10
One-Bit Sliding Window Protocol
A sliding window of size 1, with a 3-bit sequence number
Initially
Fall Semester 2007
After first
packet sent
After first
packet received
EEC-484/584: Computer Networks
After first
ack received
Wenbing Zhao
11
Sliding Window Protocols: Pipelining
• Problem of one-bit sliding window protocol:
– Sender blocks till receives acks
• Solution: pipelining
– Allow sender to send up to w packets before blocking
• With pipelining, if packet in middle is lost or
damaged, what to do with the packets following it ?
• Solution: two strategies
– Go Back n - all the packets following it are discarded
– Selective repeat – nack the lost/damaged packet and
retransmit that packet
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
12
Pipelining and Error Recovery
Go back n: Effective receiver window size is 1
Packets discarded
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
13
Pipelining and Error Recovery
Selective repeat
Packets buffered
Can you think of an alternative to go-back-n and selective-repeat?
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
14
Go Back n
• Sender
– Stores all packets in output buffer
– Must get acks in order in which packets are sent
• Receiver
– Discards all packets following lost or damaged one
• Works well
– If transmission errors rare and few retransmissions
– If lot of traffic in both directions
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
15
Selective Repeat
• Receiver accepts and buffers packets following
lost or damaged packets
• Both sender and receiver maintain windows
– Sender’s window starts at 0, grows to MAX SEQ
– Receiver’s window fixed at MAX SEQ
• Receiver has buffer reserved for each seq num
in its window
0
1
Fall Semester 2007
2
3
4
5
6
7
0
1
2
EEC-484/584: Computer Networks
3
4
5
6
7
Wenbing Zhao
16
Selective Repeat
• When packet arrives, receiver checks if seq num in
window
• If so and if not already received, this packet is accepted
and stored
• If all lower numbered packets delivered, this packet is
delivered as well
5
0
1
2
3
Fall Semester 2007
4
5
3
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
EEC-484/584: Computer Networks
Wenbing Zhao
17
Non-Sequential Receive Problem
• New range of valid sequence numbers for
receiver can overlap old range
• Overlap can contain duplicates
• Example: n = 3-bit seq num (8 possible numbers,
0 through 7, back to 0)
0
1
Fall Semester 2007
2
3
4
5
6
7
0
1
2
EEC-484/584: Computer Networks
3
4
5
6
7
Wenbing Zhao
18
Non-Sequential Receive Problem
• Sender sends 0,1,2,3,4,5,6
• Receiver
– Receives 0,1,2,3,4,5,6
– Sends ack but ack gets lost
– Expects to receive 7,0,1,2,3,4,5
0
1
2
3
4
5
6
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
19
Non-Sequential Receive Problem
• Sender times out, retransmits 0,1,2,3,4,5,6
• Receiver checks 0 is in new window, thinks new 0
because has sent ack for old 6, waits for 7
0
1
Fall Semester 2007
2
3
4
5
6
7
0
1
2
3
4
5
6
0
1
2
3
4
5
6
EEC-484/584: Computer Networks
7
Wenbing Zhao
20
Non-Sequential Receive Problem
• Sender receives ack for 0-6, sends 7
• Receiver receives 7, delivers 7 and
old 0 (as new 0 !)
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
21
Non-Sequential Receive Problem
• The problem is caused by the overlap of
sequence number between the new receiving
window and the old receiving window
0
1
2
3
4
5
6
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
Overlap
Fall Semester 2007
Overlap
EEC-484/584: Computer Networks
Wenbing Zhao
22
Non-Sequential Receive Problem
• Solution:
– make sure no overlap when receiver advances its
window
– Make window size w =1/2 range of seq numbers
0
1
2
3
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
No Overlap
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao
23
Selective Repeat
• If no reverse traffic before timer goes off, separate ack is
sent
• When receiver suspects error, sends NAK back to sender
(request for retransmission)
• Two circumstances that trigger NAK
– Damaged packet arrives
– Packet other than expected one arrives, suspect expected one is
lost
• Receiver sends only one NAK for packet expected
Fall Semester 2007
EEC-484/584: Computer Networks
Wenbing Zhao