Transport Layer: Sliding Window Reliability

Slides:



Advertisements
Similar presentations
Chapter 6 The Transport Layer.
Advertisements

Computer Networks, Fifth Edition by Andrew Tanenbaum and David Wetherall, © Pearson Education-Prentice Hall, 2011 The Transport Layer Chapter
Chi-Cheng Lin, Winona State University CS 313 Introduction to Computer Networking & Telecommunication Chapter 6 Transport Layer.
Computer Networks NYUS FCSIT Spring 2008 Milos STOLIC, Bs.C. Teaching Assistant
Chapter 6 The Transport Layer.
Transmission Control Protocol (TCP)
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
TELE202 Lecture 14 TCP/UDP (2) 1 Lecturer Dr Z. Huang Overview ¥Last Lecture »TCP/UDP (1) »Source: chapter 17 ¥This Lecture »TCP/UDP (2) »Source: chapter.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
The Transport Layer Chapter 6. The Transport Service Services Provided to the Upper Layers Transport Service Primitives Berkeley Sockets An Example of.
The Transport Layer Chapter 6. The Transport Service Services Provided to the Upper Layers Transport Service Primitives Berkeley Sockets An Example of.
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Transport Layer.
Computer Networks Transport Layer. Topics F Introduction  F Connection Issues F TCP.
Networking. Protocol Stack Generally speaking, sending an message is equivalent to copying a file from sender to receiver.
Gursharan Singh Tatla Transport Layer 16-May
18-Aug-154/598N: Computer Networks Overview Direct link networks –Error detection - Section 2.4 –Reliable transmission - Section 2.5.
Process-to-Process Delivery:
The Transport Layer.
Computer Networks, Fifth Edition by Andrew Tanenbaum and David Wetherall, © Pearson Education-Prentice Hall, 2011 The Transport Layer Chapter 6.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
SMUCSE 4344 transport layer. SMUCSE 4344 transport layer end-to-end protocols –transport code runs only on endpoint hosts encapsulates network communications.
The Transport Layer.
The Transport Layer Chapter 6. The Transport Service The transport layer is the heart of the whole protocol hierarchy It provides reliable data transport.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Fall 2005 By: H. Veisi Computer networks course Olum-fonoon Babol Chapter 6 The Transport Layer.
Transport Layer Moving Segments. Transport Layer Protocols Provide a logical communication link between processes running on different hosts as if directly.
CSCI 465 D ata Communications and Networks Lecture 27 Martin van Bommel CSCI 465 Data Communications & Networks 1.
The Transport Layer Chapter 6. Transport Service Primitives The primitives for a simple transport service.
The Transport Layer Chapter 6 12/14/2015www.ishuchita.com1.
Transport Layer: Sliding Window Reliability
4343 X2 – The Transport Layer Tanenbaum Ch.6.
1 Direct Link Networks: Reliable Transmission Sections 2.5.
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
CSE331: Introduction to Networks and Security Lecture 4 Fall 2002.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Computer Networking Lecture 16 – Reliable Transport.
The Transport Layer Dr. ir. S.S. Msanjila RIS 251.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
The Transport Layer Implementation Services Functions Protocols
Chapter 9: Transport Layer
Fast Retransmit For sliding windows flow control we waited for a timer to expire before beginning retransmission of a packet TCP uses an additional mechanism.
Reliable Transmission
Unit-7 The Transport Layer.
Instructor Materials Chapter 9: Transport Layer
Introduction to Networks
5. End-to-end protocols (part 1)
PART 5 Transport Layer Computer Networks.
Chapter 6 The Transport Layer.
Introduction of Transport Protocols
ECE 4450:427/527 - Computer Networks Spring 2017
Transport Layer Unit 5.
Transport Layer Our goals:
Chapter 6 The Transport Layer The Transport Service & Elements of Transport Protocols.
Process-to-Process Delivery:
Reliable transmission
Point-to-Point Links Outline Encoding Framing Error Detection
CSS432 (Link Level Protocols) Reliable Transmission Textbook Ch 2.5
Advanced Computer Networks
Getting Connected (Chapter 2 Part 3)
The Transport Layer Reliability
Transport Protocols: TCP Segments, Flow control and Connection Setup
Introduction to Computer Networks
The Transport Layer Chapter 6.
Transport Layer Outline Intro to transport UDP
Transport Protocols: TCP Segments, Flow control and Connection Setup
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
Error detection: Outline
Transport Layer 9/22/2019.
EEL 5718 Computer Communications
Presentation transcript:

Transport Layer: Sliding Window Reliability Outline RTT estimation using EWMA Stop and Wait Sliding Window Algorithms CS 640

Transport layer functions Transport protocol defines the pattern/sequence for end hosts sending packets Transport has to deal with a number of things Multiplexing/demultiplexing – ports and message queues Error detection within packets - checksums Reliable, in order delivery of packets - Today Flow control – Today Connection management - TBD Congestion control – TBD We’re moving toward understanding TCP CS 640

Methods of Reliability Packets can be lost and/or corrupted during transmission Bit level errors due to noise Loss due to congestion Use checksums to detect bit level errors Internet Checksum is optionally used to detect errors in UDP Uses 16 bits to encode one’s complement sum of data + headers When bit level errors are detected, packets are dropped Build reliability into the transmission protocol Using acknowledgements and timeouts to signal lost or corrupt frame CS 640

Acknowledgements & Timeouts An acknowledgement (ACK) is a packet sent by one host in response to a packet it has received Making a packet an ACK is simply a matter of changing a field in the transport header Data can be piggybacked in ACKs A timeout is a signal that an ACK to a packet that was sent has not yet been received within a specified timeframe A timeout triggers a retransmission of the original packet from the sender How are timers set? CS 640

Acknowledgements & Timeouts CS 640

Propagation Delay Propagation delay is defined as the delay between transmission and receipt of packets between hosts Propagation delay can be used to estimate timeout period How can propagation delay be measured? What else must be considered in the measurement? CS 640

Exponentially weighted moving average RTT estimation EWMA was original algorithm for TCP Measure SampleRTT for each packet/ACK pair Compute weighted average of RTT EstRTT = a x EstimatedRTT + b x SampleRTT where a + b = 1 a between 0.8 and 0.9 b between 0.1 and 0.2 Set timeout based on EstRTT TimeOut = 2 x EstRTT CS 640

Stop-and-Wait Process Sender Receiver Sender doesn’t send next packet until he’s sure receiver has last packet The packet/Ack sequence enables reliability Sequence numbers help avoid problem of duplicate packets Problem: keeping the pipe full Example 1.5Mbps link x 45ms RTT = 67.5Kb (8KB) 1KB frames imples 1/8th link utilization CS 640

Solution: Pipelining via Sliding Window Allow multiple outstanding (un-ACKed) frames Upper bound on un-ACKed frames, called window Sender Receiver T ime … CS 640

Buffering on Sender and Receiver Sender needs to buffer data so that if data is lost, it can be resent Receiver needs to buffer data so that if data is received out of order, it can be held until all packets are received Flow control How can we prevent sender overflowing receiver’s buffer? Receiver tells sender its buffer size during connection setup How can we insure reliability in pipelined transmissions? Go-Back-N Send all N unACKed packets when a loss is signaled Inefficient Selective repeat Only send specifically unACKed packets A bit trickier to implement CS 640

Sliding Window: Sender Assign sequence number to each frame (SeqNum) Maintain three state variables: send window size (SWS) last acknowledgment received (LAR) last frame sent (LFS) Maintain invariant: LFS - LAR <= SWS Advance LAR when ACK arrives Buffer up to SWS frames £ SWS LAR LFS … CS 640

Sliding Window: Receiver Maintain three state variables receive window size (RWS) largest frame acceptable (LFA) last frame received (LFR) Maintain invariant: LFA - LFR <= RWS Frame SeqNum arrives: if LFR < SeqNum < = LFA accept if SeqNum < = LFR or SeqNum > LFA discarded Send cumulative ACKs – send ACK for largest frame such that all frames less than this have been received £ RWS LFR LFA … CS 640

Sequence Number Space SeqNum field is finite; sequence numbers wrap around Sequence number space must be larger then number of outstanding frames SWS <= MaxSeqNum-1 is not sufficient suppose 3-bit SeqNum field (0..7) SWS=RWS=7 sender transmit frames 0..6 arrive successfully, but ACKs lost sender retransmits 0..6 receiver expecting 7, 0..5, but receives the original incarnation of 0..5 SWS < (MaxSeqNum+1)/2 is correct rule Intuitively, SeqNum “slides” between two halves of sequence number space CS 640

Another Pipelining Possibility: Concurrent Logical Channels Multiplex 8 logical channels over a single link Run stop-and-wait on each logical channel Maintain three state bits per channel channel busy current sequence number out next sequence number in Header: 3-bit channel num, 1-bit sequence num 4-bits total same as sliding window protocol Separates reliability from order CS 640

Stop & wait sequence numbers Sender Receiver Sender Receiver Sender Receiver Frame 0 Frame 0 Frame 0 imeout imeout ACK 0 T T ACK 0 ACK 0 Frame 0 Frame 1 Frame 0 imeout imeout T ACK 0 ACK 1 ACK 0 T Frame 0 (c) (d) ACK 0 (e) Simple sequence numbers enable the client to discard duplicate copies of the same frame Stop & wait allows one outstanding frame, requires two distinct sequence numbers CS 640

Sliding Window Example Sender Receiver 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 6 A4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CS 640

Sliding Window Summary Sliding window is best known algorithm in networking First role is to enable reliable delivery of packets Timeouts and acknowledgements Second role is to enable in order delivery of packets Receiver doesn’t pass data up to app until it has packets in order Third role is to enable flow control Prevents server from overflowing receiver’s buffer CS 640

Chapter 6 The Transport Layer

The Transport Service Services Provided to the Upper Layers Transport Service Primitives Berkeley Sockets

Services Provided to the Upper Layers The network, transport, and application layers.

Why the transport layer ? 1. The network layer exists on end hosts and routers in the network. The end-user cannot control what is in the network. So the end-user establishes another layer, only at end hosts, to provide a transport service that is more reliable than the underlying network service. 2. While the network layer deals with only a few transport entities, the transport layer allows several concurrent applications to use the transport service. 3. It provides a common interface to application writers, regardless of the underlying network layer. In essence, an application writer can write code once using the transport layer primitive and use it on different networks (but with the same transport layer).

Transport Service Primitives The primitives for a simple transport service.

Transport Service Primitives (2) The nesting of TPDUs, packets, and frames.

Transport Service Primitives (3) A state diagram for a simple connection management scheme. Transitions labelled in italics are caused by packet arrivals. The solid lines show the client's state sequence. The dashed lines show the server's state sequence.

The socket primitives for TCP. Berkeley Sockets The socket primitives for TCP.

Elements of Transport Protocols Addressing Connection Establishment Connection Release Flow Control and Buffering Multiplexing Crash Recovery

Transport Protocol (a) Environment of the data link layer. (b) Environment of the transport layer. Both data link layer and transport layer do error control, flow control, sequencing. The differences are: 1. Storage capacity in subnet. Frames must arrive sequentially, TPDUs can arrive in any sequence. 2. Frames are delivered to hosts, TPDUs need to be delivered to users, so per user addressing and flow control within the hosts is necessary.

Addressing TCP calls TSAP s ... ports ATM calls TSAPs ... AAL-SAP TSAPs (Transport Service Access Point) , NSAPs (Network SAP). TCP calls TSAP s ... ports ATM calls TSAPs ... AAL-SAP

Connection Establishment (1) How a user process in host 1 establishes a connection with a time-of-day server in host 2.

Connection Establishment (2) Three protocol scenarios for establishing a connection using a three-way handshake. CR denotes CONNECTION REQUEST. (a) Normal operation, (b) Old CONNECTION REQUEST appearing out of nowhere. (c) Duplicate CONNECTION REQUEST and duplicate ACK.

Connection Establishment (3) (a) TPDUs may not enter the forbidden region. (b) The resynchronization problem.

Abrupt disconnection with loss of data. Connection Release Abrupt disconnection with loss of data.

Connection Release (2) The two-army problem.

Connection Release (3) 6-14, a, b Four protocol scenarios for releasing a connection. (a) Normal case of a three-way handshake. (b) final ACK lost.

Connection Release (4) 6-14, c,d (c) Response lost. (d) Response lost and subsequent DRs lost.

Flow Control and Buffering Dynamic buffer allocation. Buffer allocation info travels in separate TPDUs. The arrows show the direction of transmission. ‘…’ indicates a lost TPDU. Potential deadlock if control TPDUs are not sequenced or timed out

Multiplexing Upward multiplexing. Downward multiplexing. Used to increase the bandwidth, e.g., two ISDN connections of 64 kbps each yield 128 kbps bandwidth.

The Internet Transport Protocols: UDP Introduction to UDP Remote Procedure Call The Real-Time Transport Protocol

Introduction to UDP The UDP header. UDP only provides TSAPs (ports) for applications to bind to. UDP does not provide reliable or ordered service. The checksum is optional.

Steps in making a remote procedure call. The stubs are shaded.

The Real-Time Transport Protocol (a) The position of RTP in the protocol stack. (b) Packet nesting.

The Real-Time Transport Protocol (2) The RTP header. X indicated the presence of an extension header. CC says how many contributing sources are present (0 to 15). Syn. Source Id. tells which stream the packet belongs to. For feedback information is used an associated protocol called RTCP (Real Time Control Protocol)

The Internet Transport Protocols: TCP Introduction to TCP The TCP Service Model The TCP Protocol The TCP Segment Header TCP Connection Establishment TCP Connection Release TCP Connection Management Modeling TCP Transmission Policy TCP Congestion Control TCP Timer Management Wireless TCP and UDP Transactional TCP

The TCP Service Model Some assigned ports. Port Protocol Use 21 FTP File transfer 23 Telnet Remote login 25 SMTP E-mail 69 TFTP Trivial File Transfer Protocol 79 Finger Lookup info about a user 80 HTTP World Wide Web 110 POP-3 Remote e-mail access 119 NNTP USENET news

The TCP Service Model (2) (a) Four 512-byte segments sent as separate IP datagrams. (b) The 2048 bytes of data delivered to the application in a single READ CALL.

TCP Service Model (3) All TCP connections are full-duplex and point-to-point. TCP provides a byte stream. i.e it does not preserve message boundaries At sender TCP may immediately send or buffer data at its discretion. Sender can use a PUSH flag to instruct TCP not to buffer the send. Sender can use URGENT flag to have TCP send data immediately and have the receiver TCP signal the receiver application that there is data to be read.

Some TCP features Every byte has its own 32 bit sequence number. Sending and receiving entities exchange data in segments Each segment is the 20 byte header and data (total up to 64K) TCP may aggregate multiple writes into one segment or split one write into several segments. A segment size if the smaller of either 64K or the MTU of the network layer (MTU of Ethernet is about 1500 bytes) A segment must fit in a single IP payload.

Some TCP features TCP uses the sliding window protocol as its base. Sender sends segment, starts timer waits for ack. It no ack then retransmit. Receiver acks in separate segment or “piggyback” on data segment. TCP must deal with reordred segments. A lot of algorithms have been developed to make TCP efficient under diverse network conditions. We will look at a few of them.