ECE 358: Computer Networks

Albert Wasef / Sagar Naik

Estimated study time: 3 minutes

Table of contents

Sources and References

Equivalent UW courses — CS 456/656 (Computer Networks) Primary textbook — James F. Kurose and Keith W. Ross, Computer Networking: A Top-Down Approach, 8th edition (7th and 6th also acceptable), Pearson Supplementary references — Andrew S. Tanenbaum and David J. Wetherall, Computer Networks, 5th ed., Pearson, 2011; Larry L. Peterson and Bruce S. Davie, Computer Networks: A Systems Approach, 6th ed., Morgan Kaufmann, 2021.

Equivalent UW Courses

ECE 358 and CS 456/656 are close siblings — both use the Kurose-Ross top-down approach and cover essentially the same five-layer stack (application, transport, network, link, physical) in the same order. CS 456 and CS 656 are a single cross-listed course at UW: identical lectures and exam, just an undergrad/grad number split. A student who has finished ECE 358 has effectively the same content footprint as CS 456/656, modulo small differences in lab focus and pacing.

What This Course Adds Beyond the Equivalents

Relative to CS 456/656, ECE 358 leans slightly more on the engineering and lab side: the socket-programming labs build concrete client-server and reliable-transport implementations, and link-layer and physical-layer issues (framing, error detection, bit-level encoding) tend to get more airtime because electrical and computer engineers care about the wire. What ECE 358 generally omits compared with CS 456/656 is the heavier analytical apparatus that the CS version weaves in for graduate students — queueing analysis of MAC protocols and more research-flavoured material on congestion control, data-centre networks, and SDN. Wireless, security, and multimedia are typically squeezed into the end of term if time permits.

Topic Summary

Chapter 1: Introduction

The Internet as a network of networks; circuit vs packet switching; end-system vs core distinctions; delay components (processing, queueing, transmission, propagation) and throughput. Sets up the layered architecture and vocabulary used for the rest of the term.

Chapter 2: Application Layer

Client-server and peer-to-peer paradigms; HTTP (persistent vs non-persistent, cookies, caching), SMTP/IMAP for email, DNS hierarchy and caching, and video streaming via CDNs. Socket programming with TCP and UDP is the hands-on complement.

Chapter 3: Transport Layer

Multiplexing and demultiplexing with ports; UDP as a thin wrapper over IP; principles of reliable data transfer from stop-and-wait through Go-Back-N and Selective Repeat; TCP connection management, flow control, and congestion control (AIMD, slow start, fast retransmit). Bandwidth-delay product \( B \cdot \text{RTT} \) motivates why window-based protocols scale.

Chapters 4 and 5: Network Layer

Data plane (forwarding, IPv4 addressing, subnetting, NAT, ICMP, IPv6) and control plane (intra-domain routing with Dijkstra and distance-vector, inter-domain routing with BGP). Also introduces SDN as a clean-slate reorganisation of the forwarding/control split.

Error detection and correction (parity, CRC), multiple access protocols (ALOHA, CSMA/CD, CSMA/CA), switched LANs and Ethernet, ARP, and an overview of 802.11 wireless. The link layer is where the physical medium meets the packet abstraction, and where MAC efficiency becomes a modelling problem.

Back to top