EEC-484/584EEC-484/584Computer NetworksComputer Networks
Lecture 14Lecture 14
Wenbing ZhaoWenbing Zhao
[email protected]@ieee.org(Part of the slides are based on Drs. Kurose & Ross’s slides (Part of the slides are based on Drs. Kurose & Ross’s slides
for their for their Computer Networking Computer Networking book, and book, and on materials supplied by on materials supplied by Dr. Louise Moser at UCSB and Prentice-Hall)Dr. Louise Moser at UCSB and Prentice-Hall)
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
22
OutlineOutline
• Quiz#3 results
• Introduction to transport layer
• Multiplexing/demultiplexing
• Sliding window protocols
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
33
EEC 484/584 Quiz#3 ResultsEEC 484/584 Quiz#3 Results• High: 98, low: 50, average: 85• Q1: 26/30, Q2: 26/30, Q3: 8/10, Q4: 8/10, Q5: 18/20
0
2
4
6
8
10
12
14
50-54 55-59 60-69 70-84 85-89 90-100
Grade Range
Nu
mb
er o
f S
tud
ents
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
44
Transport LayerTransport LayerOur goals: • Understand
principles behind transport layer services:– multiplexing/
demultiplexing– reliable data
transfer– flow control– congestion control
• Learn about transport layer protocols in the Internet:– UDP: connectionless
transport– TCP: connection-
oriented transport– TCP congestion control
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
55
Transport vs. Data Link LayerTransport vs. Data Link Layer
• Similarities: deal with error control, sequencing, flow control
• Difference: operating environments
Environment of the data link layer Environment of the transport layer
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
66
Transport vs. Network LayerTransport vs. Network Layer
• Network layer: logical communication between hosts
• Transport layer: logical communication between processes – Relies on, enhances, network layer services
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
77
Internet Transport-Layer ProtocolsInternet Transport-Layer Protocols
• Reliable, in-order delivery (TCP)– congestion control – flow control– connection setup
• Unreliable, unordered delivery: UDP– no-frills extension of “best-
effort” IP
• Services not available: – delay guarantees– bandwidth guarantees
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
88
Multiplexing/DemultiplexingMultiplexing/Demultiplexing
application
transport
network
link
physical
P1 application
transport
network
link
physical
application
transport
network
link
physical
P2P3 P4P1
host 1 host 2 host 3
= process= socket
delivering received segmentsto correct socket
Demultiplexing at rcv host:gathering data from multiplesockets, enveloping data with header (later used for demultiplexing)
Multiplexing at send host:
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
99
How Demultiplexing WorksHow 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
source port # dest port #
32 bits
applicationdata
(message)
other header fields
TCP/UDP segment format
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
1010
Principles of Reliable Data TransferPrinciples of Reliable Data Transfer
characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
1111
Reliable Data Transfer:Reliable Data Transfer:Sliding Window ProtocolsSliding Window Protocols
• Recall that we have studies several simplex reliable transfer protocols in data link layer
• Here we study a few more realistic protocols– A One-Bit Sliding Window Protocol– A Protocol Using Go Back n– A Protocol Using Selective Repeat
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
1212
Sliding Window ProtocolsSliding 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
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
1313
Sliding Window ProtocolsSliding 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
0 1 2 3 4 5 6 7
1st outstanding packet
Last packetsent
0 1 2 3 4 5 6 7
3ack
0 1 2 3 4 5 6 7
A new packet sent (if send window allows)
Sent window enlarges when more packet is sent
0 1 2 3 4 5 6 7
Sent window shrinks when the ack corresponding to the 1st outstanding packet Is received
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
1414
Sliding Window ProtocolsSliding 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
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
1515
Sliding Window ProtocolsSliding 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)
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
3
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
1616
One-Bit Sliding Window ProtocolOne-Bit Sliding Window ProtocolA sliding window of size 1, with a 3-bit sequence number
Initially After first packet sent
After first packet received
After first ack received
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
1717
One-Bit Sliding Window ProtocolOne-Bit Sliding Window Protocol
No duplicate, no omissions, no deadlock, but inefficient
The notation is (seq, ack, packet number)An asterisk indicates where a packet is delivered
Normal case Abnormal case
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
1818
Sliding Window Protocols: PipeliningSliding 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 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
1919
Pipelining and Error RecoveryPipelining and Error Recovery
Go back n: Effective receiver window size is 1
Packets discarded
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
2020
Pipelining and Error RecoveryPipelining and Error Recovery
Selective repeat
Can you think of an alternative to go-back-n and selective-repeat?
Packets buffered
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
2121
Go Back Go Back nn
• 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 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
2222
Selective RepeatSelective 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 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
2323
Selective RepeatSelective 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
0 1 2 3 4 5 6 7
5
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
3
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
2424
Non-Sequential Receive Problem 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 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
2525
Non-Sequential Receive ProblemNon-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 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
2626
Non-Sequential Receive ProblemNon-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 3 4 5 6
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
2727
Non-Sequential Receive ProblemNon-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 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
2828
Non-Sequential Receive ProblemNon-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 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Overlap Overlap
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
2929
Non-Sequential Receive ProblemNon-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 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
No Overlap
Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao
3030
Selective RepeatSelective 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