Imagine we have N devices (say, 开发者_JAVA技巧mobile phones) with WiFi somewhere in a big desert (no area WiFi, no routers, no GSM signal, etc). Is it techincally possible to create dynamical network of such devices, so that they automatically discower new nodes and everyone can send messages to everyone (let us take simplest case - no broadcasting of messages, contacting devices should be in direct WiFi visibility to each other)?
Is it any java framework (SE or ME) exists ?
Mesh networks operate this way, but very few mainstream devices support the 802.11s standard.
I've been working with the open80211s implementation of IEEE 802.11s standard for a while now.
Considering N devices that want to interact without routers, it is definitely possible using open80211s. You will need supported hardware which supports the standard such as the WN722 Wireless card by TP-Link.
If you want to use mobile phones to create an 802.11s mesh, then you will need a custom kernel on your smart phone. As of this writing, Android does not support 802.11s style meshes (or any mesh that I know of). If you want to do it on your phone, you will need to root your phone as a starting point and then do a custom kernel install.
Mesh networks are self healing and self organizing. This means that the network will find a way to maintain connectivity even if a few nodes leave the network. Addition of nodes may also lead to better connected paths between various nodes in the mesh.
As the 802.11s mesh network is a multi-hop ad hoc network, nodes which are not in direct range can also communicate with each other using other intermediate nodes. This is possible because in an 802.11s environment, all nodes are effectively routers that help to route packets.
open80211s' homepage has instructions on how to set up a mesh network and the mailing list also has tons of information on most of the issues that you might come across.
Regarding the Java framework, as I mentioned, you need to go a few layers below that. A Java framework will help you once the base layer implementation of the mesh is a part of Android, which is unfortunately not the case as of now.
Just make sure that you don't get desert sand into your devices and everything else should work fine with 802.11s.
http://wireless.kernel.org/en/users/Drivers gives some details on which drivers are supported for mesh. Using this driver, you can find hardware that supports mesh. The new Atheros cards mostly do have support for mesh networking.
PS - There are many more mesh standards and networks, one of the most notable being B.A.T.M.A.N . open80211s is based on the IEEE Standard, but that doesn't affect the functionality and robustness of other variants out there.
精彩评论