Microsoft Research and Mesh Networking
I have been following the work that Microsoft is doing in their Windows Peer To Peer Networking. This is actually some very impressive technology that allows for a distributed set of users to create peer-to-peer groups for exchanging data and information. I'm working on some applications (actually plug-ins for GoBinder) that are going to exploit this technology. Microsoft has put together a Peer To Peer SDK allowing you to perform name-to-IP name resolution (PNRP - a serverless DNS technology), along with graphing and grouping APIs for the transfer of data between the peers. It's all very impressive stuff ... and is in all Windows XP SP2 machines ... and will be in all Vista machines. The bottom line ... this is going to drastically alter how ad-hoc groups of users on Windows machines will be able to locate each other, communicate, and collaborate.
Today, I found yet another amazing technology out of Microsoft Research. For years I have been tracking the "wireless mesh networking" space. This is where each node in a wireless network is a repeater/relay for any other node that is within range. With true mesh technologies I can communicate with other users, even if they are beyond the reach of my wireless signal, if there are one or more nodes between us that are part of the "mesh" network. Mesh networks are the next big thing ... even the cellular carriers are talking about adding emergency mesh capabilities into cell phones.
What I found today is that Microsoft Research has code available today that will allow you to experiment with some pretty advanced mesh networking using your Windows XP machine! The Microsoft Research Networking Research Group has released their Mesh Networking software, and even an Mesh Networking Academic Resource Toolkit. I've started to go through the documentation, and so far this is a very impressive solution. They have embraced and extended some of the standards that are currently being developed:
I am really impressed to see this work this far along. I have been waiting for years to see mesh networking hit the masses ... and this is now getting close. I'm now going to upgrade some of my wearable computers to Windows XP just to experiment with this!
We implement ad-hoc routing and link quality measurement in a module that we call the Mesh Connectivity Layer (MCL). Architecturally, MCL is a loadable Microsoft Windows driver. It implements a virtual network adapter, so that to the rest of the system the ad-hoc network appears as an additional (virtual) network link. MCL routes using a modified version of DSR (an IETF protocol) that we call Link Quality Source Routing (LQSR). We have modified DSR extensively to improve its behavior, most significantly to support link quality metrics.
The MCL driver implements an interposition layer between layer 2 (the link layer) and layer 3 (the network layer). To higher layer software, MCL appears to be just another Ethernet link, albeit a virtual link. To lower layer software, MCL appears to be just another protocol running over the physical link.