Networking Named Content
Jacobson et al
content based addressing networking routing internet infrastructure
@conference{jacobson:conext-2009,
title={Networking Named Content},
author={Jacobson, V. and Smetters, D.K. and Thornton, J.D. and
Plass, M.F. and Briggs, N.H. and Braynard, R.L.},
booktitle={Proceedings of the 5th International Conference on
Emerging Networking Experiments and Technologies},
year={2009},
organization={ACM}
}
Modern networking dominated by content distribution
- Original use and design focused on connecting particular endpoints
- Use now focused on retrieving content, design hasn't changed
- "People value the Internet for what it contains, but communication is still in terms of where.
By more directly operating over content, can improve availability, security, and location-dependence.
Original IP design has many desirable qualities
- Simplicity
- Weak demands placed on layer 2
- Stateless, unreliable, unordered, best-effort
CCN addresses content directly
- Interest packets matched with Data packets/chunks via prefix matching on hierachical names
- Content may not exist yet, Interest is thus subscribing to it, or it may be generated based on that interest
- Names may be context dependent, e.g., /ThisRoom/projector
- Doesn't discuss how that might be controlled; presumably strategy rules
- Names include simple directives for relative addressing
- E.g., leftmost right descendent of a given prefix
- Used to refer to sequences of chunks, i.e., when the next name is unknown
- Working on directives to explore namespace at higher level
Packets arrive on an interface, and a longest-match look up is performed on it
- Three forwarding structures
- Forwarding Information Base (FIB)
- Stores list of outgoing interfaces, rather than a single next hop as in IP
- Content Store (buffer memory)
- Data is self-identifying and self-authenticating, so it's potentially of repeat use
- Therefore stored as long as possible; LRU or LFU replacement rather than MRU
- Pending Interest Table (PIT)
- Track Interests forwarded upstream, creating reverse return trail
- Erased as soon as they are used to forward a Data packet
- Eventually time out
- When an Interest is received, content Store match is preferred over PIT match, which is preferred over FIB match
- Thus, if there's already a Data packet stored matching an Interest, it's forwarded
- If there's already a exact-match Pending Interest, the source interface will be added to the list of subscribers for the PIT entry and the timers updated
- Otherwise, if there's a prefix-matching FIB entry, then the Interest needs to be sent upstream to that data
- The source interface is removed from the interface list of the FIB
- Interest is forwarded to the remaining interfaces in the FIB list
- Interest is added to the PIT
- When Data packets arrive, they're matched similarly
- If any Content Store entries exist it's a duplicate, so it is tossed
- A PIT match consumes the Interest and is forwarded to all listed interfaces, excluding the source interface, and the Data is added to the Content Store
- A FIB match means there are no interests, so it's discarded
- Interests not answered in some amount of time should be retransmitted
Data can't loop, but Interests can
- Random nonce is added so duplicates can be discarded
Data must return via reverse of same path as Interests
- Different from IP, where paths may differ
Strategy and security layers to IP stack
- Strategy layer controls forwarding of Interests
- Can utilize multiple links to improve adaptability, performance
- Security layers allows data packets to be self authenticating
- This is required in order to reuse data packets, prevent trivial spoofing & capture
- Effectively secures the whole routing infrastructure
Effectively implicitly implements several things
- Network wide, self optimizing caching
- DTN
- Multicast
- Content based addressing
- Multi-homing and mobile nodes
- Load balancing
- Per-hop flow control, by at worst pairing one Interest to one Data
- Fairly intuitive mechanisms for growing trust networks
- Control/DoS prevention
- Since returning Data packets are visible, node can determine if it's being bombed by valid Interests or not
- Faking Interests are basically the only way to DoS the system
Questions
- Effective/efficient forwarding strategies?
- Use of broadcast link? I.e., how to determine facing?
Of note:
- Bunch of useful related work linked here