Top Banner
The Transport Layer is Dead – Long Live the Transport Layer! Michael Welzl Net Group, University of Rome Tor Vergata 30. 09. 2017 1
40

The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Mar 11, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

TheTransportLayerisDead–LongLivetheTransportLayer!

MichaelWelzlNetGroup,UniversityofRomeTorVergata

30.09.20171

Page 2: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Outline

1. Theproblem

2. Thesolution1. IETFTransportServices(TAPS)WG2. NEATECproject(andsoftware!)

2

Page 3: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

TheTransportLayerisDead....

(theproblem)

3

Page 4: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Thebeauty;-)ofOSI...

• AN-layerprovidesaservicetotheN+1-layer– what'sbelowtheserviceinterfaceishidden

• Protocolsinsidelayersareinterchangeable

• Transportlayer(andabove)shouldbeespecially easytochange!

node A node B

protocol Layer N+1

Layer N: services N1, N2

service interface

entitiy vertical comm.

horizontal comm.

N1

N2

N1

N2

4

Page 5: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Internettransportisossified

è Applicationsexpectprecisely thebehaviorofTCPandUDP

node A nodeB

e.g.HTTP Application Layer

TransportLayer

entityUDP

TCP

è Routersexpecttoseeprecisely TCPorUDP(sometimeswithevenmorelimitations)

5

Page 6: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Transportlayerdevelopment• Computer,30yearsago

• AprogramthatsendsdataovertheInternet,30yearsago

(usingBerkeleysockets)

6

Page 7: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Transportlayerdevelopment• Computer,today

• AprogramthatsendsdataovertheInternet,today

(usingBerkeleysockets)

7

Page 8: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Morethanjustsockets...

• Previousexample:Berkeleysockets– Today,applicationsusemanydifferentAPIs

• Thesehigher-layersystemsuse socketsè canonlyoffertheservicesofTCPandUDP1. Areliablebytestream2. Unreliablepacket(“datagram”)transmission

It’sawayofthinking aboutcommunication!8

Page 9: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

...andit’sfromthe80s!

1) Reliablebytestream,TCP

2) Datagram,UDP

9

Page 10: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Whatabout...

• Priorities?– Amongyourownflows,andbetweenyoursandothers?

• Careful“donotdisturbanybody”background(“scavenger”)communication?

• Intelligentuseofmultiplenetworkinterfaces?

• Maybeusingdataevenwhenachecksumfails?– Codecscanhandlethat,butUDPwillthrowawayallyourdata

• Usingprotocolfeaturesthatyieldlowerlatency?– Maybetradelatencyagainstbandwidth?– Controlthesendbuffer?

10

Page 11: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Example:unordered message delivery

• Some applications can accept data chunks outof order,even when requiring reliability– TCPcauses Head-Of-Line(HOL)blocking delay

Chunk 2 Chunk 3 Chunk 4 Chunk 1TCP receiver buffer

App waits in vain!

• Some protocols can deliver data outof order (e.g.SCTP)• If suchaprotocol is notavailable:fine to use TCP!

• in-orderdelivery is correct!Justslower

...BUT:unless anapplication asks for it,we can NEVERgiveitdatainthe wrong order.è Thisservice needs to be inALLAPIs!(notjustsocketlevel)

11

Page 12: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Fromhttp://blog.sendmemobile.com/music-humor/ten-1990s-artists-who-need-a-comeback

IntServ?DiffServ?IntServ overDiffServ!

("Ucan'ttouchthis"ISPcorerouter)

Bytheway:the90swerenobetter!

12

Page 13: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Internet(end-to-end!)QoS

• Circulardependencythat’sverysimilartotheTransportLayerproblem[RFC2990]

• Internet(IPovereverything)+strict QoS guaranteeswasneveragoodfit– Alternativesexist,butperhapsnotassexyforISPs– e.g.AlternativeBestEffort(ABE)Service(PaulHurley,Jean-YvesLeBoudec,PatrickThiran)andsomepapersbySergeyGorinsky etal

– Coulddothat,orjust“tryQoS”butnotrelyonit– "TryQoS"isnowdonebyWebRTC:

https://tools.ietf.org/html/draft-ietf-tsvwg-rtcweb-qos-18 13

Page 14: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

...LongLiveTheTransportLayer!

(thesolution)

14

Page 15: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Solutionpart1:AStandard.

IETFTransportServices(TAPS)

15

Page 16: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

TAPSBackground

Application

Protocol X

ISP A (supports

X only)

Application

Protocol X

ISP A (supports

X only)

TAPS system

Application

Protocol Y

ISP B (supports X and Y)

TAPS system

Application

Protocol X

ISP B (supports X and Y)

without TAPS with TAPS

• mid-2013,thetimehadcome:LEDBAT,RTMFP,MPTCP,SPDY,Minion• Canwegetsomeorderintothischaos?

• 1yearofcommunity-convincing;1barBoF;2BoFs=>TAPSchartered24.9.2014• Historyavailableat:https://sites.google.com/site/transportprotocolservices/16

Page 17: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

HowTAPSwantstosolvetheproblem

• Unorderedreliablemessagedeliveryisonlyoneexample

• Whatistheminimumsetoftransportservices...– fromtheservicesthatIETFtransportprotocolsoffer...thatwe“must”makeavailableeverywhereforthemtobecomeusable?

• Onceweknowthat,wecanspecifyhowtoimplementaTAPSsystem

17

Page 18: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

TAPScharter:plannedoutcomes

1. Listofservices providedbytoday’stransports

2. List:subsetofservices thatsystemssupportingTAPSwillprovide+guidanceonchoosingamongavailablemechanismsandprotocols

3. Experimentalspec:mechanismstoprovidetheservicesidentifiedinitem2(“Thisdocumentwillexplainhowtoselectandengageanappropriateprotocolandhowtodiscoverwhichprotocolsareavailablefortheselectedservicebetweenagivenpairofendpoints.Further,itwillprovideabasisforincrementaldeployment.”)

18

Page 19: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Bottom-upmethodtoderiveaminimumsetoftransportservices

• IETFTransportServices(TAPS)WorkingGroup1. Survey ofservicesprovidedbytransportprotocols–

RFC8095(54pages)2. In-depthanalysisof30+RFCs:TCP,MPTCP,UDP,

UDP-Lite,SCTP,LEDBAT (2Internet-drafts,79pages)3. Derivationofaminimumset: from2),keeponly

servicesthatrequireapplication-specificknowledgeanddonotprohibitfallingbacktoTCP/UDP;resolvesomeresultingpeculiarities(1Internet-draft,53pages)

19

Page 20: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Fall-backsenableone-sideddeployment

SeveralProtocols

NewAPI

NewApp NewProtocolX

NewAPI

NewApp

TCP

NewAPI

NewApp

UDP

NewAPI

NewApp

TCP

Sockets

CurrentApp

UDP

Sockets

CurrentApp

20

Page 21: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Result(latestversion):high-levelview

1. Flowcreationandflowgrouping– Mostconfigurationfeaturesonlyconfigureagroup(e.g.,can’tconfiguretimeoutforanSCTPstreamonly)

– Shoulduseconfigurationearly,ideallybeforeconnecting

2. Send-before-connect– Couldalsobeimplementedasaparameterto“connect”– Specify“idempotentdata”forextra-fasttransmission(TFO)

3. Limitedconnect/listen/close/abortsemantics(supportUDP,ortransparentlyusestreams)– Connectmaynotinvokeaccept!– Nohalf-closedconnections 21

Note:assumeTCPfall-backonly(assumingUDPfall-backlimitsthislist)

Page 22: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Result(latestversion):high-levelview/2

• Beinformedaboutsenderbufferrunningdry– Latedecisionaboutchoiceofdatatosend

• Configure:per-flowpriorities,network-widepriorities(DSCP),timeout,authentication,checksums

• Somequeries,e.g.relatedtopacketsizes• Sendmessages,receivebytestream

– Messagesstayintact,butmaybereorderedordropped(configuredbysender)

– Receivermustbeaware(detectboundaries)22

Page 23: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Sendingmessages,receivingabytestream

• Canwemakethiscombinationwork?– BecompatibletoTCPbutstillbenefitfrommessages?

• Alternativenotveryattractive:alwaystellinganapplication“sorry,youonlygetastreamhere”isnotmuchdifferentthansaying“sorry,useTCPinstead”– Let’sminimize#hoopsanappdeveloperhastojumpthrough

• Message-orientedTCPappsalreadyframetheirdata– Unnecessarytorepeatthisintransportlayer– Requirementtotellreceiverapp“hereisyourcompletemessage”createsa

majorlimitationandisoftenunnecessary

23

Page 24: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Application-Framed(AFra-)Bytestream

• NormalTCP-likebytestream API– Optional:someadditionalinformationprovidedbysenderapp

• Senderapp: handsoverastreamofbytes,informstransportaboutframeboundariesandrequirements(order,reliability,..)– Delimitedframesstayintact,inorder– Morerelaxedrulespossiblebetween frames– Delimitersassumedtobeknownbyapplication

• Receiverapp:receivesstreamofbytes– App-leveldelimitersturnitintomessages

• TCP=specialcase:nodelimitersused– Cantalkto“normal”TCPapplicationsonbothsides

24

Page 25: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Unorderedmessagedelivery:SCTP

25

API API

Msg 3

Msg 2

Msg 1

SenderappMsg 1

Msg 3

Msg 2

Receiverapp

• Informwhereframebegins• Configure:“unordered”

Block1Block3 Block2

App-definedheader.Couldalsobee.g.implicitknowledgeaboutsize

Justabytestream!

Appknowshowtoidentifymessages

Block1Block2 Block3

• Informwhereframeends

Page 26: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Unorderedmessagedelivery:TCP

26

API API

Msg 3

Msg 2

Msg 1

SenderappMsg 1

Msg 2

Msg 3

Receiverapp

• Informwhereframebegins• Configure:“unordered”

… TCPjustignoresthis!

Block1Block3 Block2

Justabytestream!

Appknowshowtoidentifymessages

Block1Block2 Block3

• Informwhereframeends

Page 27: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Unreliableunorderedmsg delivery:SCTP

27

API API

Msg 3

Msg 2

Msg 1

SenderappMsg 3

Msg 2

Receiverapp

• Informwhereframebegins• Configure:“unreliable,unordered”

Block1Block3 Block2

Justabytestream!

Appknowshowtoidentifymessages

Block2 Block3

• Informwhereframeends

Page 28: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Unreliableunorderedmsg delivery:TCP

28

API API

Msg 3

Msg 2

Msg 1

SenderappMsg 1

Msg 2

Receiverapp

• Informwhereframebegins• Configure:“unreliable,unordered”

… TCPjustignoresthis!

Block1Block3 Block2

Justabytestream!

Appknowshowtoidentifymessages

Block2 Block3

Block1

Msg 3

• Informwhereframeends

Page 29: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Unreliablemessagedelivery:SCTP,largemessages

29

API API

Msg 3

Msg 2

Msg 1

Senderapp Receiverapp

• Informwhereblockbegins• Configure:“Unreliable”

Block1Block3 Block2

Packets

• Informwhereframeends

Page 30: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Unreliablemessagedelivery:SCTP,largemessages

30

API API

SenderappMsg 2

Receiverapp

Justabytestream!

Appknowshowtoidentifymessages

Block1Block3 Block2

Packets

SCTP

Page 31: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Init:

exampledecisiontree

-Willyouneedsomeformofreliability?Yes: SCTPorTCP canbeused.- Isanyofthefollowingusefultotheapplication?*Choosingascheduler,choosingpriorities*Configurablemessagereliability*Unorderedmessagedelivery*RequestnottodelaymessageSACKsYes:SCTPispreferred.No:- Isanyofthefollowingusefultotheapplication?*Handoveramessagetoreliablytransfer(possiblymultipletimes)beforeconnectionestablishment*Suggesttimeouttothepeer*NotificationofExcessiveRetransmissions(earlywarningbelowabortionthreshold)*NotificationofICMPerrormessagearrivalYes:TCPispreferred.No:SCTPandTCPareequallypreferable.

No: allprotocolscanbeused.- Isanyofthefollowingusefultotheapplication?*Specifychecksumcoverageusedbythesender*Specifymin.checksumcoveragerequiredbyreceiverYes:UDP-Liteispreferred;No:UDPispreferred. 31

Avoids,e.g.:1)chooseUDP2)appasksforreliability

Page 32: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Movingtoasystemspecification...

• TAPScharteritem3:currentlyvariousdocuments/proposals– post-sockets:fall-backtoTLS,systemonbothsides,extrafeatures(e.g.connectionmigration)

– guidelinesforTAPSsystems,securitysurvey– NEATprojectoutputs(happyeyeballs,API,..)– socketintents(mostlyfocusedoninterfacechoice)

32

Page 33: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Solutionpart2:Code.

Theproject(andsoftware)

33

Page 34: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

WhatdoesNEAToffer?• Auser-spacelibrary forefficiente2enetworkInternetcomm.,designedtobeeasytouse

• OffersaccesstothefeaturesofTCP,MPTCP,SCTP,UDP,UDP-LITEandmoreresearchythings viaacallback-basedAPI

• Policysystemtocontroleverythingviajsonfiles• One-sideddeploymentpossible,candofall-backstoTCPorUDP,cantalktonativepeers(e.g.TCP,SCTP,evenWebRTCbrowser!)– Notpreciselytheminimumset,butmuchoverlap(e.g.:sendmessage,receivewithoutguaranteeofmessageboundariesforTCP;transparentuseofSCTPmulti-streaming),andmuchmore

34

Page 35: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

TCP UDP SCTP

APP Class 0 APP Class 1 APP Class 2 APP Class 3

TCP Minion Experimental Mechanisms

Traditional Socket NEAT Socket

Middleware

NEAT Framework

NEAT User API

NEAT APP Support API

NEAT Policy

ManagerUSER

KERNEL

Policy Information

Base

Characteristic Information

Base

Policy Interface

SCTP/UDP

APP Class 4

PCAP RAW IP Experimental Mechanisms

KPI

Selection Components

H and SComponents

NEAT APP Support Module

IP

DIAG & STATS

NEAT Kernel Module

Policy Interface

Transport Components

SCTP/UDP

SPUD/UDP…

Userspace TransportExp

Mech

NEATarchitecture

35

Page 36: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Internals:sequenceofeventsinNEAT

36

Page 37: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Happy

Eye-balls

37

Page 38: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Moredeploymentconsiderations• “Application”couldbealibraryormiddleware

– e.g.,pub-subdoesn’tneed100%reliability– wouldonlyexploitasubsetofTAPScapabilities,butre-compilinganappwith

thenewmiddlewareversionwouldmaketheappuseTAPS

• RelatedNEATdevelopment:NEATsocketAPI– RunlegacyapplicationsoverNEATusing"withneat commandname params"– Benefitfrom:policysettings;transparentSCTP-stream-mapping

Non TAPS-enabled application

M's API

Legacy transport(TCP, UDP)

M's internals

Non TAPS-enabled application

M's API

Available transports (TCP, UDP, Minion,

SCTP...)

M + TAPS internalsMiddleware M Middleware M

38

Page 39: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Stuff!

• TAPS:– https://datatracker.ietf.org/wg/taps/

• NEAT:– http://www.neat-project.org– https://github.com/NEAT-project/neat– "NEAT:APlatform- andProtocol-IndependentInternetTransportAPI",

IEEECommunicationsMagazine55(6),2017.– "De-ossifyingtheInternetTransportLayer:ASurveyandFuturePerspectives",

IEEECommunicationsSurveys&Tutorials19(1),Firstquarter2017.

39

Page 40: The Transport Layer is Dead – Long Live the …heim.ifi.uio.no/michawe/research/publications/tor...The beauty ;-) of OSI... • A N-layer provides a service to the N+1-layer –

Questions,comments?

40