This document outlines the syllabus and course plan for the Network Programming Lab course CS334. The course objectives are to introduce network commands, tools, and programming in Linux. Students will complete 12 required exercises involving network configuration, system calls, inter-process communication, client-server programming, routing protocols, and network design. By completing the course, students will be able to use network commands, develop applications, and analyze network traffic in Linux.
This document outlines the syllabus and course plan for the Network Programming Lab course CS334. The course objectives are to introduce network commands, tools, and programming in Linux. Students will complete 12 required exercises involving network configuration, system calls, inter-process communication, client-server programming, routing protocols, and network design. By completing the course, students will be able to use network commands, develop applications, and analyze network traffic in Linux.
Course Name code Credits Introduction CS334 Network Programming Lab 0-0-3-1 2016 Pre-requisite: CS307 Data Communication Course Objectives To introduce Network related commands and configuration files in Linux Operating System. To introduce tools for Network Traffic Analysis and Network Monitoring. To practice Network Programming using Linux System Calls. To design and deploy Computer Networks. List of Exercises/ Experiments (12 Exercises/ Experiments are to be completed . Exercises/ Experiments marked with * are mandatory) 1. Getting started with Basics of Network configurations files and Networking Commands in Linux. 2. To familiarize and understand the use and functioning of System Calls used for Operating system and network programming in Linux. 3. Familiarization and implementation of programs related to Process and thread. 4. Implement the First Readers-Writers Problem. 5. Implement the Second Readers-Writers problem. 6. Implement programs for Inter Process Communication using PIPE, Message Queue and Shared Memory. 7. Implement Client-Server communication using Socket Programming and TCP as transport layer protocol.* 8. Implement Client-Server communication using Socket Programming and UDP as transport layer protocol.* 9. Implement a multi user chat server using TCP as transport layer protocol.* 10. Implement Concurrent Time Server application using UDP to execute the program at remoteserver. Client sends a time request to the server, server sends its system time back to the client. Client displays the result.* 11. Implement and simulate algorithm for Distance vector routing protocol. 12. Implement and simulate algorithm for Link state routing protocol. 13. Implement Simple Mail Transfer Protocol.* 14. Develop concurrent file server which will provide the file requested by client if it exists. If not server sends appropriate message to the client. Server should also send its process ID (PID) to clients for display along with file or the message.* 15. Using Wireshark observe data transferred in client server communication using UDP and identify the UDP datagram. 16. Using Wireshark observe Three Way Handshaking Connection Establishment, Data Transfer and Three Way Handshaking Connection Termination in client server communication using TCP. 17. Develop a packet capturing and filtering application using raw sockets. 18. Design and configure a network with multiple subnets with wired and wireless LANs using required network devices. Configure the following services in the network- TELNET, SSH, FTP server, Web server, File server, DHCP server and DNS server.* 19. Install network simulator NS-2 in any of the Linux operating system and simulate wired and wireless scenarios. Expected Outcome The students will be able to 1. Use network related commands and configuration files in Linux Operating System. 2. Develop operating system and network application programs. 3. Analyze network traffic using network monitoring tools.