So I was thinking about what if we could make a network that the only thing you needed to connect to it is to directly connect ( through wires or directed wireless antennas ) to at least 1 computer that takes part in it, with no centralized node of any kind.
For that we would need a whole new protocol and address system.
THIS IS JUST A THING IN MY MIND TO TALK ABOUT. I AM NOT ADVANCED IN THIS DOMAIN.
At first I thought at making groups of 256 nodes so that every node inside of that group knows every other node. A node will know nodes's group address that until now are just 2 hexadecimal digits like "D8" and the location address. A location address means what path to take to connect to any node, a location address for 98 would be "connect to 63, ask 63 to redirect message to A9, ask A9 to redirect message to CF, ask CF to redirect message to 98".
Messages between a groups nodes would be all encrypted and all steps of the location address would be encrypted for each node in part.
Now every node in a group can send encrypted messages to anyone else in that group.
Now lets say that another node wants to connect to that network, but the group is already 256 nodes: That node will create another group. The first node of a group picks a random 2 digit hexadecimal address for that group. A node knows at least 1 computer's location address from every group. Untill now addresses are like "D8.01" D8 is a computer's address in a group and 01 is that group's address.
256 groups will create a kilogroup, each node knows at least 1 computer's location address from every kilogroup. Untill now addresses are like "D8.01.8F" , 8F being the kilogroup's address.
This thing can scale ever more, creating megagroups, gigagroups etc...
If I wanna connect to D8.01.8F then I first connect to a node that I know is in the 8F kilogroup, that node will connect to a node it knows in the 01 group, and that node knows D8 directly so it will connect to him and give him message, this kinda works like a DHT, wich me sending the message to the closer node I know to the destination node
Now this is very very far from perfect or usable, what happens if 2 networks grow independent and when they connect they have the same addresses? What if someone wants to sabotage this with a fake node? The location is also not very private.
Can this get better or even usable? Do you have any ideas or just want to discuss this?
A while back you could flash a linksys router with firmware that would participate in a mesh network like you’re talking about. It didn’t take off because of distance limitations.
Take a look at FRIEFUNK, a cooperative mesh WiFi network covering a number of cities in Germany. They primarily use firewalls running OpenWRT with the mesh handled by the amazing BATMAN project, which presents a standard network interface for IP traffic to run over. I'd love to live in a city where this kind of thing is possible.
That description looks a lot like Ethernet in the early days, down to the network hubs and even the beginnings of routing. It worked great when there were dozens or hundreds of computers, anfpd you mostly connected to others in the same lab
But how do you scale it up to todays global network with billions of devices? First you’ll need separate routers instead of some devices getting bogged down repeating stuff. Then you’ll want faster links connecting far away points, or reducing the vast number of repeaters. You’ll want better ways to provide all sorts of services to many people. Maybe you’ll realize that an address space that in theory can reach 2 billion devices is just not enough. Maybe you’ll need to add ways for time sensitive operation ps to be on time, or ways for huge operations to still allow others. Eventually, you might get to todays internet
A subnet defines a group. A group knows how to talk to eachother.
A node is nominated to be able to talk to other groups (the gateway). If that node doesnt know how to reach a destination, it sends it to its super-groups gateway.
At some level of scale a gateway-node might have multiple upstream gateway paths, where if a destination is part of group a it sends it to the gateway it knows can handle group a. Which is essentially a very simple BGP.
Its just that instead of dedicated hardware doing the routing, you have everyones computer doing it