RDR » History » Version 2
Chavoosh Ghasemi, 10/19/2018 04:48 PM
1 | 1 | Junxiao Shi | # Realtime Data Retrieval (RDR) protocol |
---|---|---|---|
2 | |||
3 | [Real-Time Data Retrieval in Named Data Networking](https://named-data.net/publications/hoticn18realtime-retrieval/) published in HotICN'2018 introduces Real-time Data Retrieval (RDR) protocol for discovering latest version number of real-time streaming data. |
||
4 | This document defines a recommended packet format of RDR protocol. |
||
5 | |||
6 | 2 | Chavoosh Ghasemi | RDR is an application-level protocol, and its usage could be application specific. |
7 | 1 | Junxiao Shi | Therefore, it is RECOMMENDED that each application defines its own instance of RDR protocol based on this document, rather than directly referencing this specification. |
8 | |||
9 | ## Metadata Packet |
||
10 | |||
11 | In RDR protocol, the *metadata packet* is a Data packet that carries the latest version number of a data stream. |
||
12 | |||
13 | ### Name Suffix |
||
14 | |||
15 | The name of a metadata packet MUST end with these three name components: |
||
16 | |||
17 | 1. The keyword component `32=metadata`, indicating this Data packet is a metadata packet under this specification. |
||
18 | 2. A version number component, whose format is defined in Naming Conventions. |
||
19 | 3. A segment number component, whose format is defined in Naming Conventions. Normally the metadata is not segmented and thus the segment number is zero, but this component is included for future extension. |
||
20 | |||
21 | ### Name Prefix |
||
22 | |||
23 | The name prefix of a metadata packet before these three name components SHOULD same as the name prefix of versioned data before the version number component. For example, an application can have the following namespace: |
||
24 | |||
25 | ``` |
||
26 | # data stream |
||
27 | /net/example/www/frontpage/%FD%97%47%1E%6C/%00%00 |
||
28 | /net/example/www/frontpage/%FD%97%47%1E%6C/%00%01 |
||
29 | /net/example/www/frontpage/%FD%97%47%1E%6D/%00%00 |
||
30 | /net/example/www/frontpage/%FD%97%47%1E%6D/%00%01 |
||
31 | |||
32 | # metadata packet |
||
33 | /net/example/www/frontpage/32=metadata/%FD%7E%5F%45%08/%00%00 |
||
34 | ``` |
||
35 | |||
36 | ### FreshnessPeriod |
||
37 | |||
38 | FreshnessPeriod of a metadata packet MUST NOT be zero. |
||
39 | See the RDR paper for guidelines on an appropriate value for this field. |
||
40 | |||
41 | ### Content Payload |
||
42 | |||
43 | 2 | Chavoosh Ghasemi | The Content of a metadata packet MUST be a sequence of TLV elements. It is required that at least one of the |
44 | TLV elements be a *Name* element which indicates the versioned name of the latest version of the data. |
||
45 | 1 | Junxiao Shi | |
46 | For example: |
||
47 | |||
48 | ``` |
||
49 | <Content> |
||
50 | <ArbitraryElement>this is ignored</ArbitraryElement> |
||
51 | <Name>/net/example/www/frontpage/%FD%97%47%1E%6D</Name> |
||
52 | <Name>this is ignored</Name> |
||
53 | </Content> |
||
54 | ``` |
||
55 | |||
56 | ## RDR Discovery Interest |
||
57 | |||
58 | 2 | Chavoosh Ghasemi | In RDR protocol, consumers express RDR Discovery Interests to retrieve metadata packets, in order to discover the latest version number in the stream. |
59 | 1 | Junxiao Shi | An RDR Discovery Interest MUST: |
60 | |||
61 | * end its name with `32=metadata`; |
||
62 | * set CanBePrefix; |
||
63 | * set MustBeFresh. |