Upload
urbain
View
34
Download
1
Embed Size (px)
DESCRIPTION
Server. EP1. EP2. cci_bind(nic1, 5, 2000, &service1, &fd1); cci_bind(nic2, 5, 2000, &service2, &fd2); //service1 == service2 because port equality. CCI CM. NIC 1: 192.168.1.1. NIC 2: 192.168.1.2. // both connections go through CM. But // client app does not know/care. In one - PowerPoint PPT Presentation
Citation preview
Server
Client
CCI CM
CCI CM
EP2EP1
EP4EP3
NIC 1: 192.168.1.1
NIC 2: 192.168.1.2
NIC 3: 192.168.1.3
NIC 4: 192.168.1.4
cci_bind(nic1, 5, 2000, &service1, &fd1);cci_bind(nic2, 5, 2000, &service2, &fd2);//service1 == service2 because port equality
// both connections go through CM. But// client app does not know/care. In one// case it says “connect me to NIC1”, in the// other, it says “connect to me server”
// connects only to NIC 1 – server is only// given 1 choice (NIC 1)cci_connect(ep3, “device://192.168.1.1”, 2000, …);
// connects to either NIC 1 or NIC 2 – server// decidescci_connect(ep3, “host://192.168.1.1”, 2000, …);
Server
Client
CCI CM
CCI CM
EP2EP1
EP4EP3
NIC 1: 192.168.1.1
NIC 2: 192.168.1.2
NIC 3: 192.168.1.3
NIC 4: 192.168.1.4
cci_bind(nic1, 5, 2000, &service1, &fd1);cci_bind(nic2, 5, 2000, &service2, &fd2);//service1 == service2 because port equality
//scenario 1//clientcci_connect(ep3, “ip://192.168.1.1/”, 2000, …);
// servercci_get_conn_request(service1, &req);//req contains array of devices: nic1// and nic2; decides to accept on ep2cci_accept(req, ep2, &connection);
//scenario 2//clientcci_connect(ep3, “ip://192.168.1.1/?server_device=nic2”, 2000, …);// servercci_get_conn_request(service1, &req);//req contains only nic2cci_accept(req, ep2, &connection);
URIs• Parameters may cause an error or be ignored
– E.g., Patrick’s CCI won’t allow server_device or client_device– Jeff’s CCI may allow them– Let’s revisit the idea of the *_device params someday – let’s not deadlock on this
today• Any server device
– ip://<host>– ip://<host>?server_device=*– ip://<host>?client_device=*
• Server device implied by hostname / IP address– ip://<host>?server_device=this
• Specific server device– ip://<host>?server_device=eth0– ip://<host>?server_device=192.168.1.1
• Specific client device– ip://<host>?client_device=eth0– ip://<host>?client_device=192.168.1.3