Request IDs (RIDs) in XIA - adamiaonr/xia-core GitHub Wiki

This wiki describes the design and implementation of a new principal type - Request IDs or RIDs - in the eXpressive Internet Architecture (XIA). It also shows how to get an RID demo up & running in the GENI infrastructure.

RIDs: a brief Introduction

Here we briefly describe Request IDs (RIDs) by answering 3 questions: (1) what are RIDs? (2) why do we need RIDs? and (3) how do RIDs work?

What are RIDs?

Request IDs (or 'RIDs' for short) are a new form of network-layer communication (i.e. an alternative to IP), which allows name-based forwarding (e.g. as in the NDN architecture) over a flat-ID-based Internet architectures. In this particular case, we show an implementation of RIDs for the eXpressive Internet Architecture (XIA), an example of a flat-ID Internet architecture.

Why do we need RIDs?

Similarly to Content IDs (CIDs) in XIA, RIDs allow network applications to retrieve the nearest copies of content from the network. As a novelty, RIDs allow them to do so directly from a name (e.g. a hierarchical name like '/cmu/cs/ghc/9001/temperature/latest') without the intervention of a name lookup service (e.g. DNS) nor the overheads it incurs (e.g. extra latency).

How do RIDs work?

In essence, RIDs are 160 bit Bloom Filters (BFs) which encode all prefixes of a hierarchical name.

Fig. 1: Encoding of a name into an RID (a); examples of simple RID lookups between a request R and multiple forwarding table entries (b)