A reliable protocol built over UDP
- Table of Contents
- About The Project
- Getting Started
- Usage
- Project Layout
- License
- Project Contributors
This repo contains the specification and code for RDTP Protocol. This protocol is a part of our Networks course assignment in building a reliable protocol over UDP.
We have selected a file transfer application which uses the built specification's API to transfer files. Performance analysis is performed usig netem tool
RDTP specification can be found here and performance analysis can be found here
To get a local copy up and running follow these simple steps.
This protocol is implemented in python ver >= 3.7.
There are no external dependencies/modules used. The following core python modules are used:
- sockets
- math
- random
- Clone the Reliable-UDP
git clone https://github.com/RikilG/Reliable-UDP.git
cd Reliable-UDP
- To run the file transfer application
# first run the receiver which listens for incomming connections
python fileReceiver.py -o <output filepath>
# run the sender which sends file to receiver at target IP address
# if no target ip is given, it defaults to localhost(127.0.0.1)
python fileSender.py -i <input filepath> -ip <ip_address>
The API provided is explained in the specification. It's usage example is the file
transfer application.
RDTPConnection package provides 2 modules RDTPSender and RDTPReceiver which
can be used by you application to transfer data.
Repo root directory
├── Images # Graphs produced by performance analysis
│ ├── Corrupt_Throughput.png
│ ├── Corrupt_Time.png
│ ├── Delay_Throughput.png
│ ├── Delay_Time.png
│ ├── Duplication_Throughput.png
│ ├── Duplication_Time.png
│ ├── Jitter_Throughput.png
│ ├── Jitter_Time.png
│ ├── Loss_Throughput.png
│ ├── Loss_Time.png
│ ├── Reorder_Throughput.png
│ └── Reorder_Time.png
├── other # Other stuff which helped in building the protocol
│ ├── ...
│ └── UDPsender.py
├── RDTPConnection
│ ├── __init__.py
│ ├── Packet.py
│ ├── RDTPReceiver.py
│ ├── RDTPSender.py
│ ├── SocketCore.py
│ ├── SRSocket.py
│ └── SWSocket.py
├── analysis.py
├── assignment-3.pdf
├── fileReceiver.py
├── fileSender.py
├── LICENSE
├── RDTP - Performance Analysis.pdf
├── RDTP Specification.pdf
├── README.md
└── Specification.md
Distributed under the MIT License. See LICENSE
for more information.
- Rikil Gajarla - 2017A7PS0202H
- L Srihari - 2017A7PS1670H
- Koushik Perika - 2017A7PS0207H
- Sayanti Ghosh - 2017A7PS0261H
- Poosarala Divakar - 2017A7PS0225H
Project Link: https://github.com/RikilG/Reliable-UDP.