CS 725/825: Computer Networks

(Coordinator: Radim Bartos)

Catalog Description

Introduction to fundamental concepts of computer networks and exploration of widely-used networking technologies. Topics include principles of congestion and error control protocols; network routing; local, wireless, and access networks; application protocol design; and network programming. In-depth discussion of the Internet suite of protocols. Prereq: CS 520.

Course Topics and Student Outcomes

Systems and hardware (4):

  • architecture of routing and switching devices, Internet architecture

  • principles of reliable transport, traffic management and flow control, routing and switching, media access control

  • network protocol implementation

  • network performance testing and evaluation

Applications (6):

  • application protocols

  • networked application development

  • network security


Five assignments (40%), two in-class exams (30%) and a final exam (30%).


  • Basic Concepts

    • Categories of networks. Basic concepts an terminology.

    • Layered model, OSI 7-layer model. Internet layers, common functions of layers. Services of a layer, reliable vs. unreliable, connection-oriented vs. connectionless. Internet protocol "hourglass".

    • Time-space diagram. Network performance measures.

    • Network standardization: key players, standard documents, standardization processes.

  • Networking Fundamentals

    • Routed point-to-point networks vs local broadcast-based networks. Address Resolution Protocol (ARP). Anatomy of a routing/switching device.

    • IP Subnets, prefix and subnet mask.

    • Static routing, routing table. Routing loops. Classless InterDomain Routing (CIDR), private IP addresses.

    • Basics of bridging and L2 switching, resilience and scaling of bridged networks: spanning tree protocols, VLANs.

    • Anatomy of a home router.

  • Application Protocol Design and Implementation

    • Client and server, ports, well-known and ephemeral ports. Application layer protocol architecture.

    • Domain Name Service (DNS).

    • Email, SMTP, IMAP, POP-3, webmail. MIME.

    • World-wide web, historical evolution, HTTP.

    • Network Management, SMTP, Software Defined Networks (SDNs).

    • Networked application programming. Socket API.

  • Network Security

    • Intro to network security. Encryption, goals, categories of encryption methods, public/private key cryptography, man-in-the-middle attack.

    • Encryption methods, authentication, message integrity, cryptographic hash functions.

    • Public key certificates, certificate authority.

  • Principles of Reliable Transport - Transport Layer

    • Functions of the layer, principles of reliable transport, ARQ. Congestion control, offered vs carried load diagram, load vs latency diagram.

    • Principles of congestion control. Transmission Control Protocol (TCP).

    • TCP session management, TCP flow control.

    • TCP network congestion control, TCP variants. Fairness. UDP.

    • User Datagram Protocol (UDP).

  • Routing and the Network Layer

    • Fundamental concepts and services. Internet Protocol (IP). IP fragmentation.

    • Internet Control Message Protocol (ICMP).

    • IPv6.

    • Operations of link state and distance vector routing protocols, scaling routing protocols, Autonomous System, RIP, OSPS, BGP4;

    • QoS in IP networks, TOS field and Differentiated Services.

    • Circuit vs packet switching. Virtual circuit switching, MPLS.

  • Link and Physical Layers

    • Basic concept, Data Link Control (DLC) and Media Access Control (MAC). Deterministic and stochastic (random) access methods, CSMA/CD.

    • Ethernet/IEEE 802.3, frame format, nomenclature, historical evolution.

    • Wireless networks, IEEE 802.11 - basic concepts. Hidden terminal problem, CSMA/CA.



  • James F. Kurose and Keith W. Ross: Computer Networking: A Top-Down Approach, Seventh Edition, Pearson, 2017, ISBN 0-13-359414-9.