Task #1871
closedBest Route Strategy version 2: recognize consumer retransmission
100%
Description
Develop a forwarding strategy that recognizes and reacts to consumer retransmission.
One common weakness of best-route, broadcast, and ncc strategies is:
After Interest is forwarded to one or more upstreams, no more retries will be made until the InterestLifetime expires.
Although the consumer app may retransmit the Interest, those retransmissions are ignored.
This design is believed to make those strategies (and also ccnd
) vulnerable to packet loss, and thus unsuitable for usage over UDP tunnels across Interest.
This Task is to design and implement a simple forwarding strategy that recognizes downstream retransmissions.
If a consumer suspects there's an Interest or Data loss, it can retransmit the Interest, and such a retransmission should trigger the strategy to try an alternate path or a previously used path.
However, to avoid sending too many Interests, a retransmission will trigger another forwarding only if it's at least one RTT apart from the previous forwarding.
An opposite view is that, the strategy should retry alternate or same path all the time until InterestLifetime expires.
However, this design is unsuitable for nodes except end hosts, because the downstream node may already have received the Data via another path, and retries are unnecessary.
An explicit retransmission or retry from the downstream signals that the downstream still needs the Data.