Our pre-TAPS work on transport services Michael Welzl TAPS, 92 nd IETF meeting 23. March 2015.

Slides:



Advertisements
Similar presentations
MPTCP Application Considerations draft-scharf-mptcp-api-01 Michael Scharf Alan Ford IETF 77, March 2010.
Advertisements

Transport Services (TAPS) BOF plan T. Moncaster, M. Welzl, D. Ros: draft-moncaster-tsvwg-transport-services-00
Better transport Michael Welzl KIT, Karlsruhe 15. May 2014.
Moving the Internet’s Transport Layer Ahead Michael Welzl
Remote Procedure Call (RPC)
SCTP Tutorial Randall Stewart
CS3505 The Internet and Info Hiway transport layer protocols : TCP/UDP.
TCP/IP Protocol Suite 1 Chapter 13 Upon completion you will be able to: Stream Control Transmission Protocol Be able to name and understand the services.
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Designing DCCP: Congestion Control Without Reliability
Computer Communication Digital Communication in the Modern World Transport Layer Multiplexing, UDP
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Stream Control Transmission Protocol 網路前瞻技術實驗室 陳旻槿.
Chapter 23 Advanced SCTP Sockets. SCTP Sockets, recall ● Stream Control Transmission Protocol ● Multi-homed ● Association, instead of connection ● IPV4.
1 Summer Report Reporter : Yi-Cheng Lin Data: 2008/09/02.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
EEC-484/584 Computer Networks Lecture 6 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
IP-UDP-RTP Computer Networking (In Chap 3, 4, 7) 건국대학교 인터넷미디어공학부 임 창 훈.
Gursharan Singh Tatla Transport Layer 16-May
Transport Services (TAPS) BOF plan T. Moncaster, M. Welzl, D. Ros: draft-moncaster-tsvwg-transport-services-00
Implementation of Flow Management in MIPv6 Environment draft-soliman-monami6-flow-binding-03.txt Umar Toseef University of Bremen.
SCTP versus TCP for MPI Brad Penoff, Humaira Kamal, Alan Wagner Department of Computer Science University of British Columbia Distributed Research Group.
1 © 2004 Randall Stewart (Cisco Systems), Phill Conrad (University of Delaware). All rights reserved. SCTP: An Overview Randall Stewart, Cisco Systems.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 All.
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.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A.
Lecture91 Administrative Things r Return homework # 1 r Review some problems in homework # 1 r Questions about grading? Yona r WebCT for CSE245 is working!
How to truly improve the Internet’s transport layer University of Trento, Michael Welzl.
Inter-process communication: Socket. socket Internet socket From Wikipedia, the free encyclopedia Jump to: navigation,
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.
Uni Innsbruck Informatik - 1 Open Issues and New Challenges for End-to-End Transport E2E RG Meeting - July 28/29, MIT, Cambridge MA Michael Welzl
Udt.sourceforge.net 1 :: 23 Supporting Configurable Congestion Control in Data Transport Services Yunhong Gu and Robert L. Grossman Laboratory for Advanced.
Reliable Server Pooling Sockets API Presenter: Aron Silverton IETF 61 Washington, D.C
Uni Innsbruck Informatik - 1 Network Support for Grid Computing... a new research direction! Michael Welzl DPS NSG Team
Socket Programming Introduction. Socket Definition A network socket is one endpoint in a two-way communication flow between two programs running over.
SCTP: A new networking protocol for super-computing Mohammed Atiquzzaman Shaojian Fu Department of Computer Science University of Oklahoma.
Teacher:Quincy Wu Presented by: Ying-Neng Hseih
SCTP as a transport for Diameter draft-pascual-dime-sctp-00 IETF 79 - DIME WG November 2010,
RMCAT architectural overview Michael Welzl 1 RMCAT, 85 th IETF Meeting
Cisco I Introduction to Networks Semester 1 Chapter 7 JEOPADY.
U Innsbruck Informatik - 1 Specification of a Network Adaptation Layer for the Grid GGF7 presentation Michael Welzl University.
SCTP (Stream Control Transmission Protocol) Chanmin Park ( 박 찬 민 ) CARES lab.
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.
UDP Socket Programming
Transport Layer Slides are originally from instructor: Carey Williamson at University of Calgary Very minor modification are made Notes derived from “Computer.
Master’s Project Presentation
Chapter 3 outline 3.1 Transport-layer services
Michael Welzl , Distributed and Parallel Systems Group
Transport Layer.
Discussion: Messaging
Long-haul Transport Protocols
draft-ietf-taps-transports-usage-02
TCP-in-UDP draft-welzl-irtf-iccrg-tcp-in-udp-00.txt
PART 5 Transport Layer Computer Networks.
Magda El Zarki Professor, ICS UC, Irvine
Chapter 3 Transport Layer
THE TRANSPORT LAYER Scott Garland COSC 352.
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)
Falling Back! … and: a Functional Decomposition of Post-Sockets
A Minimal Set of Transport Services for TAPS Systems draft-ietf-taps-minset-00 Michael Welzl, Stein-Gjessing IETF
CPEG514 Advanced Computer Networkst
IEEE MEDIA INDEPENDENT HANDOVER DCN:
A Minimal Set of Transport Services for TAPS Systems draft-ietf-taps-minset-02 Michael Welzl, Stein Gjessing IETF
draft-ietf-taps-transports-usage-03
Parameters & Defaults:
How Applications (Will Hopefully Soon) Use the Internet
Presentation transcript:

Our pre-TAPS work on transport services Michael Welzl TAPS, 92 nd IETF meeting 23. March 2015

2 Outline / disclaimer Overview of results documented in MSc. thesis + paper –[Stefan Jörer: A Protocol-Independent Internet Transport API, MSc. Thesis, University of Innsbruck, December 2010] –[Michael Welzl, Stefan Jörer, Stein Gjessing: "Towards a Protocol-Independent Internet Transport API”, FutureNet IV workshop, ICC 2011, June 2011, Kyoto Japan] Not a proposal for how things should be: TAPS work should be more extensive, more up to date, make better, more informed decisions –But we learned some lessons back then, perhaps useful

3 Design method Bottom-up: TCP, UDP, SCTP, DCCP, UDP-Lite –start with lists from key references + RFCs Step 1: from list of protocol features, carefully identify application-relevant services –features that would not be exposed in APIs of the individual protocols are protocol internals –e.g. TCP, SCTP: ECN, selective ACK

4 Result of step 1 x = always on, empty = never on; 0/1 = can be turned on or off 2/3/4 = choice between CCIDs 2, 3, 4 P1 = partial error detection; t = total reliability, p2 = partial reliability s = stream, m = message; o = ordered, u = unordered

5 Expansion A line for every possible combination of features –43 lines: 32 SCTP, 3 TCP/UDP List shows reduction possibilities (step 2) –e.g. flow control coupled with congestion control –duplicates, subsets

6 Reduction method for step 2 Remove services that seem unnecessary as a result of step 1 expansion Apply common sense to go beyond purely mechanical result of step 1 –Question: would an application have a reason to say “no” to this service under certain circumstances? (but not purely because of environment conditions) –Features that are just performance improvements if they are used correctly (i.e. depending on environment, not app) are not services

7 Step 2 Connection orientation –Removing it does not affect service diversity –User view: API is always connection oriented –on the wire, non-congestion-controlled service will always use UDP or UDP-Lite –static distinction, clear by documentation Delivery type –easy for API to provide streams on top of message transport –no need to expose this as a service

8 Step 2, contd. Multi-streaming –Performance improvement, depending on environment conditions / congestion control behavior, not an application service Congestion control renamed  “flow characteristic” Multi-homing kept although not an app. service –We felt this is a more complex discussion / decision –could still be removed above our API

9 Result of Step 2

10 API Design Goal: make usage attractive = easy –stick with what programmers already know: deviate as little as possible from socket interface Most services chosen upon socket creation –int socket(int domain, int service) –service number identifies line number in table –understandable aliases: e.g. PI_TCPLIKE_NODELAY, PI_TCPLIKE, PI_NO_CC_UNRELIABLE for lines 1-3 Sending / receiving: provide sendmsg, recvmsg; for services 1,2,11,17: send, recv

11 API Design /2 We classified features as 1.static: only chosen upon socket creation flow characteristic 2.configurable: chosen upon socket creation + adjusted later with setsockopt error detection, reliability, multi-homing 3.dynamic: no need to specify in advance application PDU bundling (Nagle in TCP) delivery order: socket option or flags field

12 Backup slides

13 Implementation example Unordered reliable message delivery with SCTP –removes head-of- line (HOL) blocking delay Local testbed, 2 Linux PCs

14 How is this achieved? Based on draft- ietf- tsvwg- sctpsocket-23 Could not make this work in our testbed (suspect: bug in SCTP socket API)

15 How is this achieved? /2 SCTP, version 2 (this worked) –socket(PF_INET, SOCK_STREAM, IPPROTO_SCTP) –set SCTP_NODELAY with setsockopt –followed by (10 parameters!): sctp_sendmsg(sockfd, textMsg, msgLength, NULL, 0, 0, SCTP_UNORDERED, 1, 0, 0); PI_API version –pi_socket(PF_INET, 12); –pi_sendmsg(sockfd, &msg, 0);

16 Thank you! Questions?