30
EEC-484/584 EEC-484/584 Computer Networks Computer Networks Lecture 14 Lecture 14 Wenbing Zhao Wenbing Zhao [email protected] [email protected] (Part of the slides are based on Drs. Kurose & (Part of the slides are based on Drs. Kurose & Ross’s slides for their Ross’s slides for their Computer Networking Computer Networking book, book, and 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)

EEC-484/584 Computer Networks Lecture 14 Wenbing Zhao [email protected] (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer

  • View
    214

  • Download
    1

Embed Size (px)

Citation preview

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