Applications to Deploy

List of applications that can be deployed on meshlocals

Tested

Chat / Messaging / Calls

  1. Serval Mesh – File sharing, free phone calls & messaging Android Application
    5 to 6 Android phones were used for testing, though the application has some bugs, it works.
  2. Pidgin (Bonjour Protocol) – Chat from Computers (Auto discovery – Zeroconf) [Not Working outside single broadcast domain]
    Works at MAC Layer, doesn’t need IP address to work (doubtful regarding this, doesn’t forward message on subnets). Couldn’t send files through this protocol.

Social Networking

  1. Rumble

File Distribution

  1. Torrent Tracker
    Opentracker is a free software implementation of bittorrent tracker which can be compiled and installed on OpenWRT devices. Our custom image includes opentracker by default which means all mesh nodes can act as a tracker. On 14 April, 2016 myself (Prasanna) and Suriya tried to transfer files through the following setup. Two mesh routers on range, two laptop and two smartphones each connected to one of the two access points from mesh routers. Transmission torrent client is used on both ends and the clients are able to find peers through the tracker and the file sharing was successful. Torrent trackers can very well be deployed in our network.

HTTP server for hosting webpages and wiki

  1. HTTP Server with IPV6
    Even when 2 non-mesh nodes connected to the network via two different mesh nodes with same IPV4 addresses, HTTP server works with their unique IPV6 addresses. Based on this, I speculate that similar application layer protocols like FTP should work with IPV6. It should be noted that IPV6 address is assigned to each non-mesh node using its MAC as seed, hence IP conflict in IPV6 is unlikely to occur.

Networking Services

  1. DHCP
    Mesh routers already provide dhcp services. We need to decide on IPv4 vs IPv6 addressing scheme and also static IP allocation for routers along the network.

To be Tested

  1. Retroshare
  2. Briar

Social Networking

  1. Twister

Network Services

  1. KadNode – P2P DNS
    We had a discussion on this, I think in order to make use of it, all devices (non-mesh) should be running Kadnode daemon as a background service and end-users should have a knowledge on how to use it.

Knowledge Sharing

  1. Local Wikipedia : Kiwix
  2. Serve ebooks under CC
  3. Wikisource and books under it
 

We can also add source code repo service with GitLab.

Advantages:
We can host the repo for the software we develop in meshnet itself.
We can persuade people, engineers to use meshnet and source control discipline.

Caveats:
Hosting gitlab in single machine?
If not, we need a way to manage distributed identities for the users and repositories.
We need to write wrapper scripts, so that the users can also push their repo to gitlab repo hosted by the GitLab in the internet.

 
 

Common problems when it comes to deploying applications on a layer 2 based mesh network,
1. Most of the existing applications like Torrent, Web-servers, etc., are written to work on layer 3 (following IP addresses).
2. Very few applications operate on Layer 2 and non-mesh nodes cannot make use of this applications, since they operate on layer 3.
3. There are issues to be dealt with IP addressing schemes.

 
 

As we had seen that the ipv6 addressing can get us farther than ipv4. The link local address construction depends upon the Mac address of the node so we need to tryout what happens when nodes with same Mac address comes into picture.

 
 

Devices with same MAC address? Isn’t this an hypothetical scenario, given all MAC addresses are unique and generally people don’t mess with their MAC address?

 
 

MAC addresess are not unique. They are believed to be unique. it is 6 bytes in length. First3 bytes are used for organization identification, like Realtek, Gigabit, Cisco. The last 3 bytes are used for device identification. So for example, Gigabit OUI is 00:0F:A1 and all the cards manufactured by Gigabit will have address ranging from 00:0F:A1:00:00:00 to 00:0F:A1:FF:FF:FF. it approximately 17millions cards, which is in my opinion, is a small number. But this not why we need to test the above scenario.

But a used can change the MAC address, he uses. A malicious user can intentionally do that. That is why we need to test the above scenario

 
   

The IP generation from MAC is still a stochastic process.