70 likes | 197 Views
CCNx Proxy Overview. Jairo Esteban Bell Labs – Service Infrastructure Department. Motivation. Testbed to evaluate integration with existing technologies Hands-on experimenting with protocols, applications Foundation to evaluate proposed improvements Two tools
E N D
CCNx ProxyOverview Jairo Esteban Bell Labs – Service Infrastructure Department
Motivation • Testbed to evaluate integration with existing technologies • Hands-on experimenting with protocols, applications • Foundation to evaluate proposed improvements • Two tools • HTTP Proxy: HTTP clients remain unchanged. Several clients can be served simultaneously • Firefox add-on: Clients are aware of CCNx, and can participate in the network.
Overview Origin server Internet CCNx Node CCNX Network CCNx Node CCNx Node CCNx Node HTTP Proxy + CCNx (Muffin) Regular expressions define URLs Served by CCNx Network Browser
Content Stored in CCNx Network Origin server Internet 4 1 3 3 CCNx Node CCNX Network CCNx Node 2 3 CCNx Node CCNx Node HTTP Proxy + CCNx 1 Client Requests object e.g. http://www.cnn.com/.....jpg 2 URL matches filter (*jpg). Proxy sends an Interest to CCNx Node Browser CCNx Node either serves the object to the proxy or retrieves it from the CCNx Network 3 4 Proxy assembles HTTP response (headers) and replies to client
Content NOT Stored in CCNx Network 4 Origin server Internet 3 5 1 CCNx Node CCNX Network CCNx Node 6 CCNx Node CCNx Node HTTP Proxy + CCNx 1 Client Requests object e.g. http://www.cnn.com/.....jpg 2 URL matches filter (*jpg). Proxy sends an Interest to CCNx Node 3 Proxy waits for 10ms with no answer. Sends request to origin Browser 4 Origin Server Replies 5 Proxy forwards response to client 6 Proxy ingests object into CCNx network through its CCNx node
Implementation Issues • Mapping between HTTP URL and CCNx name • Selecting the appropriate CCNx abstraction to store objects • Ingestion is cumbersome, especially for large objects. Required a “hack”: Proxy expressed interest for every chunk in anticipation of adding the object • Current implementation requires to download the entire object before serving it
Open Issues • Pipelining of large objects (e.g. videos) • Establishing appropriate timeout value/feedback from CCNx for non-existing objects • Metadata – HTTP headers • HTTP compliance (e.g. Caching directives, Object expiration) • URL parameters