diff options
Diffstat (limited to 'docs/source/1-architecture.md')
-rw-r--r-- | docs/source/1-architecture.md | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/docs/source/1-architecture.md b/docs/source/1-architecture.md new file mode 100644 index 000000000..8f3cfc78a --- /dev/null +++ b/docs/source/1-architecture.md @@ -0,0 +1,42 @@ +# Data identifiers and locators + +Hybrid ICN makes use of data identifiers to name the data produced by an end +host. Data identifiers are encoded using a routable name prefix and a non +routable name suffix to provide the ability to index a single IP packet in an +prefix is unambigous manner. A full data name is composed of 160 bits. A +routable name prefix in IPv4 network is 32 bits long while in IPv6 is 128 bits +long. A name prefix is a valid IPv4 or IPv6 address. The 32 rightmost bits are +used by the applications to index data within the same stream. + +A data source that is using the hicn stack is reacheable through IP routing +where a producer socket is listening as the producer name prefix is IP routable. + +Locators are IP interface identifiers and are IPv4 or IPv6 addresses. Data +consumers are reacheable through IP routing over their locators. + +For requests, the name prefix is stored in the destination address field of the +IP header while the source address field stored the locator of the consumer. + + +# Producer/Consumer Architecture +Applications make use of the hicn network architecture by using a Prod/Cons API. +Each communication socket is connection-less as a data producer makes data +available to data consumer by pushing data into a named buffer. Consumers are +responsible for pulling data from data producers by sending requests indexing +the full data name which index a single MTU sized data packet. The core + +# Packet forwarding +Packet forwarding leverages IP routing as requests are forwarded using name +prefixes and replies using locators. + +# Relay nodes +A relay node is implemented by using a packet cache which is used to temporarily +store requests and replies. The relay node acts as a virtual proxy for the data +producers as it caches data packets which can be sent back to data consumer by +using the full name as an index. Requests must be cached and forwarded upstream +towards data producers which will be able reach back the relay nodes by using +the IP locators of the relays. Cached requests store all locators as currently +written in the source address field of the request while requests forwarded +upstream will get the source address rewritten with the relay node locator. Data +packets can reach the original consumers via the relay nodes by using the +requence of cached locators. |