Making RTP More Reliable Classroom Presenter 3.0 Peter Davis.

Slides:



Advertisements
Similar presentations
Switching Techniques In large networks there might be multiple paths linking sender and receiver. Information may be switched as it travels through various.
Advertisements

20.1 Chapter 20 Network Layer: Internet Protocol Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
CS542 Topics in Distributed Systems Diganta Goswami.
IS333, Ch. 26: TCP Victor Norman Calvin College 1.
Flow and Error Control. Flow Control Flow control coordinates the amount of data that can be sent before receiving acknowledgement It is one of the most.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
588 Section 6 Neil Spring May 11, Schedule Notes – (1 slide) Multicast review –(3slides) RLM (the paper you didn’t read) –(3 slides) ALF & SRM –(8.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #7 TCP New Reno Vs. Reno.
1 Internet Networking Spring 2004 Tutorial 10 TCP NewReno.
Chapter 23: ARP, ICMP, DHCP IS333 Spring 2015.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
Networking. Protocol Stack Generally speaking, sending an message is equivalent to copying a file from sender to receiver.
Error Checking continued. Network Layers in Action Each layer in the OSI Model will add header information that pertains to that specific protocol. On.
Gursharan Singh Tatla Transport Layer 16-May
Quantum theory and Consciousness This is an interactive discussion. Please feel free to interrupt at any time with your questions and comments.
Understanding Networks Charles Zangla. Network Models Before I can explain how connections are made from across the country, I would like to provide you.
Switching Techniques Student: Blidaru Catalina Elena.
Process-to-Process Delivery:
TCP: flow and congestion control. Flow Control Flow Control is a technique for speed-matching of transmitter and receiver. Flow control ensures that a.
1 CMPT 471 Networking II ICMP © Janice Regan, 2012.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Multicast routing.
1 Version 3.1 modified by Brierley Module 8 TCP/IP Suite Error and Control Messages.
Page 19/13/2015 Chapter 8 Some conditions that must be met for host to host communication over an internetwork: a default gateway must be properly configured.
1 Semester 2 Module 10 Intermediate TCP/IP Yuda college of business James Chen
Data Link Control Protocols
CCNA 2 Week 8 TCP/IP Suite Error Control Messages.
CMPT 471 Networking II Address Resolution IPv4 ARP RARP 1© Janice Regan, 2012.
Overlay Network Physical LayerR : router Overlay Layer N R R R R R N.
Multi-part Messages in KMIP John Leiseboer, QuintessenceLabs.
3: Transport Layer 3a-1 8: Principles of Reliable Data Transfer Last Modified: 10/15/2015 7:04:07 PM Slides adapted from: J.F Kurose and K.W. Ross,
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Networked & Distributed Systems TCP/IP Transport Layer Protocols UDP and TCP University of Glamorgan.
Switching breaks up large collision domains into smaller ones Collision domain is a network segment with two or more devices sharing the same Introduction.
The Transmission Control Protocol (TCP) Application Services (Telnet, FTP, , WWW) Reliable Stream Transport (TCP) Connectionless Packet Delivery.
User Datagram Protocol (UDP) Chapter 11. Know TCP/IP transfers datagrams around Forwarded based on destination’s IP address Forwarded based on destination’s.
Chapter 19 - Binding Protocol Addresses
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
Lecture 10 – Mutual Exclusion Distributed Systems.
Today’s topic: UDP Reliable communication over UDP.
Queuing Delay 1. Access Delay Some protocols require a sender to “gain access” to the channel –The channel is shared and some time is used trying to determine.
Introduction to Computer Programming - Project 2 Intro to Digital Technology.
TCP continued. Discussion – TCP Throughput TCP will most likely generate the saw tooth type of traffic. – A rough estimate is that the congestion window.
Multi-part Messages in KMIP John Leiseboer, QuintessenceLabs.
Networks, Part 2 March 7, Networks End to End Layer  Build upon unreliable Network Layer  As needed, compensate for latency, ordering, data.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Principles of reliable data transfer 0.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
CIS 825 Review session. P1: Assume that processes are arranged in a ring topology. Consider the following modification of the Lamport’s mutual exclusion.
Formal Methods Project Design Yuanhui Luo yl3026, Ziwei Zhang zz2282, Yih-Nin Lai yl3030, Zhen Qiu zq2130.
INF3190 – Home Exam 2. Goal The goal of this exercise is to provide network layer reliability for the monitoring/administration tool presented in “home.
1 The utopia protocol  Unrealistic assumptions: –processing time ignored –infinite buffer space available –simplex: data transmitted in one direction.
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
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
Part III Datalink Layer 10.
5. End-to-end protocols (part 1)
CMPT 371 Data Communications and Networking
Chapter 14 User Datagram Program (UDP)
Instructor Mazhar Hussain
Switching Techniques In large networks there might be multiple paths linking sender and receiver. Information may be switched as it travels through various.
Flow Control.
Chapter 10 Data Link Control
Computer Science 425 Distributed Systems CS 425 / ECE 428 Fall 2013
Switching Techniques In large networks there might be multiple paths linking sender and receiver. Information may be switched as it travels through various.
Vidur Nayyar Xueting Wang Weicong Zhao
Process-to-Process Delivery:
Switching Techniques.
Chapter 14 User Datagram Program (UDP)
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
Transport Layer 9/22/2019.
Presentation transcript:

Making RTP More Reliable Classroom Presenter 3.0 Peter Davis

Two Extremes Unreliable transmission –Packets received out of order –Packets dropped –By default, RTP has no mechanism to reorder packets or request “replacement” packets

Total Reliability (TCP-style) Each packet has a sequence number Each packet “depends” on the previous packet –If a dependency is unsatisfied, a message is sent requesting rebroadcast of the missing dependency –All incoming packets are queued until replacement is received

So What’s the Beef? We could implement a TCP-style control protocol on top of RTP –There are even a few existing RFCs on this subject to point us in the right direction Absolute network reliability is always the safest choice from the application’s perspective But does this make sense for Presenter? –Why not? [discussion]

Reasons “Why Not” Some packets don’t “depend” on others –Is this really true? We want to optimize responsiveness of certain features even during periods of poor network performance –A dropped packet shouldn’t hold up the show But what types of packets are truly independent?

Possible Examples (I say “possible” because there might be unanticipated dependencies) A slide transition message does not depend on ink still being broadcast to the previous slide Ink doesn’t depend on slide image content –In fact, probably nothing depends on image content –But it does depend on: The existence of the slide The existence of all of the slide’s annotation sheets (to ensure they’re layered in the correct order) The existence of all previous ink strokes on the same annotation sheet (again, for rendering order) Independence is much less common than dependence –Is this a “premature optimization”?

Compromise I propose we implement TCP-style control and reliability But with the modification that a packet does not only have to depend on the previous packet Packets can specify a single sequence number on which they “depend”

What does “depend” mean? A dependency is unsatisfied if the packet whose sequence number is specified: –Has not been received (Out-of-order packets reduce to this case) –Has been received but recursively has an unsatisfied dependency

How are dependencies resolved? Packets with unsatisfied dependencies are entered into a table –Mapping from dependent sequence number to a stack of dependent packets –Every time a packet is received, the stack is fetched from the table –If the new packet is in turn unsatisfied, it is pushed onto the stack and entered back into the table on its own dependency

How Are Packets Sent? By default, this reduces to “TCP-style” reliability by depending on the previous sequence number We define which types of packets are partially independent We add logic to the sending queue to record the sequence number of the last packet on which these packets might depend

How do you know if a dependency is satisfied Keep a list of ranges of received packets Under good conditions, there is one contiguous range If packets are dropped, ranges are segmented As dropped packets are recovered, ranges are merged –(Have we actually discovered an application of union-find?)

How are packets recovered? The sender keeps a buffer of recently sent packets Messages are sent back to the sender requesting ranges of missing packets The sender merges these ranges with requests from other hosts The sender rebroadcasts the packets if they are available

What If Packets Cannot Be Recovered? Since there is no “ACK” after every packet, the sender must eventually discard data Sender replies with “cut-off point” –The first sequence number it has in its buffer Recipient discards all packets that depend on sequence numbers less than the cut-off –Keeps a list of ranges of discarded packets and recursively discards sub-dependents

Multi-Host Dependencies Suppose a public display receives a student submission directly from a student The student submission slide depends on information broadcast by the instructor These dependencies are probably too complex to resolve

What Do We Gain? Independent packets don’t get “hung up” on irrelevant dropped packets Application-wide reliability –Not just for special cases like ink

What Do We Lose? Complexity We still worry about unrecoverable data –But would happen less frequently, so could be dealt with more harshly We still worry about joining a presentation “late”

Why Not Special-Case Ink? Special-cases are ugly when other components suffer from the same problems By setting dependencies on all non-Ink packets to “0”, this proposal would be equivalent to a special-case on ink Not very much more work

Can We Live Without Reliability? No. Well, maybe. Presenter 2.0 does it.