Supporting Legacy Applications in Associative Overlay Networks Shelley Zhuang, Ion Stoica {shelleyz, istoica}@CS.Berkeley.EDU Sahara Retreat January 16-18, 2002 http://www.cs.berkeley.edu/~shelleyz/research/aon Associative Overlay Networks • Implements rendezvous-based communication abstraction • Overlay network which consists of a set of servers that store triggers and forwards packets between end-points (ID, data) (ID, data) Sender (ID, R) Receiver (R) AON Native Application • • • • • Two types of triggers: public and private Server maintains a public trigger, IDP Client creates a private trigger identifier IDC Server creates a private trigger identifier IDS Client and server insert the private triggers (IDC, IPC) and (IDS, IPS) 5 Server (S) 9 (IDS, S) 6 1 (IDC, C) 4 8 7 2 (IDP, S) 3 Client (C) Legacy Applications • Design goals – User should be able to choose between an AON-aware application or regular application – Should not require changes to existing infrastructure such as IP network routers, DNS • Proposed solution – Configure existing applications to connect to a local AON proxy that translates and forwards packets transparently over AON – Run an AON proxy locally Transparent Application Support • Example: telnet client-server application • TCP connection established via proxies: – Client (C) Client Proxy (CP) AON Server Proxy (SP) Server (S) – Private trigger identifiers (IDC, IDS) exchanged in 3-way handshake • Packets forwarded via proxies – Proxies rewrite TCP packets Control Path Operations • • Server, S, runs telnet server Server Proxy, SP – – – • IDP = Hash1(telnet.S.aon.net) Inserts trigger (IDP, IPSP /PSP) into AON Inserts trigger (IDS, IPSP /PSP) into AON Client, C, runs wrapper script “aon_telnet S” – – – – • IDP = Hash1(telnet.S.aon.net) Send SETUP(IDP) to CP CP sends back ACCEPT(P’CP = Hash2 (telnet.S.aon.net)) Telnet 127.0.0.1 P’CP Client Proxy, CP – Inserts trigger (IDC, IPCP /PCP) into AON Pros and Cons • Advantages – Client can make multiple connections to the same service on S simultaneously – Client can use more than one service on S simultaneously – Client can use the same service on two different servers simultaneously – No changes to existing infrastructure • Limitations – Per-application script – Not as general as solutions based on LD_PRELOAD, LD_LIBRARY, or system call trapping Discussion • End-to-end host mobility – Without changes to IP layer (Mobile IP) – Without changes to TCP protocol (MIGRATE) – Supports sender and receiver mobility • Server load balancing • Nearby server selection TCP Three-Way Handshake Step [[IP HDR, TRANSPORT HDR], [AON HDR], [DATA]] Packet Type 1. C CP [[IPC, IPCP, P’C , P’CP, SYN]] TCP 2. CP AON [[x, x, x, x], [IDP], [SYN, IDC]] UDP 3. AON SP [[x, x, x, x], [IDP], [SYN, IDC]] UDP 4. SP S [[IPSP, IPS, P’SP, PS, SYN]] TCP 5. S SP [[IPS, IPSP, PS, P’SP, SYN-ACK]] TCP 6. SP AON [[x, x, x, x], [IDC], [SYN-ACK, IDS]] UDP 7. AON CP [[x, x, x, x], [IDC], [SYN-ACK, IDS]] UDP 8. CP C [[IPCP, IPC, P’CP, P’C, SYN-ACK]] TCP 9. C CP [[IPC, IPCP, P’C , P’CP, SYN-ACK-ACK]] TCP 10. CP AON [[x, x, x, x], [IDS], [SYN-ACK-ACK]] UDP 11. AON SP [[x, x, x, x], [IDS], [SYN-ACK-ACK]] UDP 12. SP S [[IPSP, IPS, P’SP, PS, SYN-ACK-ACK]] TCP Translation Table • Client Proxy – – – – IPCP /P’CP IDP IDC IPC /P’C IDC IPC P/P’CP IPC /P’C IDS • Server Proxy – – – – IDP IPS /PS IDS IPS /PS IDS IPSP /P’SP IPSP /P’SP IDC Data Path Operations Step [[IP HDR, TRANSPORT HDR], [AON HDR], DATA]] Packet Type 1. C CP [[IPC, IPCP, P’C , P’CP], [data]] TCP 2. CP AON [[x, x, x, x], [IDS], [data]] UDP 3. AON SP [[x, x, x, x], [IDS], [data]] UDP 4. SP S [[IPSP, IPS, P’SP, PS], [data]] TCP 5. S SP [[IPS, IPSP, PS, P’SP], [ack]] TCP 6. SP AON [[x, x, x, x], [IDC], [ack]] UDP 7. AON CP [[x, x, x, x], [IDC], [ack]] UDP 8 CP C [[IPCP, IPC, P’CP, P’C], [ack]] TCP