3
Server Client CCI CM CCI CM EP2 EP1 EP4 EP3 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, &fd cci_bind(nic2, 5, 2000, &service2, &fd //service1 == service2 because port eq // 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,

Server

  • 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

Page 1: Server

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, …);

Page 2: Server

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);

Page 3: Server

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