
- James F. Kurose |
- Keith Ross |
Title overview
For Introduction to Networking courses.
A proven top-down, layered approach to computer networking
Computer Networking introduces this complex subject in a top-down manner, proceeding from the application layer toward the physical layer and motivating students with important concepts early in their study. While more precise and analytical than other texts, its clear and accessible presentation helps students build a solid foundation without extensive prior knowledge of programming or mathematics.
The 9th Edition addresses the introduction of Wi-Fi-6, 5G cellular networks, and the software-i-zation of cellular networks, all of which have driven more rapid change in wireless and mobile networking since the previous edition. It also updates many sections throughout to reflect changes across the breadth of networking. Revisions include new coverage of HTTP/3 protocol and QUIC, new material on content distribution networks and streaming services, updated discussion of network security, and much more.
Hallmark features of this title
- A balanced presentation focuses on the Internet as a specific motivating example of a network, and introduces students to protocols in a more theoretical context.
- Principles and Practice boxes demonstrate real-world applications of the principles studied.
- Case History boxes help tell the story of the history and development of computer networking.
- Application programming development material is included, along with numerous programming assignments.
- A highly developed art program enhances the descriptions of concepts.
- The author-maintained website offers additional resources and exercises that allow students to generate (and view solutions for) problems similar to those in the text for additional practice.
New and updated features of this title
- Evolutions and updates for how user applications communicate with small-scaler servers and large datacenters operated by “hyperscalars” or large content distribution networks are provided.
- The new HTTP/3 protocol, QUIC, content distribution networks, and “over-the-top" streaming services are now covered.
- Newer congestion control protocols (BBR in particular) are now covered.
- Updates include improvements to the network-layer data plane and control plane, featuring new material on SDN, Google's ORION network control plane, and the software-ization of network control.
- Dramatic changes inwireless networking are discussed: expanded coverage of wireless channel properties and the wireless physical layer; wireless access networks (the WiFi wireless LAN, and the 5G Radio Access Network); link-layer scheduling; network discovery and access; device energy optimizations; the 5G Core network and the software-i-zation of its functions and mobility; Bluetooth, LEOS satellite, and IoT networks.
- Updated coverage on network security includes new coverage of Transport Layer Security 1.3, WiFi WPA3 security, and authentication and key agreement in WiFi and 5G networks.
Table of contents
1: Computer Networks and the Internet
- Introduction
- 1.1 What Is the Internet?
- 1.1.1 A Nuts-and-Bolts Description
- 1.1.2 A Services Description
- 1.1.3 What Is a Protocol?
- 1.2 The Network Edge
- 1.2.1 Access Networks
- 1.2.2 Physical Media
- 1.3 The Network Core
- 1.3.1 Packet Switching
- 1.3.2 Circuit Switching
- 1.3.3 A Network of Networks
- 1.4 Delay, Loss, and Throughput in Packet-Switched Networks
- 1.4.1 Overview of Delay in Packet-Switched Networks
- 1.4.2 Queuing Delay and Packet Loss
- 1.4.3 End-to-End Delay
- 1.4.4 Throughput in Computer Networks
- 1.5 Protocol Layers and Their Service Models
- 1.5.1 Layered Architecture
- 1.5.2 Encapsulation
- 1.6 Networks Under Attack
- 1.7 History of Computer Networking and the Internet
- 1.7.1 The Development of Packet Switching: 1961-1972
- 1.7.2 Proprietary Networks and Internetworking: 1972-1980
- 1.7.3 A Proliferation of Networks: 1980-1990
- 1.7.4 The Internet Explosion: The 1990s
- 1.7.5 The New Millennium
- 1.8 Summary
- Homework Problems and Questions
- Problems
- Wireshark Lab
- Interview: Leonard Kleinrock
2: Application Layer
- Introduction
- 2.1 Principles of Network Applications
- 2.1.1 Network Application Architectures
- 2.1.2 Processes Communicating
- 2.1.3 Transport Services Available to Applications
- 2.1.4 Transport Services Provided by the Internet
- 2.1.5 Application-Layer Protocols
- 2.1.6 Network Applications Covered in This Book
- 2.2 The Web and HTTP
- 2.2.1 Overview of HTTP
- 2.2.2 Non-Persistent and Persistent Connections
- 2.2.3 HTTP Message Format
- 2.2.4 User-Server Interaction: Cookies
- 2.2.5 Web Caching
- 2.2.6 HTTP/2
- 2.2.7 HtTP/3 and QUIC
- 2.3 Electronic Mail in the Internet
- 2.3.1 SMTP
- 2.3.2 Mail Message Formats
- 2.3.3 Mail Access Protocols
- 2.4 DNS: The Internet’s Directory Service
- 2.4.1 Services Provided by DNS
- 2.4.2 Overview of How DNS Works
- 2.4.3 DNS Records and Messages
- 2.5 Video Streaming and Content Distribution Networks
- 2.5.1 Internet Video
- 2.5.2 HTTP Streaming and DASH
- 2.5.3 Content Distribution Networks
- 2.5.4 Case Studies: Netflix and YouTube
- 2.6 Socket Programming: Creating Network Applications
- 2.6.1 Socket Programming with UDP
- 2.6.2 Socket Programming with TCP
- 2.6.3 Socket Programming with QUIC
- 2.7 Summary
- Homework Problems and Questions
- Problems
- Socket Programming Assignments
- Wireshark Labs: HTTP, DNS
- Interview: Paul Mockapetris
3: Transport Layer
- Introduction
- 3.1 Introduction and Transport-Layer Services
- 3.1.1 Relationship Between Transport and Network Layers
- 3.1.2 Overview of the Transport Layer in the Internet
- 3.2 Multiplexing and Demultiplexing
- 3.3 Connectionless Transport: UDP
- 3.3.1 UDP Segment Structure
- 3.3.2 UDP Checksum
- 3.4 Principles of Reliable Data Transfer
- 3.4.1 Building a Reliable Data Transfer Protocol
- 3.4.2 Pipelined Reliable Data Transfer Protocols
- 3.4.3 Go-Back-N (GBN)
- 3.4.4 Selective Repeat (SR)
- 3.5 Connection-Oriented Transport: TCP
- 3.5.1 The TCP Connection
- 3.5.2 TCP Segment Structure
- 3.5.3 Round-Trip Time Estimation and Timeout
- 3.5.4 Reliable Data Transfer
- 3.5.5 Flow Control
- 3.5.6 TCP Connection Management
- 3.6 Principles of Congestion Control
- 3.6.1 The Causes and the Costs of Congestion
- 3.6.2 End-to-end and Network-assisted Approaches to Congestion Control
- 3.7 TCP Congestion Control
- 3.7.1 Classic End-End TCP Congestion Control
- 3.7.2 More Recent End-End TCP Congestion Control Algorithms
- 3.7.3 Network-Assisted Explicit Congestion Notification
- 3.7.4 Fairness
- 3.8 Evolution of Transport-Layer Functionality
- 3.9 Summary
- Homework Problems and Questions
- Problems
- Programming Assignments
- Wireshark Labs: Exploring TCP, UDP
- Interview: Van Jacobson
4: The Network Layer: Data Plane
- Introduction
- 4.1 Overview of Network Layer
- 4.1.1 Forwarding and Routing: The Network Data and Control Planes
- 4.1.2 Network Service Models
- 4.2 What’s Inside a Router?
- 4.2.1 Input Port Processing and Destination-Based Forwarding
- 4.2.2 Switching
- 4.2.3 Output Port Processing
- 4.2.4 Where Does Queuing Occur?
- 4.2.5 Packet Scheduling
- 4.3 The Internet Protocol (IP): IPv4, Addressing, IPv6, and More
- 4.3.1 IPv4 Datagram Format
- 4.3.2 IPv4 Addressing
- 4.3.3 Network Address Translation (NAT)
- 4.3.4 IPv6
- 4.4 Generalized Forwarding and SDN
- 4.4.1 Match
- 4.4.2 Action
- 4.4.3 OpenFlow Examples of Match-plus-action in Action
- 4.4.4 Middleboxes
- 4.5 Architectural Principles of the Internet
- 4.6 Summary
- Homework Problems and Questions
- Problems
- Wireshark Lab: IP
- Interview: Vinton G. Cerf
5: The Network Layer: Control Plane
- Introduction
- 5.1 Introduction
- 5.2 Routing Algorithms
- 5.2.1 The Link-State (LS) Routing Algorithm
- 5.2.2 The Distance-Vector (DV) Routing Algorithm
- 5.3 Intra-AS Routing in the Internet: OSPF
- 5.4 Routing Among the ISPs: BGP
- 5.4.1 The Role of BGP
- 5.4.2 Advertising BGP Route Information
- 5.4.3 Determining the Best Routes
- 5.4.4 IP-Anycast
- 5.4.5 Routing Policy
- 5.4.6 Putting the Pieces Together: Obtaining Internet Presence
- 5.5 The SDN Control Plane
- 5.5.1 The SDN Control Plane: SDN Controller and SDN Network-Control Applications
- 5.5.2 OpenFlow Protocol
- 5.5.3 Data and Control Plane Interaction: An Example
- 5.5.4 SDN: Past and Future
- 5.6 ICMP: The Internet Control Message Protocol
- 5.7 Network Management, SNMP, and NETCONF/YANG
- 5.7.1 The Network Management Framework
- 5.7.2 The Simple Network Management Protocol (SNMP) and the Management Information Base (MIB)
- 5.7.3 The Network Configuration Protocol (NETCONF) and YANG
- 5.8 Summary
- Homework Problems and Questions
- Problems
- Socket Programming Assignment 5: ICMP Ping
- Programming Assignment: Routing
- Wireshark Lab: ICMP
- Interview: Jennifer Rexford
6: The Link Layer and LANs
- Introduction
- 6.1 Introduction to the Link Layer
- 6.1.1 The Services Provided by the Link Layer
- 6.1.2 Where Is the Link Layer Implemented?
- 6.2 Error-Detection and -Correction Techniques
- 6.2.1 Parity Checks
- 6.2.2 Checksumming Methods
- 6.2.3 Cyclic Redundancy Check (CRC)
- 6.3 Multiple Access Links and Protocols
- 6.3.1 Channel Partitioning Protocols
- 6.3.2 Random Access Protocols
- 6.3.3 Taking-Turns Protocols
- 6.3.4 DOCSIS: The Link-Layer Protocol for Cable Internet Access
- 6.4 Switched Local Area Networks
- 6.4.1 Link-Layer Addressing and ARP
- 6.4.2 Ethernet
- 6.4.3 Link-Layer Switches
- 6.4.4 Virtual Local Area Networks (VLANs)
- 6.5 Link Virtualization: A Network as a Link Layer
- 6.5.1 Multiprotocol Label Switching (MPLS)
- 6.5.2 VXLANs: Ethernet Over IP
- 6.6 Data Center Networking
- 6.6.1 Data Center Architectures
- 6.6.2 Trends in Data Center Networking
- 6.7 Retrospective: A Day in the Life of a Web Page Request
- 6.7.1 Getting Started: DHCP, UDP, IP, and Ethernet
- 6.7.2 Still Getting Started: DNS and ARP
- 6.7.3 Still Getting Started: Intra-Domain Routing to the DNS Server
- 6.7.4 Web Client-Server Interaction: TCP and HTTP
- 6.8 Summary
- Homework Problems and Questions
- Problems
- Wireshark Labs: Ethernet and Home Networking
- Interview: Vahdat
7: Wireless and Mobile Networks
- Introduction
- 7.1 Introduction
- 7.2 The Physical Layer in Wireless Networks
- 7.2.1 Characteristics of wireless Channel
- 7.2.2 Coding and Modulation: from bits to symbols to waveforms
- 7.3 The Wireless Access Network
- 7.3.1 Sharing the Wireless Channel
- 7.3.2 WiFi: the 802.11 Wireless LAN
- 7.3.3 The 5G Radio Access Network
- 7.3.4 Discovery: Attaching to a Wireless Network
- 7.3.5 Scheduling Transmissions over the RAN/WLAN
- 7.3.6 Energy Considerations: wake/sleep
- 7.4 The Wireless Core Network
- 7.4.1 The 5G Core and Network Functions
- 7.4.2 User-plane Function
- 7.4.3 User identity, registration, and session establishment
- 7.5 Mobility
- 7.5.1 Mobility Principles
- 7.5.2 Mobility in a WiFi Network
- 7.5.3 Mobility in a 5G Network
- 7.6 Bluetooth, Satellite and IoT Networks
- 7.6.1 Bluetooth Networks
- 7.6.2 Satellite Networks
- 7.6.3 Internet of Things (IoT) Networks
- 7.7 Summary
- Homework Problems and Questions
- Problems
- Programming Assignment: Implementing a 4G/5G RAN scheduler
- Wireshark Labs: WiFi and 4/5G
- Interview: Deborah Estrin
8: Security in Computer Networks
- Introduction
- 8.1 What Is Network Security?
- 8.2 Principles of Cryptography
- 8.2.1 Symmetric Key Cryptography
- 8.2.2 Public Key Encryption
- 8.3 Message Integrity and Digital Signatures
- 8.3.1 Cryptographic Hash Functions
- 8.3.2 Message Authentication Code
- 8.3.3 Digital Signatures
- 8.4 End-Point Authentication
- 8.5 Securing E-Mail
- 8.5.1 Secure E-Mail
- 8.5.2 PGP
- 8.6 Securing TCP and HTTP Connections: TLS
- 8.6.1 The Big Picture
- 8.6.2 A More Complete Picture: TLS 1.3
- 8.7 Network-Layer Security: IPsec and Virtual Private Networks
- 8.7.1 IPsec and Virtual Private Networks (VPNs)
- 8.7.2 The AH and ESP Protocols
- 8.7.3 Security Associations
- 8.7.4 The IPsec Datagram
- 8.7.5 IKE: Key Management in IPsec
- 8.8 Securing Wireless LANs and 4G/5G Cellular Networks
- 8.8.1 Authentication and Key Agreement in 802.11 Wireless LANs
- 8.8.2 Authentication and Key Agreement in 5G Cellular Networks
- 8.9 Operational Security: Firewalls and Intrusion Detection Systems
- 8.9.1 Firewalls
- 8.9.2 Intrusion Detection Systems
- 8.10 Summary
- Homework Problems and Questions
- Problems
- Wireshark Lab: TLS, IPsec Labs
- Interview: Cranor
Author bios
About our authors
Jim Kurose is a Distinguished University Professor in the College of Information and Computer Sciences at the University of Massachusetts Amherst, where he has been since receiving his PhD in computer science from Columbia University. He received a BA in physics from Wesleyan University. He has held a number of visiting scientist positions in the US and abroad, including IBM Research, INRIA and the Sorbonne University in France. From 2015-2019, Jim served as Assistant Director at the US National Science Foundation, where he led the Directorate of Computer and Information Science and Engineering, and in 2018 served as an Assistant Director in the White House Office of Science and Technology Policy.
Jim is proud to have mentored and taught an amazing group of students, and to have received a number of awards for his research, teaching and service, including the IEEE Infocom Award, the ACM SIGCOMM Lifetime Achievement Award, the ACM Sigcomm Test of Time Award, the IEEE Computer Society Taylor Booth Education Medal, and the CRA Distinguished Service Award. Dr. Kurose is a former Editor-in-Chief of IEEE Transactions on Communications and of IEEE/ACM Transactions on Networking. He has served as Technical Program Co-Chair for IEEE Infocom, ACM SIGCOMM, ACM Internet Measurement Conference and ACM SIGMETRICS. He is a Fellow of the IEEE and ACM, and a member of the National Academy of Engineering. His research interests include network protocols and architecture, network measurement, and multimedia communication.
Keith Ross is a Professor of Computer Science at NYU Abu Dhabi. Previously he was Dean of Computer Science, Data Science, and Engineering at NYU Shanghai (2013-2023), Leonard J. Shustek Chair Professor in the Computer Science and Engineering Department at NYU (2003-2013), Professor of Computer Science at Eurecom Institute (1998-2003), and Professor of Systems Engineering at University of Pennsylvania (1985-1998). He received a B.S.E.E from Tufts University, a M.S.E.E. from Columbia University and a Ph.D. in Computer and Control Engineering from The University of Michigan. Keith Ross is also the co-founder and original CEO of Wimba, which developed online multimedia applications for e-learning and was acquired by Blackboard in 2010.
Professor Ross's research interests have been in modeling and measurement of computer networks, peer-to-peer systems, content distribution networks, social networks and privacy. He is currently working in deep reinforcement learning. He is an ACM Fellow, an IEEE Fellow, recipient of the Infocom 2009 Best Paper Award and recipient of 2011 and 2008 Best Paper Awards for Multimedia Communications (awarded by IEEE Communications Society). He has served on numerous journal editorial boards and conference program committees,including IEEE/ACM Transactions on Networking,