/Computer-Networking-Ex3

Socket programming in c. Transferring large files over TCP, implementing Realiable UDP and simulating Packet Loss. As an assignment in Computer Networking @ Ariel University

Primary LanguageC

Socket Programming Project in C

- Implementing a simple Reliable UDP (RUDP)

  • Designing packets (header and data)
  • Splitting large data into chunks
  • Adding reliability with a handshake to start connection, ACK packets, and checksum
  • Optimizing performance with high packet loss by adjusting timeout delays and max retries to resend packet
  • Simple API

- Transferring large files over TCP or RUDP

- Simulating packet loss in order to:

  • Compare TCP Reno and TCP Cubic
  • Compare TCP and RUDP

Example runs:

Part A - Tranferring a large file over TCP:

Choosing between TCP Reno and TCP Cubic

part.1.mp4
Untitled.Project.mp4

Part B - Tranferring a large file over our implemented RUDP:

*Will upload later

Part C - Research

*Will upload later


Tested on Ubuntu 22.04.3 LTS. Verified memory leak-free by Valgrind.

Memory leak-free