0-RTT TCP Convert Protocol - IETF Datatracker

Preview:

Citation preview

0-RTTTCPConvertProtocol

draft-ietf-tcpm-converters-01

IETF101,March2018

O.Bonaventure,M.Boucadair,B.Peirens,S.Seo,A.Nandugudi

Converter

•  InitialMotivation– MoreMPTCPenabledclientsthanMPTCPenabledservers

– ClientswanttobenefitfromMPTCPatleastonafractionoftheend-to-endpath

ObjectivesoftheTCPconverter

•  AidthedeploymentofnewTCPExtensions– ExperienceshowsthatClientOSesdeploynewTCPextensionsearlierthanserversOSes

– EnterpriseorserviceprovidernetworkscandeployConverters

•  ConverterproxiesClientconnections– Withoutrequiringadditionalrtts

•  ConverterinformsClientoptionsonserver– EnablesClienttobypassConverter

TCPconverter

Simpleexample

•  MultipathTCPusecase

MPTCP MPTCP MPTCPMPTCPsubflow1

MPTCPsubflow2

TCPconnection

Basicprinciples

•  ConverterisexplicitTCPproxybetweenclientandserver

•  ClientsendscommandsinTCPbytestream– Toachieve0-rtt,proxycommandsareexchangedduringhandshakeleveragingTCPFastOpen

– Commands/responsesareencodedinTLVformat

•  ConverterinformsClientoftheTCPoptionssupportedbyservertoenablebypass

Reachingtheserver

@c @s

@t

@t->@sSYN

@s->@tSYN+ACK

@t->@cSYN+ACK[]

TLVmessageinSYNpayload

@c->@tSYN(TFO:t)[Connect@s:p]

ConverterTLVTCPinfoNetworkLayerinfo

DetectingifserversupportsMPTCP

@c @s

@t

@t->@sSYN(MPC)

@s->@tSYN+ACK(MPC(Ks))

@t->@cSYN+ACK(MPC(Kc))[ExtTCPH(MPC(Ks))]

@c->@tSYN(TFO:t,MPC)[Connect@s:p]

CopyoftheextendedTCPheaderreturned

byserver

Bootstrap:learningconvertercookie

@c @s

@t

@t->@cSYN+ACK(TFO:t)[SupportedTCPExt.(MPTCP)]

@c->@tSYN(TFO)[Bootstrap]

EmptyTFO

TCPExtensionssupportedbyConverter

Convertercookie

TFOconnectionthroughtheconverter

@c @s

@t

@t->@sSYN(TFO)

@s->@tSYN+ACK(TFO:sc)@t->@cSYN+ACK[ExtTCPH(TFO:sc)]

@c->@tSYN(TFO:t)[Connect@s:pTCPOpt:TFO]

EmptyTFOoption Servercookie:sc

Clientlearnsservercookie

EmptyTFO

TFOconnectionthroughtheconvertersecondconnectiontoserver

@c @s

@t

@t->@sSYN(TFO:sc)Data

@s->@tSYN+ACK@c->@tSYN+ACK[]

@c->@tSYN(TFO:t)[Connect@s:pTCPOpt:TFO:sc]

Data

Serverrecognisescookiescandacceptsdata

ChangessinceWGadoption

•  Variouseditorialchangestoclarifyandsimplifytext

•  ClarificationofhowstandardTCPextensionsshouldbehandledbytheConverter

BaseTCPOptions

•  Thefollowingoptionscannotbe"converted"– Kind=0(EndOfOptionsList)– Kind=1(No-Operation)– Kind=2(MaximumSegmentSize)

WindowScaleOption

•  Kind=3(WindowScale)•  Convertercanadvertiseitsownwindowscaling,butnobenefitfromlettingaclientproposetheWScalethataconvertershouldadvertisetoaremoteserver

Timestamp,SelectiveAckandMultipathTCP

•  ThefollowingoptionscanbeadvertisedbyaConverter– Kind=8(Timestamp)– Kind=4(SACKpermitted)– Kind=30(MultipathTCP)

•  Kind=5(SACK)cannotbeadvertisedsinceitcannotappearinSYN

TCPFastOpen

•  Kind=34•  CanbeadvertisedbyConverter,requiresspecialsupportasshownearlier

TCPUserTimeout

•  DeploymentoftheTCPoption(Kind=28)unclear–  feedbackrequestedfromworkinggrouponthebenefitsofsupportingthisextension

TCPAuthenticationOption

•  MainobjectiveofthisextensionseemsincompatibleinprinciplewithaTCPproxy

•  TheTCP-AO-NATextensionmightbesupported,butfeedbackfromWGisrequestedonthebenefitsofsupportingit

ExperimentalTCPextensions

•  Notconsideredinthisdraft,wesuggestthatseparatedraftsdiscussthesupportoftheseTCPextensions

Conclusion•  InitialproposalwasfocussedonthesupportofMultipathTCPforwhichthereisacleardemandbutotherTCPextensionscouldbenefitfromsuchafacility

•  drafttakesintoaccountmajorcommentsraisedduringemaildiscussions–  Applicationlevelprotocol

•  Servicename/porttobereservedbyIANA–  Provides0-RTTusingTFO–  Clientcanbypassconverterifserversupportsextension

•  Nextsteps–  ImprovedsupportforotherTCPextensions–  Feedbackfromimplementorsandinteroperabilitytests