Tutorial 2 Solution. Q1. Consider a channel that can lose packets but has a maximum delay that is known. Modify protocol rdt2.1 to include sender timeout.

Slides:



Advertisements
Similar presentations
CS 4284 Systems Capstone Networking Godmar Back.
Advertisements

Application Layer 2-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Transport Layer Transport Layer. Reliable data transfer: getting started send side receive side rdt_send(): called from above, (e.g., by app.).
EEC-484/584 Computer Networks Lecture 6 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
1 Outline r Transport-layer services r Multiplexing and demultiplexing r Connectionless transport: UDP r Principles of reliable data transfer.
Transport Layer3-1 Data Communication and Networks Lecture 6 Reliable Data Transfer October 12, 2006.
Announcement Project 1 due last night, how is that ? Project 2 almost ready, out tomorrow, will post online –Much harder than project 1, start early!
Announcement Project 1 due last night, how is that ? Homework 1 grade, comments out –Will be discussed in the next lecture Homework 2 out Project 2 almost.
Chapter 3 Transport Layer slides are modified from J. Kurose & K. Ross CPE 400 / 600 Computer Communication Networks Lecture 9.
Transport Layer3-1 Reliable Data Transfer. Transport Layer3-2 Principles of Reliable data transfer r important in app., transport, link layers r top-10.
1 Outline r Transport-layer services r Multiplexing and demultiplexing r Connectionless transport: UDP r Principles of reliable data transfer.
3-1 Sect. 3.4 Principles of reliable data transfer Computer Networking: A Top Down Approach Featuring the Internet, 1 st edition. Jim Kurose, Keith Ross.
CPSC 441: Reliable Transport1 Reliable Data Transfer Instructor: Carey Williamson Office: ICT Class.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley,
1 Internet transport-layer protocols r reliable, in-order delivery (TCP) m congestion control m flow control m connection setup r unreliable, unordered.
Some slides are in courtesy of J. Kurose and K. Ross Review of Previous Lecture r Transport-layer services r Multiplexing and demultiplexing r Connectionless.
9/30/ /2/2003 The Transport Layer September 30-October 2, 2003.
1 Transport Layer goals: r understand principles behind transport layer services: m multiplexing/demultiplexing m reliable data transfer m flow control.
Reliable Data Transfer#1#1 Reliable Data Transfer.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 
CSCI 3335: C OMPUTER N ETWORKS C HAPTER 3 T RANSPORT L AYER Vamsi Paruchuri University of Central Arkansas Some.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley Chapter3_1.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
14-1 Last time □ Mobility in Cellular networks ♦ HLR, VLR, MSC ♦ Handoff □ Transport Layer ♦ Introduction ♦ Multiplexing / demultiplexing ♦ UDP.
Transport Layer 3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m sockets m reliable data transfer m.
CS 3830 Day 15 Introduction 1-1. Announcements r Quiz 3: Wednesday, Oct 10 r Prog3 due (in 1DropBox) on Wednesday, Oct 10 r Prog4: m Parts A and B m Work.
15-1 Last time □ Reliable Data Transfer ♦ Provide rdt over unreliable network layer ♦ FSM model ♦ rdt 1.0: rdt over reliable channels ♦ rdt 2.0: rdt over.
Transport Layer 3-1 From Computer Networking: A Top Down Approach Featuring the Internet by Jim Kurose, Keith Ross Addison-Wesley, A note on the use of.
rdt2.2: a NAK-free protocol
Part 3: Transport Layer: Reliable Data Transfer CSE 3461/5461 Reading: Section 3.4, Kurose and Ross 1.
Chapter 3, slide: 1 CS 372 – introduction to computer networks* Thursday July 8 Announcements: r Lab 3 is posted and due is Monday July 19. r Midterm is.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
Transport Layer3-1 rdt2.1: sender, handles garbled ACK/NAKs Wait for call 0 from above sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) rdt_send(data)
Transport Layer 3-1 Chapter 3 outline 3.4 Principles of reliable data transfer.
September 24 th, 2013 CS1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 Part.
1 John Magee 10 February 2014 CS 280: Transport Layer: Reliable Data Transfer Most slides adapted from Kurose and Ross, Computer Networking 6/e Source.
Tips on Programming Assignment 2: Reliable Data Transfer For the rdt3.0, refer its FSM for programming: Define five states for host A (sender) enum Astate_type.
Transport Layer Our goals:
Important r Midterm will be on m FRIDAY, Feb. 12th 1.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Application Layer 2-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Introduction 1 Lecture 11 Transport Layer (Reliable Data Transfer) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science.
Application Layer 2-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Chapter 3 Transport Layer
Chapter 3 outline 3.1 transport-layer services
Last time Reliable Data Transfer
Session 8 INST 346 Technologies, Infrastructure and Architecture
Reliable Data Transfer Reliable Data Transfer.
EEC-484/584 Computer Networks
rdt2.2: a NAK-free protocol
EEC-484/584 Computer Networks
EEC-484/584 Computer Networks
rdt2.2: a NAK-free protocol
rdt2.2: a NAK-free protocol
EEC-484/584 Computer Networks
EEC-484/584 Computer Networks
rdt2.2: a NAK-free protocol
EEC-484/584 Computer Networks
rdt2.2: a NAK-free protocol
Chapter 3 outline 3.1 transport-layer services
EEC-484 Computer Networks
Chapter 3 Transport Layer
Never take life seriously. Nobody gets out alive anyway
EEC-484/584 Computer Networks
EEC-484/584 Computer Networks
Chapter 3 Transport Layer
rdt2.0: FSM specification
CS 5565 Network Architecture and Protocols
rdt2.2: a NAK-free protocol
Presentation transcript:

Tutorial 2 Solution

Q1. Consider a channel that can lose packets but has a maximum delay that is known. Modify protocol rdt2.1 to include sender timeout and retransmit. Argue why the protocol can work correctly.

wait for call #0 wait for ACK/NAK wait for call #1 wait for ACK/NAK wait for pkt #0 wait for pkt #1 senderreceiver pkt #0 ACK pkt #1 rdt2.1 in action: no error

wait for call #0 wait for ACK/NAK wait for call #1 wait for ACK/NAK wait for pkt #0 wait for pkt #1 senderreceiver pkt #0 NAK ACK pkt #1 rdt 2.1 in action: corrupt packet corrupt pkt #0 re-transmision ACK

wait for call #0 wait for ACK/NAK wait for call #1 wait for ACK/NAK wait for pkt #0 senderreceiver pkt #0 ACK pkt #1 rdt 2.1 in action: corrupt ACK corrupt wait for pkt #1 pkt #0 re-transmission ACK discard pkt

wait for call #0 wait for ACK/NAK wait for pkt #0 senderreceiver pkt #0 rdt 2.1 in action: data packet is lost lost ? ?

wait for call #0 wait for ACK/NAK wait for pkt #0 wait for pkt #1 senderreceiver pkt #0 ACK rdt 2.1 in action: ACK/NAK is lost ? ? lost

Modifications Changes of the sender –Timer events –When to start the timer –How long is the timeout? –What will the sender do for a timeout event Changes of the receiver? –Check how the original receiver responds to new events (i.e., lost packets or ACKs)

Timeout udt_send(sndpkt) Start timer Timeout udt_send(sndpkt) Start timer Stop timer Start timer Stop timer timer >= 2 * maximum delay

How the Receiver Responds Suppose the timeout is caused by a lost data packet, i.e., a packet on the sender-to-receiver channel. The receiver never received the previous transmission and, if the timeout retransmission is received, it look exactly the same as if the original transmission is being received. Suppose an ACK is lost. The sender will eventually retransmit the packet on a timeout. But a retransmission is exactly the same action that is take if an ACK is garbled. Thus the sender's reaction is the same with a loss, as with a garbled ACK. No changes are needed!

wait for call #0 wait for ACK/NAK wait for pkt #0 senderreceiver pkt #0 timer in action: data packet is lost lost start timer timeout pkt #0 start timer ACK stop timer re-tranmission

wait for call #0 wait for ACK/NAK wait for pkt #0 wait for pkt #1 senderreceiver pkt #0 ACK timer in action: ACK/NAK is lost lost start timer timeout pkt #0 re-tranmission start timer discard pkt stop timer

Q2. Redesign rdt2.1 without using NAK packets. In other words, the receiver in the new protocol can only use ACK packets. Draw the FSM of the new protocol.

rdt2.2: a NAK-free protocol same functionality 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 action as NAK: retransmit current pkt

rdt2.2: sender, receiver fragments Wait for call 0 from above sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) rdt_send(data) udt_send(sndpkt) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,1) ) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0) Wait for ACK 0 sender FSM fragment Wait for 0 from below rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK1, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt) || has_seq1(rcvpkt)) udt_send(sndpkt) receiver FSM fragment 