The NetInf Idea
Today’s computer networks use a host-based naming scheme referencing data by its location. This requires users who are interested in the data to know the location, which – in most cases – is of no use to them. The users are interested in the data, no matter where it comes from, as long as it is the data that was requested. Thus, an information centric approach may be more suitable.
The NetInf handles data independently from its location. Information about a certain topic is contained in an InformationObject (IO) – a unit of information. Every IO has a globally unique identifier. This identifier is used to reference the IO, a location in form of a host-based address used in today’s Internet is not needed. Thus, the IO may be stored anywhere in NetInf.
To guarantee that an IO always contains the same data, unauthorized manipulations have to be prevented. Since users can always manipulate data they have on their own computer, manipulation has to be made visible to the receiver instead. Thus, IOs have to contain information which allows anyone to validate their correctness.
As there is no need for hosts to be trusted, it is possible to arbitrarily distribute the IOs among the nodes in the network. This allows popular IOs to be stored at nodes close to emerging interest, lets the network scale with an increasing number of users, and it allows important IOs to be distributed evenly among the network to increase their availability even in case of failing nodes. Additionally, users do not necessarily have to provide the storage in the network to publish IOs, since others may share their available storage to enable a greater accumulation of information.
The uniform, structured representation of data in the form of IOs has several benefits: First, IOs are specified precisely enough to automatically search through IOs in a uniform way as well. Second, users may also get notified when data is changed, without searching frequently. Third, different applications can benefit from synergetic effects through similar structures of their IOs, since they may share the data with little effort.
More details on NetInf can be found in the prototype documentation.