KITE » History » Version 2
Zhongda Xia, 06/14/2019 09:03 PM
| 1 | 1 | Davide Pesavento | # KITE |
|---|---|---|---|
| 2 | |||
| 3 | 2 | Zhongda Xia | The **KITE protocol** allows building forwarding paths for prefixes using "authenticated" Interest-Data exchanges between a mobile producer (MP) and a trusted Rendezvous Server (RV). |
| 4 | 1 | Davide Pesavento | |
| 5 | 2 | Zhongda Xia | An MP sends a **KITE request** (a command Interest that follows a special naming convention), which is forwarded to the RV because the RV announces a prefix of the name. The KITE request leaves traces in the stateful forwarding plane (PIT entries), constructing a forwarding path for Data to be forwarded to the MP. The RV will verify the information carried in the KITE request (primarily the signature, and thus the term "authenticated Interest-Data exchange"), and respond with a **KITE acknowledgment**, a Data packet, for legitimate KITE requests. The KITE acknowledgment sent by the RV will trigger intermediate forwarders to save the reversed forwarding path for Data as Interest forwarding information, for a prefix specified by the name of the Interest-Data exchange. |
| 6 | 1 | Davide Pesavento | |
| 7 | 2 | Zhongda Xia | ## KITE Request (KiteRequest) |
| 8 | 1 | Davide Pesavento | |
| 9 | 2 | Zhongda Xia | A **KITE request** is essentially a command Interest, i.e., a signed Interest (http://named-data.net/doc/NDN-packet-spec/current/signed-interest.html) with extra information such as nonce and timestamp to for replay-attack prevention. A KITE request is signed and sent by an MP to be verified by an RV, |
| 10 | 1 | Davide Pesavento | |
| 11 | 2 | Zhongda Xia | An Interest packet that satisfies the following requirements is a KITE request: |
| 12 | |||
| 13 | * Conforms to signed Interest specifications. |
||
| 14 | * With the trailing Interest signing name components removed, the remaining leading part of the name conforms to KTIE request name specifications (see below). |
||
| 15 | * The ApplicationParameters contains the expiration period for the forwarding path (optional, details TBD). |
||
| 16 | |||
| 17 | KITE request name specifications: |
||
| 18 | |||
| 19 | * Starts with an **RV prefix**, i.e., a prefix announced by an RV. |
||
| 20 | * Followed by a **"32=KITE"** keyword name component. |
||
| 21 | * Followed by a **producer suffix**, i.e., one or more arbitrary name components. The concatenation of an RV prefix and a producer suffix in the same KITE request name is the **producer prefix** specified in this name. The forwarding path to be set up is for the producer prefix. |
||
| 22 | * End with two name components for replay-attack prevention purposes: **nonce** and **timestamp**. |
||
| 23 | |||
| 24 | ## KITE Acknowledgment (KiteAck) |
||
| 25 | |||
| 26 | A **KITE acknowledgment** is a Data packet sent by the RV for an Interest (a **KITE request**) that passes verification. A KITE request that passes the verification is supposed to be sent by the owner of the prefix for which the forwarding path is set up. |
||
| 27 | |||
| 28 | A Data packet that satisfies the following requirements is a KITE acknowledgement (note that a KITE acknowledgment is always generated in response to a KITE request): |
||
| 29 | |||
| 30 | * Has the same name with a KITE request. |
||
| 31 | 1 | Davide Pesavento | * ContentType is 6 (KITE Acknowledgment). |
| 32 | * Carry a prefix announcement object as payload, and the "announced prefix" indicated by the PA object must be the same as the name of the KiteAck minus the "32=KITE" keyword component (excluding Interest signature related components and the Parameters digest component). |
||
| 33 | * The payload only consists of a prefix announcement object in data form, no other content. |