This repository contains the lab assignments for the course in the Spring of 2024 at Purdue University.
This is a graduate-level introductory course to computer networks and data communication. Our goal is to understand fundamental networking concepts, their implementation and application in today's interconnected information technology world. Computer networks is a rapidly evolving field, with new technologies and standards in the works as we speak. This makes the field relevant and exciting. Without a firm grounding in its fundamentals, however, it can also be a confusing and overwhelming subject matter. This course aims to provide this grounding.
This course is a modern introduction to computer networks, spanning the logical organization of four pertinent features: architecture, algorithms, implementation, and performance. The course will cover background and current issues facing modern communication networks, network architecture (hardware, software), fundamentals of data transmission (wired, wireless), LAN technology and data link protocols (switched Ethernet, wireless LAN CSMA/CA, OFDM, OFDMA, personal area networks, cellular network OFDMA, TDMA, FDMA, CDMA, MIMO, GPS, mobility), packet/circuit switching in wide-area networks, internetworking using TCP/UDP/IP (socket programming in Linux), routing (intra- and inter-domain), congestion control (TCP and multimedia UDP streaming), real-time video/audio/voice and quality of service, network security, and high-level network services (DNS, HTTP, SNMP, e-mail). One of the topics we will emphasize is wireless networks, a key driver of today's ubiquitous mobile environment.