Command and bandwidth estimations in NMDC

As more and more hubs try to reach higher and higher user counts, it is required for hub developers to know how much bandwidth usage they need to be able to cope with, to create a good and substainable hub.

Daniel Muller (also known as Verliba), the author of Verlihub, postulated the following formula for estimating how much bandwidth the hub need to have, given the amount of users one would desire.
It is; (Number of users/20)^2 kbit/s. So, if your desire is to have 1000 users, you will need around 2.5 Mbit/s in upload bandwidth.

Unfortunately, this formula is only restricted to NMDC, as no one has, to my knowledge, profiled the performance of an ADC hub on a long term basis.

Another estimation that is very interesting are statistics that Fredrik Stenberg (you may know him as fusbar) compiled. It was an observation over the amount of times the different commands in the protocol were sent. The stats are based on a NMDC hub that had varying users, ranging from 800 to 2200, over a six day period.

Command Count
Main chat 34,870
$To (private chat) 13,668
$Search (active) 1,326,908
$Search (passive) 48,650
$SR (search result) 567,589
$MyINFO (information) 95,105
$NickList (information) 93,429
$ConnectToMe (download, active) 6,013,652
$RevConnectToMe (download, passive) 173,232

The only major difference one would see with this list and a ADC hub is that we wouldn’t have “$NickList”.

The conclusions that can be drawn from above table is that searching and downloading are the major players in hub and network performance.

(Sorry for the lack of alignment in the table.)

Don’t forget that you can make topic suggestions for blog posts in our “Blog Topic Suggestion Box!”

Leave a comment