Computer Networks 7-6: TCP Slow Start
Computer Networks
by
David Wetherall,
Arvind Krishnamurthy,
John Zahorjan
University of Washingon
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
Optional:
Network Security
Encryption for Confidentiality and
Authenticity
Web security (
SSL,
DNSSEC)
Wireless security (
802.11i)
Firewalls and
Virtual Private Networks (
VPNs)
Distributed Denial of Service (
DDOS)
https://class.coursera.org/comnetworks-002/class/index