Romain one of our team has been working hard to get the Rhizome Retriever together as part of our work in supporting citizen journalism in a community in Nigeria, that I have blogged about previously.
They are already using our software in that community to make free mesh telephone calls, but from the outset the plan has been to enable them to be citizen journalists, and to share news and information in their community.
To enable this, we are making our Rhizome Retriever (Serval RR), which basically lets you pick files on your phone, and put them up on the mesh, from where they will be automatically distributed to other phones on the mesh.
Mass file distribution on a mesh is usually fraught with difficulties, not the least of which is that the available bandwidth on a mesh halves (or worse) for each extra hop that you try to traverse.
So you can often get decent bandwidth to nearby nodes, but poor or intermittent connection to more distant nodes.
Also, the more people trying to transfer things many hops across the network reduces the available bandwidth for everyone.
So we decided to make the Serval RR only ever send data one hop to the nearest neighbours. They can then in turn send data to their neighbours later on at their convenience.
As a result, Serval RR can already distribute even relatively large files, certainly into the several mega-byte range, without great difficulty, and without making the network unusable for everyone else.
Here is a quick demo of the initial prototype of the Serval RR software in action:
Showing posts with label scalability. Show all posts
Showing posts with label scalability. Show all posts
Tuesday, October 25, 2011
Wednesday, October 12, 2011
Kicking The Infrastructure Habit
Last weekend I delivered the inaugural Jim Bettison Memorial Oration at the biannual Adelaide Festival of Ideas. This was a great honour, and my presentation was well received by the audience, as was evidenced by the poignancy of their questions.
Here is the abstract of my oration:
Here is the abstract of my oration:
Modern communications systems use extensive and expensive infrastructure to deliver services we could only dream of a few decades ago. This works for those who enjoy peace and sufficient wealth, but fails to reach the last billion people in poorer countries, as well as those in remote, emergency or disaster situations. Now modern mobile phones have the potential to communicate directly, to form networks without reliance on any infrastructure. The Serval Project based at Flinders University is turning this dream into a reality. It is working to make communications available to everyone, anywhere, any time especially to those who need it most.
You can listen to the oration by downloading the MP3 from the Radio Adelaide website.
You can also listen to an ABC Bush Telegraph interview about the oration that I recorded a few days prior to the oration.
Sunday, August 28, 2011
Making Mesh Networks Scale
Mesh networks have great potential to create sustainable, resilient and low-cost communications capabilities. This is why we are passionate about mesh networking at Serval Project.
However, the mesh routing protocols that I have seen to date almost all have a scalability ceiling. This is because if you have 10 devices all talking to each other you get 100 messages, but if you have 1,000 devices all talking to each other you get 1,000,000 messages in the same time. In computer science we would say that a mesh network has a complexity of O(N^2), because the mesh traffic scales with the square of the number of devices.
Eventually, not matter how fast the links on the mesh, the capacity gets used up.
Even on a "quiet" mesh where most of the devices aren't saying much, they still have to share O(N^2) information, and so the mesh just existing eventually causes it to collapse under its own weight.
What would be nice is a more graceful degradation, so that even in a mesh of say, 7 billion devices, that each local pool of devices could talk to one another, even though it would be impossible to allow all 7 billion to talk to each other.
It might seem pointless to allow a device to see only a few thousand nearby devices, as that represents only about 0.00001% of the devices on such a global mesh.
However, for telephony at least, it turns out that most phone calls are at most a few kilo-metres away, and thus would be possible over such a "local patch" on the global mesh.
So this is something that Serval is planning to do over the next few months.
We are going to take the BATMAN mesh routing protocol and modify it so that it can keep track of "near by" devices on the mesh without being swamped by location information from devices on the other side of the world (which from my perspective is probably you, because I live in Australia, which is on the other side of the world from most other places ;).
However, the mesh routing protocols that I have seen to date almost all have a scalability ceiling. This is because if you have 10 devices all talking to each other you get 100 messages, but if you have 1,000 devices all talking to each other you get 1,000,000 messages in the same time. In computer science we would say that a mesh network has a complexity of O(N^2), because the mesh traffic scales with the square of the number of devices.
Eventually, not matter how fast the links on the mesh, the capacity gets used up.
Even on a "quiet" mesh where most of the devices aren't saying much, they still have to share O(N^2) information, and so the mesh just existing eventually causes it to collapse under its own weight.
What would be nice is a more graceful degradation, so that even in a mesh of say, 7 billion devices, that each local pool of devices could talk to one another, even though it would be impossible to allow all 7 billion to talk to each other.
It might seem pointless to allow a device to see only a few thousand nearby devices, as that represents only about 0.00001% of the devices on such a global mesh.
However, for telephony at least, it turns out that most phone calls are at most a few kilo-metres away, and thus would be possible over such a "local patch" on the global mesh.
So this is something that Serval is planning to do over the next few months.
We are going to take the BATMAN mesh routing protocol and modify it so that it can keep track of "near by" devices on the mesh without being swamped by location information from devices on the other side of the world (which from my perspective is probably you, because I live in Australia, which is on the other side of the world from most other places ;).
Subscribe to:
Posts (Atom)