Transcript lecture12
EEC-484/584
Computer Networks
Lecture 12
Wenbing Zhao
[email protected]
(Part of the slides are based on Drs. Kurose &
Ross’s slides for their Computer Networking book)
2
Outline
• Reminder:
– April 7 5pm: CSU IS&T data center tour
•
•
•
•
•
Quiz#3 results
Introduction to transport layer
Multiplexing/demultiplexing
Reliable data transfer mechanisms
Sliding window protocols (part I)
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
3
EEC 584 Quiz#3 Results
• High: 100 (9 students!), low: 67, average: 93.4
• Q1: 46.9/50, Q2: 17.6/20, Q3: 9.7/10, Q4: 19.2/20
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
4
Transport Layer
Our goals:
• Understand
principles behind
transport layer
services:
– multiplexing/demult
iplexing
– reliable data
transfer
– flow control
– congestion control
Spring Semester 2008
• Learn about transport
layer protocols in the
Internet:
– UDP: connectionless
transport
– TCP: connectionoriented transport
– TCP congestion control
EEC-484/584: Computer Networks
Wenbing Zhao
5
Transport vs. Data Link Layer
• Similarities: deal with error control, sequencing,
flow control
• Difference: operating environments
Environment of the data link layer
Spring Semester 2008
Environment of the transport layer
EEC-484/584: Computer Networks
Wenbing Zhao
6
Transport vs. Network Layer
• Network layer: logical communication between
hosts
• Transport layer: logical communication
between processes
– Relies on, enhances, network layer services
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
Internet Transport-Layer Protocols
• Reliable, in-order
delivery (TCP)
application
transport
network
data link
physical
– congestion control
– flow control
– connection setup
• Unreliable, unordered
delivery: UDP
– no-frills extension of “besteffort” IP
• Services not available:
– delay guarantees
– bandwidth guarantees
Spring Semester 2008
EEC-484/584: Computer Networks
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
Wenbing Zhao
7
8
Multiplexing/Demultiplexing
Multiplexing at send host:
gathering data from multiple
sockets, enveloping data with
header (later used for
demultiplexing)
Demultiplexing at rcv host:
delivering received segments
to correct socket
= socket
application
transport
network
link
= process
P3
P1
P1
application
P2
transport
network
P4
application
transport
network
link
link
physical
host 1
Spring Semester 2008
physical
host 2
EEC-484/584: Computer Networks
physical
host 3
Wenbing Zhao
9
How Demultiplexing Works
• Host receives IP datagrams
– Each datagram has source
IP address, destination IP
address
– Each datagram carries 1
transport-layer segment
– Each segment has source,
destination port number
• Host uses IP addresses & port
numbers to direct segment to
appropriate socket
Spring Semester 2008
32 bits
source port #
dest port #
other header fields
application
data
(message)
TCP/UDP segment format
EEC-484/584: Computer Networks
Wenbing Zhao
10
Reliable Data Transfer
characteristics of unreliable channel will determine
complexity of reliable data transfer protocol (rdt)
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
11
Reliable Data Transfer
• Basic reliable data transfer mechanisms
– Acknowledgement
– Retransmission
– Sequence numbers
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
12
Sliding Window Protocols
• Full-duplex: Use same connection for data in both
directions (AB and BA)
• 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
• Each packet contains sequence number in ranges
0..2n-1 (for n-bit sequence numbers)
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
13
Sliding Window Protocols:
Sending
• Sending window
– Start from 0 and grow to a maximum value
– List of consecutive sequence numbers of outstanding packets
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
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
14
Sliding Window Protocols:
Sending
• 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
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
15
Sliding Window Protocols:
Receiving
• 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
Spring Semester 2008
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
EEC-484/584: Computer Networks
Wenbing Zhao
16
Reliable Data Transfer:
Sliding Window Protocols
• A One-Bit Sliding Window Protocol
• A Protocol Using Go Back n
• A Protocol Using Selective Repeat
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
17
One-Bit Sliding Window Protocol
A sliding window of size 1, with a 3-bit sequence number
Initially
Spring Semester 2008
After first
packet sent
After first
packet received
EEC-484/584: Computer Networks
After first
ack received
Wenbing Zhao
18
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
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
19
Pipelining and Error Recovery
Go back n: Effective receiver window size is 1
Packets discarded
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
20
Pipelining and Error Recovery
Selective repeat
Packets buffered
Can you think of an alternative to go-back-n and selective-repeat?
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
21
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
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
22
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
Spring Semester 2008
2
3
4
5
6
7
EEC-484/584: Computer Networks
Wenbing Zhao
23
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
4
Spring Semester 2008
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
24
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
Spring Semester 2008
2
3
4
5
6
7
0
1
2
EEC-484/584: Computer Networks
3
4
5
6
7
Wenbing Zhao
25
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
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
26
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
2
Spring Semester 2008
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
27
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
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
28
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
Spring Semester 2008
Overlap
EEC-484/584: Computer Networks
Wenbing Zhao
29
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
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao
30
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
Spring Semester 2008
EEC-484/584: Computer Networks
Wenbing Zhao