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!
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!
1
1
Parveen Patel David Wetherall Jay Lepreau Andrew Whitaker (Univ. of Utah) (Univ. of Washington)
2
! Transport protocols, such as TCP, need a
! Untrusted mobile code will work!
2
3
! A steady stream of TCP extensions and new
! TCP SACK (1996) ! TCP Connection Migration (2000) ! ECN and ECN nonce (2001) ! TCP Nice (2002) ! TFRC (2000) ! DCCP (2002) ! SCTP (2002) ! …
4
! 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
3
5
! 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
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
4
7
! Connection peers can upgrade each other
! Deployment at one end is all we need !
8
! 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
5
9
(Download TCP-HP)
! A web server pushes a “high-performance”
10
(Download TCP-Migrate)
! A mobile client pushes “TCP connection
6
11
(With TCP-Nice)
! A user installs “TCP nice” [OSDI ’02] to
12
! XTCP sounds similar to the challenging domain
! Challenges can be met in this restricted domain
7
13
1.
2.
3.
14
APPLICATION 1
8
15
! No shared state between extensions
"Easy resource accounting "Easy termination
! Memory safety: type-safety of Cyclone ! CPU timer-based CPU protection
16
! Well-defined notion of network safety
"TCP-friendliness [RFC 2914] "TCP response function is mathematically
! Enforcement without trusting transports
"Adapt ECN nonce mechanism is used for
9
17
[unstrusted red, trusted green components]
datagram with nonce send (seq_no)
Datagram with nonce
18
ack+nonce
send_ack ack+nonce
ack (seq_no, nonce)
10
19
! Connections proceed without delays
"Code is downloaded out-of-band "Benefits later connections
! Efficient to share data between the C-
"No garbage collection "Lightweight runtime
20
! Prototype in FreeBSD 4.7 ! Modest memory and CPU cost
"CPU cost is 80% more than base TCP on the
! Ported TCP Friendly UDP, TCP NewReno
! User-level version in progress
11
21
22
12
23
! TCP rate policing function
"Quickly detect unresponsive extensions "Admit all responsive extensions
! XTCP API
"Must be sufficient and portable
24
! Transport protocols need self upgrade
! Mobile code works !
"Constrained domain and recent advances
! Mathematical definition of TCP response function
(1998)
! Cyclone (2002)
13
25
26
! Applications can use socket options ! Administrators can set policies ! Policy daemons can collaborate
14
27
! Transport protocols are written to the
! Complete transport protocols are
"Retains the way protocols are written now "Maximum flexibility "Maximum simplicity "Code is not large: 85K compressed source
28
15
29
! 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
! Benefits self ! Can only harm self ! Deployment only needed at end points ! TCP-friendliness is non-threatening