What is the motivation behind this project?
Introduction
The COVID-19 pandemic has moved us into a new stage in the technological revolution due to the increased development/deployment of new technologies and their widespread adoption. However, the backbone of all these technological advances is the internet. This term is defined as an electronic communications network that connects computer networks and organizational computer facilities around the world. Below are two graphs that illustrate internet usage patterns in Canada.
Canadians Online in 2020
There was a drastic increase in internet usage between 2018 to 2020 as it became the virtual “Times Square”. The lockdowns forced many businesses, services, and individuals online as this was one of the only viable methods to communicate, learn, work, shop, and watch/stream content.
Number of Internet Users in Canada
There was a consistent increase of about a million new internet users between 2018 and 2022. Although the amount of new internet users is projected to increase at a slower rate, there is an increase in the use of the number of bandwidth-intensive internet-based applications i.e. Microsoft Teams and Zoom.
Brief Overview
As seen in the graphs above, the number of internet users and internet-based applications/services have increased greatly within the last five years, mainly due to the COVID-19 pandemic. This situation has fundamentally changed the way organizations and consumers operate. The technology revolution was expected to take several years if not a decade, under normal circumstances.
The benefits of these new technologies are numerous; however, the challenge is that Internet Service Providers (ISPs) must find new ways to accommodate the increasing number of internet users while at the very least, maintaining the same quality of service.
The two main performance metrics of a network system are bandwidth and responsivity. Internet Service Providers (ISPs) have continued to increase bandwidth in each generation of wireless network technology, Wi-Fi 4, 5, 6, and 6E, however, these networks are still heavily impacted by latency, especially during peak usage periods. There has not been as big of a leap made in reducing latency (a metric for measuring a network's responsivity), and its effects are becoming more obvious to the average internet user.
Similarily, this trend is also prevalent in broadband cellular networks. The primary focus of 1, 2, 3, and 4G was increasing network bandwidth, in hopes of bettering the mobile internet experience. To a large degree this holds true but these networks are still susceptible to latency, just like a traditional Wi-Fi network.
5G, the fifth generation mobile network, is a new global wireless standard that not only offers a significantly more bandwidth that previous mobile networks, but it also far supersedes the preformance of all Wi-Fi networks, while experiencing less latency. Even with this great advancement, 5G's performance can be quite inconsistent, especially in higher frequency bands and increased load. In short, 5G is also prone to latency, just like the other cellular networks.
Through our research and experiments, we have attributed the reduced responsivity in a network, especially during peak usage periods, to Bufferbloat. This phenomenon is caused by a software issue in networking equipment i.e., a router, leading to backlogged packets. The result of poor queuing creates a spike in latency, leading to a poor internet user experience.
This issue of latency would need to be resolved as 5G is slated to take over traditional Wi-Fi. It will also move us closer to an Internet of Things (IoT) future and enable the use of pivotal real-time applications like telesurgery, augmented and virtual reality for rehab. It would also help advance the development of fully autonomous vehicles. Any sort of uncontrolled latency could negatively affect the individuals and processes that would use this network and can result in serious injury or fatalities.
Project Scope
Open Systems Intercommunication (OSI) is a type of model that shows how computer systems communicate over a network. The seven different layers are Physical, Data Link, Network, Transport, Session, Presentation and Application. These layers are comprised of applications, operating systems (OS), network card device drivers, networking hardware and protocols which work with each other to transmit a signal over broadband i.e., fibre optics or Wi-Fi. The regions in the OSI model which relate to Bufferbloat are Level 2: Data Link, Level 3: Network, and Level 4: Transport Layer which would be described in detail below.
Data Link Layer
Responsible for handling data moving in and out of the physical link in a network. Unlike the network layer, this data transfer occurs between devices on the same network.
Maintains a pace of data flow so that the sending and receiving devices aren’t overwhelmed. Packets from the network layer are broken into smaller pieces called frames.
There are two sublayers under this layer.
Logical Link Control (LLC): This sublayer oversees multiplexing, a process where multiple signals are combined into one, flow control and error control, as the upper layers are notified if there are issues in the sending/receiving of data.
Media Access Control (MAC): This sublayer tracks frames by using the MAC address (physical address) assigned to the sender/receiver hardware. Timing in this layer is achieved by organizing each frame and marking the start and stop bits. This information can be used to determine when each frame should be sent.
Network Layer
Responsible for transferring data into and through other networks through routing and logical addressing. This layer is not beneficial for communication within the same network.
Logical Addressing: The header of both the sender and receiver is assigned an internet protocol (IP) address i.e. IPv4, IPv6 so that the segment can be transmitted on various networks. Each one of these values is unique to each device.
Routing: The process of data travelling from the sender to the receiver.
First, the segment from the transport layer is broken into smaller units (known as a packet).
Then the network layer finds the best physical path for the segment to travel.
The packets are re-assembled after reaching the sender’s device.
Transport Layer
Responsible for transferring data across a network by breaking/reassembling segments (chunks of data) flow, and error control.
Breaking/Reassembling Segments: Takes messages from the session layer and breaks them up into segments, chunks of data in the transport layer. The segments are reassembled at the receiver side.
Flow Control: Controls the flow of segments to help avoid the receiver from being overwhelmed and enhance the efficiency of this process. The two types of protocols used are:
Transmission Control Protocol (TCP): Connection-oriented protocol, slower, better for long distances, more reliable
User Diagram Protocol (UDP): Connectionless based protocol, faster, preferred for short distances, not reliable
Error Control: A service point/port address is added to the data’s header file so that the segment can be sent to the right device. If the segments are not received, a retransmission is requested.
Our Inital Approach
Our initial method in combatting Bufferbloat was to implement Smart Queue Management (SQM) on a Raspberry Pi 4 with Common Applications Kept Enhanced (CAKE), a Linux based progam that allows users to configure SQM on their network.
SQM is a network system that optimizes packet/flow scheduling, manages queue length, controls traffic, and QoS (prioritizes traffic). By modifying how the network is queued (essentially limiting the amount of time a packet waits in a queue) and limiting the bandwidth, and the amount of data transmitted over the network in a given amount of time, the responisvity of the network can be increased.
Our Current Approach
Our improved method in combatting Bufferbloat is by using a Distribution Point Unit (DPU) in our test network. This device allows one to leverage fiber signals over non-fiber networks. We wrote our SQM script on OpenWRT, a customizable Linux-based operating system used on embedded devices to route network. Introducing a device with these capabilities on our network ensures that there is a consistent stream of low-latency data flowing through the network.