Project

General

Profile

Actions

ScopeControl » History » Revision 1

Revision 1/3 | Next »
Junxiao Shi, 06/26/2014 10:03 PM


Namespace-based Scope Control

NFD performs scope control of Interest and Data according to their namespace.

Namespace-based scope control is the only kind of scope control supported by NFD.
Scope Guider in NDN-TLV Interest packet is not supported, and is ignored.

localhost Scope

The localhost scope limits propagation to the applications on the originating host.
It is equivalent to Scope=1.

Interest and Data packets under prefix ndn:/localhost are restricted by these rules:

  • Interest namespace can come from and go to local faces only.
  • Data namespace can come from and go to local faces only.

local face

Whether a face is considered "local" for scope control purpose is determined by the face implementation.
Face::isLocal() attribute returns true if a face is local for scope control purpose.

Generally, the following faces are local:

  • the InternalFace (in NFD management module)
  • UNIX-domain socket face
  • TCP face whose remote address is a loopback address
  • WebSocket face whose remote address is a loopback address

A local process may connect as non-local by establishing a TCP or WebSocket connection to the IP address on a physical NIC of the local machine.
Since this IP address is not a loopback address, the face would be non-local.
This is desirable in scenarios such as a protocol translator.

localhop Scope

The localhop scope limits propagation to no further than the next node.
It is equivalent to Scope=2.

Interest packets under prefix ndn:/localhop are restricted by these rules:

  • Interest can come from a local face or a non-local face.
  • If PIT entry has at least one InRecord from a local face, it can be forwarded to local faces and non-local faces.
  • If PIT entry has all InRecords from non-local faces, it can only be forwarded to local faces.
  • PIT entry can be satisfied by Data from any source.

Data packets under prefix ndn:/localhop are unrestricted.

The localhop scope allows an Interest packet to travel only one hop from the consumer host, but a Data packet may travel multiple hops from the producer host.
Suppose we have three hosts A-B-C in a linear topology, B can retrieve a Data under /localhop namespace from C, and this Data is cached in B's ContentStore.
Later A sends an Interest to B; although B cannot forward this Interest to C, the cached Data can satisfy the Interest and would be returned to A.

Updated by Junxiao Shi over 10 years ago · 3 revisions