Btw. I pushed my implementation of bus along with a test suite for it to my repo. Feel free to have a look. (Easier if you grok go. But at least go is in the c family.) Sent from my iPhone > On Apr 10, 2014, at 1:17 AM, Martin Sustrik <sustrik@xxxxxxxxxx> wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 10/04/14 10:05, Garrett D'Amore wrote: > >>> I understand that is why you were using the pipe in the header. >>> My implementation achieves the same thing, by moving this >>> “device” functionality into the protocol itself. In other words, >>> anytime someone in the bus gets a message, he sends it to >>> everyone *except* the pipe he got it from. I do this >>> immediately, without needing to push it up to the application >>> (the device in this case) to do the forwarding. >> >>> What this means is that each “bus” acts as a local star (usually >>> — although I guess you could have a client dial multiple >>> different servers and have it act as a point.) I am assuming >>> that we are not a fully mesh connected network, but more like a >>> star. > > Unfortunately, the local network is often not a star but rather a mesh. > > There are two use cases for that: > > 1. Multicast protocols, i.e. there's no central server, packets are > forwarded to individual boxes on the LAN by the network itself. > > 2. Eliminating the SPoF created by the device by connecting individual > applications directly (everyone-to-everyone) instead of via a device. > > >>> We can connect multiple stars together with devices. But if >>> there is a loop in the network, it will not be possible to >>> prevent message duplication/amplification with just the sender >>> ID. You’d really need to introduce a TTL, along the lines of IP >>> networking. I don’t think we want to get into that. >>> Applications should just take care not to create loops. > > I was thinking about TTL and loop detection, but I was not sure it's > appropriate or even needed. So I let it be in the end. > > Martin > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.11 (GNU/Linux) > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQEcBAEBAgAGBQJTRlOwAAoJENTpVjxCNN9Y/lMIAKyWPdO64r0lemoS6IEGl3C1 > 0mBzCgfdJg7pdpWtl6z78FR5/b1DT/h7rRBMo/NoEijWP2IqH4DmOglqQlKfUQZX > 9YrPLuGTss2qKNdv/dy5mUdWQFJoAdPZFxV2UVV6NguXOVkMEyMFux11PtxN1bB2 > LIoLAWgmBjbBz53u9GT0LByuDmbIkcsvbiqG3hgfQBbE+0EzQgMCuHHpGrPvFc// > jKLgseTdTIXO8X4qk8VTeiOSpH3UaCMvgDui8mw1/WK9PMgPLKbUZOQrqYDwAa2E > 1CfXGzSlec6aycnD/N4x+ZPahKsEX3h43J0Mu+A4JK45wuoiN4Y2A0FPWALKnQo= > =WyMd > -----END PGP SIGNATURE----- >