top of page
Search
Writer's pictureSrikanth Chandar

Navigating Towards Better Network Connectivity Areas using ML

Updated: Jul 1, 2021

How often have we realized that the network near the lift is poor compared to near the window? This project shows the better network areas around you visually- a Google-Maps of sorts, but directing you towards nearby better network connectivity areas!


This project almost serves as a parody to every Indian engineering students classroom behavior. While mobile phones are not allowed into classrooms as per the rules, we take less than a semester to figure out the hacks into not only bringing our gadgets inside the classroom, but to also position them under the benches in such a way that we can play a game of PUBG, without raising the teacher's suspicion of our tilted head angles! We soon learn the art of occasionally lifting our heads up to make it seem like we're paying attention and not staring at our crotches. We also learn to make do without spectacles, lest the reflection of the game on our glasses give us away! However, the biggest and most challenging skill to master through this ordeal, is to find out the seating arrangement in the classroom that ensures there is no lag in our game - basically, where is the best network connection in this classroom? It takes a while, and more importantly- a few losses in our games due to the lag, to finally figure out the best seating arrangement to optimize this teacher-network-PUBG conundrum!


This is the story of me and 5 other classmates who faced a similar issue. We realized that this network connectivity issue is a problem that extends beyond our classroom- although the inspiration did begin in classroom. Oftentimes, we notice ourselves moving away from one room in search of better network- moving away from the lift and closer to the windows/balconies is something we do multiple times a day- sometimes successfully reaching an area with better network and sometimes not.

Here's when we decided to work on something that would more structurally determine the network connectivity areas around us, and decided to connect and collaborate with Nokia (they had a tie-up with our University, and they're in the network space, so why not).


Enough story, let's talk details!

Signal Maps aims to provide a dynamic visual representation of the user’s geographical surrounding, and the associated approximate signal strength. This map would be similar to the heatmaps with of green and red indicating a traffic intensity. It would also indicate the path to the nearest “Strong Network Zone”. This Android Application can identify the regions that have poor network connectivity and enables users to navigate to a better mobile network coverage area with stronger signal strength location using Machine Learning Clustering Algorithms. It also provides a dynamic visual representation of varying network strength and range across nearby geographical areas.


High Level Solution

The solution is a mix of data engineering, vector quantization algorithms, heat maps, geographical area identifications to partition User Endpoints (UEs) based on - geographical location, Long-Term Evolution Received Signal Strength Indicator (LTE RSSI) and Mobile Network Operator (MNO). The vector quantization approach generates clusters and each cluster is associated with an integer tag, thereby normalizing and denoting the respective network strength of that cluster. The clustering model accuracy increases as more UEs start consuming the RSSI mapping service and generate data to build the clustering model. Currently, a window of 10 seconds is used to generate the data. Once the model is built and if the UEs fall under a lower network connectivity area, they are directed to the nearest location, belonging to a region with a stronger network, computed based on optimization algorithms using RSSI of the UEs. The data collected could prove useful to the Network Service providers, as it provides an insight into the continuous gradient of signal strength, across an area. This could help in better frequency planning and cell site deployment upgrades. It can also provide strategic insight into the exact location where a signal tower can be installed, in such a way that it is beneficial to the maximum number of weak network clusters, thereby optimizing cost.

Navigation Map

“A Navigation Map- for directing you to stronger mobile network areas!”

Data Collection

The front end mobile application updates network and geographic-specific details from the user, every 10 seconds. This process runs as a Background Service, while simultaneously storing this data into Google-Firebase.


The user’s precise geographical location is determined by collecting the latitude and the longitude of the device. This data is collected using the FusedLocationProviderApi. Fused Location Provider gives accurate locations, and optimizes the battery usage. It combines signals from GPS, Wi-Fi, cell networks, as well as an accelerometer, gyroscope, magnetometer, and other sensors to provide accurate results. It can demarcate various spots within a building or a household.

The effective network strength of the device is a metric of the LTE RSSI data. The carrier RSSI measures the average total received power in the measurement bandwidth over N resource blocks, in decibels. The module used to collect the RSSI data is getAllCellInfo() method under the class TelephonyManager.

The Network Service Provider (Airtel, Vodafone, etc.) information helps segment users, which further helps in the clustering models discussed later. The getSimOperatorName method under the class TelephonyManager is used to collect this information.

The Internet Protocol (IP) address is also collected as it is unique to a user over a network at a given point of time. The modules used to collect this are InetAddress and NetworkInterface. All these data collection happens every 10 seconds when the application is being used, and is real-time stored in a firebase database, for the clustering algorithm to utilize.


Data collected and stored on Firebase

K-Means-Clustering on the Cloud

K Means algorithm is an iterative vector quantization algorithm that partitions the data set into K predefined distinct non-overlapping subgroups where each data point belongs to only one group. It makes the intra-cluster data points as similar as possible while also keeping the clusters as different (far) as possible. The way K means algorithm works in this project is as follows:

  • Specify number of clusters K (5)

  • Initialize centroids by shuffling data set and randomly selecting K data points for the centroids without replacement, with the dimensions being Latitude, Longitude, and RSSI strength.

  • Iterate until there is no change to the centroids. i.e. assignment of data points to clusters does not change.

  • Compute sum of the squared distance between data points and all centroids.

  • Assign each data point to the closest cluster (centroid) and attribute a normalized network strength integer tag (0-5)Compute the centroids for the clusters by averaging all data points that belong to each cluster.


K-Mean-Clustering

This entire algorithm is deployed as a service that is hosted using Google Virtual-Machine (VM) Instance. A Terminal Multiplexer (TMUX) session is initialized to allow multiple terminal accessibilities, which is facilitated by the VM instance, using the Secure Shell (SSH). TMUX is a protocol

that allows multiple short transport segments, independent of application type, to be combined between a server and host pair. The Secure Shell (SSH) Protocol is a protocol for secure remote login and other secure network services over an insecure networ. A Cron-Job is then used to schedule the service to run as a task every 15 minutes.

Essentially, the clustering on all data- including the latest data that was collected at a 10s interval- is modeled, and the output is updated onto the database.

This ensures that the changes in the heat map or the general tendencies of variations are always mapped. The 15-minute buffer is optimal- as this is too low a period for massive network property changes to occur, and at the same time gives a sufficient threshold to account for small substantial changes in network details or heat maps, which have to be updated via the clustering model.


Navigation and Heat-Map

Given the user’s real-time location, and the location of the nearest optimal stronger network location (corresponding to a higher tag integer, than the one associated with the user’s location), a walkable route can then be traced to reach from one point to the other. This is done using predefined APIs, such as Direction and Routes API, provided by Google. The red marker represents the user's current location and the green marker represents the closest location at which the signal strength is the strongest. The red marker gets updated when there is a change in the user's current location.


Network Connectivity Heat Map Inside a Mall

Conclusion

A Beta version for the application has been built based on the above discussed methods. A white paper on the same has also been presented successfully to Nokia, and we thank Mr. Karthik Natarajan for guiding us throughout. A precursor application solely containing the data collection entities has also been created, and shared to friends and family, in order to get a starting reference point for the dataset for the ML algorithms to function. This project was a very application oriented one, and it was great working with my classmates Muvazima Mansoor, Mohina Ahmadi, Hrishikesh Badve, Deepesh Sahoo, Bharath Katragadda on this- it sure gave us all a very Zuckerberg feel, and we feel this project still has a lot of scope to be better- in terms of UI and visualization, and to also make the accuracy in navigation better.

59 views0 comments

Recent Posts

See All

Comments


bottom of page