ppt

advertisement
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
Download