Network bandwidth estimation
How to calculate the network load of your data collection
Here is the method for calculating the amount of data expected to travel over your internet connection each second.
Packet size in bytes
This is the protocol overhead (AMQP, TLS, TCP) plus the variable content size
222 + 10 * number_of_tags
Packets per second
This can be calculated as an average or estimated peak. Peak values should be used as a guide only since there are many factors that would cause a peak to smooth out over a few seconds.
SUM(number_of_sources * polls per second)
For example:
10 sources at 1s = 10 packets/s
100 source at 60s = 1.7 packets/s (100/s peak)
Total bandwidth
You will need to calculate the bandwidth for each record/rate combination. Generally, bandwidth is measured in bits per seconds (not bytes), so multiply bytes by 8 to get bits.
Let's go through a worked example. We have
1 Meter: 10 tags per second
10 Inverters: 20 tags per second
1 weather station: 15 tags per minute
Meter
Packet size: 222 + 10 * 10 = 322
1 meter @ 1/s = 1 packets/s
bandwidth: (322 * 8)bits * 1 packet/s = 2576bps / 1024 = 2.52Kbps
Inverters
Packet size: 222 + 10 * 20 = 422
10 inverters @ 1/s = 10 packets/s
bandwidth: (422 * 8)bits * 10 packet/s / 1024 = 32.97Kbps
Weather station
Packet size: 222 + 10 * 15 = 372
1 station @ 1/m = 0.0167 packets/s
bandwidth: (372 * 8)bits * 0.0167 packet/s = 49.6bps
Total
Baseline: 2.52 + 32.97 + 0.05 = 35.54Kbps
We generally recommend adding 15% for TCP overhead (ACK, retransmission) and a safety margin of 30%, giving an overall estimate of:
35.54 * 1.15 * 1.3 = 53.13Kbps
Data capture
Generally speaking, all data capture happens on the local network where the Ardexa node resides. We have found that for most protocols, you can expect somewhere between half (modbus), similar (OPCUA) or double (certain databases) the outgoing data rate to be used on the local network.
Last updated
Was this helpful?