This course is an introduction to computer networks. The goal is to provide the students with a general overview of the communication technologies over the networks. We will discuss the layered protocol stack of the modern computer networks and how our messages are sent across this network for various activities we do on the Internet. This is aimed to be a mix of theoretical and hands-on study of the computer networks.
A tentative list of topics are as follows.
- Introduction, history and development of computer networks, networks topologies. Layering and protocols.
- Physical Layer: Different types of transmission media, errors in transmission: attenuation, noise. Repeaters. Encoding (NRZ, NRZI, Manchester, 4B/5B, etc.).
- MAC Layer: Aloha, CSMA, CSMA/CD, CSMA/CA protocols. Examples: Ethernet, including Gigabit Ethernet and WiFi (802.11). Time permitting, a quick exposure to Token Ring and to Bluetooth, WiMax may also be included.
- Data Link Layer: Error detection (Parity, CRC), Sliding Window, Stop and Wait protocols.
- LAN: Design, specifications of popular technologies, switching. A student should be able to design LAN of a campus or a building.
- Network layer: Internet Protocol, IPv6, ARP, DHCP, ICMP, Routing algorithms: Distance vector, Link state, Metrics, Inter-domain routing. Subnetting, Classless addressing, Network Address Translation.
- Transport layer: UDP, TCP. Connection establishment and termination, sliding window revisited, flow and congestion control, timers, retransmission, TCP extensions, etc.
- Design issues in protocols at different layers.
- Network Programming: Socket Programming.
- Session, Presentation, and Application Layers. Examples: DNS, SMTP, IMAP, HTTP, etc.
Final year students of CSE and the systems minors.