Document

Named Data Networking
Writing NDN Applications and
Forwarding Strategies
1
Outline
• Part 1: “Hello World” application with PyNDN2
• Part 2: Implementing a forwarding strategy
2
NDN Components
Apps
Routing
Repo
Libraries
NFD
Links and Tunnels
3
“Hello World” App Overview
Route: /csu
UCLA
HUB
CSU
HUB
Route: /csu/hello
Route: /
UCLA
1
UCLA
2
CSU
1
Route: /csu/hello
Consumer
Consumer
Producer
4
Hello World Walkthrough
5
Outline
• Part 1: “Hello World” application with PyNDN2
• Part 2: Implementing a new forwarding
strategy
6
NDN Components
Apps
Routing
Repo
Libraries
NFD
Links and Tunnels
7
Forwarding Strategies
• Closed control loop
o Decision for Interest forwarding
o Feedback when
• Data arrives or Interest expires
o Can store states.
• One strategy per namespace
o Local to the node
o Configured via management
commands
Strategy callback
After receive Interest
Before expire Interest
Strategy callbacks
Before satisfy Interest
8
Random Load Balancer
Route: /ucla
UCLA
HUB
Route: /ucla/hello
CSU
HUB
Route: /ucla/hello
Route: /
UCLA
1
UCLA
2
CSU
1
Producer
Producer
Consumer
• Randomly select a nexthop
• Stateless
9
Random Load Balancer
Walkthrough
10
Delay-based Weighting
UCLA
HUB
Route: /ucla/hello
UCLA
1
Producer
Delay: 2s
Route: /ucla
Route: /ucla/hello
CSU
HUB
Route: /
UCLA
2
CSU
1
Producer
Consumer
• Remember RTT from each next hop to bias future Interests
towards faster paths
11
Weighted Load Balancer
Walkthrough
12
Now what?
• Implement the “Hello World” application and
random load balancer strategy yourself
• Download step-by-step guide and code:
https://github.com/dibenede/ndn-tutorial-gec21 /
(see README.md)
• Extra credit: try extending “Hello World” and
implementing the weighted load balancer
o See README-ext.md
13