Task #2076
closedReset Interest and sync interest may not arrive in order
30%
Description
After sending a reset interest, a sync interest should be sent out to retrieve sync update after reset.
However, it is not guaranteed that the reset interest will be received before the sync interest,
thus the sync interest may still bring back the old status.
One solution to this problem is to encode the "reset round#" in sync interest name.
A reset round number starts from 0, and should increase by 1 whenever a reset is needed.
The round number is placed immediately before sync-digest component.
Thus, even if the digest is the same, the reset round can avoid an old sync reply to satisfy a new sync interest.
Every participant should keep current reset round number.
And their reset round number should be the same.
A larger reset round number in a received sync interest is an indication that the reset round in which the receiver is has been reset.
Thus, the receiver should reset its sync tree and update reset round number to catch up with others.
Note that reset interest is not needed any more.
Note that we assume the sync interests can be authenticated by a symmetric key, we do not assume that any authenticated participant would maliciously disturb the synchronization by keeping sending sync interests whose reset round number is always higher than the current one.
Symmetric key distribution requires public key authentication, which will be addressed separately.