irungentoo / toxcore

The future of online communications.
https://tox.chat/
GNU General Public License v3.0
8.74k stars 1.27k forks source link

Toxcore creates too many connections #1560

Open LittleVulpix opened 8 years ago

LittleVulpix commented 8 years ago

This used to be an issue but I believe it was fixed in the Dec/Jan commits to DHT. However, for some reason, the issue is back. I hadn't noticed when exactly this started but it's been happening for a while apparently.

See below a sample. x-axis is "seconds since start of tox", y is "connections". This is with contactlist with 40 people out of which ~8 are online at most times.

Toxcore Connections

I understand that UDP is a connection-less protocol and doesn't actually create connections - but for the purposes of natting, every router must store the nat in its memory for some time (usually 2 minutes for most of these). Before they time out, they take up processing power and resources and can cause problems on smaller/older devices.

This is on the latest toxcore with UDP+ipv4 enabled. ipv6 is disabled.

EDIT:

Data gathered from my OpenWRT router:

watch -n1 "grep 3344[5-9] /proc/net/*conntrack|wc -l >> /path/to/some/file"

Then I put the output into openoffice's calc to create a line chart.

fcore117 commented 8 years ago

With this i agree, there should be some hard limit to avoid such bombardment, now imagine one shared family router with over 5+ users... or users with mifi device(shared mobile internet), late years it has become quite common where cable is impossible to get.

GrayHatter commented 8 years ago

imagine multi device + multi profile + multi user.

Single nat is a home of 4 geeks, each with 4 devices. you could easily have 20 tox instances behind the same nat

v6 commented 8 years ago

// , An acquaintance or two of mine have crappy router and modem combinations. They end up not realizing that they're "renting" from a certain less-than-ethical cable and would-be entertainment company. These routers, used with Tox, will prevent opening normal web connections, and pretty much fail when Tox attempts its connection to the Tox DHT.