CSCE 463/612 Networks and Distributed Processing Spring 2018

Similar documents
Chapter 3 Transport Layer

CSC 401 Data and Computer Communications Networks

Rdt2.0: channel with packet errors (no loss!)

Chapter III: Transport Layer

CS 3516: Advanced Computer Networks

Chapter 3 outline. 3.5 connection-oriented transport: TCP segment structure reliable data transfer flow control connection management

CMSC 332 Computer Networks Reliable Data Transfer

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 8

Chapter 3 Transport Layer

CSC 4900 Computer Networks: Reliable Data Transport

Transport layer. Our goals: Understand principles behind transport layer services: Learn about transport layer protocols in the Internet:

Lecture 11: Transport Layer Reliable Data Transfer and TCP

Transport layer: Outline

TDTS06: Computer Networks

Data Communications & Networks. Session 6 Main Theme Reliable Data Transfer. Dr. Jean-Claude Franchitti

Chapter 3 Transport Layer

Transport services and protocols. Chapter 3 outline. Internet transport-layer protocols Chapter 3 outline. Multiplexing/demultiplexing

Lecture 07 The Transport Layer (TCP & UDP) Dr. Anis Koubaa

Chapter 3 Transport Layer

CSC 8560 Computer Networks: Transport Layer

Chapter 2: outline. 2.1 principles of network applications app architectures app requirements

CS 655 System and Network Architectures and Implementation. Module 3 - Transport

rdt2.0 has a fatal flaw!

Sliding Window Protocols, Connection Management, and TCP Reliability

Chapter 3 outline. TDTS06 Computer networks. Principles of Reliable data transfer. Reliable data transfer: getting started

CC451 Computer Networks

The Transport Layer Multiplexing, Error Detection, & UDP

-% % ($) % % % * % + & ' ! $ % $ $. / 0$! /1 2! /3 = >? A = ! " #!! $ %! $ $! $ % " #, * % " # % $ " $ 4 5$6 /778 $6 4 5

Go-Back-N. Pipelining: increased utilization. Pipelined protocols. GBN: sender extended FSM

CSCE 463/612 Networks and Distributed Processing Spring 2018

CSE 461: Introduction to Computer Communication Networks. Chunjong Park

CSC358 Week 5. Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright J.F Kurose and K.W. Ross, All Rights Reserved

Computer Networks & Security 2016/2017

Internet transport-layer protocols. Transport services and protocols. Sending and receiving. Connection-oriented (TCP) Connection-oriented

Chapter 3 Transport Layer

COMP211 Chapter 3 Transport Layer

Computer Networks. 3.Transport Layer. Transport Layer - 1

Chapter 3 Transport Layer

Reliable Transport : Fundamentals of Computer Networks Bill Nace

Transport Layer. CMPS 4750/6750: Computer Networks

Chapter 3: Transport Layer

Chapter 3: Transport Layer

Computer Networks 1 (Mạng Máy Tính 1) Lectured by: Dr. Phạm Trần Vũ

Architettura di Reti

Transport Layer. Chapter 3. Computer Networking: A Top Down Approach

Chapter 3 Transport Layer

Chapter 3 outline. Chapter 3: Transport Layer. Transport vs. network layer. Transport services and protocols. Internet transport-layer protocols

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Chapter 3: Transport Layer

Chapter 3: Transport Layer Part A

Computer Networks. Transport Layer

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Chapter 3: Transport Layer

CS 3516: Computer Networks

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Pipelined protocols: overview

Chapter 3. Transport Layer. Computer Networking: A Top Down Approach 5th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.

Chapter 3 Transport Layer

Chapter 3: Transport Layer. Chapter 3 Transport Layer. Chapter 3 outline. Transport services and protocols

Distributed Systems. 5. Transport Protocols. Werner Nutt

Chapter 3 Transport Layer

Lecture 10: Transpor Layer Principles of Reliable Data Transfer

Chapter 3: Transport Layer

Chapter 3 Transport Layer

Chapter 3 Transport Layer. Chapter 3: Transport Layer. Chapter 3 outline. Our goals: understand principles behind transport layer services:

internet technologies and standards

Chapter 3 Transport Layer. Chapter 3: Transport Layer. Chapter 3 outline

CSCI Topics: Internet Programming Fall 2008

Chapter 3: Transport Layer. Computer Networks. Transport Layer. Transport services and protocols. Chapter 3 outline. Bu-Ali Sina University, Hamedan

Chapter 3: Transport Layer. Chapter 3 Transport Layer. Chapter 3 outline. Transport services and protocols

EC441 Fall 2018 Introduction to Computer Networking Chapter 3: Transport Layer

Chapter 3 Transport Layer

CSCI Computer Networks Fall 2016

CSCI Computer Networks Spring 2017

Chapter 3: Transport Layer

CS/ECE 438: Communication Networks Fall Transport Layer

Course on Computer Communication and Networks. Lecture 4 Chapter 3; Transport Layer, Part A

Chapter 3: Transport Layer

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Distributed Systems. 5. Transport Protocols

Course on Computer Communication and Networks. Lecture 4 Chapter 3; Transport Layer, Part A

Chapter 3 Transport Layer

Chapter 3: Transport Layer

Chapter 3. Kultida Rojviboonchai, Ph.D. Dept. of Computer Engineering Faculty of Engineering Chulalongkorn University

Transport services and protocols. Chapter 3 Transport Layer. Chapter 3: Transport Layer. Transport vs. network layer

Chapter 3 Transport Layer

Chapter 3: Transport Layer. Chapter 3 Transport Layer. Transport Services and Protocols. Chapter 3 Outline

CSC 401 Data and Computer Communications Networks

Reliable Data Transfer

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Internetworking With TCP/IP

Transport Layer. Dr Ahmad Al-Zubi. Transport Layer 3-1

Transcription:

CSCE 463/612 Networks and Distributed Processing Spring 2018 Transport Layer III Dmitri Loguinov Texas A&M University March 6, 2018 Original slides copyright 1996-2004 J.F Kurose and K.W. Ross 1

Chapter 3: Roadmap 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer (cont) 3.5 Connection-oriented transport: TCP Segment structure Reliable data transfer Flow control Connection management 3.6 Principles of congestion control 3.7 TCP congestion control 2

Pipelined Protocols Pipelining: sender allows multiple, in-flight, yet-tobe-acknowledged pkts Range of sequence numbers must be increased Buffering at sender and/or receiver Two generic forms of pipelined protocols: Go-Back-N and Selective Repeat 3

Pipelining: Increased Utilization first packet bit transmitted, t = 0 last bit transmitted, t = L / R sender receiver RTT ACK arrives, send next packet, t = RTT + L / R first packet bit arrives last packet bit arrives, send ACK last bit of 2 nd packet arrives, send ACK last bit of 3 rd packet arrives, send ACK U sender = 3 * L / R RTT + L / R =.024 30.008 = 0.0008 Increases utilization by a factor of 3! 4

Go-Back-N N (GBN) Sender: Window of up to N consecutive unack ed pkts allowed A field in header that holds k unique seq numbers ACK(n): ACKs all consecutive pkts up to & including seq # n (cumulative ACK) Means packets 1...n have been delivered to application Timer for the oldest unacknowledged pkt (send_base): Upon timeout: retransmit all pkts in current window (yellow in the figure); reset the timer 5

GBN: Sender Extended FSM base=1 nextseqnum=1 rdt_rcv(rcvpkt) && corrupt(rcvpkt) rdt_send(data) if (nextseqnum < base+n) { sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum) udt_send (sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ } else refuse_data(data) timeout Wait start_timer udt_send(sndpkt[base]) udt_send(sndpkt[base+1]) udt_send(sndpkt[nextseqnum-1]) rdt_rcv(rcvpkt) && NOT corrupt(rcvpkt) new_base = getacknum(rcvpkt)+1 if (new_base > base) { base = new_base; if (base == nextseqnum) stop_timer // last ACK in window else start_timer } 6

GBN: Receiver Extended FSM any other event udt_send(sndpkt) Wait expectedseqnum=1 sndpkt = make_pkt(0, ACK, chksum) ACK-only: always send ACK for correctly-received pkt with highest in-order seq # Duplicate ACKs during loss Need only remember expectedseqnum Out-of-order pkt: rdt_rcv(rcvpkt) && NOT currupt(rcvpkt) && hasseqnum(rcvpkt,expectedseqnum) Discard no receiver buffering! Re-ACK pkt with highest in-order seq # extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(expectedseqnum,ack,chksum) udt_send(sndpkt) expectedseqnum++ 7

GBN in Action timeout Sender (N=4) 1 2 3 4 5 6 ignore ignore ignore Receiver ACK1, deliver ACK2, deliver ACK2, discard ACK2, discard ACK2, discard 3 4 5 6 ACK3, deliver ACK4, deliver ACK5, deliver ACK6, deliver 8

Selective Repeat Receiver individually acknowledges all correctly received pkts Buffers pkts, as needed, for eventual in-order delivery to upper layer Sender only resends pkts for which ACK was not received Separate timer for each unacked pkt Sender window N consecutive packets in [snd_base, snd_base+n-1] 9

Selective Repeat: Sender, Receiver Windows Sender (N=7) snd_base nextseqnum sent & acked sent & not acked Receiver (N=7) 1 2 3 4 5 sender window not sent & available not available 1 2 3 4 5 received and delivered rcv_base receiver window received and buffered expected but not received available slot 10

Selective Repeat sender Data from above : If next available seq # in window, send pkt Timeout(n): Resend pkt n, restart timer n ACK(n) in [snd_base, snd_base+n-1]: Mark pkt n as received If n == snd_base, advance snd_base to the next unacked seq # receiver Receive pkt n in [rcv_base, rcv_base+n-1] Send ACK(n) Out-of-order (n>rcv_base): buffer In-order (n == rcv_base): deliver, advance rcv_base to next notyet-received pkt, deliver all buffered, in-order pkts Pkt n in [rcv_base-n, rcv_base-1] ACK(n) Otherwise: Ignore 11

Selective Repeat in Action (N=4) 0 1 6 7 8 9 ACK0 timeout on pkt 2 2 3 4 5 6 7 8 9 ACK1 6 7 8 9 ACK3 6 7 8 9 2 6 7 8 9 6 7 8 9 ACK4 ACK5 ACK2 12

Selective Repeat: Dilemma Q: How many distinct seq #s are needed for window size N in selective repeat? Example: Seq # s: 0, 1, 2, 3 Window size = 3 Receiver sees no difference in two scenarios! Incorrectly passes duplicate data as new in (a) 13