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?