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" no-next-hop case, and uses multicast to strategy with one or more than one next hops. hop(s). This is far away 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. 

 backoff into Interest processing.  

 * **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`), (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