for Information Centric Networking (ICN) Lorenzo Saino, Ioannis - - PowerPoint PPT Presentation

for information centric networking icn
SMART_READER_LITE
LIVE PREVIEW

for Information Centric Networking (ICN) Lorenzo Saino, Ioannis - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

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

slide-2
SLIDE 2

Outline

  • Background and motivation

– Information Centric Networking (ICN) – Evaluating caching performance

  • Icarus simulator

– Architecture and design – Modelling tools – Performance evaluation

  • Summary and conclusions
slide-3
SLIDE 3

Information Centric Networking (ICN)

slide-4
SLIDE 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.

slide-5
SLIDE 5

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

slide-6
SLIDE 6

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
slide-7
SLIDE 7

Overlay vs. In-Network Caching

Important to understand: “What are the differences between overlay and in-network caching?”

slide-8
SLIDE 8

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

slide-9
SLIDE 9

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.

slide-10
SLIDE 10

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.

  • Hence: no book-keeping possible

– Impossible to co-ordinate 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

slide-11
SLIDE 11

Evaluating Caching Performance

slide-12
SLIDE 12

Evaluating Caching Performance

Requirements:

slide-13
SLIDE 13

Evaluating Caching Performance

Requirements:

  • Large realistic topologies
slide-14
SLIDE 14

Evaluating Caching Performance

Requirements:

  • Large realistic topologies
  • Many content requests to allow caches to reach steady-state
slide-15
SLIDE 15

Evaluating Caching Performance

Requirements:

  • Large realistic topologies
  • Many content requests to allow caches to reach steady-state
  • Trace-driven simulations if possible
slide-16
SLIDE 16

Evaluating Caching Performance

Requirements:

  • Large realistic topologies
  • Many content requests to allow caches to reach steady-state
  • Trace-driven simulations if possible

Many simulators and prototypes are available today for evaluating ICN designs but none are suitable for caching:

slide-17
SLIDE 17

Evaluating Caching Performance

Requirements:

  • Large realistic topologies
  • Many content requests to allow caches to reach steady-state
  • Trace-driven simulations if possible

Many simulators and prototypes are available today for evaluating ICN designs but none are suitable for caching:

  • Bound to a specific architecture
slide-18
SLIDE 18

Evaluating Caching Performance

Requirements:

  • Large realistic topologies
  • Many content requests to allow caches to reach steady-state
  • Trace-driven simulations 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
slide-19
SLIDE 19

Evaluating Caching Performance

Requirements:

  • Large realistic topologies
  • Many content requests to allow caches to reach steady-state
  • Trace-driven simulations 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 simulations
slide-20
SLIDE 20

Evaluating Caching Performance

Requirements:

  • Large realistic topologies
  • Many content requests to allow caches to reach steady-state
  • Trace-driven simulations 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 simulations

Scarce availability of open-source implementations of modelling tools for network caching research.

slide-21
SLIDE 21

Icarus simulator

slide-22
SLIDE 22

Icarus simulator

Python-based discrete-event simulator designed for evaluating the performance of:

  • Caching and routing strategies
  • Cache replacement policies
slide-23
SLIDE 23

Icarus simulator

Python-based discrete-event simulator designed for evaluating the performance of:

  • Caching and routing strategies
  • Cache replacement policies

Non-functional requirements:

  • Extensibility
  • Scalability
slide-24
SLIDE 24

Achieving extensibility

slide-25
SLIDE 25

Achieving extensibility

  • 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‘] . . .

slide-26
SLIDE 26

Achieving extensibility

  • Plug-in registration system and extensive use of bridge

pattern to provide loose-coupling

  • Support for fnss and networkx tools

@register_cache_policy('FOO') class FooCache(Cache) def get(self, k): ... def put(self, k): ... # config . . POLICIES = [‘LRU‘, 'FOO‘] . . .

slide-27
SLIDE 27

Achieving scalability

slide-28
SLIDE 28

Achieving scalability

  • Flow-level abstraction
slide-29
SLIDE 29

Achieving scalability

  • Flow-level abstraction
  • Parallel execution of experiments
slide-30
SLIDE 30

Achieving scalability

  • Flow-level abstraction
  • Parallel execution of experiments
  • Minimized disk access during experiment execution
slide-31
SLIDE 31

Architecture and design

slide-32
SLIDE 32

Architecture and design

Code organized in four loosely-coupled subsystems:

slide-33
SLIDE 33

Architecture and design

Code organized in four loosely-coupled subsystems:

  • Orchestration
slide-34
SLIDE 34

Architecture and design

Code organized in four loosely-coupled subsystems:

  • Orchestration
  • Scenario generation
slide-35
SLIDE 35

Architecture and design

Code organized in four loosely-coupled subsystems:

  • Orchestration
  • Scenario generation
  • Execution
slide-36
SLIDE 36

Architecture and design

Code organized in four loosely-coupled subsystems:

  • Orchestration
  • Scenario generation
  • Execution
  • Results collection and analysis
slide-37
SLIDE 37

Orchestration

  • rchestration

settings conf

scenario results execution

topology events topology events settings results results

slide-38
SLIDE 38

Scenario generation

  • rchestration

settings conf

scenario results execution

topology events topology events settings results results

slide-39
SLIDE 39

Scenario generation

content placement

topology

cache placement

settings

topology factory

data

parser

events

Zipf Distr

settings

event generator

trace topology

slide-40
SLIDE 40

Execution

  • rchestration

settings conf

scenario results execution

topology events topology events settings results results

slide-41
SLIDE 41

Execution

slide-42
SLIDE 42

Execution

Engine

settings topology events

slide-43
SLIDE 43

Execution

Engine Strategy

settings topology events

slide-44
SLIDE 44

Execution

Engine Strategy Network Controller Network View Network Model

settings topology events

slide-45
SLIDE 45

Execution

Engine Strategy Network Controller Network View Network Model

events settings topology events

slide-46
SLIDE 46

Execution

Engine Strategy Network Controller Network View Network Model

events settings topology events

slide-47
SLIDE 47

Execution

Engine Strategy Network Controller Network View Network Model

events settings topology events

slide-48
SLIDE 48

Execution

Engine Strategy Network Controller Network View Network Model

events settings topology events

slide-49
SLIDE 49

Execution

Engine Strategy Network Controller Network View Network Model

events settings topology events

slide-50
SLIDE 50

Execution

Engine Strategy Network Controller Network View Network Model DataCollectorProxy

events settings topology events

slide-51
SLIDE 51

Execution

Engine Strategy Network Controller Network View Network Model DataCollectorProxy CacheHits Collector Latency Collector Test Collector

events settings topology events

. . .

slide-52
SLIDE 52

Execution

Engine Strategy Network Controller Network View Network Model DataCollectorProxy CacheHits Collector Latency Collector Test Collector

events results settings topology events

. . .

slide-53
SLIDE 53

Execution

Engine Strategy Network Controller Network View Network Model DataCollectorProxy CacheHits Collector Latency Collector Test Collector

events results settings topology events results

. . .

slide-54
SLIDE 54

Results collection and analysis

  • rchestration

settings conf

scenario results execution

topology events topology events settings results results

slide-55
SLIDE 55

Results collection and analysis

ResultSet

results

slide-56
SLIDE 56

Results collection and analysis

ResultSet

results

writer

file

slide-57
SLIDE 57

Results collection and analysis

ResultSet reader

results

writer

file

slide-58
SLIDE 58

Results collection and analysis

ResultSet reader

results

writer

file

plot

slide-59
SLIDE 59

Modelling tools

Cache performance Workloads

slide-60
SLIDE 60

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

slide-61
SLIDE 61

Modelling tools

Cache performance

  • Che’s approximation
  • Laoutaris’ approximation

>>> import icarus as ics >>> ics.laoutaris_cache_hit_ratio(0.7, 1000, 100) 0.359348209359255

Workloads

slide-62
SLIDE 62

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

slide-63
SLIDE 63

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

slide-64
SLIDE 64

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)

slide-65
SLIDE 65

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

slide-66
SLIDE 66

Evaluating scalability

slide-67
SLIDE 67

Evaluating scalability

Scenario:

  • Tree topology
  • Zipf-distributed content popularity (α = 0.7)
  • Constant cache/catalogue ratio: 10%
  • 500K requests per experiment
slide-68
SLIDE 68

Evaluating scalability

Scenario:

  • Tree topology
  • Zipf-distributed content popularity (α = 0.7)
  • Constant cache/catalogue ratio: 10%
  • 500K requests per experiment

Metrics:

  • CPU load and memory utilization vs. content catalogue size
slide-69
SLIDE 69

Processing load vs content catalogue size

slide-70
SLIDE 70

Memory utilization vs content catalogue size

slide-71
SLIDE 71

Summary and conclusions

slide-72
SLIDE 72

Summary and conclusions

  • We presented Icarus, a caching simulator for

Information Centric Networking (ICN)

slide-73
SLIDE 73

Summary and conclusions

  • We presented Icarus, a caching simulator for

Information Centric Networking (ICN)

  • Designed for extensibility and scalability
slide-74
SLIDE 74

Summary and conclusions

  • We presented Icarus, a caching simulator for

Information Centric Networking (ICN)

  • Designed for extensibility and scalability
  • Comprises a set of modelling tools for cache

performance and workloads analysis

slide-75
SLIDE 75

http://icarus-sim.github.io