building a service‐centric network with...
TRANSCRIPT
![Page 1: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/1.jpg)
Buildingaservice‐centricnetworkwithSCAFFOLD
MichaelJ.Freedman
PrincetonUniversity
withPremGopalan,StevenKo,JenRexford,andDavidShue
*Service‐CentricArchitectureForFlexibleObjectLocalizaNonandDistribuNon
*
![Page 2: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/2.jpg)
Fromahost‐centricarchitecture
1960s
![Page 3: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/3.jpg)
Fromahost‐centricarchitecture
1960s1970s
![Page 4: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/4.jpg)
Fromahost‐centricarchitecture
1960s1970s
1990s
![Page 5: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/5.jpg)
Toaservice‐centricarchitecture
1960s1970s
1990s
2000s
![Page 6: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/6.jpg)
Toaservice‐centricarchitecture
• Userswantservices,agnosNcofactualhost
• ServiceoperatorsneedtosupportreplicaselecNon,failover,migraNon,…
• Service‐centricanycastasfirst‐classprimiNve
![Page 7: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/7.jpg)
Challenges• Handlingreplicatedservices
– ControloverreplicaselecNonamonggroups
– Controlofnetworkresourcesforsharedbetweengroups– Handlingdynamicsamonggroupmembershipanddeployments
• Handlingchurn– Flexibility:Fromsessions,tohosts,todatacenters
– Robustness:LargelyhidefromapplicaNons
– Scalability:Localchangesshouldn’tneedtoupdateglobalinfo– Scalability:Churnshouldn’trequireper‐clientstateinnetwork– Efficiency:Wide‐areamigraNonshouldn’trequiretunneling
![Page 8: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/8.jpg)
SCAFFOLDas…
– Cleanslatedesign
– MulN‐datacenterarchitectureforsingleadministraNvedomain
![Page 9: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/9.jpg)
Target:SingleadministraNvedomain
• DCnetworkmanagementmoreunified,simple,centralized
• End‐hostOSnet‐imagedandcanbefork‐li_upgraded
• Alreadystrugglingtoprovidescalabilityandservice‐centrism
• CloudcompuNngtrendslessonimportanceoffixed,physicalhosts
X
DC 2 DC 1
Y
Backbone
Internet X
YY
X
![Page 10: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/10.jpg)
Appearanceofservice‐centrismtoday
Layer4/7: DNSwithsmallTTLs HTTPredirects
Layer‐7switching
Layer3: IPaddressesandIPanycast
Inter/intrarouNngupdates
Layer2: VIP/DIPloadbalancers
VRRP,ARPspoofing
![Page 11: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/11.jpg)
Outlineoftalk
• Principlesforservice‐centricdesign
• ArchitectureanddesignofSCAFFOLD– Networksupport• Newforwardingmodel• SupportformigraNonandfailover• Networkandservicemanagement
– End‐hostsupport:socketinterfaceandnetworkstack
• ImplementaNon,especiallyOpenFlow/NOXdetails(anddesiderata)
![Page 12: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/12.jpg)
PrinciplesofSCAFFOLD• Service‐centricnaming
– Service/objectid’sasflexiblenaming,nothosts• Webserversprovidingfront‐Nerweb(calendar.google.com)
• AparNcularregionina(distributed)VirtualWorldservice
• AparNcularfileinaCDN
![Page 13: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/13.jpg)
PrinciplesofSCAFFOLD• Service‐centricnaming
– Service/objectid’sasflexiblenaming,nothosts
– Network‐leveladdresseshiddenfromapplicaNon
• FlowsandanycastasbasicnetworkprimiNves– Namescorrespondtoanycastgroups,unicastasspecialcase
– ConnecNonaffinityforflowswithinanycastedendpoints
• MigraNonandfailoverthroughaddressremapping– FlowsidenNfiedbyeachendpoint,notpairwise– Controlthroughin‐bandsignalling,statelessforwarders
• Minimizevisibilityofchurnforscalability– Differentaddressingfordifferentscopes(successiverefinement)
– UnityoffuncNonalityandmanagement
![Page 14: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/14.jpg)
Extentofchanges
Changein‐networksupport
Changethepacketformat
Changesocketlayer+stack
Object Switch
Flow Switch
Flow ID
Obj ID DC ID Host ID Sock ID Hdr
![Page 15: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/15.jpg)
ApplicaNon’snetworkAPI
Today(IP/BSDsockets)
fd = open();
Datagram: sendto (IP:port, data)
Stream: connect (fd, IP:port) send (fd, data);
IP:ApplicaNonseesnetwork,networkdoesn’tseeappSCAFFOLD:Networkseesapp,appdoesn’tseenetwork
SCAFFOLD
fd = open();
Unbounddatagram: sendto (objectID, data)
Bounddatagram: connect (fd, objectID) send (fd, data);
![Page 16: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/16.jpg)
SCAFFOLDinthenetwork:
UnboundDatagramsandNetworkSupport
![Page 17: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/17.jpg)
Forwardingunbounddatagrams
Host ID: B
X B
C SRC
DST
C
X SRC
DST
C SRC
X DST
C A
X SRC
DST
X
X
Object Switch
Host ID: A
X
C:A
X:B
X:D
X:E
HID: D
HID: E Service‐levelnamingandforwarding ServicesshouldcontrolinstanceselecNon
![Page 18: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/18.jpg)
HID: D
HID: E
Successiverefinementofdatagrams
X
Host ID: B
Data Center 2 Data Center 1
Host ID: A
X
X
C:A
X:2
C:1
X:B
X:D
X:E
![Page 19: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/19.jpg)
HID: D
HID: E
Successiverefinementofdatagrams
X
Host ID: B
Data Center 2 Data Center 1
Host ID: A
X 2
C SRC
DST X B
C SRC
DST
X
C SRC
X DST C
X SRC
DST
C A
X SRC
DST
C 1
X SRC
DST
X
C:A
X:2
C:1
X:B
X:D
X:E
Forwardingreferstosuccessively‐refineddesNnaNons Churnhiddenfromwider‐areaasmuchaspossible
![Page 20: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/20.jpg)
SCAFFOLDinthenetwork:
BoundFlowsandNetworkDevices
![Page 21: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/21.jpg)
Forwardingboundflows
Host ID: B
X
X
Object Switch
Host ID: A
XX B
C SRC
DST
C
X SRC
DST
SRC
X DST
C A
X SRC
DST
C:A
X:B
X:D
X:E
C
![Page 22: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/22.jpg)
Forwardingboundflows
Host ID: B
X
X
Object Switch
Host ID: A
XX B
C SRC
DST
C SRC
X DST
A p
A p
C
X SRC
DST A p
B q
C:A
X:B
X:D
X:E
![Page 23: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/23.jpg)
C:A
X:B
X:D
X:E
Forwardingboundflows
Host ID: B
Object Switch
Host ID: A
XX B
C SRC
DST
C SRC
X DST
A p
A p
C
X SRC
DST A p
B q
Flow ID
Obj ID Host ID Sock ID Header
X
C SRC
DST B q
A p
fd=5 oid=C,X C
X SRC
DST A p
B q
fd=9 oid=X,C
![Page 24: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/24.jpg)
C:A
X:B
X:D
X:E
Forwardingboundflows
Host ID: B
Object Switch
Host ID: A
XX B
C SRC
DST
C SRC
X DST
A p
A p
C
X SRC
DST A p
B q
Flow Switch
_:aOS
A:aAB:aB
D:aD
E:aE
C
X SRC
DST A p
B q
fd=9 oid=X,C
X
C SRC
DST B q
A p
fd=5 oid=C,X
Flow ID
Obj ID Host ID Sock ID Header
![Page 25: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/25.jpg)
C:A
X:B
X:D
X:E
Forwardingboundflows
Host ID: B
Object Switch
Host ID: A
XX B
C SRC
DST
C SRC
X DST
A p
A p
C
X SRC
DST A p
B q
Flow Switch
C
X SRC
DST A p
B q
fd=9 oid=X,C
X
C SRC
DST B q
A p
fd=5 oid=C,X
B q
q
_:aOS
A:aAB:aB
D:aD
E:aE
Flow ID
Obj ID Host ID Sock ID Header
![Page 26: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/26.jpg)
C:A
X:B
X:D
X:E
Forwardingboundflows
Host ID: B
Object Switch
Host ID: A
XX B
C SRC
DST
C SRC
X DST
A p
A p
C
X SRC
DST A p
B q
Flow Switch
C
X SRC
DST A p
B q
fd=9 oid=X,C
X
C SRC
DST B q
A p
fd=5 oid=C,X
B q
q
_:aOS
A:aAB:aB
D:aD
E:aE
Flow ID
Obj ID Host ID Sock ID Header
ServicesshouldcontrolinstanceselecNon Flowaffinity,yetnoper‐flownetworkstate FlowsidenNfiedbyeachendpoint
![Page 27: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/27.jpg)
Forwardingboundflows
X
X
Host ID: B
Data Center 2 Data Center 1
X 2
C 1 A p SRC
DST X 2 B
C 1 A p SRC
DST
C 1 A p
X 2 B q SRC
DST
X
C 1 A p SRC
X DST
Host ID: A
C:A
X:2
_:aOS2
2B:aB
2D:aD
2E:aE
1:a1
_:aOS1
1A:aA2:a2
![Page 28: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/28.jpg)
Forwardingboundflows
X
X
Host ID: B
Data Center 2 Data Center 1
X 2
C 1 A p SRC
DST X 2 B
C 1 A p SRC
DST
C 1 A p
X 2 B q SRC
DST
X
C 1 A p SRC
X DST
Host ID: A
C:A
X:2
_:aOS2
2B:aB
2D:aD
2E:aE
1:a1
_:aOS1
1A:aA2:a2
![Page 29: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/29.jpg)
Forwardingboundflows
X
X
Host ID: B
Data Center 2 Data Center 1
X 2 B
C 1 A p SRC
DST
C 1 A p
X 2 B q SRC
DST
X
C 1 A p SRC
X DST
Host ID: A
X 2
C 1 A p SRC
DST
Flow ID
Obj ID DC ID Host ID Sock ID Header
C:A
X:2
_:aOS2
2B:aB
2D:aD
2E:aE
1:a1
_:aOS1
1A:aA2:a2
![Page 30: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/30.jpg)
Forwardingboundflows
X
X
Host ID: B
Data Center 2 Data Center 1
X 2 B
C 1 A p SRC
DST
C 1 A p
X 2 B q SRC
DST
X
C 1 A p SRC
X DST
Host ID: A
X 2
C 1 A p SRC
DST
C:A
X:2
_:aOS2
2B:aB
2D:aD
2E:aE
1:a1
_:aOS1
1A:aA2:a2
ApplicaNonsnamelogicalflows,notphysicallocaNons
![Page 31: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/31.jpg)
Labelmanagementbyend‐host
SocketState
LocalObjectID
LocalFlowID
RemoteObjectID
RemoteFlowID
AcceptedSocket
open C 1:A:p X 2:B:q No
bound C 1:A:r Y −− No
unbound E −− Z −− No
IP:ApplicaNonseesnetwork,networkdoesn’tseeappSCAFFOLD:Networkseesapp,appdoesn’tseenetwork
FileDescriptor ObjectIDs
5 CX
9 CX
47 CY
X 2 B q
C 1 A p SRC
DST User-Space Application
SCAFFOLD Socket State
![Page 32: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/32.jpg)
Labelmanagementbyend‐host
SocketState
LocalObjectID
LocalFlowID
RemoteObjectID
RemoteFlowID
AcceptedSocket
open C 1:A:p X 2:B:q No
bound C 1:A:r Y −− No
unbound E −− Z −− No
IP:ApplicaNonseesnetwork,networkdoesn’tseeappSCAFFOLD:Networkseesapp,appdoesn’tseenetwork
FileDescriptor ObjectIDs
5 CX
9 CX
47 CY
X 2 B q
C 1 A p SRC
DST User-Space Application
SCAFFOLD Socket State
4:A:p 2:D:t3:D:q
4:A:r
![Page 33: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/33.jpg)
MigraNonandFailover
• PlannedmigraNonorphysicalmobility– In‐bandsignaling:DesNnaNonreplacesflowidoldwithflowidnew
• Unplannedfailover– FailureofdesNnaNoncausesremovalfromflowswitch
– Flowswitchlookupfails,flowre‐resolvedatobjectswitch– SenderagainlearnsnewlocaNon(flowid)viain‐bandsignaling
• Mayrequirenew3‐wayhandshakeforrenegoNaNon
![Page 34: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/34.jpg)
NetworkManagementAPIs
X
Controller
X
X
• Flowswitch– FlowTable:MapFlowIDto
networkaddroroutport
• Objectswitch– ObjectTable:MapObjIDto
FlowIDlabel
– Typicallycolocatesflowtable
• End‐host– Join/leavenetwork– Register/unregisterobjectIDs– Migrate/redirectflowids
• NetworkController
![Page 35: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/35.jpg)
NetworkManagementAPIs
X
Controller
X
X
• Flowswitch– FlowTable:MapFlowIDto
networkaddroroutport
• Objectswitch– ObjectTable:MapObjIDto
FlowIDlabel
– Typicallycolocatesflowtable
• End‐host– Join/leavenetwork– Register/unregisterobjectIDs– Migrate/redirectflowids
• NetworkController
![Page 36: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/36.jpg)
NetworkManagementAPIs• Flowswitch
– FlowTable:MapFlowIDtonetworkaddroroutport
• Objectswitch– ObjectTable:MapObjIDto
FlowIDlabel
– Typicallycolocatesflowtable
• End‐host– Join/leavenetwork– Register/unregisterobjectIDs– Migrate/redirectflowids
• NetworkController
X
Controller
X
X
reg
join
![Page 37: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/37.jpg)
IncrementalDeploymentModel
X
DC 2 DC 1
Backbone
Internet
X
Legacy Clients
Y
X
YY
![Page 38: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/38.jpg)
Legacy Clients
IncrementalDeploymentModel
X
DC 2 DC 1
X
YY
X
AnycastedIPPrefix(BGP)
AnycastSubprefix1 Anycast
Subprefix2
IPforwarding
YMACforwarding
![Page 39: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/39.jpg)
CurrentimplementaNon• BackwardscompaNblewith
legacyIPv4networks– SCAFFOLDpacketformat:
• ObjectIDinUDPport• FlowidinIPv4addr
• Flowswitch– OpenFlowso_wareswitch– Hit:LPMonflowID
– Miss:EGREtuntoobjswitch
• Objectswitch– OpenFlowso_wareswitch– Hit:ExactmatchonobjID
– Miss:SendpackettoController
X
Controller
X
X
reg
join
Ingress Proxy
![Page 40: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/40.jpg)
CurrentimplementaNon• End‐host
– NewSCAFFOLDsocketlibrary– User‐levelClickprocess
• Networkandtransport• Comm.withController
– TUN/TAPdriverandin‐kernelClickforpacketintercepNon
• NetworkController– NOX– NewhostAPI(viapacket_in)– Manageflow/objectswitches
X
Controller
X
X
reg
join
Ingress Proxy
![Page 41: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/41.jpg)
OpenflowDesiderata
• Matchonone‐of‐Nentries(e.g.,hashing)
• MulNcast(e.g.,forplannedredirect)
• PacketencapsulaNon(forforwardingtoobjswitch)– UnnecessaryifSCAFFOLD‐onlynetwork
• Moreflexibility/spaceforheaderencoding/rewriNng– Currently216objectsandfixed28DCs,28hosts,216sockets– IPv6supportwouldprovidemuchgreatlyscalability– UlNmatelyprefertodefineownheaderformat
![Page 42: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/42.jpg)
SCAFFOLDonend‐hosts:
NewsocketAPIandnetworkstack
![Page 43: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/43.jpg)
+------------------+ | Scafd Daemon | +----------+ | | | | AF_UNIX socket | Event-driven | | SF app | <------------------> | SFNet element | | | Scafd protocol | | +----------+ +--------+---------+ |Control | Sock | | table | table | +--+-----+-----+---+ Change | ^ kernel | | SF packets send/recv state | +---------------+ | | IP Frag/Reass | | +---------------+ | | V V +-------+ +-----+ User |ioctl()| | TUN | ---------------------------------+-------+---+-----+--- Kernel | +-------<------------->-------// more ethX | +----------+-----------+ | | +------+----+ +------+------+ | | | | non-SF | SFEthOut | | SFEthIn +---------> Linux Stack | | | +-----+ +-+-----+---+ +-------+-----+ | | | ^ ^ ARP | | Eth+SF | Eth+SF | ARP V V pkts | pkts | | +------------------------------+ | +--| eth device |------+ +----+--------+--------+-------+ ^ ^ | V V V flow-switch non-SF L2 bcast
SocketArchitecture
![Page 44: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/44.jpg)
+------------------+ | Scafd Daemon | +----------+ | | | | AF_UNIX socket | Event-driven | | SF app | <------------------> | SFNet element | | | Scafd protocol | | +----------+ +--------+---------+ |Control | Sock | | table | table | +--+-----+-----+---+
SocketArchitecturetypedef struct { uint16_t v; } sf_obj_t;
struct sockaddr_sf { uint16_t family; sf_obj_t local_obj_id; sf_obj_t remote_obj_id; };
int socket_sf (int domain, int type, int protocol)
int bind_sf (int s, const sockaddr *, socklen_t)
– Blockingcall,returnsa_erregistercallb/wscafdandController
int connect_sf (int s, const sockaddr *, socklen_t, sf_err_t &) – Bothblockingandnon‐blockingversions(workswithselect)– Returnssuccessa_er3‐wayhandshakewithremotesockaddr
![Page 45: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/45.jpg)
+------------------+ | Scafd Daemon | +----------+ | | | | AF_UNIX socket | Event-driven | | SF app | <------------------> | SFNet element | | | Scafd protocol | | +----------+ +--------+---------+ |Control | Sock | | table | table | +--+-----+-----+---+
SocketArchitecturetypedef struct { uint16_t v; } sf_obj_t;
struct sockaddr_sf { uint16_t family; sf_obj_t local_obj_id; sf_obj_t remote_obj_id; };
int listen_sf (int s, int backlog, sf_err_t &) int listen_sf (int s, const sockaddr *, socklen_t, int backlog, sf_err_t &)
– LarerversionallowssinglesockettolistenonmulNpleobjects
– Resultsinaregistercallb/wscafdandController
int accept_sf (int s, sockaddr *, socklen_t, sf_err_t &)
– Returnsboundsocket(sender/receiverflowidsestablished)
![Page 46: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/46.jpg)
+------------------+ | Scafd Daemon | +----------+ | | | | AF_UNIX socket | Event-driven | | SF app | <------------------> | SFNet element | | | Scafd protocol | | +----------+ +--------+---------+ |Control | Sock | | table | table | +--+-----+-----+---+
SocketArchitecturetypedef struct { uint16_t v; } sf_obj_t;
struct sockaddr_sf { uint16_t family; sf_obj_t local_obj_id; sf_obj_t remote_obj_id; };
ssize_t send_sf (int s, const void *, size_t, int flags, &) ssize_t sendto_sf (int s, const void *, size_t, int flags, const sockaddr *, socklen_t, sf_err_t &)
ssize_t recv_sf (int s, void *, size_t, int flags, &) ssize_t recvfrom_sf (int s, void *, size_t, int flags, struct sockaddr *, socklen_t *, sf_err_t &)
int close_sf (int s, sf_err_t &);
– Connectedsocketsexecute3‐wayhandshake– Bound/listeningsocketsunregisterallobjIDswithController
![Page 47: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/47.jpg)
ApplicaNons
• Replicatedwebservices– Fault‐tolerantfailoverforunmodifiedservices
• Key‐valuestorew/olayer‐7switch(memcached,CRAQ)
• Layer‐3VMmigraNon• Wide‐areacontentdistribuNonnetwork• SubstrateforVirtualWorlds(Meru)
• Currentports– Iperf– TFTP(FTPoverUDP)– NFSv3(inprogress)
![Page 48: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/48.jpg)
Unresolvedforclean‐slatedesign
• DiscoveryandecosystemofauthoritaNveobjectswitches
• Security– Wide‐arearouNngannouncements
– In‐bandsignalingofflowidupdates
• Flexibilityandextensibility– Useforfine‐grain,ephemeralobjID’s(CCN)
– Revisitstream‐orientedappsasself‐descripNvedatagrams
– SupplantallIPandhost‐to‐hostcommunicaNon?“Host”asserviceIDwithsinglelocaNon?
![Page 49: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/49.jpg)
RelatedWork
• Addressing:SeparaNnglocaNonfromidenNty– SFR,LNA,DOA,LISP;ROFL,SEATTLE– Triad,DONA,CCN– Portland,VL2,SPAIN
• MigraNonandMobility– MobileIP,i3,LISP,TCPMigrate,SCTP;RTP,Trickles
• ReplicaNonandIPanycast– SFR,DOA;4D‐likecontrol;PIAS,GIA
• RouNngoncoarsegrainidenNfiers– AIP,NIRA
![Page 50: Building a service‐centric network with SCAFFOLDnetseminar.stanford.edu/past_seminars/seminars/freedman-scaffold.… · To a service‐centric architecture ... single administrave](https://reader033.vdocuments.mx/reader033/viewer/2022050315/5f77525b199d03252721d533/html5/thumbnails/50.jpg)
Buildingaservice‐centricnetworkwithSCAFFOLD
MichaelJ.Freedman
PrincetonUniversity
withPremGopalan,StevenKo,JenRexford,andDavidShue
*Service‐CentricArchitectureForFlexibleObjectLocalizaNonandDistribuNon
*