High-Assurance One-Way Data Transfer Framework for Air-Gapped and Hardware Data Diode Environments
DiodeFlow is a secure, reliable, and modular one-way file transfer framework designed for deployment across hardware-enforced data diodes and isolated (air-gapped) environments.
Unlike traditional transfer protocols such as TCP, DiodeFlow operates without acknowledgements, retransmissions, or any reverse communication channel. Reliability is instead achieved through a combination of LT Fountain Codes, Reed–Solomon Forward Error Correction, multi-pass transmission, packet interleaving, cryptographic authentication, and layered integrity verification.
The project supports both software simulation and deployment across two physically isolated systems connected through a hardware data diode.
- No acknowledgements
- No retransmissions
- No reverse communication
- Compatible with hardware-enforced data diodes
- LT Fountain Code based recovery
- Reed–Solomon Forward Error Correction
- Multi-pass packet transmission
- Packet interleaving
- Adaptive transfer profiles
- Sliding window architecture
- Packet loss simulation
- Ed25519 manifest signatures
- BLAKE3 packet authentication
- SHA-256 compressed file verification
- SHA-256 original file verification
- Merkle tree integrity verification
- Defensive packet validation
- Replay protection
- Secure quarantine pipeline
- Streaming architecture
- Window-based processing
- Bounded memory usage
- Large file support
- Configurable packet rate
- Offline deployment support
Real-time Streamlit dashboard displaying:
- Transfer progress
- Sender statistics
- Receiver statistics
- ETA
- Packet counts
- Recovery statistics
- Security verification status
- Event timeline
- Warnings and errors
SENDER
File
│
▼
LZ4 Compression
│
▼
Window Generation
│
▼
Chunking
│
▼
Merkle Generation
│
▼
Reed-Solomon Encoding
│
▼
LT Fountain Encoding
│
▼
Multi-Pass Generation
│
▼
Packet Interleaving
│
▼
BLAKE3 Authentication
│
▼
UDP Transmission
══════════════════════════════════════════
HARDWARE DATA DIODE
══════════════════════════════════════════
UDP Reception
│
▼
Packet Validation
│
▼
BLAKE3 Verification
│
▼
Manifest Authentication
│
▼
LT Fountain Decoding
│
▼
Reed-Solomon Recovery
│
▼
Window Assembly
│
▼
File Assembly
│
▼
SHA-256 Verification
│
▼
Decompression
│
▼
Final SHA-256 Verification
│
▼
Quarantine Pipeline
│
▼
Secure Storage
✔ LT Fountain Codes
✔ Reed–Solomon Recovery
✔ Adaptive Windowing
✔ Adaptive Chunking
✔ Adaptive Transfer Profiles
✔ Multi-Pass Transmission
✔ Packet Interleaving
✔ LZ4 Compression
✔ Ed25519 Manifest Authentication
✔ BLAKE3 Packet Authentication
✔ SHA-256 File Verification
✔ Merkle Tree Generation
✔ Streaming File Assembly
✔ Secure Quarantine Pipeline
✔ Streamlit Monitoring Dashboard
✔ Offline Installation
✔ Air-Gapped Deployment
✔ Hardware Data Diode Support
✔ Packet Loss Simulation
✔ Two-System Deployment
diode-flow/
├── common/ # Shared utilities, configuration and security
├── fountain/ # LT Fountain encoder/decoder
├── sender/ # Sender pipeline modules
├── receiver/ # Receiver pipeline modules
├── ui/ # Streamlit monitoring dashboard
├── keys/ # Ed25519 key pairs
├── tests/ # Test suite
├── test_files/ # Sample transfer files
├── wheelhouse/ # Offline Python packages
├── sender_node.py # Sender executable (two-PC deployment)
├── receiver_node.py # Receiver executable (two-PC deployment)
├── run_demo.py # Local sender + receiver simulation
├── install_offline.sh
├── start_sender.sh
├── start_receiver.sh
├── start_ui.sh
├── requirements.txt
├── README.md
└── LICENSE
DiodeFlow has been tested on Linux systems and is intended for deployment in isolated or air-gapped environments.
- Python 3.10 or later
- Linux (Ubuntu recommended)
- Network interface supporting UDP communication
- (Optional) Hardware data diode setup
- (Optional) Streamlit for monitoring dashboard
Clone the repository and install dependencies:
git clone <repository-url>
cd diode-flow
pip install -r requirements.txtDiodeFlow includes a complete offline deployment package.
The repository contains:
- Pre-built Python wheels
- Offline installation scripts
- Local virtual environment setup
No internet connection is required.
Run:
chmod +x *.sh
./install_offline.shThe installer automatically:
- Creates a local virtual environment
- Installs all dependencies from the bundled
wheelhouse/ - Does not access PyPI
- Is suitable for isolated and air-gapped systems
DiodeFlow supports three deployment modes.
Runs both sender and receiver on the same machine.
Useful for:
- Development
- Testing
- Packet loss simulation
- Performance evaluation
Run:
python run_demo.py \
--file test_files/100MB.txtRuns sender and receiver on separate systems connected over Ethernet.
python receiver_node.pypython sender_node.py \
--file test_files/100MB.txt \
--receiver-ip 192.168.1.20 \
--security standardThis deployment mirrors the architecture used during real hardware testing while operating over a normal Ethernet connection.
DiodeFlow is designed to operate across physically enforced one-way communication channels.
Typical deployment consists of:
Sender PC
│
│ Ethernet
│
Media Converter
│
│ Optical Fiber
▼
Hardware Data Diode
│
│ Optical Fiber
▼
Media Converter
│
│ Ethernet
▼
Receiver PC
Since ARP broadcasts cannot traverse a one-way link, the sender supports automatic installation of a static IP-to-MAC neighbour entry before transmission.
Example:
sudo python sender_node.py \
--file test_files/100MB.txt \
--receiver-ip 192.168.1.20 \
--receiver-mac AA:BB:CC:DD:EE:FF \
--interface enp3s0The sender automatically configures the required neighbour mapping before the transfer begins, eliminating the need for manual ARP configuration.
Launch the Streamlit dashboard:
./start_ui.shor
streamlit run ui/streamlit_app.pyThe dashboard displays live information throughout the transfer, including sender activity, receiver progress, throughput, integrity verification, recovery statistics, and security status.
python run_demo.py \
--file test_files/sample.bin \
--security classified \
--pps 50000 \
--loss 0.10| Parameter | Description |
|---|---|
--file |
File to transfer |
--security |
standard / critical / classified |
--pps |
Packets transmitted per second |
--loss |
Simulated packet loss (0.0–1.0) |
--port |
UDP port |
--timeout |
Transfer timeout |
python sender_node.py \
--file test_files/sample.bin \
--receiver-ip 192.168.1.20 \
--receiver-mac AA:BB:CC:DD:EE:FF \
--interface enp3s0 \
--security critical| Parameter | Description |
|---|---|
--receiver-ip |
Receiver IP address |
--receiver-mac |
Receiver MAC address |
--interface |
Sender network interface |
Simply run:
python receiver_node.pyThe receiver continuously listens for incoming transfers until interrupted.
DiodeFlow supports multiple transfer profiles that adjust redundancy and reliability parameters according to the desired level of protection.
| Profile | Purpose |
|---|---|
| Standard | Normal operation with balanced throughput and redundancy |
| Critical | Increased redundancy and stronger recovery for important transfers |
| Classified | Maximum redundancy and reliability for highly sensitive environments |
Each profile automatically tunes multiple internal parameters, including:
- Reed–Solomon parity
- Fountain code overhead
- Multi-pass count
- Interleaving depth
- Window configuration
This allows the system to balance bandwidth efficiency against recovery probability without requiring manual tuning.
DiodeFlow includes a real-time Streamlit monitoring dashboard that provides operational visibility throughout the transfer lifecycle.
- Transfer ID
- File Name
- Security Classification
- Compression Status
- Current Transfer State
- Original File Size
- Compressed File Size
- Packets Generated
- Packets Sent
- Current Window
- Current Pass
- Transfer Rate
- Estimated Time Remaining
- Packets Received
- Windows Decoded
- Fountain Decode Progress
- Reed–Solomon Recovery Statistics
- File Reconstruction Progress
- Output Storage Location
- Ed25519 Manifest Verification
- BLAKE3 Packet Authentication
- SHA-256 Integrity Verification
- Security Warnings
- Error Events
- Transfer Status
| Component | Technology |
|---|---|
| Language | Python |
| Transport Protocol | UDP |
| Compression | LZ4 |
| Fountain Coding | LT Fountain Codes |
| Error Correction | Reed–Solomon |
| Packet Authentication | BLAKE3 |
| Digital Signatures | Ed25519 |
| Integrity Verification | SHA-256 |
| Monitoring | Streamlit |
DiodeFlow is primarily designed for deployment on two independent systems connected through a hardware data diode or a one-way network link.
python receiver_node.pyThe receiver waits for incoming transfers.
./start_ui.shor
streamlit run ui/streamlit_app.pysudo python sender_node.py \
--file test_files/100MB.txt \
--receiver-ip <receiver-ip> \
--receiver-mac <receiver-mac> \
--interface <sender-network-interface> \
--security classifiedThe sender automatically configures the required IP-to-MAC neighbour mapping before transmission, allowing operation across hardware data diode deployments without manual ARP configuration.
For development and testing, DiodeFlow also provides a local simulation mode where both sender and receiver execute on the same machine.
python run_demo.py \
--file test_files/100MB.txtPacket loss can be simulated using:
python run_demo.py \
--file test_files/100MB.txt \
--loss 0.15This mode is intended for development, debugging, and performance evaluation.
Functional Prototype
- One-way UDP transport
- Sliding window architecture
- Adaptive chunking
- LT Fountain encoding and decoding
- Reed–Solomon Forward Error Correction
- Multi-pass transmission
- Packet interleaving
- LZ4 compression
- Ed25519 manifest authentication
- BLAKE3 packet authentication
- SHA-256 integrity verification
- Merkle tree generation
- Secure quarantine pipeline
- Streaming file reconstruction
- Real-time monitoring dashboard
- Offline dependency packaging
- Air-gapped deployment support
- Hardware data diode compatibility
- RaptorQ fountain code integration
- Adaptive redundancy tuning
- FPGA acceleration
- Zero-copy packet pipeline
- Multi-channel transfer support
- Throughput optimization
- Advanced telemetry and analytics
DiodeFlow is intended for:
- Research
- Secure Systems Engineering
- Air-Gapped Infrastructure
- Defensive Cybersecurity
- Hardware Data Diode Deployments
This project is intended solely for defensive security and secure systems research.
Distributed under the MIT License.
See the LICENSE file for additional information.