The Key Idea TCP Meets Mobile ! Transport protocols, such as TCP, need a Code better upgrade mechanism ! Untrusted mobile code will work! Parveen Patel David Wetherall Jay Lepreau Andrew Whitaker ( Univ. of Utah ) ( Univ. of Washington ) 1 2 Upgrading TCP takes forever TCP is a work-in-progress ! Research and simulation ! Prototype ! A steady stream of TCP extensions and new ! Standards committee transport protocols ! Implementation in OS 1 ! TCP SACK (1996) ! Implementation in OS 2 ! TCP Connection Migration (2000) ! … ! ECN and ECN nonce (2001) ! Addition into standard build OS 1 ! TCP Nice (2002) ! Addition into standard build OS 2 ! TFRC (2000) ! … ! DCCP (2002) ! Enable by default ! SCTP (2002) ! Enable by default on peer ! … 3 4 Survey of transport extensions Lousy fallback: one-ended change ! Immediate deployment for self benefit 18 16 14 Two-ended ! Does not always work 12 10 " Can’t exchange new information 8 Benefit from two-ended 6 4 One-ended ! Does not work very well 2 0 " Lose the benefit of cooperation between both ends Two- Benefit One- ended from two- ended ended 5 6 1
Upgrading with XTCP is faster Our Solution: XTCP ! Research and simulation ! Connection peers can upgrade each other ! Prototype with new transport protocols using mobile ! Standards committee ! Implementation to the XTCP API code ! Implementation in OS 1 ! Implementation in OS 2 ! Deployment at one end is all we need ! ! … ! Addition into standard build OS 1 ! Addition into standard build OS 2 ! … ! Enable by default ! Enable by default on peer 7 8 XTCP usage scenario #2 XTCP usage scenario #1 ! A mobile client pushes “TCP connection ! A web server pushes a “high-performance” migration” [MobiCom ’00] to a server to allow TCP to its clients the first time they connect itself to move Server Client Server Client (Download TCP-HP) (Download TCP-Migrate) 9 10 XTCP usage scenario #3 Will it work ? ! A user installs “TCP nice” [OSDI ’02] to support background data transfer ! XTCP sounds similar to the challenging domain of active networking Host B Host A ! Challenges can be met in this restricted domain (With TCP-Nice) 11 12 2
XTCP Design XTCP Challenges Download manager Host safety – must isolate and limit 1. resource consumption Compiler APPLICATION 1 Network safety – should not compete 2. Sockets Layer unfairly or attack other nodes TCP-A XTCP TCP-B Performance – should not undermine 3. XTCP API improvement due to extensions Network Layer XTCP SANDBOX 13 14 1. Host safety 2. Network safety ! Well-defined notion of network safety ! No shared state between extensions " TCP-friendliness [RFC 2914] " Easy resource accounting " TCP response function is mathematically " Easy termination defined [SIGCOMM ’98] ! Memory safety: type-safety of Cyclone ! Enforcement without trusting transports " Adapt ECN nonce mechanism is used for validation [ICNP ’01] ! CPU timer-based CPU protection 15 16 Nonce Mechanism Nonce Mechanism [unstrusted red, trusted green components] sender receiver sender receiver TCP-A TCP-A TCP-A TCP-A ack (seq_no, nonce) send_ack send (seq_no) XTCP XTCP XTCP XTCP ack+nonce Datagram with nonce datagram with nonce ack+nonce 17 18 3
Status 3. Performance ! Prototype in FreeBSD 4.7 ! Connections proceed without delays ! Modest memory and CPU cost " Code is downloaded out-of-band " Benefits later connections " CPU cost is 80% more than base TCP on the sender side, without any optimizations. ! Efficient to share data between the C- ! Ported TCP Friendly UDP, TCP NewReno based kernel and Cyclone code and TCP SACK to the XTCP API " No garbage collection " Lightweight runtime ! User-level version in progress 19 20 It works! UDP It works! TCP 21 22 Open research issues Conclusions ! Transport protocols need self upgrade ! TCP rate policing function mechanism " Quickly detect unresponsive extensions " Admit all responsive extensions ! Mobile code works ! " Constrained domain and recent advances ! XTCP API ! Mathematical definition of TCP response function " Must be sufficient and portable (1998) ! Cyclone (2002) 23 24 4
Policies END OF TALK ! Applications can use socket options ! Administrators can set policies …. ! Policy daemons can collaborate BACKUP/DETAIL SLIDES 25 26 Granularity of extensions Connection setup and code loading ! 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 27 28 A Fourth Challenge: Network safety Deployment of XTCP framework ! TCP friendly network access API ! Benefits self ! Can only harm self " xtcp_net_send (seq_no) ! Deployment only needed at end points " xtcp_net_resend (seq_no) ! TCP-friendliness is non-threatening " xtcp_net_ack (seq_no, nonce) " xtcp_net_acksum (seq_no, nonce_sum) 29 30 5
Recommend
More recommend