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...
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/1.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/4.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/26.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/27.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/28.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/29.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/30.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/31.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/32.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/33.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/34.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/35.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/36.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/37.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/38.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/39.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/40.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/41.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/42.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/43.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/44.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/45.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/46.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/47.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/48.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/49.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/50.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/51.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/52.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/53.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/54.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/55.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/56.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/57.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/58.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/59.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/60.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/61.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/62.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/63.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/64.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/65.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/66.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/67.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/68.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022041823/5e5f2d7bfd7bcf75556e5ab2/html5/thumbnails/69.jpg)
SUMMARYSUMMARYprinciples behind transport layer services:
mul�plexing, demul�plexing
reliable data transfer
UDP
9