KITE » History » Revision 2
Revision 1 (Davide Pesavento, 06/13/2019 12:54 PM) → Revision 2/11 (Zhongda Xia, 06/14/2019 09:03 PM)
# KITE The **KITE protocol** allows building forwarding paths for registering prefixes using "authenticated" Interest-Data exchanges between a mobile producer (MP) and a trusted Rendezvous Server (RV). An MP sends a **KITE request** (a command The 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 term "authenticated" refers to the fact that the RV will verify the information carried in the KITE request Interest (primarily the signature, signature), and thus the term "authenticated Interest-Data exchange"), and respond with a **KITE acknowledgment**, a Data packet, only for legitimate KITE requests. Interests. The KITE acknowledgment Data sent by the RV will trigger intermediate forwarders to save the reversed forwarding path for Data as Interest forwarding information, RIB entries, for a prefix specified by the name of the Interest-Data exchange. corresponding Interest/Data. ## KITE Request (KiteRequest) 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, An Interest packet that satisfies the following requirements is a KITE request: * Conforms to signed Interest specifications. * With the trailing Interest signing name components removed, the remaining leading part of the name conforms to KTIE request name specifications (see below). * The ApplicationParameters contains the expiration period for the forwarding path (optional, details TBD). KITE request name specifications: * Starts with an **RV prefix**, i.e., a prefix announced by an RV. * Followed by a **"32=KITE"** keyword name component. * 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. * End with two name components for replay-attack prevention purposes: **nonce** and **timestamp**. ## KITE Acknowledgment object (KiteAck) A The **KITE acknowledgment** acknowledgment object** is a Data packet sent by the RV for an Interest (a **KITE request**) that passes verification. A KITE request is essentially a command Interest, and 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. 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): object: * Has the same name Name starts with a KITE request. prefix announced by an RV, followed by a fixed "32=KITE" keyword name component, followed by one or more name components. * ContentType is 6 (KITE Acknowledgment). * 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). * The payload only consists of a prefix announcement object in data form, no other content.