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 -- 11:59PM, Oct. 23,2020
3-transport-classwork.pdf  lecture9 Transport Layer
      - Building reliable protocol over unreliable link
      - Link error model:
            - No error
            - Forward bit error, backward bit error
            - Packet loss
            - Packet delay
      - Moving from correctness to performance (pipelining)

See 3-transport-classwork.pdf above
 lecture10 Transpor Layer
       - Correctness to performance: Pipelined protocols
       - Go back N (GBN) ... Tx window but no Rx buffer, hence sends cumulative ACKs
       - Selective ACK (SACK) ... Tx and Rx have buffers

See 3-transport-classwork.pdf above  lecture11 Transport Layer
- Selective ACK (SACK) ... Tx and Rx have windows ... and Selective ACKs
      - Various T/F questions on SACK
      - TCP introduction
      - Notion of congestion and adaptive window size

 3-tcp-oct1-classwork.pdf  lecture12

Transport Layer: TCP
- Bottleneck and available bandwidth
      - TCP's knob = congestion window (CW)
      - Chemical factory analogy
      - TCP protocol (Rx buffer + cumulative ACK)
           - 3 way handshake
           - Slow Start
           - Congestion avoidance (after SS_Threshold)

 lecture13 TCP
     - Congestion indication from packet drop (time out)
     - ACK drops
     - 3 DupACKs and fast recovery
     - Ensuring congestion window grows while DupACKs arrive

 3-tcp-oct8-classwork.pdf lecture14 TCP
     - Fast recovery
     - TCP timers and saw tooth behavior
     - TCP state diagram

 3-tcp-oct13-classwork.pdf lecture15 TCP
     - Timeout estimation (RTO) as a function of Estimated RTT and Deviation
     - Packets to bytes
     - AIMD and TCP throughput calculation
     - Flow Control
     - TCP fairness

Homework 2 (on Gradescope)
Due date -- 11:59PM, Oct. 25, 2020
 3-tcp-oct13-classwork.pdf lecture16 TCP
     - TCP over wireless
     - TCP Random Early Detection (RED)
     - Bottleneck bandwidth estimation via packet pairs

4-network.ppt lecture17

Network Layer
     - Introduction
     - Routing and Forwarding (and Connection set up)
     - Network service models (guarantees and best effort)
     - Virtual circuit and datagram networks
     - Forwarding table

Mid-term info. slides
 lecture18 Network Layer
     - Longest prefix matching
     - Router architecture
     - IP datagram, fragmentation and reassembly
     - Subnets and IP addressing
     - CIDR (Classless Inter Domain Routing)

MID-TERM Discussion

Midterm Oct 29, Thu
 Routing Algorithm Examples  lecture19 Network Layer
     - Prefix matching based routing across ISP
     - NAT
     - ICMP and Traceroute
     - IPv6

     - Routing algorithms: Link state and Distance vector
     - Link state: Dijkstra's algorithm

Programming Assignment 3 (MP3)

Due date -- 11:59PM, Nov. 18,2020

 lecture20 Network Layer
Distance Vector (Bellman Ford's algorithm)
     - Hierarchical routing
     - Internet case studies
     - Link state: RIP, OSPF


lecture21 Network Layer:
     - Distance vector: BGP (eBGP and iBGP)
     - Policy decisions based on socio-economic factors

Link Layer:
     - Introduction to link layer
     - Local reliability as performance optimization, not correctness


Pointers: Hamming codes: 3Blue1Brown Part1
3Blue1Brown Part2
 lecture22 Link Layer:
     - Error detection and correction
     - Multiple Access Protocols (Centralized and Decentralized)
        - Listen before you Talk
        - Carrier sensing
        - Collisions

 lecture23 Link Layer:
     - Medium access control protocols
     - Channel partitioning
     - CSMA/CD
     - Taking turns
     - Ethernet

 5-link-classwork-nov19.pdf  lecture24 Link Layer:
     - Ethernet continued
     - Ethernet protocol flowchart
     - MAC Layer addressing
     - Address Resolution Protocol (ARP)
     - Interconnecting at Link Layer
     - Hubs and Switches
     - Zoom out: comparison between routers, hubs, and switches.

Programming Assignment 4 (MP4)

Due date -- 5:00PM, Dec. 6,2020

Mini project (4 credit students)

Due date -- 5:00PM, Dec. 18, 2020
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