L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u...

69
LECTURE 3 - TRANSPORT LECTURE 3 - TRANSPORT LAYER (1) LAYER (1) 1

Transcript of L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u...

Page 1: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

LECTURE 3 - TRANSPORTLECTURE 3 - TRANSPORTLAYER (1)LAYER (1)

1

Page 2: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

GOALSGOALSUnderstand principles behind transport layer services:

mul�plexing, demul�plexing

reliable data transfer

Learn about Internet transport layer protocols:

UDP: connec�onless transport

TCP: next week

2

Page 3: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

TRANSPORT-LAYER SERVICESTRANSPORT-LAYER SERVICES

3 . 1

Page 4: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

TRANSPORT SERVICES AND PROTOCOLSTRANSPORT SERVICES AND PROTOCOLSProvide logical communica�on between app processes running ondifferent hosts

Transport protocols run in end systems

Sending side: breaks app messages into segments, passes tonetwork layer

Receiving side: reassembles segments into messages, passes toapp layer

More than one transport protocol available to apps

Internet: TCP and UDP

3 . 2

Page 5: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

TRANSPORT VS. NETWORK LAYERTRANSPORT VS. NETWORK LAYERTransport layer: logical communica�on between processes

Network layer: logical communica�on between hosts

Relies on, enhances, network layer services

3 . 3

Page 6: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

HOUSEHOLD ANALOGYHOUSEHOLD ANALOGY12 kids in Ann’s house sending le�ers to 12 kids in Bill’s house:

Hosts = houses

Processes = kids

App messages = le�ers in envelopes

Transport protocol = Ann and Bill who demux to in-house siblings

Network-layer protocol = postal service

3 . 4

Page 7: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

INTERNET TRANSPORT-LAYER PROTOCOLSINTERNET TRANSPORT-LAYER PROTOCOLSReliable, in-order delivery: TCP

Conges�on control

Flow control

Connec�on setup

Unreliable, unordered delivery: UDP

No-frills extension of “best-effort” IP

Services not available:

Delay guarantees

Bandwidth guarantees3 . 5

Page 8: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

MULTIPLEXING/DEMULTIPLEXINGMULTIPLEXING/DEMULTIPLEXINGMul�plexing at sender:

Handle data from mul�ple sockets, add transport header (later usedfor demul�plexing)

Demul�plexing at receiver:

use header info to deliver received segments to correct socket

4 . 1

Page 9: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

HOW DEMULTIPLEXING WORKSHOW DEMULTIPLEXING WORKS

4 . 2

Page 10: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

HOW DEMULTIPLEXING WORKSHOW DEMULTIPLEXING WORKSHost receives IP datagrams

Each datagram has source IP address, des�na�on IP address

Each datagram carries one transport-layer segment

Each segment has source, des�na�on port number

Host uses IP addresses and port numbers to direct segment toappropriate socket

4 . 3

Page 11: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

CONNECTIONLESS DEMULTIPLEXINGCONNECTIONLESS DEMULTIPLEXINGRecall: created socket has host-local port #:

Recall: when crea�ng datagram to send into UDP socket, mustspecify

Des�na�on IP address

Des�na�on port #

when host receives UDP segment:

checks des�na�on port # in segment

directs UDP segment to socket with that port #

DatagramSocket mySocket = new DatagramSocket(12534);

4 . 4

Page 12: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

CONNECTIONLESS DEMULTIPLEXINGCONNECTIONLESS DEMULTIPLEXINGIP datagrams with same dest. port #, but different source IPaddresses and/or source port numbers will be directed tosame socket at dest

4 . 5

Page 13: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

CONNECTIONLESS DEMUX: EXAMPLECONNECTIONLESS DEMUX: EXAMPLE

4 . 6

Page 14: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

CONNECTION-ORIENTED DEMUXCONNECTION-ORIENTED DEMUXTCP socket iden�fied by 4-tuple:

(Source IP address, Source port number, Dest IP address, Destport number)

Demux: receiver uses all four values to direct segment toappropriate socket

Server host may support many simultaneous TCP sockets:

Each socket iden�fied by its own 4-tuple

Web servers have different sockets for each connec�ng client

Non-persistent HTTP will have different socket for each request

4 . 7

Page 15: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

CONNECTION-ORIENTED DEMUX: EXAMPLECONNECTION-ORIENTED DEMUX: EXAMPLE

4 . 8

Page 16: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

CONNECTION-ORIENTED DEMUX: EXAMPLECONNECTION-ORIENTED DEMUX: EXAMPLE

4 . 9

Page 17: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

UDP: USER DATAGRAM PROTOCOLUDP: USER DATAGRAM PROTOCOLRFC 768

"No frills," "bare bones" Internet transport protocol

"Best effort" service, UDP segments may be:

Lost

Delivered out-of-order to app

Connec�onless:

No handshaking between UDP sender, receiver

Each UDP segment handled independently of others

5 . 1

Page 18: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

UDP: USER DATAGRAM PROTOCOLUDP: USER DATAGRAM PROTOCOLUDP use:

Streaming mul�media apps (loss tolerant, rate sensi�ve)

DNS

SNMP

Reliable transfer over UDP:

Add reliability at applica�on layer

Applica�on-specific error recovery!

5 . 2

Page 19: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

UDP: SEGMENT HEADERUDP: SEGMENT HEADERwhy is there a UDP?

No connec�on establishment (which can add delay)

Simple: no connec�on state at sender, receiver

Small header size

No conges�on control: UDP can blast away as fast as desired

No breaks due to lost packets

5 . 3

Page 20: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

UDP: SEGMENT HEADERUDP: SEGMENT HEADER

5 . 4

Page 21: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

UDP CHECKSUMUDP CHECKSUMGoal: detect "errors" (e.g., flipped bits) in transmi�ed segment

5 . 5

Page 22: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

UDP CHECKSUMUDP CHECKSUMSender:

Treat segment contents, including header fields, as sequence of16-bit integers

Checksum: addi�on (one’s complement sum) of segment contents

Sender puts checksum value into UDP checksum field

5 . 6

Page 23: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

UDP CHECKSUMUDP CHECKSUMReceiver:

Compute checksum of received segment

Check if computed checksum equals checksum field value:

[NO] error detected

[YES] no error detected. But maybe errors nonetheless? Morelater…

5 . 7

Page 24: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

INTERNET CHECKSUM: EXAMPLEINTERNET CHECKSUM: EXAMPLE

5 . 8

Page 25: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

PRINCIPLES OF RELIABLE DATA TRANSFERPRINCIPLES OF RELIABLE DATA TRANSFERImportant in applica�on, transport, link layers

6

Page 26: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

PRINCIPLES OF RELIABLE DATA TRANSFERPRINCIPLES OF RELIABLE DATA TRANSFERcharacteris�cs of unreliable channel will determine complexityof reliable data transfer protocol (rdt)

7 . 1

Page 27: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RELIABLE DATA TRANSFER: GETTING STARTEDRELIABLE DATA TRANSFER: GETTING STARTED

7 . 2

Page 28: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RELIABLE DATA TRANSFER: GETTING STARTEDRELIABLE DATA TRANSFER: GETTING STARTEDIncrementally develop sender, receiver sides of reliable datatransfer protocol (rdt)

Consider only unidirec�onal data transfer

but control info will flow on both direc�ons!

Use finite state machines (FSM) to specify sender, receiver

7 . 3

Page 29: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT1.0RDT1.0Reliable transfer over a reliable channel

Underlying channel perfectly reliable

No bit errors & no loss of packets

Separate FSMs for sender, receiver:

Sender sends data into underlying channel

Receiver reads data from underlying channel

7 . 4

Page 30: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT2.0: CHANNEL WITH BIT ERRORSRDT2.0: CHANNEL WITH BIT ERRORSUnderlying channel may flip bits in packet

Checksum to detect bit errors

The ques�on: how to recover from errors:

Acknowledgements (ACKs): receiver explicitly tells sender thatpkt received OK

Nega�ve acknowledgements (NAKs): receiver explicitly tellssender that pkt had errors

Sender retransmits pkt on receipt of NAK

7 . 5

Page 31: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT2.0: CHANNEL WITH BIT ERRORSRDT2.0: CHANNEL WITH BIT ERRORSNew mechanisms in Rdt2.0 (beyond Rdt1.0):

Error detec�on

Feedback: control messages (ACK,NAK) from receiver to sender

7 . 6

Page 32: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT2.0: FSM SPECIFICATIONRDT2.0: FSM SPECIFICATION

7 . 7

Page 33: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT2.0: OPERATION WITH NO ERRORSRDT2.0: OPERATION WITH NO ERRORS

7 . 8

Page 34: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT2.0: ERROR SCENARIORDT2.0: ERROR SCENARIO

7 . 9

Page 35: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT2.0 HAS A FATAL FLAW!RDT2.0 HAS A FATAL FLAW!What happens if ACK/NAK corrupted?

Sender doesn’t know what happened at receiver!

Can’t just retransmit: possible duplicate

Handling duplicates:

Sender retransmits current pkt if ACK/NAK corrupted

Sender adds sequence number to each pkt

Receiver discards (doesn’t deliver up) duplicate pkt

7 . 10

Page 36: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT2.1: SENDER, HANDLES GARBLED ACK/NAKSRDT2.1: SENDER, HANDLES GARBLED ACK/NAKS

7 . 11

Page 37: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT2.1: RECEIVER, HANDLES GARBLED ACK/NAKSRDT2.1: RECEIVER, HANDLES GARBLED ACK/NAKS

7 . 12

Page 38: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT2.1: DISCUSSIONRDT2.1: DISCUSSIONSender:

Seq # added to pkt

Two seq. #’s (0,1) will suffice. Why?

Must check if received ACK/NAK corrupted

Twice as many states

State must "remember" whether "expected" pkt should haveseq # of 0 or 1

7 . 13

Page 39: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT2.1: DISCUSSIONRDT2.1: DISCUSSIONReceiver:

Must check if received packet is duplicate

State indicates whether 0 or 1 is expected pkt seq #

Note: receiver can not know if its last ACK/NAK received OK atsender

7 . 14

Page 40: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT2.2: A NAK-FREE PROTOCOLRDT2.2: A NAK-FREE PROTOCOLSame func�onality as Rdt2.1, using ACKs only

Instead of NAK, receiver sends ACK for last pkt received OK

Receiver must explicitly include seq # of pkt being ACKed

Duplicate ACK at sender results in same ac�on as NAK:retransmit current pkt

7 . 15

Page 41: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT2.2: SENDER, RECEIVER FRAGMENTSRDT2.2: SENDER, RECEIVER FRAGMENTS

7 . 16

Page 42: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT3.0: CHANNELS WITH ERRORS AND LOSSRDT3.0: CHANNELS WITH ERRORS AND LOSSNew assump�on:

underlying channel can also lose packets (data, ACKs)

Checksum, seq. #, ACKs, retransmissions will be of help … but notenough

7 . 17

Page 43: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT3.0: CHANNELS WITH ERRORS AND LOSSRDT3.0: CHANNELS WITH ERRORS AND LOSSApproach:

Sender waits “reasonable” amount of �me for ACK

Retransmits if no ACK received in this �me

If pkt (or ACK) just delayed (not lost):

Retransmission will be duplicate, but seq. #’s already handlesthis

Receiver must specify seq # of pkt being ACKed

Requires countdown �mer

7 . 18

Page 44: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT3.0 SENDERRDT3.0 SENDER

7 . 19

Page 45: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT3.0 IN ACTIONRDT3.0 IN ACTION

7 . 20

Page 46: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT3.0 IN ACTIONRDT3.0 IN ACTION

7 . 21

Page 47: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

PERFORMANCE OF RDT3.0PERFORMANCE OF RDT3.0Rdt3.0 is correct, but performance s�nks

e.g.: 1 Gbps link, 15 ms prop. delay, 8000 bit packet:

Dtrans = L/R = 8000 bits / 10^9 bits/sec = 8 microseconds

Usender: u�liza�on – frac�on of �me sender busy sending

Usender = (L/R)/(RTT + L/R) = 0.008/30.008 = 0.00027

if RTT=30 msec, 1KB pkt every 30 msec: 33kB/sec throughputover 1 Gbps link

Network protocol limits use of physical resources!

7 . 22

Page 48: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

MECHANISMSMECHANISMSSequence Numbers

Acknowledgements

Timers

Checksum

7 . 23

Page 49: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

STOP AND WAITSTOP AND WAITStop and wait

sender sends one packet, then waits for receiver response

7 . 24

Page 50: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

RDT3.0: STOP-AND-WAIT OPERATIONRDT3.0: STOP-AND-WAIT OPERATION

7 . 25

Page 51: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

PIPELINED PROTOCOLSPIPELINED PROTOCOLS

8 . 1

Page 52: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

PIPELINED PROTOCOLSPIPELINED PROTOCOLSPipelining:

Sender allows mul�ple, “in-flight”, yet-to-be-acknowledgedpkts

Range of sequence numbers must be increased

Buffering at sender and/or receiver

Two generic forms of pipelined protocols:

go-Back-N

selec�ve repeat

8 . 2

Page 53: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

PIPELINING: INCREASED UTILIZATIONPIPELINING: INCREASED UTILIZATION

8 . 3

Page 54: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

PIPELINED PROTOCOLS: OVERVIEWPIPELINED PROTOCOLS: OVERVIEWGo-back-N:

Sender can have up to N unacked packets in pipeline

Receiver only sends cumula�ve ack

doesn’t ack packet if there’s a gap

Sender has �mer for oldest unacked packet

when �mer expires, retransmit all unacked packets

8 . 4

Page 55: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

PIPELINED PROTOCOLS: OVERVIEWPIPELINED PROTOCOLS: OVERVIEWSelec�ve Repeat:

Sender can have up to N unack’ed packets in pipeline

Rcvr sends individual ack for each packet

Sender maintains �mer for each unacked packet

when �mer expires, retransmit only that unacked packet

8 . 5

Page 56: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

GO-BACK-N: SENDERGO-BACK-N: SENDERk-bit seq # in pkt header

"window" of up to N, consecu�ve unack’ed pkts allowed

8 . 6

Page 57: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

GO-BACK-N: SENDERGO-BACK-N: SENDERACK(n): ACKs all pkts up to, including seq # n - “cumula�ve ACK”

may receive duplicate ACKs (see receiver)

�mer for oldest in-flight pkt

�meout(n): retransmit packet n and all higher seq # pkts inwindow

8 . 7

Page 58: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

GBN: SENDER EXTENDED FSMGBN: SENDER EXTENDED FSM

8 . 8

Page 59: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

GBN: RECEIVER EXTENDED FSMGBN: RECEIVER EXTENDED FSM

8 . 9

Page 60: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

GBN: RECEIVER EXTENDED FSMGBN: RECEIVER EXTENDED FSMACK-only: always send ACK for correctly-received pkt withhighest in-order seq #

may generate duplicate ACKs

need only remember expectedseqnum

out-of-order pkt:

discard (don’t buffer): no receiver buffering!

re-ACK pkt with highest in-order seq #

8 . 10

Page 61: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

GBN IN ACTIONGBN IN ACTION

8 . 11

Page 62: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

SELECTIVE REPEATSELECTIVE REPEATreceiver individually acknowledges all correctly received pkts

buffers pkts, as needed, for eventual in-order delivery to upperlayer

sender only resends pkts for which ACK not received

sender �mer for each unACKed pkt

sender window

N consecu�ve seq #’s

limits seq #s of sent, unACKed pkts

8 . 12

Page 63: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

SELECTIVE REPEAT: SENDER, RECEIVER WINDOWSSELECTIVE REPEAT: SENDER, RECEIVER WINDOWS

8 . 13

Page 64: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

SELECTIVE REPEAT - SENDERSELECTIVE REPEAT - SENDERData from above:

If next available seq # in window, send pkt

�meout(n):

resend pkt n, restart �mer

ACK(n) in [sendbase,sendbase+N]:

Mark pkt n as received

if n smallest unACKed pkt, advance window base to nextunACKed seq #

8 . 14

Page 65: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

SELECTIVE REPEAT - RECEIVERSELECTIVE REPEAT - RECEIVERpkt n in [rcvbase, rcvbase+N-1]

send ACK(n)

out-of-order: buffer

in-order: deliver (also deliver buffered, in-order pkts), advancewindow to next not-yet-received pkt

pkt n in [rcvbase-N,rcvbase-1]

ACK(n)

otherwise:

ignore

8 . 15

Page 66: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

SELECTIVE REPEAT IN ACTIONSELECTIVE REPEAT IN ACTION

8 . 16

Page 67: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

SELECTIVE REPEAT: DILEMMASELECTIVE REPEAT: DILEMMA

8 . 17

Page 68: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

SELECTIVE REPEAT: DILEMMASELECTIVE REPEAT: DILEMMAexample:

seq #’s: 0, 1, 2, 3

window size=3

receiver sees no difference in two scenarios!

duplicate data accepted as new in (b)

Q: what rela�onship between seq # size and window size toavoid problem in (b)?

8 . 18

Page 69: L E C T U R E 3 - T R A N S P O R Tjamik/dm557-19/material/Lecture-03.pdf · Handle dat a f rom m u lp le soc ket s, add t ransp ort header (lat er u sed for dem u lp lexing) Dem

SUMMARYSUMMARYprinciples behind transport layer services:

mul�plexing, demul�plexing

reliable data transfer

UDP

9