0-rtt tcp convert protocol - ietf datatracker

19
0-RTT TCP Convert Protocol draft-ietf-tcpm-converters-01 IETF101, March 2018 O. Bonaventure, M. Boucadair, B. Peirens, S. Seo, A. Nandugudi

Upload: others

Post on 20-Apr-2022

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 0-RTT TCP Convert Protocol - IETF Datatracker

0-RTTTCPConvertProtocol

draft-ietf-tcpm-converters-01

IETF101,March2018

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

Page 2: 0-RTT TCP Convert Protocol - IETF Datatracker

Converter

•  InitialMotivation– MoreMPTCPenabledclientsthanMPTCPenabledservers

– ClientswanttobenefitfromMPTCPatleastonafractionoftheend-to-endpath

Page 3: 0-RTT TCP Convert Protocol - IETF Datatracker

ObjectivesoftheTCPconverter

•  AidthedeploymentofnewTCPExtensions– ExperienceshowsthatClientOSesdeploynewTCPextensionsearlierthanserversOSes

– EnterpriseorserviceprovidernetworkscandeployConverters

•  ConverterproxiesClientconnections– Withoutrequiringadditionalrtts

•  ConverterinformsClientoptionsonserver– EnablesClienttobypassConverter

Page 4: 0-RTT TCP Convert Protocol - IETF Datatracker

TCPconverter

Simpleexample

•  MultipathTCPusecase

MPTCP MPTCP MPTCPMPTCPsubflow1

MPTCPsubflow2

TCPconnection

Page 5: 0-RTT TCP Convert Protocol - IETF Datatracker

Basicprinciples

•  ConverterisexplicitTCPproxybetweenclientandserver

•  ClientsendscommandsinTCPbytestream– Toachieve0-rtt,proxycommandsareexchangedduringhandshakeleveragingTCPFastOpen

– Commands/responsesareencodedinTLVformat

•  ConverterinformsClientoftheTCPoptionssupportedbyservertoenablebypass

Page 6: 0-RTT TCP Convert Protocol - IETF Datatracker

Reachingtheserver

@c @s

@t

@t->@sSYN

@s->@tSYN+ACK

@t->@cSYN+ACK[]

TLVmessageinSYNpayload

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

ConverterTLVTCPinfoNetworkLayerinfo

Page 7: 0-RTT TCP Convert Protocol - IETF Datatracker

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

Page 8: 0-RTT TCP Convert Protocol - IETF Datatracker

Bootstrap:learningconvertercookie

@c @s

@t

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

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

EmptyTFO

TCPExtensionssupportedbyConverter

Convertercookie

Page 9: 0-RTT TCP Convert Protocol - IETF Datatracker

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

Page 10: 0-RTT TCP Convert Protocol - IETF Datatracker

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

Page 11: 0-RTT TCP Convert Protocol - IETF Datatracker

ChangessinceWGadoption

•  Variouseditorialchangestoclarifyandsimplifytext

•  ClarificationofhowstandardTCPextensionsshouldbehandledbytheConverter

Page 12: 0-RTT TCP Convert Protocol - IETF Datatracker

BaseTCPOptions

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

Page 13: 0-RTT TCP Convert Protocol - IETF Datatracker

WindowScaleOption

•  Kind=3(WindowScale)•  Convertercanadvertiseitsownwindowscaling,butnobenefitfromlettingaclientproposetheWScalethataconvertershouldadvertisetoaremoteserver

Page 14: 0-RTT TCP Convert Protocol - IETF Datatracker

Timestamp,SelectiveAckandMultipathTCP

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

•  Kind=5(SACK)cannotbeadvertisedsinceitcannotappearinSYN

Page 15: 0-RTT TCP Convert Protocol - IETF Datatracker

TCPFastOpen

•  Kind=34•  CanbeadvertisedbyConverter,requiresspecialsupportasshownearlier

Page 16: 0-RTT TCP Convert Protocol - IETF Datatracker

TCPUserTimeout

•  DeploymentoftheTCPoption(Kind=28)unclear–  feedbackrequestedfromworkinggrouponthebenefitsofsupportingthisextension

Page 17: 0-RTT TCP Convert Protocol - IETF Datatracker

TCPAuthenticationOption

•  MainobjectiveofthisextensionseemsincompatibleinprinciplewithaTCPproxy

•  TheTCP-AO-NATextensionmightbesupported,butfeedbackfromWGisrequestedonthebenefitsofsupportingit

Page 18: 0-RTT TCP Convert Protocol - IETF Datatracker

ExperimentalTCPextensions

•  Notconsideredinthisdraft,wesuggestthatseparatedraftsdiscussthesupportoftheseTCPextensions

Page 19: 0-RTT TCP Convert Protocol - IETF Datatracker

Conclusion•  InitialproposalwasfocussedonthesupportofMultipathTCPforwhichthereisacleardemandbutotherTCPextensionscouldbenefitfromsuchafacility

•  drafttakesintoaccountmajorcommentsraisedduringemaildiscussions–  Applicationlevelprotocol

•  Servicename/porttobereservedbyIANA–  Provides0-RTTusingTFO–  Clientcanbypassconverterifserversupportsextension

•  Nextsteps–  ImprovedsupportforotherTCPextensions–  Feedbackfromimplementorsandinteroperabilitytests