Project

General

Profile

Feature #5029

Updated by Teng Liang 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. This is far from being useful or robust in real usage, so we plan to improve self-learning in four aspects: 

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

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

 * **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** 
   * When a consecutive of Interests have timed out on a FIB entry, If the strategy should trigger same retransmitted Interest broadcasting has been forwarded 5 times (`RETX_TRIGGER_BROADCAST_COUNT`), reinitiate Interest flooding at consumers. 
 

 consumer.  

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

Back