I read up on a paper on NDN Sync, to understand the correct mechanism and the positives and negatives of it. As it is important to identify and understand where there is room for improvement.
"A brief introduction to NDN Dataset Synchronization (NDN Sync)", the paper elaborates on the potential of its secure, and resilient communication, as it allows consumers to request data by using application-defined names, and then fetches the named data packets. The key point of the paper is describing the design of dataset synchronization protocols, mainly ChronoSync and PSync.
Examination of three types of dependable multicast protocols in order to comprehend the multicast design concepts of ChronoSync and Psync. The 3 categories are sender-initiated protocols, where the sender collects acknowledgements from all receivers and performs retransmission of lost packets. Then there are receiver-initiated protocols, where each receiver is responsible for its own loss recovery, by sending NACKs whenever it detects packet losses. Finally, ALC-based (asynchronous layered coding)-where the packets are transmitted through redundant coding, so each receiver can recover lost packets individually, but this increases overhead.
The NDN Sync protocol's main responsibility is to reconcile the differences in a shared dataset among multiple parties. To summarize, ChronoSync and PSync both have the same sequential data naming convention, encode their dataset states, and have a periodic multicast sync advertisement to others in the Sync group. The difference is in the data struct for encoding the dataset state, and how they deduce the difference in dataset. The message exchange for data reconciliation.
ChronoSync synchronizes the entire dataset among a distributed group of users. ChronoSync begins by sending a Sync interest, which stays in the network if there is no sync state difference, as it waits preemptively for future changes; this state is called a stable stage. Whilst awaiting state changes, new Sync interest requests are aggregated. When a state change is detected, all the interest packets are fulfilled. Subsequently, if the digest log of a user differs for any reason, then a recovery mechanism is activated to receive the missing digest log data packets. This continues until a stable state is achieved for all users in the group.
PSync is designed to support partial dataset synchronization. Psync uses Invertible Bloom Filter (IBF) to encode dataset state by adding a hash value. IBF allows each entity to maintain a local mapping for each stream, which allows consumers to subscribe to a subset of data streams. To find set differences, it employs IBF subtraction to decode the differences between local and received IBF, by outputting hash values of different data names between local and received IBF.
For Sync security, by default, NDN interest packets will not be signed. However, they do have mechanisms for security, such as Sync interest authentication by using HMAC-a type of message authentication code (MAC) involving a cryptographic hash function and a secret cryptographic key. Another way to do security is group key management, where a single group manager will distribute and update shared keys.
In conclusion, a more comprehensive approach to our research can be created by comprehending the design decisions and high-level distinctions in this paper.