How Many Concurrent TCP Connections Does An Average Internet User Consume?
I'm about to buy a router for a location where there are usually 10~20 guests using their laptops/smartphones/tablets for connecting to the Internet.
My router of choice has a cheaper variant that handles 10,000 concurrent sessions while the more expensive one's limit is 30,000.
I can't really interpret what does that in practice mean.
It should be an easy math: required capacity = nr. of users X nr. of connections per user.
Approximately how many concurrent connections does an "average" user consume?
With average I mean: A user that browses the net, watches youtube, reads email and so on. I'm OK with an approximate nr.
Solution 1:
I have been in the same situation providing internet connectivity for multiple satellite offices. And I discovered that this information is not really available on the internet.
So I have done a fair number of measurements to establish a base-line rule-of-thumb for how many connections typical users actually need.
First of all a single "typical user" doesn't exist. Usage varies wildly from one person to the next depending mainly on their web-surfing habits.
The typical Windows computer with a fairly normal selection of standard software (some Google apps, some Adobe products, Microsoft Office) will always have 10-15 connections going just for things like basic checking for updates, telemetry and data-syncing. This can peak briefly to as much as 50-100 connections after boot/login as all of the background applications do their startup checks.
Web-browsers typically will keep 3-5 connections open for each tab/window (even if it is not the active tab/window). This can easily ramp up to 15-20 if the tab runs an online app (Microsoft Office web-apps, Google Docs, SharePoint. etc.).
Additionally while loading/reloading/refreshing any page the browser may briefly go to 10-50 connections extra to fetch various parts of the web-page. Especially advertisement heavy pages can really push this upwards if the user doesn't use an ad-blocker plugin. And be aware that many ad-banners in web-pages load some code to auto-refresh every X seconds, even if the user has this tab made inactive or minimized.
Obviously it makes a lot of difference how many browser-tabs your users typically keep open continuously during the day and how refresh-intensive those pages are.
When you add it all up we concluded the following:
Light users: 30-50 connections on average -> peaks up to 120-250
Heavy users: 60-100 connections on average -> peaks up to 250-500
The good news is that peaks are peaks. Not everyone has them at the same time.
Given that we need to provide for N users on a given router we calculated the required minimum capacity as follows:
60*N (based on low-end of a heavy user) + 500*N/5 (assuming 1 in 5 users is hitting heavy user peak-load at any given time)
Or simplified: 160*N
You can adjust the 160 upwards or downwards as needed if you feel it is not generous enough (or too much).
So in your case the 10.000 connections router should be more than enough.
2 major caveats to mention:
- Many SOHO routers have a Statefull Packet Inspection (SPI) feature. Experience has shown me that they often work a lot better when you switch that off. Even though they sport the feature as an "optimization" to handle high load better, many such routers don't have the RAM and/or CPU capacity to do it right. As a result things actually slow down or the router becomes unstable. Something to bear in mind if your router appears to act up.
- If any of your users is using BitTorrent on a regular basis allocate at least 500 connections for that user alone. If the user gets creative with BitTorrent settings in the BitTorrent client don't be surprised if he manages to consume 2000+ connections all by himself.
BitTorrent can be really nasty in that regard. 1 or 2 torrents running isn't usually such a big deal, but when someone keeps 20-30 torrents seeding simultaneously things go downhill quick.