Bandwidth Consumption: Difference between revisions

From Bay Area Mesh
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 2: Line 2:
   
 
== AREDN ==
 
== AREDN ==
'''0.25 Kbps per node'''
+
'''250 bps per node (32 bytes per second per node)'''
   
 
AREDN itself consumes bandwidth in order to maintain the network. This is a fairly chatty protocol which, essentially, involves ever node in the network broadcasting some information about itself across the entire network every so often. It's not much data, but it does add up.
 
AREDN itself consumes bandwidth in order to maintain the network. This is a fairly chatty protocol which, essentially, involves ever node in the network broadcasting some information about itself across the entire network every so often. It's not much data, but it does add up.
   
 
Because every node will see this housekeeping data from every other nodes, it's easy to work out how much link bandwidth it will consumed simply by measuring the data across a given link for a given time for a given network size. and then doing some simple math.
 
Because every node will see this housekeeping data from every other nodes, it's easy to work out how much link bandwidth it will consumed simply by measuring the data across a given link for a given time for a given network size. and then doing some simple math.
  +
  +
== Chat ==
  +
'''1 Kbps per connected user'''
  +
  +
Chat is a very economic way to transfer data. The popular self-hosted chat app [https://mattermost.com Mattermost] estimates the average cost of a user to be 1 Kbps.
   
 
== Cameras ==
 
== Cameras ==
  +
...
 
  +
=== Photos ===
  +
'''4 MB per 4K photo'''
  +
  +
Photo sizes vary greatly due to resolution and compression. However, 4K photos are generally considered necessary if the picture is to be used for anything other than looking pretty.
  +
  +
=== Videos ===
  +
'''600 Kbps per 720p/10fps stream'''
  +
  +
Streaming video from a camera requires a lot of bandwidth, and if this video is being stored on a remote node, this bandwidth requirement can be constant. The bandwidth cost varies greatly on size, frame rate, and compression (see [https://www.cctvcalculator.net/en/calculations/bandwidth-calculator/ this handy calculator]) but a good starting point is H.264 encoded 720p at 10fps.
   
 
== VoIP ==
 
== VoIP ==
Line 16: Line 30:
 
Voice over IP calls, using Asterix or similar, are a popular use case for the mesh. They use relatively little bandwidth, but are more sensitive to latency issues. There are many calculators which can help you determine your exact bandwidth requirement (e.g. [https://www.asteriskguru.com/tools/bandwidth_calculator.php here]) depending on codec selection and number of simultaneous calls you need to support.
 
Voice over IP calls, using Asterix or similar, are a popular use case for the mesh. They use relatively little bandwidth, but are more sensitive to latency issues. There are many calculators which can help you determine your exact bandwidth requirement (e.g. [https://www.asteriskguru.com/tools/bandwidth_calculator.php here]) depending on codec selection and number of simultaneous calls you need to support.
   
== Chat ==
+
== Video Calls ==
  +
'''500 Kbps per caller'''
...
 
  +
  +
Video calls consume about 10x as much bandwidth as voice only calls. As with VoIP they're sensitive to latency issues. Technologies like [https://webrtc.org WebRTC] allow calls to be made peer-to-peer which avoids the need for high bandwidth, centralized servers. Better resolution requires more bandwidth.

Latest revision as of 06:53, 15 August 2023

AREDN does not the Internet and doesn't pretend to offer Internet speeds. No one is watching Netflix over AREDN; that's not what its for. But it is useful to get some idea of the resouces different applications will consume.

AREDN

250 bps per node (32 bytes per second per node)

AREDN itself consumes bandwidth in order to maintain the network. This is a fairly chatty protocol which, essentially, involves ever node in the network broadcasting some information about itself across the entire network every so often. It's not much data, but it does add up.

Because every node will see this housekeeping data from every other nodes, it's easy to work out how much link bandwidth it will consumed simply by measuring the data across a given link for a given time for a given network size. and then doing some simple math.

Chat

1 Kbps per connected user

Chat is a very economic way to transfer data. The popular self-hosted chat app Mattermost estimates the average cost of a user to be 1 Kbps.

Cameras

Photos

4 MB per 4K photo

Photo sizes vary greatly due to resolution and compression. However, 4K photos are generally considered necessary if the picture is to be used for anything other than looking pretty.

Videos

600 Kbps per 720p/10fps stream

Streaming video from a camera requires a lot of bandwidth, and if this video is being stored on a remote node, this bandwidth requirement can be constant. The bandwidth cost varies greatly on size, frame rate, and compression (see this handy calculator) but a good starting point is H.264 encoded 720p at 10fps.

VoIP

57 Kbps per call

Voice over IP calls, using Asterix or similar, are a popular use case for the mesh. They use relatively little bandwidth, but are more sensitive to latency issues. There are many calculators which can help you determine your exact bandwidth requirement (e.g. here) depending on codec selection and number of simultaneous calls you need to support.

Video Calls

500 Kbps per caller

Video calls consume about 10x as much bandwidth as voice only calls. As with VoIP they're sensitive to latency issues. Technologies like WebRTC allow calls to be made peer-to-peer which avoids the need for high bandwidth, centralized servers. Better resolution requires more bandwidth.