From a7b509c8463e865134e1c3b6fbc24f8b532374f1 Mon Sep 17 00:00:00 2001 From: illi03 Date: Fri, 5 Dec 2025 02:31:09 +0100 Subject: [PATCH 1/2] Update Architecture.md --- Documentation/Architecture.md | 68 +++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/Documentation/Architecture.md b/Documentation/Architecture.md index e69de29..5558321 100644 --- a/Documentation/Architecture.md +++ b/Documentation/Architecture.md @@ -0,0 +1,68 @@ +## Architectural Documentation +### Simulation von Python-/Docker-Knoten über eine OMNeT++-basierte Netzwerkumgebung + +## 1. Ziel der Architektur +Das System dient dazu zu testen, wie verteilte Anwendungen sich in dynamischen Netzwerken mit hoher Paketverlusten, Verzögerungen und limitierter Bandbreite verhalten. +Python-Skripte bilden Applikationsknoten, während OMNeT++ die Netzwerkstruktur simuliert. + +## 2. Systemüberblick + +### A) Application Layer – Python-Skripte +- Jeder Knoten hat eine IP im Applikationsnetz: **192.168.17.x** +- Öffnet einen Socket auf **Port 5000** +- Sendet periodisch Daten an andere Knoten +- Empfängt Nachrichten vom OMNeT++-Host + +### B) Simulation Layer – OMNeT++ Hosts +- Jeder Host hat eine IP: **192.168.18.x** +- Öffnet **fünf Ports**: 5001–5005 +- Empfängt, prüft und leitet Pakete weiter +- Simuliert ein dynamisches Ad-hoc/MANET-Netz + +## 3. Architektur +image + +## Kommt noch + +## 5. Weiterleitung innerhalb OMNeT++ +OMNeT++ Hosts lauschen auf Ports 5001–5005. + +### Entscheidung: +- **Fall 1: Paket gehört zum zugeordneten Python-Knoten** + → Weiterleitung an `192.168.17.x:5000`. +- **Fall 2: Paket gehört nicht dazu** + → Weiterleitung an alle Nachbarn über denselben Port (Flooding). + +## 6. Vermeidung von Routing-Loops + +### Option A: Eigene Duplicate-Check-Logik +- Nachrichten-IDs speichern +- Pakete nur einmal weiterleiten + +### Option B: Einsatz eines MANET-Protokolls (OSI Layer 3) +- RIP +- 6LoWPAN +- AODV +- OLSR + +OMNeT++/INET kann solche Protokolle unterstützen. + +## 7. Bezug zum OSI-Modell + +- **Layer 1–2:** Simulation durch OMNeT++ (Funkreichweite, Kollisionen) +- **Layer 3:** Routing und Forwarding (simuliert) +- **Layer 4:** Python nutzt TCP/UDP +- **Layer 7:** Python-Skripte erzeugen/empfangen Daten + +## 8. Vorteile der Architektur +- Realistische Simulation eines MANET/Ad-hoc-Netzes +- Python-Anwendungen bleiben unverändert +- Gute Skalierbarkeit +- Klare Trennung zwischen Applikation (Python) und Netzwerk (OMNeT++) +- Unterstützt Delay, Loss, Mobility, Bandwidth-Limits + +## 9. Zusammenfassung +Die Architektur verbindet reale Python-Anwendungen mit einer simulationsbasierten Netzwerkumgebung. OMNeT++ übernimmt Routing, Nachbarschaftsbeziehungen und dynamische Topologie. Python kümmert sich um die Anwendung und erzeugt echten Datenverkehr. + + + From 00bd39a25ea450613145a4396f174477801dd491 Mon Sep 17 00:00:00 2001 From: illi03 Date: Tue, 16 Dec 2025 14:55:05 +0100 Subject: [PATCH 2/2] Update Architecture.md --- Documentation/Architecture.md | 36 ++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/Documentation/Architecture.md b/Documentation/Architecture.md index 5558321..231d649 100644 --- a/Documentation/Architecture.md +++ b/Documentation/Architecture.md @@ -1,21 +1,22 @@ -## Architectural Documentation -### Simulation von Python-/Docker-Knoten über eine OMNeT++-basierte Netzwerkumgebung - -## 1. Ziel der Architektur -Das System dient dazu zu testen, wie verteilte Anwendungen sich in dynamischen Netzwerken mit hoher Paketverlusten, Verzögerungen und limitierter Bandbreite verhalten. -Python-Skripte bilden Applikationsknoten, während OMNeT++ die Netzwerkstruktur simuliert. - -## 2. Systemüberblick - -### A) Application Layer – Python-Skripte -- Jeder Knoten hat eine IP im Applikationsnetz: **192.168.17.x** -- Öffnet einen Socket auf **Port 5000** -- Sendet periodisch Daten an andere Knoten -- Empfängt Nachrichten vom OMNeT++-Host - +# Architectural Documentation +## Simulation of Python/Docker Nodes over an OMNeT++-Based Network Environment + +## 1. Goal of Architecture +The goal of this system is to evaluate how distributed applications behave in dynamic network environments with high packet loss, latency, and limited bandwidth. +Python scripts represent application-level nodes, while OMNeT++ is used to simulate the underlying network topology, routing behavior, and network dynamics. +## 2. Systemoverview + +### A) Application Layer – Python-Scripts +- Jeder Knoten hat eine IP im Applikationsnetz: 192.168.17.x +- Five Docker containers with IP addresses: 192.168.17.x +- Each container: + - Opens a socket on port 5000 + - Runs a Python script + - Periodically sends data to other nodes + - Receives application-level messages ### B) Simulation Layer – OMNeT++ Hosts -- Jeder Host hat eine IP: **192.168.18.x** -- Öffnet **fünf Ports**: 5001–5005 +- Jeder Host hat eine IP: 192.168.18.x +- Öffnet fünf Ports: 5001–5005 - Empfängt, prüft und leitet Pakete weiter - Simuliert ein dynamisches Ad-hoc/MANET-Netz @@ -66,3 +67,4 @@ Die Architektur verbindet reale Python-Anwendungen mit einer simulationsbasierte +