How Applications (Will Hopefully Soon) Use the Internet

Slides:



Advertisements
Similar presentations
Transport Layer3-1 Transport Overview and UDP. Transport Layer3-2 Goals r Understand transport services m Multiplexing and Demultiplexing m Reliable data.
Advertisements

Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Camarillo / Schulzrinne / Kantola November 26th, 2001 SIP over SCTP performance analysis
Chapter 3: Transport Layer
Introduction to Transport Layer. Transport Layer: Motivation A B R1 R2 r Recall that NL is responsible for forwarding a packet from one HOST to another.
William Stallings Data and Computer Communications 7 th Edition Chapter 2 Protocols and Architecture.
COE 342: Data & Computer Communications (T042) Dr. Marwan Abu-Amara Chapter 2: Protocols and Architecture.
IP-UDP-RTP Computer Networking (In Chap 3, 4, 7) 건국대학교 인터넷미디어공학부 임 창 훈.
Gursharan Singh Tatla Transport Layer 16-May
Process-to-Process Delivery:
University of Calgary – CPSC 441.  UDP stands for User Datagram Protocol.  A protocol for the Transport Layer in the protocol Stack.  Alternative to.
Review: –What is AS? –What is the routing algorithm in BGP? –How does it work? –Where is “policy” reflected in BGP (policy based routing)? –Give examples.
CECS 474 Computer Network Interoperability Notes for Douglas E. Comer, Computer Networks and Internets (5 th Edition) Tracy Bradley Maples, Ph.D. Computer.
William Stallings Data and Computer Communications 7 th Edition Data Communications and Networks Overview Protocols and Architecture.
1 Chapter 1 OSI Architecture The OSI 7-layer Model OSI – Open Systems Interconnection.
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
Chapter 4: Interprocess Communication‏ Pages
Fall 2005 By: H. Veisi Computer networks course Olum-fonoon Babol Chapter 6 The Transport Layer.
Dr. John P. Abraham Professor University of Texas Pan American Internet Applications and Network Programming.
Computer Security Workshops Networking 101. Reasons To Know Networking In Regard to Computer Security To understand the flow of information on the Internet.
Types of Service. Types of service (1) A network architecture may have multiple protocols at the same layer in order to provide different types of service.
Lecture 4 Overview. Ethernet Data Link Layer protocol Ethernet (IEEE 802.3) is widely used Supported by a variety of physical layer implementations Multi-access.
Our pre-TAPS work on transport services Michael Welzl TAPS, 92 nd IETF meeting 23. March 2015.
Advanced UNIX programming Fall 2002, lecture 16 Instructor: Ashok Srinivasan Acknowledgements: The syllabus and power point presentations are modified.
Protocol Layering Chapter 11.
MULTIPLEXING/DEMULTIPLEXING, CONNECTIONLESS TRANSPORT.
2: Transport Layer 11 Transport Layer 1. 2: Transport Layer 12 Part 2: Transport Layer Chapter goals: r understand principles behind transport layer services:
UDP: User Datagram Protocol. What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host – treats a computer as an.
SOCKET PROGRAMMING Presented By : Divya Sharma.
Computer Networks with Internet Technology William Stallings Chapter 2 Protocols and the TCP/IP Protocol Suite.
Chapter 3 Transport Layer
Introduction to Networks
Chapter 3 Transport Layer
The Transport Layer Implementation Services Functions Protocols
Transport Layer Slides are originally from instructor: Carey Williamson at University of Calgary Very minor modification are made Notes derived from “Computer.
Lecture (2).
Chapter 3 outline 3.1 Transport-layer services
UNIT-V Transport Layer protocols for Ad Hoc Wireless Networks
Computer Networks with Internet Technology William Stallings
Transport Layer.
Process-to-Process Delivery, TCP and UDP protocols
Discussion: Messaging
Telemedicine.
The Transport Layer is Dead – Long Live the Transport Layer!
06- Transport Layer Transport Layer.
CS 1652 Jack Lange University of Pittsburgh
Introduction to Networks
Subject Name: Computer Communication Networks Subject Code: 10EC71
Introduction of Transport Protocols
Transport Layer Unit 5.
Transport Layer Our goals:
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
September 19th, 2013 CS1652 Jack Lange University of Pittsburgh
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Falling Back! … and: a Functional Decomposition of Post-Sockets
Process-to-Process Delivery:
Lecture 6: TCP/IP Networking 1nd semester By: Adal ALashban.
Advanced Computer Networks
A Minimal Set of Transport Services for TAPS Systems draft-ietf-taps-minset-00 Michael Welzl, Stein-Gjessing IETF
Lecture 2: Overview of TCP/IP protocol
CPEG514 Advanced Computer Networkst
Chapter 5 Transport Layer Introduction
CS4470 Computer Networking Protocols
Chapter 5 Transport Layer Introduction
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
draft-ietf-taps-transports-usage-03
Chapter 3 Transport Layer
Transport Layer Our goals:
Department of Informatics Networks and Distributed Systems (ND) group
Presentation transcript:

How Applications (Will Hopefully Soon) Use the Internet Michael Welzl Max == 60, TU Darmstadt 30. 6. 2017

Valuable?? Original Max typo from 1999 !

Layering is broken in the Internet node A node B e.g. HTTP Application Layer Transport Layer entity UDP TCP  Applications expect precisely the behavior of TCP and UDP  Routers expect to see precisely TCP or UDP (sometimes with even more limitations)  OSSIFICATION

Transport layer development Computer, 30 years ago A program that sends data over the Internet, 30 years ago (using Berkeley sockets)

Transport layer development Computer, today A program that sends data over the Internet, today (using Berkeley sockets)

More than just sockets... Previous example: Berkeley sockets Today, applications use many different APIs These higher-layer systems use sockets  can only offer the services of TCP and UDP A reliable byte stream Unreliable packet (“datagram”) transmission It’s a way of thinking about communication !

... and it’s from the 80s ! Reliable byte stream, TCP Datagram, UDP

What about... Priorities? Among your own flows, and between yours and others? Careful “do not disturb anybody” background (“scavenger”) communication? Intelligent use of multiple network interfaces? Maybe using data even when a checksum fails? Codecs can handle that, but UDP will throw away all your data Using protocol features that yield lower latency? Maybe trade latency against bandwidth? Control the send buffer?

Example: unordered message delivery Some applications can accept data chunks out of order, even when requiring reliability TCP causes Head-Of-Line (HOL) blocking delay TCP receiver buffer Chunk 2 Chunk 3 Chunk 4 Chunk 1 App waits in vain! Some protocols can deliver data out of order (e.g. SCTP) If such a protocol is not available: fine to use TCP! in-order delivery is correct! Just slower ... BUT: unless an application asks for it, we can NEVER hand over data chunks in the wrong order.  This service needs to be in ALL APIs ! (not just socket level)

Solving the problem Unordered reliable message delivery is only one example... What is the minimum set of transport services that we “must” make available everywhere for them to become usable?

Bottom-up method to derive a minimum set of transport services IETF Transport Services (TAPS) Working Group Survey of services provided by transport protocols – RFC 8095 (54 pages) In-depth analysis of 30+ RFCs: TCP, MPTCP, UDP, UDP-Lite, SCTP, LEDBAT (2 Internet-drafts, 70 pages) Derivation of a minimum set: from 2), keep only services that require application-specific knowledge; do not prohibit falling back to TCP; resolve some resulting peculiarities (1 Internet-draft, 44 pages)

Result (latest version): high-level view Flow creation and flow grouping Most configuration features only configure a group (e.g., can’t configure timeout for an SCTP stream only) Should use configuration early, ideally before connecting Send-before-connect Could also be implemented as a parameter to “connect” Specify “idempotent data” for extra-fast transmission Limited connect / listen / close / abort semantics Connect may not invoke accept! No half-closed connections

Result (latest version): high-level view /2 Send messages, receive bytestream Messages stay intact, but may be (based on sender wish) reordered or dropped (configurable reliability) Receiver must be aware (detect boundaries) Be informed about sender buffer running dry Late decision about choice of data to send Configure: per-flow priorities, network-wide priorities, timeout, authentication, checksums Some queries, e.g. related to packet sizes

What’s next? How real is this? Apple now contributes to the IETF TAPS WG Interested in this open standard because of TAPS project implements a TAPS++ system a cleaner Internet transport layer; avoids re-inventing the wheel! Partners: several Universities, Mozilla, EMC, Cisco, .. Already works! e.g., demo shown with Firefox Nice research tool – e.g. lets you access features of SCTP, MPTCP, .. now even with Python bindings http://www.neat-project.org https://github.com/NEAT-project/neat "NEAT: A Platform- and Protocol-Independent Internet Transport API", IEEE Communications Magazine 55 (6), 2017.

Thank you! Questions?