forwarding-hint_20150814

advertisement
Forwarding Hint in NFD
Junxiao Shi, 2015-08-14
1
Overview
• Forwarding hint is a scheme for mobility support in
a large NDN network.
• See #2587 link.pdf for protocol definition.
• This document describes how forwarding hint
feature is to be implemented in NFD.
• Some features are beyond the minimal necessary
features, and will not be implemented in the first stage.
2
How Forwarding Hint
Works
3
Forwarding within consumer
region
consumer region edge router
consumer
NDNS nameserver
(first default-free router)
regular Interest: /ndnsim/index.htm
NACK: /ndnsim/index.htm is unroutable
NDNS query for /ndnsim/index.htm
NDNS reply for /ndnsim/index.htm
/ndnsim is available at /att/ndnsim and /ucla/ndnsim
Interest: /ndnsim/index.htm
Link object: /ndnsim is delegated to
/att/ndnsim and /ucla/ndnsim
4
Forwarding across the Internet
consumer region edge
/cox/router1
intermediate router
/level3/router2
producer region edge
/att/router3
make a selection
among delegations
Interest: /ndnsim/index.htm
Link object: /ndnsim is delegated to
/att/ndnsim and /ucla/ndnsim
SelectedDelegation: 0 (/att/ndnsim)
follow the selected
delegation
Interest: /ndnsim/index.htm
Link object: /ndnsim is delegated to
/att/ndnsim and /ucla/ndnsim
SelectedDelegation: 0 (/att/ndnsim)
5
Forwarding within producer
region
• When the Interest has reached the producer
region, it can be forwarded with the Name (not
Link).
• The router tests whether the delegation Name (/att) is a
prefix of the router's region name to determine if the
Interest has reached the producer region.
• The Interest Name prefix (/ndnsim), should be
announced within the producer region (/att).
• Link and SelectedDelegation should be ignored.
• See next page: ContentStore partitioning is unnecessary
within producer region.
6
Data forwarding
• Data is returned following PIT states.
• To prevent cache poisoning with counterfeit Link
objects, the ContentStore is partitioned with Link
object.
• unless the Data is within producer region, where Link
object is ignored.
• ContentStore lookup returns a match only if the cached
Data has been retrieved with the same Link object.
7
Summary
1. When Interest with unroutable Name hits consumer
region edge (a default-free router), the router returns
NACK.
2. Consumer re-expresses with a Link.
3. The consumer region edge router picks a producer
region from the Link.
4. Intermediate routers forward the Interest toward the
producer region (chosen in step 3).
5. The Interest is forwarded according to its regular
Name within the producer region.
6. Data is returned with PIT states.
8
Example for NDNFit
9
Topology
NDNS nameserver
for /ndnfit
DSU for Bob
UCLA router
mobile for Bob
ARIZONA router
DPU
10
Mobile Upload to DSU
• Why the Link object isn't published into NDNS?
• This depends on: should an Interest from DPU be able to reach the mobile?
1. Mobile connects to ARIZONA router, and
performs remote prefix registration.
• ARIZONA router knows "/ndnfit/bob" is served by
mobile.
2. Mobile sends command to DSU:
"I want to upload /ndnfit/bob/20150518"
• A Link object is sent as part of the upload command:
Link(/ndnfit/bob, delegation=/ndn/edu/arizona, signed
by Bob)
• Can we send the Name of the Link object, instead of the Link object itself, as a
command parameter?
• No. The Link object exists on the mobile only, and the mobile doesn't have
a routable prefix. Without the link object, DSU can't reach the mobile with
an unroutable prefix.
11
Mobile Upload to DSU
3. DSU sends Interest with forwarding hint:
• INTEREST /ndnfit/bob/20150518
Link(/ndnfit/bob, delegation=/ndn/edu/arizona, signed
by Bob)
4. The network forwards Interest to ARIZONA
router, according to forwarding hint.
5. ARIZONA router strips Link object, and forwards
the Interest to the mobile, according to
/ndnfit/bob prefix.
12
DPU Download from DSU
1. DSU connects to UCLA router, and performs
remote prefix registration with a globally routable
prefix: /ndn/edu/ucla/ndnfit-dsu-ucla.
2. When Bob signs up, Bob updates NDNS:
Link(/ndnfit/bob,
delegation=/ndn/edu/ucla/ndnfit-dsu-ucla,
signed by Bob)
3. DPU performs NDNS lookup for /ndnfit/bob
13
DPU Download from DSU
4. DPU sends Interest with forwarding hint:
• INTEREST /ndnfit/bob/20150518
Link(/ndnfit/bob, delegation=/ndn/edu/ucla/ndnfit-dsuucla, signed by Bob)
5. The network forwards Interest to DSU, according
to forwarding hint.
6. DSU forwarder strips Link object, and forwards
the Interest to the application, according to
/ndnfit/bob prefix.
14
Application Changes
15
Producer
• The producer should determine the routable prefix
of the region in which its own prefix is routable,
and (optionally) publish a Link object in NDNS
nameserver.
• Implementation:
• Library provides APIs for application to generate and
publish Link objects to NDNS nameserver.
• A higher-level library may expose an "upload API" for
"mobile upload to DSU" scenario.
16
Consumer
• The consumer should react to NACK-unroutable:
• perform NDNS lookup
• re-express Interest with Link object
• Short term solution before NACK is ready:
• the consumer should always perform NDNS lookup
• Implementation:
• Application MAY explicit set the forwarding hint.
• If forwarding hint is unset, Face::expressInterest
performs automatic lookup, and caches the result.
• so applications don't have to change
17
Forwarder Changes
This section describes the MINIMAL changes in forwarding to
support mobility.
Additional features are needed in the complete solution,
which is not yet ready.
18
Configuration: region names
• Add a "region name" field to NFD configuration file.
• This allows the producer region edge router to
determine an Interest has reached the producer
region.
• The region name could indicate a single router
(router name), or a Point Of Presence.
• There could be multiple region names.
We use "region name" rather than "router name". By configuring region names to
be a Point Of Presence or larger, an attacker would not be able to address a single
router by setting its router name in the Link object.
19
Interest forwarding: pick
delegation
• Condition:
• Delegation Name is not a prefix of any region name.
• Interest has Link object but no SelectedDelegation.
• Action:
1. (ContentStore miss pipeline) perform FIB lookups for
each delegation Name in the Link object
2. (strategy) pick a delegation
3. (strategy) forward to one or more nexthops in the FIB
entry associated with the chosen delegation
4. (outgoing Interest pipeline) set SelectedDelegation
field
20
Interest forwarding: follow
delegation
• Condition:
• Delegation Name is not a prefix of any region name.
• Interest has Link object and SelectedDelegation.
• Action:
1. (ContentStore miss pipeline) perform FIB lookup for
selected delegation Name
2. (strategy) forward to one or more nexthops in the FIB
entry associated with the delegation
21
Interest forwarding: within
producer region
• Condition:
• Delegation Name is a prefix of any region name.
• Action:
1. (incoming Interest pipeline) ignore Link object and
SelectedDelegation
• This requires all nodes in the producer region to have accurate "region name",
otherwise, if some nodes don't have "region name":
• those nodes are confused whether to follow the forwarding hint, or to
follow the Interest Name.
• If it's just the end host laptop not having an accurate "region name", the
laptop can follow the forwarding hint for Interests from a local app,
otherwise follow the Interest Name. But this won't work in the general
case.
22
Download