Skip to content

Java-based implementation for virtual modem communication analysis, featuring RTT measurement, ARQ retransmission handling, BER estimation, GPS parsing, JPEG retrieval, and reproducible session-based performance evaluation.

Notifications You must be signed in to change notification settings

iliaskoro/modem-network-performance-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Modem Communication & Network Performance Analysis using a Virtual Modem

A complete Java implementation for the "ITHAKI Virtual Modem" project (AUTH ECE – Computer Networks). Includes RTT measurements, ARQ retransmission analysis, GPS parsing, JPEG retrieval, and structured session outputs.

This repository contains a modular Java implementation for analyzing modem-based communication in a virtual modem environment. The project performs:

  • Echo packet RTT measurements

  • ARQ-based packet transmission with FCS validation

  • JPEG image retrieval (error-free and error-induced)

  • GPS coordinate extraction and map image reconstruction

  • CSV logging and structured packet export

Two measurement sessions (session1 and session2) are included. Each session contains:

  • Raw CSV files generated by the Java client

  • Retrieved images (JPEG)

  • Plots derived from measurement data

  • A dedicated README describing the session outputs

The project is structured so that each session is fully reproducible and self-contained.


Project Structure


/
├── src/
│   └── userApplication/
│      ├── Main.java
│      ├── EchoHandler.java
│      ├── ARQHandler.java
│      ├── ImageHandler.java
│      ├── GPSHandler.java
│      ├── ModemUtils.java
│      ├── Packet.java
│      └── GPGGA.java
│
├── data_output/
│   ├── session1/
│   │   ├── data/
│   │   ├── plots/
│   │   └── README.md
│   │
│   └── session2/
│       ├── data/
│       ├── plots/
│       └── README.md
│
└── README.md


Java Modules (Short Overview)

File Purpose
Main.java Runs the full experiment: echo, GPS, ARQ, images, logging.
EchoHandler.java Sends echo commands and measures RTT.
ARQHandler.java Implements ACK/NACK ARQ protocol and FCS validation.
ImageHandler.java Retrieves and decodes JPEG images from the modem.
GPSHandler.java Parses GPS NMEA data and constructs map image commands.
GPGGA.java GPS data model for latitude/longitude extraction.
ModemUtils.java Shared utilities for modem I/O and CSV export.
Packet.java Data model for packets (RTT, retransmissions, FCS).

Each session directory contains:

  • Packet logs (CSV)

  • Derived plots (PNG)

  • Retrieved JPEG images

  • Session-specific README with analysis notes

The project separates code (src/) from experimental results (data_output/), ensuring clarity and reproducibility.

Requirements

Java

  • JDK 8 or newer

  • Standard Java I/O (no additional libraries required)

Modem

  • Ithaki Virtual Modem environment

  • Reliable serial/terminal configuration

Running the Project

Compile:


javac src/*.java

Execute:


java userApplication.Main

All output files are generated under the directory defined in FILES_PATH inside Main.java.

If you wish to separate results per session (e.g., session1, session2), adjust FILES_PATH accordingly before execution.

Author

Ilias Korompilis

License

Academic and educational use only.

About

Java-based implementation for virtual modem communication analysis, featuring RTT measurement, ARQ retransmission handling, BER estimation, GPS parsing, JPEG retrieval, and reproducible session-based performance evaluation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages