Upload
others
View
11
Download
0
Embed Size (px)
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