1 / 21

Interest NACK

Interest NACK. Junxiao Shi, 2014-07-18. Introduction. Interest NACK, aka "negative acknowledgement", is sent from upstream to downstream to inform that Data could not be retrieved in response to an Interest.

perdy
Download Presentation

Interest NACK

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Interest NACK Junxiao Shi, 2014-07-18

  2. Introduction • Interest NACK, aka "negative acknowledgement", is sent from upstream to downstream to inform that Data could not be retrieved in response to an Interest. • Interest NACK is useful in forwarding strategy as a explicit signal, for congestion control and other purposes. • This document is a proposal for including Interest NACK in NDN-TLV packet format, and in NFD forwarding pipelines.

  3. Semantics

  4. Interest NACK • An Interest NACK is a packet sent by upstream to inform the downstream that Data cannot be retrieved or delivered in response to an Interest. • An Interest NACK contains an Interest and a reason code.

  5. Interest in Interest NACK • The Interest in an Interest NACK is the Interest that triggers the Interest NACK. • After an Interest packet is forwarded from downstream to upstream, the upstream can either return a Data, or return an Interest NACK that contains this Interest. • On each point to point link, with absence of packet loss, there is a flow balance between Interests vs Data + Interest NACKs.

  6. Reason in Interest NACK • The reason code in an Interest NACK indicates why the upstream wants to send an Interest NACK in response to the enclosed Interest. • Commonly used reason codes include Duplicate, Congestion, NoData, Busy, etc (defined in this section)

  7. Reason: Duplicate • An Interest NACK with reason code Duplicate informs the downstream that the Interest is a duplicate, because the combination of Name and Nonce is previously seen by the upstream. • This means either the Interest is looped, or the Interest has reached the upstream via another path.

  8. Reason: Congestion • An Interest NACK with reason code Congestion informs the downstream that there is a congestion on the forwarding path of the Interest. • The congestion can occur on the link between downstream and upstream, or on the path from upstream toward the content source(s). • The congestion can occur in either direction.

  9. Reason: NoData • An Interest NACK with reason code NoData informs the downstream that the upstream has no route to forward the Interest.

  10. Reason: Busy • An Interest NACK with reason code Busy informs the downstream that the Interest has reached a producer, but the producer is too busy to handle this Interest.

  11. Packet Format

  12. Packet Format InterestNack ::= INTEREST-NACK-TYPE TLV-LENGTH Interest NackCode NackCode ::= NACK-CODE-TYPE TLV-LENGTH nonNegativeInteger

  13. Interest NACK is not an Interest • An Interest is intended to retrieve some content. • An Interest NACK is to inform the downstream about a problem, and upstream is not expecting a response from the downstream.

  14. Interest NACK is not a Data • A Data is a piece of content in response to an Interest, that should be forwarded toward the consumer. • An Interest NACK is in response to an Interest, but it's a hop-by-hop message that is useful in the network, but useless for the consumer.

  15. Interest NACK is a third packet type • The processing path for Interest NACKs is different from either Interest or Data, so it should be a third packet type.

  16. Interest NACK is unsigned • Interest NACK is hop-by-hop, so it cannot be used to confuse a faraway node. • Malicious nodes can gain nothing by sending bogus Interest NACKs. Sending an Interest NACK informs the downstream that the upstream doesn't work for the Interest, while the malicious node may as well silently drop the Interest.

  17. Forwarding Pipelines

  18. Incoming NACK pipeline receive NACK PIT match has out-record? Y Y mark out-record as NACKed trigger strategy: after receive NACK N N (drop) (drop)

  19. Outgoing NACK pipeline has in-record? Y strategy action: send NACK mark in-record as NACKed send NACK N (drop)

  20. NACKed field in PIT in-record • A NACKed field is added to PIT in-record. • This field is cleared in Incoming Interest pipeline. • This field is set to the reason code in Outgoing NACK pipeline. • The purpose of this field is to help forwarding strategy make decisions.

  21. NACKed field in PIT out-record • A NACKed field is added to PIT out-record. • This field is cleared in Outgoing Interest pipeline. • This field is set to the reason code in Incoming NACK pipeline. • The purpose of this field is to help forwarding strategy make decisions.

More Related