TCP Meets Mobile Code Parveen Patel David Wetherall Jay Lepreau - - PDF document

tcp meets mobile code
SMART_READER_LITE
LIVE PREVIEW

TCP Meets Mobile Code Parveen Patel David Wetherall Jay Lepreau - - PDF document

TCP Meets Mobile Code Parveen Patel David Wetherall Jay Lepreau Andrew Whitaker ( Univ. of Utah ) ( Univ. of Washington ) 1 The Key Idea ! Transport protocols, such as TCP, need a better upgrade mechanism ! Untrusted mobile code will work!


slide-1
SLIDE 1

1

1

TCP Meets Mobile Code

Parveen Patel David Wetherall Jay Lepreau Andrew Whitaker (Univ. of Utah) (Univ. of Washington)

2

The Key Idea

! Transport protocols, such as TCP, need a

better upgrade mechanism

! Untrusted mobile code will work!

slide-2
SLIDE 2

2

3

TCP is a work-in-progress

! A steady stream of TCP extensions and new

transport protocols

! TCP SACK (1996) ! TCP Connection Migration (2000) ! ECN and ECN nonce (2001) ! TCP Nice (2002) ! TFRC (2000) ! DCCP (2002) ! SCTP (2002) ! …

4

Upgrading TCP takes forever

! Research and simulation ! Prototype ! Standards committee ! Implementation in OS 1 ! Implementation in OS 2 ! … ! Addition into standard build OS 1 ! Addition into standard build OS 2 ! … ! Enable by default ! Enable by default on peer

slide-3
SLIDE 3

3

5

Lousy fallback: one-ended change

! Immediate deployment for self benefit ! Does not always work

" Can’t exchange new information

! Does not work very well

" Lose the benefit of cooperation between both ends

6

Survey of transport extensions

2 4 6 8 10 12 14 16 18 Two- ended Benefit from two- ended One- ended

Two-ended Benefit from two-ended One-ended

slide-4
SLIDE 4

4

7

Our Solution: XTCP

! Connection peers can upgrade each other

with new transport protocols using mobile code

! Deployment at one end is all we need !

8

Upgrading with XTCP is faster

! Research and simulation ! Prototype ! Standards committee ! Implementation to the XTCP API ! Implementation in OS 1 ! Implementation in OS 2 ! … ! Addition into standard build OS 1 ! Addition into standard build OS 2 ! … ! Enable by default ! Enable by default on peer

slide-5
SLIDE 5

5

9

XTCP usage scenario #1

(Download TCP-HP)

Server Client

! A web server pushes a “high-performance”

TCP to its clients the first time they connect

10

XTCP usage scenario #2

(Download TCP-Migrate)

Server Client

! A mobile client pushes “TCP connection

migration” [MobiCom ’00] to a server to allow itself to move

slide-6
SLIDE 6

6

11

XTCP usage scenario #3

(With TCP-Nice)

Host A Host B

! A user installs “TCP nice” [OSDI ’02] to

support background data transfer

12

Will it work ?

! XTCP sounds similar to the challenging domain

  • f active networking

! Challenges can be met in this restricted domain

slide-7
SLIDE 7

7

13

XTCP Challenges

1.

Host safety – must isolate and limit resource consumption

2.

Network safety – should not compete unfairly or attack other nodes

3.

Performance – should not undermine improvement due to extensions

14

XTCP Design

Sockets Layer XTCP Network Layer

APPLICATION 1

Download manager Compiler

TCP-B TCP-A

XTCP SANDBOX

XTCP API

slide-8
SLIDE 8

8

15

  • 1. Host safety

! No shared state between extensions

"Easy resource accounting "Easy termination

! Memory safety: type-safety of Cyclone ! CPU timer-based CPU protection

16

  • 2. Network safety

! Well-defined notion of network safety

"TCP-friendliness [RFC 2914] "TCP response function is mathematically

defined [SIGCOMM ’98]

! Enforcement without trusting transports

"Adapt ECN nonce mechanism is used for

validation [ICNP ’01]

slide-9
SLIDE 9

9

17

Nonce Mechanism

[unstrusted red, trusted green components]

XTCP TCP-A

datagram with nonce send (seq_no)

XTCP TCP-A

Datagram with nonce

sender receiver

18

Nonce Mechanism

XTCP TCP-A

ack+nonce

XTCP TCP-A

send_ack ack+nonce

sender receiver

ack (seq_no, nonce)

slide-10
SLIDE 10

10

19

  • 3. Performance

! Connections proceed without delays

"Code is downloaded out-of-band "Benefits later connections

! Efficient to share data between the C-

based kernel and Cyclone code

"No garbage collection "Lightweight runtime

20

Status

! Prototype in FreeBSD 4.7 ! Modest memory and CPU cost

"CPU cost is 80% more than base TCP on the

sender side, without any optimizations.

! Ported TCP Friendly UDP, TCP NewReno

and TCP SACK to the XTCP API

! User-level version in progress

slide-11
SLIDE 11

11

21

It works! UDP

22

It works! TCP

slide-12
SLIDE 12

12

23

Open research issues

! TCP rate policing function

"Quickly detect unresponsive extensions "Admit all responsive extensions

! XTCP API

"Must be sufficient and portable

24

Conclusions

! Transport protocols need self upgrade

mechanism

! Mobile code works !

"Constrained domain and recent advances

! Mathematical definition of TCP response function

(1998)

! Cyclone (2002)

slide-13
SLIDE 13

13

25

END OF TALK …. BACKUP/DETAIL SLIDES

26

Policies

! Applications can use socket options ! Administrators can set policies ! Policy daemons can collaborate

slide-14
SLIDE 14

14

27

Granularity of extensions

! Transport protocols are written to the

XTCP API

! Complete transport protocols are

transferred over the network

"Retains the way protocols are written now "Maximum flexibility "Maximum simplicity "Code is not large: 85K compressed source

28

Connection setup and code loading

slide-15
SLIDE 15

15

29

Network safety

! TCP friendly network access API

"xtcp_net_send (seq_no) "xtcp_net_resend (seq_no) "xtcp_net_ack (seq_no, nonce) "xtcp_net_acksum (seq_no, nonce_sum)

30

A Fourth Challenge: Deployment of XTCP framework

! Benefits self ! Can only harm self ! Deployment only needed at end points ! TCP-friendliness is non-threatening