This project involves the development of a reliable messaging protocol at the application layer, simulating the core functionalities of TCP (Transmission Control Protocol) using Python Sockets. It was developed to demonstrate a deep understanding of reliable data transmission over unreliable networks.
The protocol successfully implements the following networking milestones:
- TCP Three-Way Handshake: Established a robust connection sequence (SYN -> SYN-ACK -> ACK) with precise sequence and acknowledgment number handling.
- Reliable Data Transmission (Stop-and-Wait ARQ): Engineered a reliable data flow mechanism where each data packet requires a server-side acknowledgment before the next is transmitted.
- TCP Four-Way Teardown: Implemented a graceful connection closure (FIN -> ACK -> FIN -> ACK) to ensure all resources are released correctly.
- Automated Logging & Verification: Every transaction is logged in a standardized JSON format, facilitating real-time monitoring of packet headers and timestamps.
This project follows professional software development standards:
- Automated Testing: Verified via Pytest to ensure protocol accuracy and sequence number logic.
- CI/CD Integration: Utilizes GitHub Actions to automatically run test suites on every commit, ensuring a stable and verified codebase.
client.py/server.py: Core protocol implementation.common.py: Shared logging and formatting utilities..github/workflows/: CI/CD pipeline configuration for automated protocol validation.test.py: Comprehensive test suite for handshake and teardown verification.
- Language: Python
- Libraries: Sockets, JSON, Time
- Testing: Pytest, GitHub Actions
Developed as part of the Networking Technologies & Management Systems module at IMC University of Applied Sciences Krems.