Bandwidth management is a means of allocating bandwidth resources to critical applications on a network. Without bandwidth management, an application or a user can take control of all available bandwidth and prevent other applications or users from using the network.
In BMC Client Management two operations are necessary to calculated how much bandwidth should be used for download by a single client:
- To measure the currently available bandwidth, some TCP/IP packets are sent to the bandwidth management port (which by default is 1609) at the rate defined via the Bandwidth Check Frequency (sec) parameter, by default every 60 seconds, for the period time defined by the Bandwidth Check Duration parameter, which is defined in milli-seconds, by default 200 ms. The data is sent once per Bandwidth Check Frequency (sec) unit for Bandwidth Check Duration (ms) interval. The currently available bandwidth is then calculated by dividing the amount of data sent by the duration.
- For clients to adapt to the total number of downloads being currently performed, the clients request of their relay the number of download threads currently running. They do so by calling a specific action on their relay at the interval specified by the Client Check Frequency parameter, the default interval is every 10 seconds.
Therefore, the total amount of data sent for one package on port 1609 depends on:
- Bandwidth Check Duration (ms)
- Package Size
- Bandwidth Check Frequency (sec)
- % Transfer Window
If the parent relay does not reply, for example, due to network issues, there are two possible options:
- If previous measurements succeeded, this data will be used for calculation
- If no measurement ever succeeded the transfer will be blocked until it works again.
If the Client Check Frequency (sec) parameter is set to 0, that is, the checking is disabled, each client will consider that it is alone on the network. Be aware that using this value will not work with the global bandwidth percentage unit (% available) for the transfer window. In this case, if, for example, 10% are specified for available bandwidth the 1st client will take 10%, the 2nd client will also take 10%, and the third client, and so on. In the end this will end up with much more than 10% bandwidth used on a single network link.
This example details the calculation for the following data:
- Bandwidth Check Duration (ms) = 200 ms
- Bandwidth = 256 Kbps
- Package Size = 1MB
- Bandwidth Check Frequency (sec) = 60 s
- % Transfer Window = 30%
For the data provided before a raw estimation would be:
256 * 1024 * 30% = 78643 bps
Theoretical time to download
1024*1024*8 / 78643 = 106 s
Number of measurements
1 at download startup + 1 after 60 s = 2
Amount of data transferred on 1609
2 * 256 * 0.2 /8 = 12.8 KB
This calculation is obviously rather theoretical, as parameters such as the correlation between the bandwidth and the number of connected clients can have an influence on this calculation.