servalproject / serval-dna

The Serval Project's core daemon that implements Distributed Numbering Architecture (DNA), MDP, VoMP, Rhizome, MeshMS, etc.
http://servalproject.org
Other
170 stars 81 forks source link

Rhizome transmission slow #143

Open adur1990 opened 5 years ago

adur1990 commented 5 years ago

Hi,

we have currently a project, where we simulate up to 30 nodes using the CORE emulator. Between these nodes a file is sent periodically. For some reason, the speed does not reach 1 Mbit/s, although the link speed between to nodes is not limited.

Even if there are only two nodes sending the same file to each other using Rhizome, it does not get any faster. Do you have any clue what could be wrong?

adur1990 commented 5 years ago

So, using batphone-release-0.93 fixes all our issues...

lakeman commented 5 years ago

0.93 uses tcp connections to transfer content. Which will make better use of available bandwidth... while filling network buffers. This impacts our ability to provide any realtime services like multi-hop packet routing for voice calls. Particularly noticeable when new users join a network with lots of rhizome content, which is most likely when they want to try using those services. Also, rhizome content will only be copied across IP network links.

So we decided to swap to using our own packet routing for rhizome content, even though we haven't implemented any kind of available bandwidth detection and only have a fairly conservative flow control implementation.

This isn't ideal, but it's what we have right now.