Skip to content

sanebliss/Reliable-UDP-RDT-File-Transfer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Reliable Data Transfer (RDT 3.0) over UDP

📌 Overview

This project implements a Reliable Data Transfer protocol (RDT 3.0) over UDP using Python socket programming.

Since UDP is unreliable, this project ensures reliable communication using:

  • Stop-and-Wait protocol
  • Acknowledgements (ACKs)
  • Retransmissions
  • Packet loss simulation

🚀 Features

  • Reliable file transfer over UDP
  • Packet loss simulation
  • Timeout handling and retransmission
  • Client-server communication
  • Logging for packet tracking

🛠️ Tech Stack

  • Python
  • Socket Programming
  • UDP Protocol
  • Wireshark (optional analysis)

📂 Project Structure

src/
  client_basic.py
  server_basic.py
  client_reliable.py
  server_reliable.py

docs/
  output.png

▶️ How to Run

Start Server

python src/server_reliable.py

Run Client

python src/client_reliable.py

📸 Output

See docs/output.png


📊 Wireshark Analysis

To further validate the implementation, network traffic was analyzed using Wireshark during the file transfer process.

🔍 Observations

  • UDP packets were exchanged between the client and server on port 9999
  • Each data packet sent by the server was followed by an ACK from the client
  • Sequence numbers (0 and 1) were observed, confirming the Stop-and-Wait protocol
  • Retransmissions occurred when packets were lost (simulated), verifying reliability

📈 Key Insights

  • Communication is connectionless (UDP), but reliability is achieved through application-layer logic
  • ACK packets ensure correct delivery and ordering of data
  • Timeout and retransmission mechanisms successfully handle packet loss

🧠 Conclusion

The Wireshark analysis confirms that the implemented system successfully mimics reliable data transfer (RDT 3.0) over an unreliable protocol like UDP.

🧠 Key Concepts

  • Reliable Data Transfer (RDT 3.0)
  • Stop-and-Wait Protocol
  • UDP vs TCP
  • Packet Loss Handling

💡 Future Improvements

  • Sliding Window Protocol
  • GUI-based visualization
  • Performance analysis

👨‍💻 Author

Prasann Kumar

About

Implementation of RDT 3.0 protocol over UDP using Python with packet loss simulation and retransmission

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages