CO1: Acquire expertise in fundamental C programming, specifically applied to Computer Networks.
CO2: Analyze and understand the TCP/IP protocol stack.
CO3: Develop TCP and UDP applications using the Socket API.
CO4: Investigate real-world protocols like BitTorrent, QUIC, and DTN, and design a reliable file transfer protocol using UDP.
Topics Covered:
Basic File Handling in C:
Creating, opening, reading, writing, and deleting files.
Special emphasis on binary file handling for storing data in its original format.
Analysis of the TCP/IP Protocol Stack:
In-depth study of TCP and UDP protocols.
Examination of various TCP use cases involving multiple flags and the urgent pointer.
Socket Programming & Reliable File Transfer using UDP:
Introduction to the socket API.
Development of a basic file transfer program using the Socket API.
Implementation of flow control mechanisms, such as Stop-and-Wait and Selective Repeat, using the UDP protocol.
Group Projects:
A. Development of a Peer-to-Peer (P2P) File Sharing System:
Objective: Create a P2P file-sharing application that allows users to share and download files without relying on a central server, inspired by protocols like BitTorrent.
Key Concepts: P2P networking, file distribution, network topology, security in P2P networks.
B. QUIC Protocol
Objective: The goal of this project is to design and implement a simplified version of the QUIC protocol that captures its core functionalities, such as connection establishment, packet encryption, and congestion control. The implementation will demonstrate how QUIC improves upon traditional TCP by reducing latency and providing reliable, secure communication over UDP.
C. Teleconferencing Tool using WebRTC
Objective: The goal of this project is to design and develop a teleconferencing tool using WebRTC that provides a seamless, secure, and scalable communication experience. The tool should support real-time video and audio transmission, text-based chat, and screen sharing, with an emphasis on minimizing latency and ensuring the security of the communication.
Tools & Technologies: WebRTC APIs, Node.js/Express.js, Socket.io/WebSockets, HTML5/CSS3/JavaScript, Database (e.g., MongoDB/MySQL)
D. Implementation of MQTT Protocol for IoT
Objective: Simulate a smart home network where large number of IoT devices communicate with each other and a central controller, focusing on protocol design and security.
Key Concepts: MQTT, TCP/IP Protocol Stack
E. Building a Simple Content Delivery Network (CDN)
Objective: Design a CDN that caches web content in multiple locations to reduce latency and improve load times for users around the world.
Key Concepts: Content caching, replication, network latency, DNS routing.