Top Banner
Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George Pavlou Department of Electronic and Electrical Engineering University College London http://icarus-sim.github.io
43

Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Mar 14, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Icarus: a Caching Simulator

for Information Centric Networking

Lorenzo Saino, Ioannis Psaras and George Pavlou

Department of Electronic and Electrical Engineering

University College London

http://icarus-sim.github.io

Page 2: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Introducing Icarus

What is Icarus?

• Simulator for evaluating caching performance in ICN

• Not bound to any specific ICN architecture

• Design is generic enough to make it suitable to simulate

any generic networked caching systems (KV stores, CDNs,

content routers)

What Icarus is not?

• Not a suitable tool to evaluate other aspects of ICN

architectures such as security, naming, congestion control,

routing scalability

Page 3: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Requirements for caching simulators

General requirements:

• Reliability and accuracy

• Easy to use, fast iteration cycles

• Rich library of models, algorithms, protocols

Specific requirements:

• Large realistic topologies

• Large content catalogues and many content requests to

allow caches to reach steady-state

• Support trace-driven simulations

Page 4: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Icarus objectives

Use cases:

• Caching and routing strategies

• Cache replacement policies

• Cache placement algorithms

• Analytical models

Non-functional requirements:

• Extensibility

• Scalability

Page 5: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

High-level architecture

orchestration

settings

conf

scenario results

execution

topology

events

topology

events

settings

results

results

Page 6: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Extensibility

• Python-based, built based on fnss and networkx

• Plug-in registration system and extensive use of bridge

pattern to provide loose-coupling

@register_cache_policy('FOO')

class FooCache(Cache)

def get(self, k):

...

def put(self, k):

...

# config

.

.

POLICIES = [‘LRU‘, 'FOO‘]

.

.

.

Page 7: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Pluggable components

• Caching and routing strategies

• Cache replacement policies

• Topologies

• Workloads (synthetic and trace-driven)

• Cache placement strategies

• Content placement strategies

• Performance metrics

• Results readers/writers

Page 8: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Caching and routing strategies

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)

• Nearest Replica Routing (NRR)

• No Cache

Page 9: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Cache replacement policies

Replacement policies:

• Least Recently Used (LRU)

• Segmented LRU (SLRU)

• Least Frequently Used (LFU)

• First In First Out (FIFO)

• Random

Add-ons:

• Probabilistic insertion

• TTL expiration

Page 10: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Logically centralized strategy implementation

• Strategies implemented as logically centralized entities

• Network implemented using Model-View-Controller (MVC)

Strategy

Network

Controller

Network

View

Network

Model

Data collectors

Strategy

Node

Strategy

Node

Strategy

Node

Strategy

Node

Common agent-based designs Icarus design

Page 11: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Scalability

• Flow-level abstraction

• No buffering

• Parallel execution of experiments

• Minimized I/O operations

Page 12: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Modelling tools

Cache performance

• Che’s approximation

• Laoutaris’ approximation

• Numerical hit ratio

Workloads

• Zipf fit

• Trace parsers

– Wikibench

– YouTube

– Squid

– URL list

– GlobeTraff

Page 13: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Performance evaluation

Scalability

Extensibility

Accuracy

Page 14: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Simulators cross-comparison

Source:

M. Tortelli, D. Rossi, G. Boggia and L. Grieco,

“CCN Simulators: Analysis and Cross-Comparison”

ACM ICN’14, demo session

Simulator Flow/packet Buffers

Icarus Flow No

ccnSim Packet No

ndnSim Packet Yes

Page 15: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

CPU utilization

0

200

400

600

800

1000

1200

1400

1600

1800

SP+LCE SP+RAND

Wall c

lock t

ime [

s]

ndnSim

ccnSim

Icarus

Source: Tortelli et al., ICN’14

Page 16: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Memory utilization

Source: Tortelli et al., ICN’14

Simulator SP+LCE SP+RAND

ndnSim 9.82 GB 7.82 GB

ccnSim 53.68 MB 53.7 MB

Icarus 111.05 MB 110.98 MB

Page 17: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Parallel execution speedup

1

2

3

4

5

6

7

8

1 2 3 4 5 6 7 8

sp

eed

up

# cores

Ideal

Actual

Page 18: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Accuracy

0

1

2

3

4

5

6

7

8

9

10

0 0.05 0.1 0.15 0.2 0.25

Lo

ad

[p

ackets

/s]

Cache hit ratio

SP+LCE

SP+RAND

Source: Tortelli et al., ICN’14

Page 19: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Extensibility

Strategy LOC

Edge 23

LCE 17

LCD 20

ProbCache 32

Centrality-based 30

NRR 24

Implementing planned features

Page 20: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Feature LOC

User-specified seed 3

User-defined experiment queue 7

Centrality-based cache placement 4

Results collector for debugging 20

Save results in CSV format 35

Extensibility Implementing unplanned features

Page 21: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Summary and conclusions

• We presented Icarus, a caching simulator for ICN

• Designed for extensibility and scalability

• Independent cross-comparison validates

soundness of design decisions

• Comprises a set of modelling tools for cache

performance and workloads analysis

Page 22: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

http://icarus-sim.github.io

Page 23: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Icarus tutorial

Lorenzo Saino

Department of Electronic and Electrical Engineering

University College London

http://icarus-sim.github.io

Page 24: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Agenda

• Architecture overview

• How to download, install, use

• Code walk-through

• Implement new components

• Configuring a simulation campaign

• Using modelling tools

• Q/A

Page 25: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Architecture and design

Code organized in four loosely-coupled subsystems:

• Orchestration

• Scenario generation

• Execution

• Results collection and analysis

Page 26: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Orchestration

orchestration

settings

conf

scenario results

execution

topology

events

topology

events

settings

results

results

Page 27: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Scenario generation

orchestration

settings

conf

scenario results

execution

topology

events

topology

events

settings

results

results

Page 28: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Scenario generation

content

placement topology

cache

placement

settings

topology

factory

data

parser events

Zipf

Distr settings

workload

trace

topology

Page 29: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Execution

orchestration

settings

conf

scenario results

execution

topology

events

topology

events

settings

results

results

Page 30: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Execution

Engine Strategy

Network

Controller

Network

View

Network

Model

DataCollectorProxy

CacheHits

Collector

Latency

Collector

Test

Collector

events

results

settings

topology

events

results

. . .

Page 31: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Results collection and analysis

orchestration

settings

conf

scenario results

execution

topology

events

topology

events

settings

results

results

Page 32: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Results collection and analysis

ResultSet

reader

results

writer

file

plot

Page 33: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Let’s look at the website

http://icarus-sim.github.io

Page 34: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Let’s look at the code

• Code overview

• Pluggable components

• Network API

Page 35: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Let’s run a sample simulation

LCE vs ProbCache

• Topology: RocketFuel (1221)

• Cache placement: uniform

• Content placement: uniform

• Workload: synthetic, α = 0.8

• Replacement policy: LRU

• Metrics: cache hit ratio, latency

Page 36: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Modelling tools

Cache performance Workloads

Page 37: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Modelling tools

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

Workloads

Page 38: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Modelling tools

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

Workloads

Page 39: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Modelling tools

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

Workloads

Page 40: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Modelling tools

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

Workloads

Page 41: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Modelling tools

Cache performance

• Che’s approximation

• Laoutaris’ approximation

• Optimal hit ratio

• Numerical hit ratio

Workloads

• Zipf fit

>>> import icarus as ics

>>> ics.zipf_fit(ics.TruncatedZipfDist(alpha=0.8, n=1000).pdf)

(0.799999999571759, 1.0)

Page 42: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

Modelling tools

Cache performance

• Che’s approximation

• Laoutaris’ approximation

• Optimal hit ratio

• Numerical hit ratio

Workloads

• Zipf fit

• Trace parsers

>>> import icarus as ics

>>> ics.parse_wikibench(‘wikibench.txt’)

Page 43: Icarus: a Caching Simulator for Information Centric Networking · 2020-02-01 · Icarus: a Caching Simulator for Information Centric Networking Lorenzo Saino, Ioannis Psaras and George

http://icarus-sim.github.io