Falling Back! … and: a Functional Decomposition of Post-Sockets

Slides:



Advertisements
Similar presentations
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
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.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
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 (Selected slides used for lectures at Bina Nusantara University) Transport Layer.
1 Summer Report Reporter : Yi-Cheng Lin Data: 2008/09/02.
Process-to-Process Delivery:
Gursharan Singh Tatla Transport Layer 16-May
NETWORKING CONCEPTS. DATA LINK LAYER Data Link Control main functions of the data link layer are Data link control media access control. Data link control.
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
CECS 474 Computer Network Interoperability Notes for Douglas E. Comer, Computer Networks and Internets (5 th Edition) Tracy Bradley Maples, Ph.D. Computer.
Networked & Distributed Systems TCP/IP Transport Layer Protocols UDP and TCP University of Glamorgan.
1 Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Fall 2005 By: H. Veisi Computer networks course Olum-fonoon Babol Chapter 6 The Transport Layer.
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
1. I NTRODUCTION TO N ETWORKS Network programming is surprisingly easy in Java ◦ Most of the classes relevant to network programming are in the java.net.
23.1 Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Institute of Technology Sligo - Dept of Computing Chapter 12 The Transport Layer.
Our pre-TAPS work on transport services Michael Welzl TAPS, 92 nd IETF meeting 23. March 2015.
Transport Protocols.
Project Title: Establishing communication between the server and Envirobat using TCP/IP Presented by Apourva.P.
UDP : User Datagram Protocol 백 일 우
1 Computer Communication & Networks Lecture 23 & 24 Transport Layer: UDP and TCP Waleed Ejaz
Process-to-Process Delivery:
Data Link Control. The two main functions of the data link layer are data link control and media access control. The first, data link control, deals with.
Minion: An All-Terrain Packet Packhorse to Jump-Start Stalled Internet Transports Jana Iyengar*, Bryan Ford+ Dishant Ailawadi+, Syed Obaid Amin*,
SOCKET PROGRAMMING Presented By : Divya Sharma.
Introduction to Networks
The Transport Layer Implementation Services Functions Protocols
09-Transport Layer: TCP Transport Layer.
Chapter 3 outline 3.1 Transport-layer services
Introduction to Networks
Introduction to Networking Recital 4
Transport Layer.
Discussion: Messaging
Long-haul Transport Protocols
The Transport Layer is Dead – Long Live the Transport Layer!
Process-to-Process Delivery
06- Transport Layer Transport Layer.
TCP-in-UDP draft-welzl-irtf-iccrg-tcp-in-udp-00.txt
PART 5 Transport Layer Computer Networks.
TCP Transport layer Er. Vikram Dhiman LPU.
CS 1652 Jack Lange University of Pittsburgh
Introduction to Networks
Process-to-Process Delivery:
Client/Server Example
Subject Name: Computer Communication Networks Subject Code: 10EC71
Introduction of Transport Protocols
RTCWeb Data Channel Management
Transport Layer Unit 5.
THE TRANSPORT LAYER Scott Garland COSC 352.
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.
Stream Control Transmission Protocol (SCTP)
Process-to-Process Delivery:
Advanced Computer Networks
A Minimal Set of Transport Services for TAPS Systems draft-ietf-taps-minset-00 Michael Welzl, Stein-Gjessing IETF
Dr. John P. Abraham Professor UTPA
CSC Advanced Unix Programming, Fall 2015
Basic Mechanisms How Bits Move.
CPEG514 Advanced Computer Networkst
Introduction to Computer Networks
A Minimal Set of Transport Services for TAPS Systems draft-ietf-taps-minset-02 Michael Welzl, Stein Gjessing IETF
Chapter 3 Transport Layer
UDP Principles (Chapter 24) (User Datagram Protocol)
Transport Layer 9/22/2019.
Transport Layer Our goals:
How Applications (Will Hopefully Soon) Use the Internet
Presentation transcript:

Falling Back! … and: a Functional Decomposition of Post-Sockets Michael Welzl (with help from many NEATers)

Who can we talk to? New App New App New App New API New API New API New Protocol X New API New App TCP New API New App UDP New API New App Several Protocols New API New App UDP Sockets Current App TCP Sockets Current App

Application-Framed (AFra-)Bytestream We know that messages are cool Can send them unordered, unreliable, .. But: TCP operates on streams “Don’t care, I want to do something new?” Please wait until the end… Telling an application “sorry, you only get a stream here” is not much different than saying “sorry, use TCP instead” How to reduce # hoops an app developer has to jump through for fall-back? Message-oriented TCP apps already frame their data Unnecessary to repeat this in transport layer: hence Application-Framed Requirement to tell receiver app “here is your complete message” creates a major limitation, but it’s often unnecessary 11/24/2018

Example implementation Normal TCP-like bytestream API Optional: some additional information exchanged Sender app: hands over a stream of bytes, informs transport about frame boundaries and requirements (order, reliability, ..) Delimited frames stay intact, in order More relaxed rules possible between frames Delimiters assumed to be known by application Receiver app: receives stream of bytes App-level delimiters turn it into messages TCP = special case: no delimiters used Can talk to “normal” TCP applications 11/24/2018

Unordered message delivery: SCTP Sender app Receiver app Msg 3 Msg 1 Msg 2 Msg 3 App-defined header. Could also be e.g. implicit knowledge about size Msg 1 Msg 2 App knows how to identify messages Inform where frame ends API Inform where frame begins Configure: “unordered” Just a byte stream! API Block 1 Block 3 Block 2 Block 1 Block 2 Block 3 11/24/2018

Unordered message delivery: TCP Sender app Receiver app Msg 3 Msg 1 Msg 2 Msg 2 Msg 1 Msg 3 App knows how to identify messages Inform where frame ends Inform where frame begins Configure: “unordered” … TCP just ignores this! API Just a byte stream! API Block 1 Block 3 Block 2 Block 1 Block 2 Block 3 11/24/2018

Unreliable unordered msg delivery: SCTP Sender app Receiver app Msg 3 Msg 3 Msg 2 Msg 2 Msg 1 App knows how to identify messages Inform where frame ends API Inform where frame begins Configure: “unreliable, unordered” Just a byte stream! API Block 1 Block 3 Block 2 Block 2 Block 3 11/24/2018

Unreliable unordered msg delivery: TCP Sender app Receiver app Msg 3 Msg 1 Msg 2 Msg 2 Msg 1 Msg 3 App knows how to identify messages Inform where frame ends Inform where frame begins Configure: “unreliable, unordered” … TCP just ignores this! API Just a byte stream! API Block 1 Block 3 Block 2 Block 1 Block 2 Block 3 11/24/2018

Unreliable message delivery: SCTP, large messages Sender app Receiver app Msg 3 Msg 2 Msg 1 Inform where frame ends API Inform where block begins Configure: “Unreliable” API Packets Block 1 Block 3 Block 2 11/24/2018

Unreliable message delivery: SCTP, large messages Sender app Receiver app Msg 2 App knows how to identify messages API Just a byte stream! API SCTP Block 1 Block 3 Block 2 Packets 11/24/2018

Some SCTP code consequences Sender side: No need to know frame length at the beginning Receiver side: Do not expose message semantics => partial message flag unnecessary (can hand over data as it arrives) No need to support huge messages => always (try to) use interleaving 11/24/2018

What is a flow? From minset TAPS draft: No application-specific knowledge involved in decision to use multiple connections or multiple streams of an association To the app, “Multi-streaming” is only a flow grouping concept Suggest to only expose “flows” 3 flows can e.g. be 3 streams of one association or 3 TCP connections Flows have properties: flow group number, flow priority Note: this affects establishment / teardown semantics E.g., streams of an association are always there, just begin to send => connect() without data not guaranteed to do anything on the wire 11/24/2018

Where does this lead? Simple traditional TCP-like stream API with: Protocol-specific extras removed Optional sender-side app-transport info. exchange added Slightly changed connection setup/teardown semantics …Enables: Downward compatibility Using unordered and partially reliable messages Using multi-streaming If used as an element of a post-sockets system, this… Can enable falling back to TCP Minimizes kernel API changes 11/24/2018

A functional decomposition of post-sockets “I don’t need to be told where my messages begin and end” Sender Receiver Messaging App TCP App Unordered / partially reliable messages, multi-streaming AFra-Bytestream TCP Socket Minion Hollywood TCP Kernel Kernel Various protocols 11/24/2018

A functional decomposition of post-sockets “I need to be told where my messages begin and end” Sender Receiver Here’s your atomic object Messaging App Messaging App Framing layer Framing layer e.g. COBS AFra-Bytestream TCP Socket Minion Hollywood TCP Kernel Kernel Various protocols Enable unordered delivery even with normal TCP sender 11/24/2018

A functional decomposition of post-sockets Hold data in user space (TCP_NOTSENT_LOWAT / similar) or do it in the kernel Sender Receiver Post-sockets App Post-sockets App Nice-ness, object dependencies, ... Post-sockets Post-sockets Framing layer Framing layer e.g. COBS AFra-Bytestream TCP Socket Minion Hollywood TCP Kernel Kernel Various protocols 11/24/2018

A functional decomposition of post-sockets Sender Receiver Post-sockets App Post-sockets App Messaging App Post-sockets Post-sockets TCP App Framing layer Framing layer e.g. COBS AFra-Bytestream TCP Socket Various protocols Kernel Kernel 11/24/2018

Questions? 11/24/2018