2 3 4 service
play

2 3 4 Service Server Client Server ConnecOon Recovered! - PowerPoint PPT Presentation

PresentedatDSNDCCS2011inHongKongon6/28/11 TRODS TransparentRecoveryfor ObjectDeliveryServices Wya$Lloyd ,MichaelJ.Freedman PrincetonUniversity 2 3 4 Service


  1. Presented
at
DSN‐DCCS
2011
in
Hong
Kong
on
6/28/11
 TRODS 
 Transparent
Recovery
for
 Object
Delivery
Services
 Wya$
Lloyd ,
Michael
J.
Freedman
 Princeton
University


  2. 2


  3. 3


  4. 4


  5. Service
 Server
 Client
 Server
 ConnecOon
 Recovered!
 Server
 Server
 5


  6. Object
Delivery
Services
 • Read‐Only
 • StaOc
Content
 • Webpages,
Images,
Videos
 6


  7. Work
Now
 • Can’t
Modify
Clients
 7


  8. Key
Idea
 • Coerce
client
to
help
 – To
idenOfy
connecOons
that
need
recovery
 – To
reliably
store
informaOon
 • Yet
client
is
unmodified
and
unaware
 – Exploit
TCP
spec
to
control
client’s
stack
 8


  9. Object
Delivery
Cluster
 Service
 Liveness
 Server
 Monitor
 Server
 Load
 Balancer
 Server
 Server
 9


  10. Failure
 Service
 Liveness
 Server
 Monitor
 Server
 Load
 Balancer
 Server
 Server
 10


  11. TRODS
 Service
 Liveness
 Monitor
 ?
 Server
 Load
 Client
 Balancer
 Server
 Server
 11


  12. TRODS
 Service
 Liveness
 Monitor
 ?
 Server
 Load
 Client
 Balancer
 Server
 Store
 Server
 12


  13. Road
to
Recovery
 Step 
 
 
 
 
 
 
 
 Technique
 Redirect
to
live
server
……………….
Liveness
monitor
updates



 
 
 
 
 
 
 
 
 
load
balancer
 Induce
client
to
send
packet………
Coerce
client’s
TCP
stack
 ConOnue
ConnecOon
 
Determine
Phase…………………
Use
packet
+
stored
info
 
IdenOfy
Object…………………….
Stored
Info
 
Find
Offset
…………………………..
Use
packet
+
stored
info
 13


  14. Coercing
Clients
 • Always
Leave
A
Packet
Unacknowledged
 Exploit
TCP
Spec
for
Recovery
IniOaOon!
 Client
 Server
 FIN/ACK
 Request
 ACK
 SYN
 ACK
 ACK
 ACK
 Response 1
 Response 2
 Response 3
 SYN/ACK
 ACK
 FIN
 Retransmit
Queue
 Retransmit
Queue
 Request
 FIN/ACK
 SYN
 Response 3
 Response 2
 Response 1
 SYN/ACK
 FIN
 Always
Something
Here
 14


  15. ConOnuing
the
ConnecOon
 • Determine
Phase:
 1) TCP
Setup
 2) HTTP
Setup
 TRODS
Saves
Info
 3) HTTP
Download
 4) TCP
Teardown
 15


  16. ConOnuing
the
Download
 • HTTP

ObjectID
 • Offset
 =
TCP
Ack
–
HTTP

ObjectISN
 HTTP
ObjectISN
 TCP
Ack
 HTTP
 S HTTP
 Y Resp
 Object
 N 
 Header
 TCP
ISN
 16


  17. ConOnuing
the
Download
 • HTTP

ObjectID
 • Offset
 =
TCP
Ack
–
HTTP

ObjectISN
 HTTP
ObjectISN
 TCP
Ack
 HTTP
 S HTTP
 Y Resp
 Object
 N 
 Header
 TCP
ISN
 17


  18. Persistent
Store
 • Key‐Value
Store
 +
Corner
Cases
Handled
 +
Unlimited
Objects
 KV
 – SOll
Efficient
(1
save
only)
 T IP
 TCP
 Payload
 • TCP
Timestamp
 S
 +
Very
Efficient
(1
machine
only)
 – 1
Million
Object
Limit
 Exploit
TCP
Spec
for
Persistence!
 – Corner
Cases
 18
 18


  19. Recover
the
ConnecOon
 • IniOate
New
ConnecOon
 – GET
ObjectID
…
 – Range:
bytes=Offset‐
 • Splice
ConnecOons
Together
 • Works
with
Unmodified
Servers!
 19


  20. TRODS
 1) Packet
ManipulaOon
 Server
 IP
 TCP
 …
 TCP
 IP
 TCP’
 …
 TRODS
 IP
 20


  21. TRODS
 1) Packet
ManipulaOon
 Server
 2) Protocol
InspecOon
 Response 1
 TCP
 Request
 TRODS
 ObjISN
 ObjID
 IP
 Request
 21


  22. TRODS
 1) Packet
ManipulaOon
 Server
 2) Protocol
InspecOon
 3) Blocks
ConnecOon
 TCP
 Response 1
 TRODS
 ObjID
 ObjISN
 IP
 22


  23. TRODS
 1) Packet
ManipulaOon
 Server
 2) Protocol
InspecOon
 IP
 TCP
 …
 3) Blocks
ConnecOon
 4) State
InjecOon
 TCP
 IP
 TCP
 …
 TRODS
 TS
 IP
 23


  24. TRODS
 1) Packet
ManipulaOon
 Server
 2) Protocol
InspecOon
 3) Blocks
ConnecOon
 ?
 4) State
InjecOon
 TCP
 5) Recovery
IniOaOon
 TRODS
 IP
 Ack
 24


  25. Failure
Walkthrough
 Service
 Server
 Liveness
 Response 1
 SYN/ACK
 ID
 ISN
 TCP
 Monitor
 TRODS
 IP
 Server
 Load
 Client
 SYN
 Balancer
 ACK
 Request
 TCP
 TRODS
 IP
 Server
 KV
Store
 TCP
 TRODS
 IP
 25
 25


  26. Failure
Walkthrough
 Service
 Liveness
 !
 Monitor
 Server
 Response 2
 Load
 Response 3
 Client
 Response 4
 FIN
 ?
 Balancer
 ACK
 ACK
 TCP
 ACK
 TRODS
 FIN
 ACK
 IP
 ID
 ISN
 Server
 KV
Store
 TCP
 TRODS
 IP
 26
 26


  27. Related
Work
 • New
Transport
 – Trickles,
SCTP,
TCP
Migrate,
…
 • TCP
 – FT‐TCP ,
ST‐TCP,
Backdoors,
…
 • HTTP
 – CoRAL ,
… 
 27


  28. ImplementaOon
 • Linux
Kernel
Module
 • 3,000
lines
of
C
 • ~CoRAL
 – OpOmisOc
subset
of
CoRAL
 28


  29. Experiments
 • AddiOonal
Latency
 – Normal
 – Failure
 • Throughput
 – Lighppd
@
Princeton
 – Apache

@
Emulab
 – Hybrid
TS
&
KV
Throughput
 – Failure
 29


  30. Normal
Case
Latency
 • TRODS‐TimeStamp
(TS)
 – Median:
+
0.009
ms
 – 99 th :
+
0.012
ms
 • TRODS‐Key‐Value
(KV)
 – Median:
+
0.137
ms
 – 99 th :
+
0.148
ms
 30


  31. Recovery
Latency
 1 ~15%
 0.8 ~35%
 0.6 CDF 0.4 ~50%
 0.2 0 ~0 .2ms 20ms 200ms 3s Additional Latency Blink
of
an
eye
 31


  32. ThroughPut
Per
Server
 Raw
 120
ops/s
 120
ops/s
 30
ops/s
 Frontend
 30
ops/s
 30
ops/s/server
 TPPS
 20
ops/s/server
 32


  33. Lighppd
 9%
 22500 Unmodified Requests / Sec / Server TRODS-TS 20000 38%
 TRODS-KV 17500 ~CoRAL KV/Server:
 1/8
 15000 KV/Server:
 1/4
 12500 10000 7%
 7500 KV/Server:
 1/34
 66%
 5000 KV/Server:
 1/2
 2500 1KB 2KB 4KB 8KB 16KB 32KB 64KB 128KB Web Object Size 33


  34. Apache
 1 Normalized TPPS 0.8 0.6 0.4 Unmodified FT-TCP(cold) 0.2 TRODS-TS ~CoRAL TRODS-KV FT-TCP(hot) 0 1KB 2KB 4KB 8KB 16KB 32KB 64KB Web Object Size 34


  35. Summary
 • Recover
Object
Delivery
ConnecOons
 Unmodified
 Unmodified
 ^
 ^
 • Exploit
TCP
SpecificaOon
to
Coerce

Clients
 – To
send
recovery‐starOng
packets
 – To
provide
persistent
storage
 • EvaluaOon
 – Low
Latency
 – High
Throughput
Per
Server
 35


  36. Summary
 • Recover
Object
Delivery
ConnecOons
 Unmodified
 ^
 • Exploit
TCP
SpecificaOon
to
Coerce

Clients
 – To
send
recovery‐starOng
packets
 – To
provide
persistent
storage
 • EvaluaOon
 – Low
Latency
 – High
Throughput
Per
Server
 • QuesOons?
 36


Recommend


More recommend