NETWORK OPTIMIZATION FOR CONTENT-CENTRIC ROUTING IN WI-FI DIRECT MULTI-GROUP NETWORKS

Project Overview

My Masters' Thesis was based on Network Optimization for content-centric routing in WiFi Direct multi-group networks. In the paper I've published which is currently awaiting acceptance by a journal, I propose a novel technique to overcome the limitations in communication using WiFi Direct groups by facilitating a new way for distinct WiFi Direct groups to communicate with each other while increasing the available bandwidth and throughput when compared against previous research in the area.​

Problem Statement

Traditionally, the WiFi Direct protocol does not allow the implementation of multiple group communication by using the WiFi Direct Application Programmer Interface (API). This makes it impractical for use over a wide geographical span.

Goals and Objectives 

The primary goal for this project was to research and discover a way to facilitate multi-group communication using WiFi Direct. It was imperative that the proposed solution be able to facilitate cross-group communication at high throughput which would make it viable for use over a wide geographical span.

Research and Planning

In the planning phase, I thoroughly researched existing articles on WiFi Direct. I also took a look at papers published by well known and reputable journals and papers that were presented at conferences. With the knowledge I gathered from those resources, I took an in-depth look at the available APIs that are related to WiFi Direct. I was then able to propose a hypothesis that portrayed a novel topology that would overcome the traditional limitations of the WiFi Direct communication protocol. 

Design and Development Process


 From my hypothesis, I was able to develop a new library. This library leveraged numerous technologies such as 

  • Android SDK
  • Kotlin
  • WiFi Direct API
  • Dart
  • Flutter
  • Dart FFI

Initially, the library was written in native Android using the Kotlin language. After much thought and while iterating through the design of the software,  I recognised the importance of such research and I identified that it may be critical to extend this library in the future to enable mobile cross-platform communication between Android and iOS devices. With that in mind, I redesigned the library by integrating the Kotlin codebase in a Dart library and exposed the functionality to the underlying kotlin code through interfaces by leveraging Dart FFI. This would make it easier, in the future, to allow the same function calls to be executed with the iOS specific implementation.


For rapid prototyping to test and verify that the functionality was indeed functional, the library was integrated in a flutter app and was deployed on 5 android devices for testing and verification.

Challenges and Solutions 

This project required me to be at the very edge of cutting-edge technology. As such, I faced a number of challenges.

I could not rely on StackOverflow for answers to problems. And, at the time of doing my MSc, tools such as ChatGPT were not available, and even if they were, they would NOT have been much help. Since my objective was to create something that did not exist at that time, the solution to all of the challenges I faced was to rely on research and reading documentation, iterate on design until it achieved the desired output, and traditional testing to ensure that functionality was implemented properly.

Results and Impact 

As I'm still awaiting publishing in a journal, I can't post my exact results here on my portfolio. But, I was able to achieve a novel algorithm for operating multi-group WiFi Direct communication that achieves throughput that far exceeds the previous research on the topic. 

I look forward to taking this project further and implementing this in software products that can make a difference in the world

Learnings and Reflections 

This project had a number of valuable lessons that I've learned. I learnt patience, and I also learned that there comes a time when you need to take a break from the computer and come back with a fresh mind to tackle the problem from a different perspective.