Servicecentricnetworking withSCAFFOLD MichaelJ.Freedman - - PowerPoint PPT Presentation

service centric networking with scaffold
SMART_READER_LITE
LIVE PREVIEW

Servicecentricnetworking withSCAFFOLD MichaelJ.Freedman - - PowerPoint PPT Presentation

Servicecentricnetworking withSCAFFOLD MichaelJ.Freedman PrincetonUniversity withMatveyArye,PremGopalan,StevenKo, ErikNordstrom,JenRexford,andDavidShue


slide-1
SLIDE 1

Service‐centric
networking
 with
SCAFFOLD


Michael
J.
Freedman
 Princeton
University


with
Matvey
Arye,
Prem
Gopalan,
Steven
Ko,

 Erik
Nordstrom,
Jen
Rexford,
and
David
Shue


slide-2
SLIDE 2

From
a
host‐centric
architecture


1960s


slide-3
SLIDE 3

From
a
host‐centric
architecture


1960s
 1970s


slide-4
SLIDE 4

From
a
host‐centric
architecture


1960s
 1970s
 1990s


slide-5
SLIDE 5

To
a
service‐centric
architecture


1960s
 1970s
 1990s
 2000s


slide-6
SLIDE 6

To
a
service‐centric
architecture


  • Users
want
services,
agnosRc
of
actual
host/locaRon

  • Service
operators
need:


replica
selecRon
/
load


balancing,
replica
registraRon,
liveness
monitoring,
 failover,
migraRon,
…


slide-7
SLIDE 7

Hacks
to
fake
service‐centrism
today



Layer
4/7: 
DNS
with
small
TTLs
 
 
HTTP
redirects
 
 
Layer‐7
switching
 Layer
3:
 
IP
addresses
and
IP
anycast
 
 
 
Inter/intra
rouRng
updates
 Layer
2:
 
VIP/DIP
load
balancers
 
 
VRRP,

ARP
spoofing


+
Home‐brewed
registraRon,
configuraRon,
monitoring,
…


slide-8
SLIDE 8

To
a
service‐centric
architecture


  • Users
want
services,
agnosRc
of
actual
host/locaRon

  • Service
operators
need:


replica
selecRon
/
load


balancing,
replica
registraRon,
liveness
monitoring,
 failover,
migraRon,
…


  • Service‐level
anycast
as
basic
network
primiRve

slide-9
SLIDE 9

Two
high‐level
quesRons


  • Moderate
vision:

Can
network
support
aid
self‐

configuraRon
for
replicated
services?


  • Big
vision:

Should
“service‐centric
networking”


become
the
new
thin
waist
of
Internet?


slide-10
SLIDE 10

Naming
as
a
“thin
waist”


  • Host‐centric
design:

TradiRonally
one
IP
per
NIC


– Load
balancing,
failover,
and
mobility
complicates
 – Now:

virtual
IPs,
virtual
MACs,
…



  • Content‐centric
architecture:

Unique
ID
per
data
object


– DONA
(Berkeley),
CCN
(PARC),
…


  • SCAFFOLD:

Unique
ID
per
group
of
processes


– Each
member
must
individually
provide
full
group
funcRonality
 – Group
can
vary
in
size,
distributed
over
LAN
or
WAN


slide-11
SLIDE 11

Object
granularity
can
vary
by
service


=


SCAFFOLD
 ObjectID


K-bit Admin Prefix Machine-readable ObjectID

=


Google YouTube Service

Fixed
Bit‐length


Memcache
Par**on


=


Facebook Partition 243

=


Comcast Mike’s Laptop

IZ
–

“Somewhere



  • ver
the
rainbow”
 =


Google IZ – “Somewhere” video

slide-12
SLIDE 12

SCAFFOLD
as
…


– Clean
slate
design
 – MulR‐datacenter
architecture
for
 single
administraRve
domain


  • Deployed
over
legacy
networks

  • Few
/
no
modificaRons
to
applicaRons

slide-13
SLIDE 13

Target:
Single
administraRve
domain


  • Datacenter
management
more
unified,
simple,
centralized

  • Host
OS
net‐imaged
and
can
be
fork‐lii
upgraded

  • Already
struggling
to
provide
scalability
and
service‐centrism

  • Cloud
compuRng
lessen
importance
of
fixed,
physical
hosts


X


DC 2 DC 1

Y


Backbone Internet

X
 Y
 Y
 X


slide-14
SLIDE 14

Goals
for
Service‐Centrism


  • Handling
replicated
services


– Control
over
replica
selecRon
among
groups
 – Control
of
network
resources
shared
between
groups
 – Handling
dynamics
among
group
membership
and
deployments


  • Handling
churn


– Flexibility:

From
sessions,
to
hosts,
to
datacenters
 – Robustness:


Largely
hide
from
applicaRons
 – Scalability:

Local
changes
shouldn’t
need
to
update
global
info
 – Scalability:

Churn
shouldn’t
require
per‐client
state
in
network
 – Efficiency:


Wide‐area
migraRon
shouldn’t
require
tunneling


slide-15
SLIDE 15

Clean-Slate Design

slide-16
SLIDE 16

Principles
of
SCAFFOLD


  • 1. Service‐level
naming
exposed
to
network

  • 2. Anycast
with
flow
affinity
as
basic
primiRve

  • 3. MigraRon
and
failover
through
address
remapping


– Addresses
bound
to
physical
locaRons
(aggregatable)
 – Flows
idenRfied
by
each
endpoint,
not
pairwise
 – Control
through
in‐band
signalling;
stateless
forwarders


  • 4. Minimize
visibility
of
churn
for
scalability


– Different
addr’s
for
different
scopes
(successive
refinement)


  • 5. Tighter
host‐network
integraRon


– Allowing
hosts
/
service
instances
to
dynamically
update
network


slide-17
SLIDE 17

Principles
of
SCAFFOLD


  • 1. Service‐level
naming
exposed
to
network

  • 2. Anycast
with
flow
affinity
as
basic
primiRve

slide-18
SLIDE 18

Principles
of
SCAFFOLD


  • 1. Service‐level
naming
exposed
to
network

  • 2. Anycast
with
flow
affinity
as
basic
primiRve




SCAFFOLD
address
 ObjectID
 FlowID
 (
i
)


Resolve
ObjectID
to
an
instance
FlowLabel
 (
ii
)

Route
on
instance
FlowLabel
to
the
desRnaRon


Admin Prefix Object Name SS Label Host Label

(
iii
)

Subsequent
flow
packets
use
same
FlowLabel
 SocketID


slide-19
SLIDE 19

Principles
of
SCAFFOLD


  • 1. Service‐level
naming
exposed
to
network

  • 2. Anycast
with
flow
affinity
as
basic
primiRve




SCAFFOLD
address
 ObjectID
 FlowID


Admin Prefix Object Name SS Label Host Label

SocketID


slide-20
SLIDE 20



SCAFFOLD
address

Decoupled
flow
idenRfiers


Src FlowID Dst FlowID

ObjectID Flow Labels SocketID ObjectID Flow Labels SocketID

  • 3. MigraRon
and
failover
through
address
remapping

  • 4. Minimize
visibility
of
churn
for
scalability


Who Where Which conversation

ObjectID Flow Labels SocketID

slide-21
SLIDE 21



SCAFFOLD
address

Manage
migraRon
/
failover
through

 in‐band
address
remapping


Src FlowID Dst FlowID Who Where Which conversation

ObjectID Flow Labels SocketID ObjectID Flow Labels SocketID ObjectID SS8 : 30 SocketID SS10 : 40 : 20

(
i
) 
Local
end‐point
changes
locaRon,
assigned
new
address
 (
ii
) 
ExisRng
connecRons
signal
new
address
to
remote
end‐points
 (
iii
) 
Remote
network
stack
updated,
applicaRon
unaware


slide-22
SLIDE 22

Minimize
visibility
of
churn
through
 successive
refinement


ObjectID SS4 : 50 SocketID SS10 : 40 : 20

Where

SS
10
 40
 20
 5


Wide‐Area


slide-23
SLIDE 23

Minimize
visibility
of
churn
through
 successive
refinement


SS
4
 SS
10


Arbitrary
Subnet
/
 Address
Structure
 MulRple
levels


  • f
refinement


Wide‐Area


SRC LocalHost Safari Client SS 4 50 3 DST Google YouTube Svc SS 10 40 20 5

40
 20


  • Scalability:
 
–
Local
churn
only
updates
local
state


 
 
 
–
Addresses
remain
hierarchical


  • Info
hiding:

Topology
not
globally
exposed


5


slide-24
SLIDE 24

Network Controller Label Router Label Router Label Router Object Router Host

RouRng
 ResoluRon


Host

B 3 A 2

Ac*on
 Network
 Control
Msg
 netlink
up
 join
(2)
 netlink
down
 leave
(2)
 bind
(fd,
A)
 register
(A,
2)
 close
(fd)
 unregister
(A,
2)


Integrated
service‐host‐network
management


slide-25
SLIDE 25

Network Controller Label Router Label Router Label Router Object Router Host

RouRng
 ResoluRon


Host

B 3 A 2

Ac*on
 Network
 Control
Msg
 netlink
up
 join
(2)
 netlink
down
 leave
(2)
 bind
(fd,
A)
 register
(A,
2)
 close
(fd)
 unregister
(A,
2)


Integrated
service‐host‐network
management


Self‐configuraRon

+

adapRve
to
churn


slide-26
SLIDE 26

Using SCAFFOLD:

Network‐level
protocols
 and
network
support


slide-27
SLIDE 27

ApplicaRon’s
network
API


Today

(IP
/
BSD
sockets)


fd = open();

Datagram:


sendto (IP:port, data)

Stream:


connect (fd, IP:port) send (fd, data);

IP:


ApplicaRon
sees
network,
network
doesn’t
see
app
 SCAFFOLD:

Network
sees
app,
app
doesn’t
see
network


SCAFFOLD


fd = open();

Unbound
datagram:


sendto (objectID, data)

Bound
datagram:


connect (fd, objectID) send (fd, data);

slide-28
SLIDE 28

SRC B 3 DST A

LR 1 LR 2 Object Router OR

D A T A 
 D A T A 


Label Router 1 Label Router 2

SRC A 2 DST B SRC A 2 DST B 3 ObjectID Flow Label SocketID

sendto
(B)
 sendto
(A)


B 4 B 3 A 2 A 2 B 3 B 4

Unbound
Flows


3 p1 4 p2

bind(B)
 join


slide-29
SLIDE 29

SRC B 3 DST A 2

LR 1 LR 2 Object Router OR

D A T A 
 D A T A 


Label Router 1 Label Router 2

SRC A 2 DST B SRC A 2 DST B 3 ObjectID Flow Label SocketID

sendto
(B)


B 4 B 3 A 2 A 2 B 3 B 4

Half‐Bound
Flows


3 p1 4 p2

sendto
(A,
flags)
 bind(B)
 join


slide-30
SLIDE 30

LR 1 LR 2 Object Router OR Label Router 1 Label Router 2

SRC A 2 765 DST B SRC A 2 765 DST B 3 SRC B 3 234 DST A 2 765

S Y N 
 S Y N 
 SYN/ACK
 ACK


SRC A 2 765 DST B 3 234

connect(B)


ConnecRon
 Bound


join
 bind(B)
 listen()


B 3 A 2

Bound
Flows


slide-31
SLIDE 31

LR 1 LR 2 Object Router OR Label Router 1 Label Router 2

SRC A 2 765 DST B SRC A 2 765 DST B 3

S Y N 
 S Y N 
 SYN/ACK
 ACK


SRC A 2 765 DST B 3 234

connect(B)


ConnecRon
 Bound


B 3 A 2

Bound
Flows


  • ApplicaRons
bind
on
object‐level
names

  • Network
forwards
on
resolved
addresses


SRC B 3 234 DST A 2 765

join
 bind(B)
 listen()


slide-32
SLIDE 32

SRC A 2 765 DST B 3 234

Label Router 1

SupporRng
Mobility
and
MigraRon


Label Router 3

SRC B 3 234 DST A 2 765

Object Router Label Router 2

R S Y N 
 R S Y N / A C K 
 ACK


LR 3

SRC B 3 234 DST A 4 765

ConnecRon
 Migrated


LR 1 LR 2 OR

SRC A ? 765 DST B 3 234 SRC A 4 765 DST B 3 234 B 3 A 2 A 4

slide-33
SLIDE 33

Label Router 1

SupporRng
Failover
and
Load
Shedding


Object Router Label Router 2 LR 1 LR 2 OR

A 2

F A I L 


B 3 B 5

ACK
 R S Y N 
 R S Y N / A C K 


SRC A 2 765 DST B 3 234 SRC A 2 765 DST B SRC A 2 765 DST B 5 529

slide-34
SLIDE 34

Label Router 1

SupporRng
Failover
and
Load
Shedding


Object Router Label Router 2 LR 1 LR 2 OR

A 2

F A I L 


B 3 B 5

ACK
 R S Y N 
 R S Y N / A C K 


SRC A 2 765 DST B 3 234 SRC A 2 765 DST B SRC A 2 765 DST B 5 529

  • Decoupled
id’s
enable
in‐band
migraRon
and
recovery

  • Flow
affinity
without
per‐flow
state
in
the
network

slide-35
SLIDE 35

Extent
of
changes


 
Change
in‐network
support
  
Change
the
packet
format
  
Change
socket
layer
+
stack


Hdr ObjID

SS | … | Host SockID

Label Router Object Router Network Controller

Yet:
  Can
run
on
top
of
legacy
networks
(IP
and
Ethernet)
  Few/easy/no
changes
to
applicaRons


slide-36
SLIDE 36

Backwards Compatibility

slide-37
SLIDE 37

Hide
physical
locaRon
from
app


Today

(IP
/
BSD
sockets)


fd = open();

Datagram:


sendto (IP:port, data)

Stream:


connect (fd, IP:port) send (fd, data);

SCAFFOLD


fd = open();

Unbound
datagram:


sendto (objectID, data)

Bound
datagram:


connect (fd, objectID) send (fd, data);

Current
applicaRons



–
iperf,
TFTP,
PowerDNS



slide-38
SLIDE 38

SCAFFOLD
network
stack


Network interfaces

Application

Scafd

IPC


user
 kernel


Network interfaces Application Scafd

IP
packets
 Linux
sockets
interface
 Packet
socket


slide-39
SLIDE 39

OperaRng
across
legacy
networks


SS
4
 SS
10


Arbitrary
Subnet
/
 Address
Structure


Wide‐Area


SRC LocalHost Safari Client SS 4 50 3 DST Google YouTube Svc SS 10 40 20 5

40
 20
 5


Label Router Label Router Label Router Label Router Label Router Label Router

(Anycasted)


 IP
Address
/
Prefix


1.1.1.1 2.2.2.2 3.3.3.3 1.1/16

1.1.1/24

1.1.1.1

slide-40
SLIDE 40

RouRng
over
legacy
networks


Ethernet
 IPv4
 Transport


Port:
16b
objID


Addr:

8b
SS|8b
Host|16b
sock


Ethernet
 IPv4


SCAFFOLD


1.1.1.1 ObjectID Flow Label SocketID 2.2.2.2

Current
 In
Development


slide-41
SLIDE 41

In‐Network
support


Object Router Label Router

Modified
OpenFlow
soiware
switch
for
 proporRonal
split
rouRng/resoluRon


‐


NOX
applicaRon:

 topology,
host,
object
management


Network Controller

‐


Network Controller Label Router Label Router Label Router Object Router Host Host

slide-42
SLIDE 42

“Evaluation”

slide-43
SLIDE 43

Demos


  • Load
Shedding:


– Call
close()
on
connecRons
 – Subsequent
packets
get
FAIL,
then
reconnect


  • Client
mobility

slide-44
SLIDE 44
slide-45
SLIDE 45

TFTP
transfer
with
Client
Mobility


Client
Leaves
 Client
Reconnects
(RSYN)


slide-46
SLIDE 46

TFTP
transfer
with
Failover


Server
1
(FAIL)
 Server
2
(FAIL)
 <
100
ms
blip


slide-47
SLIDE 47

Current
throughput


Current
implementaRon
is
both
user/kernel
space.

 Ongoing
development
to
either/or.


slide-48
SLIDE 48

Service‐centric
networking


  • Moderate
vision:

Can
network
support
aid
self‐

configuraRon
for
replicated
services?


  • Big
vision:

Should
“service‐centric
networking”


become
the
new
thin
waist
of
Internet?
 SCAFFOLD
rethinks:


  • 1. Naming
exposed
to
network
and
applicaRons

  • 2. Extent
of
host‐network
integraRon

  • 3. Role
of
dumb/stateless
network
vs.
end‐hosts

slide-49
SLIDE 49

Service‐centric
networking
 with
SCAFFOLD


Michael
J.
Freedman
 Princeton
University


with
Matvey
Arye,
Prem
Gopalan,
Steven
Ko,

 Erik
Nordstrom,
Jen
Rexford,
and
David
Shue


slide-50
SLIDE 50
slide-51
SLIDE 51

Latency
of
API
calls


slide-52
SLIDE 52

Network
vs.
stack
latency


slide-53
SLIDE 53

Related
Work


NewArch i3 LNA DONA LISP HIP CCN SCAFFOLD Paradigm Object Object Object Host Host Content Object Layer 3O 4 3/4 3 4 3/4 3/4 Anycast Hash Res Prox No No Mcast Res Resolution DHT EB Routed EB Rdz DDiff SRefine Migration Yes Yes Yes* Yes Yes Yes* Yes Failover Yes Yes Yes No No Yes Yes

slide-54
SLIDE 54

Related
Work


SCAFFOLD SPAIN PortLand VL2 Topology Arbitrary Arbitrary Fat-tree Fat-tree Multipath Any Many ECMP ECMP Migration Yes Yes* Yes* Yes* Failover Yes No No No Traffic Engineering Arbitrary Oblivious Oblivious Oblivious Server Selection Yes No* No* No* Use CoTS? No Yes No Yes End-host Mod Yes Yes No Yes