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

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages