Project

General

Profile

Actions

ScopeControl » History » Revision 2

« Previous | Revision 2/3 (diff) | Next »
Junxiao Shi, 09/02/2015 09:56 PM


Namespace-based Scope Control

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

localhost Scope

The localhost scope limits propagation to the applications on the originating host.

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

  • Interest can come from and go to local faces only.
  • Data 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.
FaceScope attribute indicates whether a face is local or non-local.

Generally, the following faces are local:

  • internal face for NFD Management
  • 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 of a non-loopback 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.

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 8 years ago · 2 revisions