Skip to content

nemedis21/Simple-TCP-Protocol-Implementation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Simple TCP Protocol Implementation (Python Sockets)

🌐 Project Overview

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.

πŸ›  Technical Features

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.

πŸ§ͺ Quality Assurance & CI/CD

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.

πŸ“ Project Structure

  • 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.

πŸ’» Tech Stack

  • 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages