1 / 29

Icarus: a Caching Simulator for Information Centric Networking (ICN)

Icarus: a Caching Simulator for Information Centric Networking (ICN). Lorenzo Saino, Ioannis Psaras and George Pavlou Communications and Information Systems Group Department of Electronic and Electrical Engineering University College London http://icarus-sim.github.io. Outline.

wendyt
Download Presentation

Icarus: a Caching Simulator for Information Centric Networking (ICN)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Icarus: a Caching Simulatorfor Information Centric Networking (ICN) Lorenzo Saino, Ioannis Psaras and George Pavlou Communications and Information Systems Group Department of Electronic and Electrical Engineering University College London http://icarus-sim.github.io

  2. Outline • Background and motivation • Information Centric Networking (ICN) • Evaluating caching performance • Icarus simulator • Architecture and design • Modelling tools • Performance evaluation • Summary and conclusions

  3. The Internet as a Content Distribution Network • Initial end-to-end model (1980s): Server (content provider) to end-user • Web-cache era (1990s): ISPs deploy (web-)caches • CDN and Web-cache era (late ’90s-early ’00s): Web- or proxy-caches are not enough – CDN companies enter the game • CDN Domination era (’00s-today): CDN companies spread – Akamai alone has more than 40,000 servers around the globe (Internet has roughly 36,000 domains) • Today: The Internet fails on its role as a native content distribution network • Future: alternative models for content distribution needed – go one level deeper? In-Network (ICN) Caching can be the way forward

  4. Information Centric Networking (ICN) ICN is a recently proposed networking paradigm proposing a shift of the main network abstraction from node identifiers to location-agnostic content identifiers. Several implementations proposed so far: CCN/NDN, NetInf, PSIRP/PURSUIT, COMET, MobilityFirst Main principles: • Request-response model • Location-agnostic content addressing • Secure the content, not the channel • In-network caching

  5. Overlay vs. In-Network Caching Important to understand: “What are the differences between overlay and in-network caching?” • Caching at the chunk-level not at the file-level (probably not at the packet level either) • As contents pass through router-caches they replace existing “old” contents • Caching can happen transparently into the network at random or predefined (rendezvous) points • Replacement happens at line-speed – what does this imply? • Overlay caching depends on centralised (control-plane) co-ordination and management of caches (or de-centralised among very few nodes) – In-network caching does not/cannot • Hence: no book-keeping possible • Impossible to signal/collaborate with other caches, or the control plane – the exact location of contents cannot be known • Caching operations happen transparently inside the network • Decentralized distribution and replacement of contents in caches

  6. Evaluating Caching Performance Evaluating caching performance requires large scale simulations to reach cache steady-state behavior. Trace-driven simulations should also be run if possible. Many simulators and prototypes are available today for evaluating ICN designs but none are suitable for caching: • Bound to a specific architecture • Poor scalability • Inability to run trace-driven simulation Scarce availability of open-source implementations of modelling tools for network caching research.

  7. Icarus simulator Python-based discrete-event simulator for evaluating the performance of: • caching strategies • cache replacement policies Non-functional requirements: • Extensibility • Scalability

  8. Achieving scalability • Flow-level abstractions • Parallel execution of experiments • No disk access for logging during experiment execution

  9. Achieving extensibility • Bridge and plugin registration system • Modular separation with façade • Support for fnss and networkx tools @register_cache_policy('FOO') classFooCache(Cache) defget(self, k): ... defput(self, k): ... # config . . POLICIES = [‘LRU‘,'FOO‘] . . .

  10. Architecture and design Functionalities organized in four subsystems: • Orchestration • Scenario generation • Execution • Results collection and analysis

  11. Orchestration scenario orchestration results settings conf results topology events topology events settings results execution

  12. Scenario generation topology factory event generator settings content placement topology data trace cache placement topology parser events Zipf Distr settings

  13. Execution settings topology event_gen events Engine Strategy results Network View Network Controller results Network Model DataCollectorProxy . . . CacheHits Collector Latency Collector Test Collector

  14. Results collection and analysis ResultSet plot results file reader writer

  15. Is this design really extensible? Functional requirements not accounted for in design phase have been easily implemented: • User-specified seed: 3 LOC • User-defined experiment queue: 7 LOC • Centrality-based cache placement: 4 LOC • Collector for debugging: 20 LOC • Save results in text format: 35 LOC

  16. Modelling tools Workloads Cache performance

  17. Modelling tools Workloads Cache performance • Che’s approximation >>> import icarus as ics >>> ics.che_cache_hit_ratio( ics.TruncatedZipfDist(alpha=0.8, n=1000).pdf, 100) 0.36482948293429832

  18. Modelling tools Workloads Cache performance • Che’s approximation • Laoutaris’ approximation >>> import icarus as ics >>> ics.laoutaris_cache_hit_ratio( ics.TruncatedZipfDist(alpha=0.8, n=1000).pdf, 100) 0.359348209359255

  19. Modelling tools Workloads Cache performance • Che’s approximation • Laoutaris’ approximation • Optimal hit ratio >>> import icarus as ics >>> ics.optimal_cache_hit_ratio( ics.TruncatedZipfDist(alpha=0.8, n=1000).pdf, 100) 0.52582651157679017

  20. Modelling tools Workloads Cache performance • Che’s approximation • Laoutaris’ approximation • Optimal hit ratio • Numeric hit ratio >>> import icarus as ics >>> ics.numeric_cache_hit_ratio( ics.TruncatedZipfDist(alpha=0.8, n=1000).pdf, ics.LruCache(100)) 0.37861264056574684

  21. Modelling tools Workloads • Zipf fit Cache performance • Che’s approximation • Laoutaris’ approximation • Optimal hit ratio • Numerical hit ratio >>> import icarus as ics >>> ics.zipf_fit(ics.TruncatedZipfDist(alpha=0.8, n=1000).pdf) (0.799999999571759, 1.0)

  22. Modelling tools Workloads • Zipf fit • Trace parsers Cache performance • Che’s approximation • Laoutaris’ approximation • Optimal hit ratio • Numerical hit ratio >>> import icarus as ics >>> ics.parse_wikibench(‘wikibench.txt’)

  23. Processing load vs content catalogue size

  24. Memory utilization vs content catalogue size

  25. Parallel execution speedup

  26. Summary and conclusions • We presented Icarus, a caching simulator for Information Centric Networking (ICN) • Designed for extensibility and scalability • Set of modelling tools for cache performance and workloads analysis

  27. http://icarus-sim.github.io

  28. Caching and routing strategies The control plane of the network, i.e. the logic which decides how to route packets and where to cache content Currently implemented strategies: • Leave Copy Everywhere (LCE) • Leave Copy Down (LCD) • ProbCache • Cache Less for More (centrality-based caching) • Hash-routing • Random (choice and Bernoulli) • No Cache

  29. Cache eviction policies Policies deciding locally in each caching node what content object to evict when a new content is to be inserted in a full cache Currently implemented strategies: • Least Recently Used (LRU) • Least Frequently Used (LFU) • First In First Out (FIFO) • Random

More Related