3 ms·
My first question would be if the messages can be sent P2P or if they have to be passed through / stored on servers. If they can be sent and stored on the user
by mg 3y ago
My first question would be if the messages can be sent P2P or if they have to be passed through / stored on servers.
If they can be sent and stored on the users devices, the server would only be a discovery service processing the occasional "Hey, I have a new IP" and "Hey, I want to send a message to X, please give me their current IP" messages.
If the messages would have to be processed by servers, the system could be set up similar to email servers, where each server can handle - say - 10 million users and be completely independent of the other servers. So scaling would just mean adding a new "email" server for every new 10 million users.
If 50B messages amount to - say - 500 million users, that would mean operating 50 servers.
- bakugo 3y ago> If they can be sent and stored on the users devices, the server would only be a discovery service processing the occasional "Hey, I have a new IP" and "Hey, I want to send a message to X, please give me their current IP" messages. You can't just send messages directly to end user devices' IPs unless there's no firewall or NAT in front of them. Good luck forwarding a port on a mobile device.
- tamimio 3y ago> You can't just send messages directly to end user devices' IPs unless there's no firewall or NAT in front of them. Yes you can, through hole punching, I used that technique in several platforms I built to establish a low latency p2p sockets for telem/msgs/and even C2 links for some drones/ugv. https://en.m.wikipedia.org/wiki/UDP_hole_punching https://en.m.wikipedia.org/wiki/UDP_hole_punching