Training/coursera.org/comnetworks-003

Source: https://class.coursera.org/comnetworks-003/wiki/syllabus


 * University of Washington

= Computer Networks =
 * by David Wetherall, Arvind Krishnamurthy, John Zahorjan

Overview

 * Computer networks from ISPs to WiFi and cellular networks are a key part of the information economy. These networks are the foundation for the Web, and they enable companies such as Google, Facebook and Amazon. This course introduces the fundamental problems of computer networking, from sending bits over wires to running distributed applications. For each problem, we explore the design strategies that have proven valuable in practice. Topics include error detection and correction, multiple-access, bandwidth allocation, routing, internetworking, reliability, quality of service, naming, content delivery, and security. As we cover these topics, you will learn how the internals of the Internet work to support the Web and other networked applications. You will develop a detailed understanding of widely-used networking technologies such as TCP/IP, HTTP, 802.11, Ethernet, and DNS.

Topics Covered

 * We progress through the following topics week by week.

Introduction, Protocols, Layered Model

 * Network components
 * Uses of networks
 * Traceroute and socket API
 * Protocols and layering
 * Reference models (Internet, OSI)
 * History of the internet

Physical and Direct Link Layer

 * Simple link models (latency, bandwidth-delay product)
 * Media and signals
 * Modulation schemes (baseband, passband)
 * Fundamental limits (Shannon)
 * Framing
 * Error detection schemes (checksum, CRC)
 * Error correction schemes (Hamming)

Retransmissions, Multiple access, Switching

 * Retransmissions (ARQ)
 * Multiplexing schemes (TDM. FDM)
 * Random access / Ethernet (CSMA family)
 * Wireless access / 802.11
 * Contention-free access / Token Ring
 * LAN switching (switches vs. hubs, spanning tree, backward learning)

Network Layer and Internetworking

 * Datagram and virtual circuit models (IP, MPLS)
 * IP addressing and forwarding (prefixes, longest matching prefix)
 * IP helpers: ARP, DHCP
 * Internetworking (fragmentation, path MTU discovery, ICMP)
 * IPv4 and IPv6
 * Network Address Translation (NAT)

Routing

 * Shortest cost routing model
 * Dijkstra's algorithm
 * Flooding
 * Distance Vector and Link-state
 * Equal-cost multi-path routing
 * Hierarchical routing (prefixes, aggregation, subnets)
 * Multiple parties and policy (BGP)

Transport Layer, Reliable Transport

 * Sockets, ports and service APIs
 * Reliable and unreliable delivery (TCP, UDP)
 * Connection establishment and teardown
 * Flow control and sliding windows
 * Retransmission timeouts

Congestion Control

 * Fairness and Efficiency
 * Additive Increase Multiplicative Decrease (AIMD)
 * TCP congestion control (slow start, fast retransmission and recovery)
 * Congestion avoidance (ECN)

Web and Content Distribution

 * Naming (DNS)
 * Web protocols (HTTP, caching)
 * Content Distribution Networks (CDNs)
 * Peer-to-Peer (BitTorrent)

Quality of Service and Real-Time Apps

 * Streaming media and Conferencing
 * Scheduling disciplines (FIFO, WFQ)
 * Traffic shaping with Token Buckets
 * Differentiated Services
 * Rate and Delay Guarantees

Network Security [Optional]

 * Encryption for Confidentiality and Authenticity
 * Web security (SSL, DNSSEC)
 * Wireless security (802.11i)
 * Firewalls and Virtual Private Networks (VPNs)
 * Distributed Denial of Service (DDOS)