diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2013-07-20 18:24:56 -0400 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2013-07-20 18:24:56 -0400 |
| commit | b8e9a79d009411525c99b886b7af41bb4c650669 (patch) | |
| tree | 64f905c620571a2085b88a3a440b3e6538d70ddc /node/Multicaster.hpp | |
| parent | e4e517e9c3ba16076b231d082a179aad8e892d6c (diff) | |
| download | infinitytier-b8e9a79d009411525c99b886b7af41bb4c650669.tar.gz infinitytier-b8e9a79d009411525c99b886b7af41bb4c650669.zip | |
docs
Diffstat (limited to 'node/Multicaster.hpp')
| -rw-r--r-- | node/Multicaster.hpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/node/Multicaster.hpp b/node/Multicaster.hpp index 9c28e1c2..ac89f84b 100644 --- a/node/Multicaster.hpp +++ b/node/Multicaster.hpp @@ -261,7 +261,16 @@ public: bf.set((peers[chosen++] = *i)->address().sum()); // Add a supernode if there are fewer than the desired - // number of recipients. + // number of recipients. Note that we do not use the bloom + // filter to track visits to supernodes, intentionally + // allowing multicasts to ping pong between supernodes. + // Supernodes propagate even messages they've already seen, + // while regular nodes do not. Thus this ping-ponging will + // cause the supernodes to pick new starting points for + // peer to peer graph traversal multiple times. It's a + // simple, stateless way to increase supernode-driven + // propagation of a multicast in the event that peer to + // peer connectivity for its group is sparse. if (chosen < max) { Address avoid[2]; avoid[0] = originalSubmitter; |
