On 1/16/07, Andy Green <[EMAIL PROTECTED]> wrote:
... The basic concept is that all those machines you see around you on your wifi applet or iwlist wlan0 scan could participate together to form a large and fast, if patchy network completely outside the Internet, using addressless unencrypted broadcast packets, at the same time they remain associated and using crypto for their internal traffic as usual.
a quick overview, since i don't have time (yet) for a more detailed reply: there are a plethora of ad-hoc routing protocols [0] and some are well suited towards this kind of wireless mesh. my particular favorite is Link Quality Source Routing [1] which supports multiple radios nicely. this is what you'll need to do your "rebroadcast" efficiently. some comments about the broadcasts: you'll want to consider encoding rate and transmit power in the xmit stack, one size fits all (that is, no differentiation between packet types and encoding) will be inefficient, and you'll get better behavior if you can tune this accordingly. rate control is actually pretty complicated in practice, while it may seem seductively easy in theory. [2] along similar lines, packet size (including fragmentation, if needed) will greatly affect the receive-ability of your broadcasts by multiple clients, since longer payloads are more likely to experience collision, thus forcing back-off and retransmission. in short, it might work best to have the signalling/control/discovery traffic in small packets, sent at the lowest bitrate and max power, while the data traffic uses a different (more flexible) rate and fragmentation layer. (you might be doing this already, but i did not see details on the wiki) antenna selection may also be useful now that wireless devices are including MIMO and multiple antennas more frequently. [just to emphasize this point, the broadcast nature of wireless makes it ideal for resource discovery requests, since it is a true broadcast, and not an emulated one implemented via iterative unicast or forwarding, etc. in particular i've tested small periodic payloads (<128 bytes) at 1M rate and 1W xmit to great effect, literally many tens of miles diameter. you shouldn't need such a high degree source, but this does show just how wide a unidirectional path can be when the wireless layer is tuned for distance]
The state at the moment is I am working on two Linux wifi drivers, for zd1211rw and ipw3945 to add the Penumbra packet transfer stuff as a proof of concept, and that the usermode daemon SSL and upload stuff is done and under GPL. So it is quite early days but there is progress.
i'd highly recommend looking at the madwifi [3] driver as well, and fortunately it makes this kind of extension very easy. there is also a reverse engineering ath-driver HAL [4] for even more non-standard tweaking of radio parameters if you want to _really_ avoid contention in the usual 2.4Ghz bands by giving a finger to the FCC :P there is even an existing program that uses control frames in 802.11 for covert channel transmissions [5] that may be useful. last but not least, the latest madwifi drivers support virtual devices [6], so you can have a client association, a master mode AP device, and a raw monitor device all sharing the same physical radio hardware, which may eliminate the need for driver tweaks when using Atheros devices. best regards, [p.s. i like the single use RSA keys and content based identifiers for sharing data. you avoid lots of problems with malicious nodes that way, although if you need to use persistent identities for secure routing, an opportunistically shared RSA identity key (for routing/control) could be used while keeping the single use RSA keys (perhaps in a mode like ephemeral diffie hellman, with the transient keys signed by the long lived identity key). 0. Ad-hoc Routing Protocols http://en.wikipedia.org/wiki/List_of_ad-hoc_routing_protocols 1. Self-Organizing Neighborhood Wireless Mesh Networks http://research.microsoft.com/mesh/ 2. MadWifi Rate Control http://madwifi.org/wiki/UserDocs/RateControl 3. MadWifi http://madwifi.org/ 4. Ath-driver devel http://lists.gnumonks.org/pipermail/ath-driver-devel/ 5. Raw Covert http://rfakeap.tuxfamily.org/#Raw_Covert 6. MadWifi NG Features http://madwifi.org/wiki/ngFeatures _______________________________________________ p2p-hackers mailing list [email protected] http://lists.zooko.com/mailman/listinfo/p2p-hackers
