# ohanyan_varinka — Project Software simulation of a mesh network. Devices within the same network can talk to. each other and forward messages. More like a distributed system that behaves like a mesh, not a physical mesh network. So i'm short in time, even shorter in c virtue, that's why i will chop every possible choppable thing off the actual good mesh network. (Do not tell Prof. Satenik Mnatsakanyan). Actually, the best language to write networks in is Erlang or Elixir, because of their specific regeneration feature. But we will use C this time. So a good mesh network doesnt get a broadcast storm from crazy message sending. It doesnt abuse the bandwidth /the rate of data transmit in some network path/, and puet etre it finds the short and sweet path to the recipient using some reliable map or some reliable ad-hoc jumping, or else. And as few as possible messages get lost when some nodes get bombed and die. There are many many algorithms for making the wartime communication more resilient and reliable, and a serious capitaine would be "hair of a nose" about it. But i'm a pacefist. Hence my mesh is not designed for war. there are two main ways to relay messages in mesh. Flooding - Just send to everyone and pray to god it will reach Bob. Routing - Keep a map of the nodes telling who's whose neighbour to find the shortest path to Bob. /hoping that the guy handing your letter to bob doesnt randomly die/ We, of course, will implement the dumber, easier way to relay messages - flooding. Flooding has its obvious disadvantages - it's too much noisy. But in routing you have "too much" of design aftermath. You basically choose your "too much". ------------------------------- Implementation brainstorming ------------------------------- We might want to divide this into parts. What comes to mind is to start from one receiving node, then grdually develop more. What should our receiving node do? Open a UDP socket /such that it's more mesh-esque. tcp would make forwarding unneccessarily complex/ bind to a port and wait for a signal packets /netcatted by the tester aka me/