ECE/CS 438: Communication Networks (Fall 2020)


Description: This course will introduce students to the key concepts underlying wired and wireless networking. The layered architecture of the network protocol stack will be the focus of discussion. Alongside, a variety of case studies will be drawn from the Internet, combined with practical programming exercises. At the end of the semester, students will well understand several concepts, including the Internet architecture, HTTP, DNS, P2P, Sockets, TCP/IP, BGP, Routing protocols,
wireless and sensor networking, WiFi, cellular and satellite networks, security, etc.

Time and Location:   Tu/Th 3:30 to 4:45pm (zoom link here, password: "networks")
Instructor:                  Romit Roy Choudhury (
Office Hour:              After class
Course TA 1:               Yu-Lin Wei (Wally) <>
                                                            - Office hour: Wed 10-11am, UIUC time.
Course TA 2:               Zhijian Yang <>
                                                            - Office hour: N/A
Course TA 3 (ZJUI):   Mingjia Huo <>
                                                            - Office hour: Fri 3-4pm, China time
Piazza:                        Here (mainly for student-to-student interaction)
Textbook:                  Computer Networking (A Top-Down Approach Featuring the Internet)
                                  J. F. Kurose and D. W. Ross, 3rd or later edition, Addison-Wesley.
                                  (Other editions are fine).
Grading Information:
Homework:                              15%
Programming assignments:      25%
1 mid-term exam:                     25%
Final Exam:                              35%

4 Credit Students: Need to complete a mini-project and submit a report at the end of the semester. Around K=3 topics for mini-projects will be suggested and students need to choose from one of them. Mini-project = 10% (while assignments and mid-term will be 20% each)

COVID requires us all to read this and conform to the university policies and standards

(Tentative) Course Calendar
The schedule may change over time due to unforeseen events, instructor travel, evolving student interests, etc.
Date/slides Video Topics of Discussion Homework, Prog. Assignments, etc.
Aug 25

lecture1 Course Logistics, Course Overview.  
Aug 27
lecture2 Overview continued
   - History and fathers of the Internet
   - End hosts and ISP hierarchy
   - Trans continental cables
   - Layering and encapsulation (end to end horizontal communication)

Programming Assignment 0 (also called Machine Problem (MP))
Instructions  +  Beej's guide

No due date -- will not be graded
Sep 1

lecture3 Overview and Internet Terminology,
   - Introduction to Basic Terms and Concepts:
   - Internet: Hosts, apps, edge, core, routers, links, connection-less, infrastructure, service
   - Network edge: Client server, P2P, edge-fog-cloud, connection less/oriented, TCP, UDP
   - Network access and media: Notion of FFT and bandwidth, dial-up, ADSL, cable, LAN, wireless ...

Programming Assignment 1 (MP1)

Due date -- 11:59PM, Oct. 2, 2020
Sep 3

See this USA_ Spectrum_map

lecture4 Overview Continued
   - Bandwidth, carrier frequency, notion of modulation and de-modulation, spectrum allocation in the US
   - Network core: Circuit switching, FDM versus TDM, throughput, latency
   - Packet switching: Statistical multiplexing, tradeoff between efficiency and guarantee.
Sep 8


lecture5 Overview
    - Datagram networks, Virtual circuit switching, Taxonomy of network core
    - Layered communication, End-to-End architecture
    - 4 kinds of delays (Processing, Queuing delay, Propagation, Transmit), Packet loss

    - Introduction to Applications, client-server, peer-peer, services,


Sep 10

    - Client-Server, Pure P2P, Hybrid P2P ... Overlay networks
    - Loss, Bandwidth, and Delay requirements
    - Introduction to HTTP, Non-persistent, Persistent, Cookies

Sep 15


 lecture7 Application
    - Web caching
    - Email (SMTP, POP, IMAP)
    - DNS
    - P2P networks

Pointers: Inventor of the DNS system, Paul Mockapetris
Homework 1 (on Gradescope)
Due date -- 5:00PM, Sep. 30, 2020

Sep 17


 lecture8 Transport Layer
    - Socket programming
    - Reliability definition --> reliable wrapper over an unreliable channel
    - Multiplexing, Demultiplexing
    - UDP, checksums
    - State transition diagrams
    - Principles of reliability
         - Reliability definition
         - Building a reliable protocol from scratch (no errors, ACK/NACK, packet errors, seq. no.)

Programming Assignment 2 (MP2)

Due date -- To be announced
    Transport layer: flow control, connection management, congestion control, ATM, TCP case study.
Go back N, selective ACK, selective repeat.
    Transport layer: TCP congestion control  
    Transport layer: TCP congestion control continued  
    Transport layer: TCP flow control and TCP variants  
    TCP review and clarification  
4-network.ppt   Internet Protocol (IP), introductions, network layer service model, forwarding vs. routing.
what is inside a router?
router architecture, virtual circuits, etc.
    Internet Protocol (IP), addressing, NAT, ICMP, IPv6, tunneling  
    Routing algorithms: link state   
Routing Algorithm Examples   Routing algorithms: link state, distance vector  
    Routing algorithms: distance vector, Internet routing   +   Mid term review  
mid-term-thoughts.ppt   Routing algorithms: BGP, broadcast using centre-based trees, RPF  
    Midterm Oct 29, Thu  
5-link.ppt   Link Layer: introduction and service model.
Pointers: Hamming codes , 3Blue1Brown Part1 3Blue1Brown Part2
    Link Layer: service model, error correction and FDMA, Aloha  
    Link Layer: CSMA/CD, LAN addressing ARP, etc., Ethernet  
6-basic-wireless.ppt   Wireless Link Layer Networks (channel characteristics, MAC) ...  
    Wireless Link Layer WiFi 802.11 protocol  
Some Slides on MAC and 802.11 -- see 1-12 & 46-54
  Wireless Link Layer WiFi 802.11 protocol

wireless_CSMA_WiFi.ppt   Wireless Link Layer Mobility principles, cellular networks  
8-security.ppt   Security
Last-class-slides.ppt   Security  
Final exam date:
Wed, Dec 16, 2020, 8-11am

  ECE/CS 438 Final Exam