Gavin Wyant

← Back to work

Multi-Hop Drone Forwarding

An ns-3 simulation that decides when to deploy a relay drone between a moving user and a fixed access point, based on packet loss.

2025 · Networking · in progress


Group project for Advanced Systems Software at the University of Pittsburgh, with Luke Haidze and Vlad Bordia. Built on top of ns-3.

The scenario

A single user is moving at a constant rate while exchanging packets with a fixed wireless access point. As the user moves out of range, throughput degrades and packets start getting lost. At some threshold the simulator spawns a second access point — meant to model a drone — positioned roughly midway between the user and the original AP, and packets start being forwarded through the relay.

What we're trying to learn

Two questions:

  1. When should the drone deploy? Packet loss is the obvious trigger, but there are alternatives — RSSI thresholds, jitter, application-layer acks. We're comparing them.
  2. Where should the drone sit? Equidistant is the natural default, but the right answer depends on transmit power, interference, and whether the user is still moving.

A secondary question is whether the same pattern generalizes to n hops — multiple drones forwarding for a fast-moving user — and at what point the overhead of the relay graph outweighs the signal gain.

Build

ns-3 is not vendored. Local layout assumes ns-3-dev/ sits beside this repo and run_sim.sh invokes the simulator from there.

C++ns-3Bashns-3wirelessrelaysimulation