Monitoring Bandwidth at Home

Firstly and the most basic thing,what is bandwidth and how it is defined?

Bandwidth:

Bandwidth is a very old term that predates the advent of computers and all other digital technologies. It is widely used in analog technologies like radio transmission, acoustics, and many others. In computing, bandwidth is often used to indicate the amount of data that is being, or can be, transferred at a given time. This is often measured in bits per second with common values expressed in thousands (kilobits per second), millions (megabits per second), and in billions (gigabits per second).

1. Technical Defintion


Bandwidth describes the maximum data transfer rate of a network or Internet connection. It measures how much data can be sent over a specific connection in a given amount of time.While bandwidth is used to describe network speeds, it does not measure how fast bits of data move from one location to another. Since data packets travel over electronic or fiber-optic cables, the speed of each bit transferred is negligible. Instead, bandwidth measures how much data can flow through a specific connection at one time.

When visualizing bandwidth, it may help to think of a network connection as a tube and each bit of data as a grain of sand. If you pour a large amount of sand into a skinny tube, it will take a long time for the sand to flow through it. If you pour the same amount of sand through a wide tube, the sand will finish flowing through the tube much faster. Similarly, a download will finish much faster when you have a high-bandwidth connection rather than a low-bandwidth connection.

2. Bandwidth v/s Speed


Many people confuse between bandwidth and internet speed, and most of the time end up using the same terminology for the both of these things. Actually, internet speed and bandwidth are very two distinct things.Speed is simply a description of how fast things can be done.

A very good example when bandwidth would directly correlate to speed is when you are downloading a file across the network or Internet. Greater bandwidth means that more of the file is being transferred at any given time. The file would be therefore be downloaded faster. This is also applicable when you are browsing the Internet as greater bandwidth would result in web pages loading faster and video streaming to be smoother.

But in certain cases, speed and bandwidth do not literally mean the same thing. This is true when you talk about real time applications like online gaming. In these cases, latency or response time is more important than having more bandwidth. Even if you have a lot of bandwidth, you may experience choppy voice transmission or response lag if your latency is too high. Upgrading your bandwidth would probably not help since it would no longer be used. Latency can’t be upgraded easily as it requires that any noise be minimized as well as the amount of time that it takes for packets to move from source to destination and vice versa.

To obtain the best possible speed for your network or Internet connection, it is not enough to have a high bandwidth connection. It is also important that your latency is low, to ensure that the information reaches you quickly enough. This only matters though if you have enough bandwidth as low latencies without enough bandwidth would still result in a very slow connection.

Summary:

1. Bandwidth is a measurement of how much data can be transferred at a time while speed is a measurement of how fast things are done

2. Bandwidth and speed can be synonymous when measuring how fast you can download a file

3. Bandwidth may not directly translate to speed in real time applications

latency.png

3. Monitoring Bandwidth


There are various ways to monitor bandwidth of your internet connection. Some of them have listed below:

3.1 Online Monitoring

There are numerous online internet sites for checking internet speed(but they actually check your bandwidth). One is listed below:

Speedtest.net by Ookla
Here is the link for the site.

Slide1.JPG
Slide2.JPG
Slide3.JPG

3.2 In Windows

If one is using a Windows OS, then there are various softwares which can be downloaded for monitoring bandwidth at home. Some of them have been explained below:
Bandwidth Monitor
Link for downloading this software.

Slid1.JPG
Slid2.JPG
Slid3.JPG
Slid4.JPG
Slid5.JPG

How Bandwidth Monitor works ?

  • Bandwidth Monitor detects network connections on computer it's installed on and monitors bandwidth through the connections
  • Display real-time download and upload speeds, and logs to history
  • You can view bandwidth usages reports by daily, weekly, monthly, and total in the software
  • The software notifies you to avoid going over bandwidth caps.

Links to Other Softwares:

3.3 In Linux


There are various tools in linux for monitoring network bandwidth. Some of them have been explained below:

3.3.1 iftop command

iftop is defined as an application that listens to network traffic on a named interface and displays a table of current bandwidth usage by pairs of hosts. Iftop works like top command do the same thing for CPU.

Installing iftop in ubuntu:
$ sudo apt-get install iftop

Sli1.JPG

Running the iftop command:
$ sudo iftop

Sli2.JPG

$ sudo iftop -i wlan0(for wireless network device wlan0)

Sli3.JPG

And the output is:

Sli4.JPG

$ sudo iftop -i wlan0 -B(for displaying the in Bytes rather than bits) and the output is:

Sli6.JPG

$ sudo iftop -i wlan0 -F (displays the data transmission between two particular IP addresses)

Sli7.JPG

And the output is:

Sli8.JPG

3.3.2 NetHogs

NetHogs is a small 'net top' tool. Instead of breaking the traffic down per protocol or per subnet, like most tools do, it groups bandwidth by process. NetHogs does not rely on a special kernel module to be loaded. If there's suddenly a lot of network traffic, you can fire up NetHogs and immediately see which PID is causing this. This makes it easy to indentify programs that have gone wild and are suddenly taking up your bandwidth.

$ sudo apt-get install nethogs

Sli9.JPG

Running nethogs:

p1.JPG

And the output is:

Sli11.JPG
Sli12.JPG

3.3.3 iperf command

While tools to measure network performance. Iperf was orginally developed by NLANR/DAST as a modern alternative for measuring TCP and UDP bandwidth performance.Iperf is a tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics. Iperf reports bandwidth, delay jitter, datagram loss.

Installing iperf in ubuntu:
$ sudo apt-get install iperf

Features of iperf:

  • TCP

list item
Measure bandwidth
Report MSS/MTU size and observed read sizes.
Support for TCP window size via socket buffers.
Multi-threaded if pthreads or Win32 threads are available. Client and server can have multiple simultaneous connections.

  • UDP

Client can create UDP streams of specified bandwidth.
Measure packet loss
Measure delay jitter
Multicast capable
Multi-threaded if pthreads are available. Client and server can have multiple simultaneous connections. (This doesn't work in Windows.)
Where appropriate, options can be specified with K (kilo-) and M (mega-) suffices. So 128K instead of 131072 bytes.

  • Can run for specified time, rather than a set amount of data to transfer.
  • Picks the best units for the size of data being reported.
  • Server handles multiple connections, rather than quitting after a single test.
  • Print periodic, intermediate bandwidth, jitter, and loss reports at specified intervals.
  • Run the server as a daemon.
  • Run the server as a Windows NT Service
  • Use representative streams to test out how link layer compression affects your achievable bandwidth.

4. Optimising Router Bandwidth


Depending on your router, there are many bandwidth-increasing options. Some of them have been listed below:

4.1 Adjusting MTU size

The most direct way to increase a router’s throughput is to make sure less of its bandwidth is used for overhead. Overhead includes the bits of information attached to every data packet that informs other routers what type of packet it is, where it’s coming from and where it’s going. When sending or receiving a large amount of data, the router breaks the data into packets. The fewer individual packets there are, the less overall bandwidth is wasted on overhead. A more efficient packet is one that uses the Maximum Transmission Unit, or MTU. The MTU tells the router how large a piece of data can be before breaking it into another packet. Modifying the MTU to a larger size only increases your router performance when transferring large files — small transactions are virtually unaffected.

4.2 Disabling the Firewall and Other Services

Routers often include services for security, compatibility or ease of use. Each of these functions consumes resources on the router, a resource which could affect its overall throughput. Many routers, for example, include a stateful packet inspection function, or SPI, for security. This is a function that analyzes every packet transmitted through your router to help protect your network from hacking. If you have a separate firewall, disabling SPI increases the bandwidth available to your router. However, it's not recommended to disable this service without having another security measure in place, such as a Firewall. Microsoft Windows-based machine include a software firewall.

4.3 Channel Bonding

Channel bonding, for example, allows you to make two or more ports act as if they were one, effectively offering double the bandwidth or more. Channel bonding is used by ISPs to offer speeds beyond what a telephone line or single cable channel normally offers. This is also called “link aggregation” by some equipment manufacturers.

4.4 Securing Wireless Frequency

Furthermore, securing your wireless frequency ensures that your wireless bandwidth is shared only with authorized users, and not hogged by neighbors or "snoopers."

5. Explanatory Video

6. Team Members


  • Aditya Jain (Roll no. 2014129)
  • Amogh Vithalkar (Roll no. 2014134)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License