Project

General

Profile

Feature #5029

Updated by Davide Pesavento over 4 years ago

The current version of self-learning forwarding strategy mainly handles the "no-next-hop" case, and uses multicast to one or more eligible faces. next hops. This is far from being useful or robust in real usage, so we plan to improve self-learning in four aspects: 

 * **Interest Retransmission Suppression** 
  * Add a retransmission suppression decision algorithm that suppresses Interest retransmissions using exponential backoff. 

 * **Better next hop choice** 
  * If multiple next hops exist, an eligible next hop with the lowest cost should be picked. For a retransmitted Interest that can be forwarded, forward it to an unused next hop with the lowest cost; if all next hops have been tried, pick the first chosen next hop to forward. 

 * **NACK handling** 
   1.    Send Interest to an eligible unused next hop on receiving a no-route NACK 
   2. Once all next hops return no-route NACK 
       * if this node is consumer, reinitiate discovery Interest flooding  
       * if this node is not consumer, send the NACK back to downstreams 

 * **Timeout handling** 
   * If the same retransmitted Interest has been forwarded 5 times (`RETX_TRIGGER_BROADCAST_COUNT`), reinitiate Interest flooding. 

 Read [self-learning packet processing](https://github.com/philoL/NDN-Self-Learning/blob/master/self-learning-v2.pdf) flows for more details.

Back