Teaching Networking

ECE 4436 undergraduate and ECE 9303 graduate

Networking: Principles, Protocols and Architecture

How the Internet works, from the applications you use down to the links beneath them, taught through interactive figures, real traffic in Wireshark and networks you build yourself in Mininet.

Course content

Tracing from London, Ontario.

About the course

The course follows the Internet from the top down: the applications people use, the transport that carries their data reliably, the routing that finds a path across the world, the links that move bits between neighbours, and the data centres and wireless networks at the edges.

Each chapter is organized around a single question. A topic title does not reveal whether you have mastered the material; a question does, because you can always test whether you can answer it.

Offered as
ECE 4436, undergraduate
ECE 9303, graduate
Instructor
Fadi AlMahamid, Ph.D.
Content
7 chapters, 40 learning outcomes
Textbook
Kurose and Ross, Computer Networking: A Top-Down Approach
Lecture slides
Enrolled students, with a username and password

Course content

The seven chapters follow a packet down the protocol stack, from the application layer to the link layer, and then out to the data centre and the wireless edge.

  1. Chapter 1

    Computer Networks and the Internet

    What is the Internet made of, and where does the time go?

    Hosts, links, packet switching, the four delays, and layering.

    Learning outcomes

    • Describe what the Internet is made of, and what it does for the programs running on it.
    • Identify hosts, access networks, and the physical media that connect them.
    • Explain packet switching, store-and-forward, and how a queue forms.
    • Explain why the Internet is a hierarchy of separately owned, interconnected networks.
    • Compute the four delays, traffic intensity, and end-to-end throughput.
    • Explain layering and encapsulation as the way a huge system stays manageable.
    Slides for chapter 1
  2. Chapter 2

    The Application Layer

    How does your program talk to a program on another machine?

    The Web, naming, mail, sockets, and getting content to millions of people.

    Learning outcomes

    • Explain how a network application is built from processes, sockets, and a transport service.
    • Read a real HTTP request and response, and say what every line of it does.
    • Trace a name through the Domain Name System hierarchy to an address.
    • Compare the push protocol that sends mail with the pull protocols that fetch it.
    • Compute response times, link utilization, and how long a file takes to reach many people.
    • Write a client and a server over both transport protocols, and serve a web page from your own code.
    Slides for chapter 2
  3. Chapter 3

    The Transport Layer

    How do bytes arrive intact over a network that loses them?

    Multiplexing, reliable transfer, connection setup, and congestion control.

    Learning outcomes

    • Explain what a transport protocol adds to a network that only carries packets between hosts.
    • Trace an arriving segment to the one socket it belongs to, under both transport protocols.
    • Read a datagram header, and compute the checksum that says whether it arrived intact.
    • Build a reliable protocol over a channel that corrupts and loses, and compute what each version costs.
    • Dissect a connection: how it opens, how it recovers a lost segment, and how it is kept from flooding the receiver.
    • Judge whether a congestion-control algorithm shares a bottleneck fairly, and what happens to one that does not.
    Slides for chapter 3
  4. Chapter 4

    The Network Layer and Routing

    How does a packet find a machine it has never met?

    Addresses, forwarding, routing algorithms, and what is inside a router.

    Learning outcomes

    • Distinguish the job of deciding where traffic should go from the job of moving it there.
    • Trace a datagram through a router, from the arriving bit to the outgoing link.
    • Compute a subnet plan for a given address block, and read any address as a network and a host.
    • Derive the paths a network settles on, by both families of routing algorithm.
    • Explain why routing between networks is decided by policy rather than by distance.
    • Program a forwarding table as match-plus-action rules, and say what moves when the control plane is centralized.
    Slides for chapter 4
  5. Chapter 5

    Link Layer Services and Protocols

    How do machines sharing one wire take turns without colliding?

    Error detection, multiple access, Ethernet, switches, and building a local network.

    Learning outcomes

    • Explain what a link-layer protocol must do that no layer above it can do for itself.
    • Compute the check bits that let a receiver tell a corrupted frame from an intact one.
    • Compare the three families of protocol that let many machines share one channel.
    • Trace a frame across two subnets, naming which addresses change at each hop and which do not.
    • Distinguish a switch from a router by what each one reads, learns, and forwards.
    • Design a local network with separated broadcast domains, and defend the boundaries you drew.
    Slides for chapter 5
  6. Chapter 6

    Cloud Networking Principles

    What changes when the network lives inside one building?

    Data center topologies, sharing infrastructure, and the links between data centers.

    Learning outcomes

    • Explain what changes about a network when one operator owns every link, host and switch in it.
    • Compute the oversubscription and bisection bandwidth of a data center topology, and say what it can carry.
    • Justify the transport and link mechanisms a data center uses in place of the ones the Internet uses.
    • Isolate one tenant's traffic on a fabric shared by thousands, and say what enforces the boundary.
    • Plan the connection between two data centers a continent apart, and say what the distance costs.
    Slides for chapter 6
  7. Chapter 7

    Wireless Communications and Mobility

    What breaks when the wire is gone and the host moves?

    Wireless links, Wi-Fi network design, and staying reachable while moving.

    Learning outcomes

    • Compute what a link's signal-to-noise ratio does to its error rate and to the bit rate it can sustain.
    • Trace a station from powering on to sending its first frame, and say what it did at each step.
    • Design a wireless network for a floor of a building, and defend the channel plan you chose.
    • Describe the elements of a cellular network and the state each one holds about a device.
    • Explain how a packet reaches a host that has moved, and what breaks if nothing is done about it.
    Slides for chapter 7

Lecture slides

The lectures are interactive decks with animated protocol figures that you can play, pause and step through, explorable diagrams and runnable code. They are available to enrolled students, who sign in with the username and password provided by the instructor.

Reading

Required textbook

Computer Networking: A Top-Down Approach

James F. Kurose and Keith W. Ross, 8th edition, Pearson, 2020

Every chapter of this course is a chapter of this book, in this order. The lectures follow it closely enough that you can read ahead.

Further reading

  • Computer Networks

    Tanenbaum and Wetherall, 5th edition, 2010

    A second voice on the same material. Reach for it when a Kurose explanation does not land.

  • TCP/IP Illustrated, Volume 1

    Fall and Stevens, 2011

    What the protocols actually put on the wire, byte by byte. The reference for the lab work.

  • Data and Computer Communications

    Stallings, 2002

    Stronger on the physical and link layers than either of the others.