Foreword |
|
xxv | |
Preface to the Second Edition |
|
xxvii | |
Adapted Preface to the First Edition |
|
xxxiii | |
|
|
1 | (30) |
|
1.1 Architectural Principles |
|
|
2 | (6) |
|
1.1.1 Packets, Connections, and Datagrams |
|
|
3 | (3) |
|
1.1.2 The End-to-End Argument and Fate Sharing |
|
|
6 | (1) |
|
1.1.3 Error Control and Flow Control |
|
|
7 | (1) |
|
1.2 Design and Implementation |
|
|
8 | (5) |
|
|
8 | (2) |
|
1.2.2 Multiplexing, Demultiplexing, and Encapsulation in Layered Implementations |
|
|
10 | (3) |
|
1.3 The Architecture and Protocols of the TCP/IP Suite |
|
|
13 | (6) |
|
1.3.1 The ARPANET Reference Model |
|
|
13 | (3) |
|
1.3.2 Multiplexing, Demultiplexing, and Encapsulation in TCP/IP |
|
|
16 | (1) |
|
|
17 | (2) |
|
1.3.4 Names, Addresses, and the DNS |
|
|
19 | (1) |
|
1.4 Internets, Intranets, and Extranets |
|
|
19 | (1) |
|
1.5 Designing Applications |
|
|
20 | (2) |
|
|
20 | (1) |
|
|
21 | (1) |
|
1.5.3 Application Programming Interfaces (APIs) |
|
|
22 | (1) |
|
1.6 Standardization Process |
|
|
22 | (2) |
|
1.6.1 Request for Comments (RFC) |
|
|
23 | (1) |
|
|
24 | (1) |
|
1.7 Implementations and Software Distributions |
|
|
24 | (1) |
|
1.8 Attacks Involving the Internet Architecture |
|
|
25 | (1) |
|
|
26 | (2) |
|
|
28 | (3) |
|
Chapter 2 The Internet Address Architecture |
|
|
31 | (48) |
|
|
31 | (1) |
|
2.2 Expressing IP Addresses |
|
|
32 | (2) |
|
2.3 Basic IP Address Structure |
|
|
34 | (12) |
|
2.3.1 Classful Addressing |
|
|
34 | (2) |
|
|
36 | (3) |
|
|
39 | (2) |
|
2.3.4 Variable-Length Subnet Masks (VLSM) |
|
|
41 | (1) |
|
2.3.5 Broadcast Addresses |
|
|
42 | (1) |
|
2.3.6 IPv6 Addresses and Interface Identifiers |
|
|
43 | (3) |
|
|
46 | (4) |
|
|
47 | (1) |
|
|
48 | (2) |
|
2.5 Special-Use Addresses |
|
|
50 | (12) |
|
2.5.1 Addressing IPv4/IPv6 Translators |
|
|
52 | (1) |
|
2.5.2 Multicast Addresses |
|
|
53 | (1) |
|
2.5.3 IPv4 Multicast Addresses |
|
|
54 | (3) |
|
2.5.4 IPv6 Multicast Addresses |
|
|
57 | (5) |
|
|
62 | (1) |
|
|
62 | (3) |
|
|
62 | (3) |
|
|
65 | (1) |
|
2.7 Unicast Address Assignment |
|
|
65 | (5) |
|
2.7.1 Single Provider/No Network/Single Address |
|
|
66 | (1) |
|
2.7.2 Single Provider/Single Network/Single Address |
|
|
67 | (1) |
|
2.7.3 Single Provider/Multiple Networks/Multiple Addresses |
|
|
67 | (1) |
|
2.7.4 Multiple Providers/Multiple Networks/Multiple Addresses (Multihoming) |
|
|
68 | (2) |
|
2.8 Attacks Involving IP Addresses |
|
|
70 | (1) |
|
|
71 | (1) |
|
|
72 | (7) |
|
|
79 | (86) |
|
|
79 | (1) |
|
3.2 Ethernet and the IEEE 802 LAN/MAN Standards |
|
|
80 | (14) |
|
3.2.1 The IEEE 802 LAN/MAN Standards |
|
|
82 | (2) |
|
3.2.2 The Ethernet Frame Format |
|
|
84 | (5) |
|
3.2.3 802.1 p/q: Virtual LANs and QoS Tagging |
|
|
89 | (3) |
|
3.2.4 802.1AX: Link Aggregation (Formerly 802.3ad) |
|
|
92 | (2) |
|
3.3 Full Duplex, Power Save, Autonegotiation, and 802.1X Flow Control |
|
|
94 | (4) |
|
|
96 | (1) |
|
3.3.2 Wake-on LAN (WoL), Power Saving, and Magic Packets |
|
|
96 | (2) |
|
3.3.3 Link-Layer Flow Control |
|
|
98 | (1) |
|
|
98 | (13) |
|
3.4.1 Spanning Tree Protocol (STP) |
|
|
102 | (9) |
|
3.4.2 802.1ak: Multiple Registration Protocol (MRP) |
|
|
111 | (1) |
|
3.5 Wireless LANs---IEEE 802.11 (Wi-Fi) |
|
|
111 | (19) |
|
|
113 | (6) |
|
3.5.2 Power Save Mode and the Time Sync Function (TSF) |
|
|
119 | (1) |
|
3.5.3 802.11 Media Access Control |
|
|
120 | (3) |
|
3.5.4 Physical-Layer Details: Rates, Channels, and Frequencies |
|
|
123 | (6) |
|
|
129 | (1) |
|
3.5.6 Wi-Fi Mesh (802.11s) |
|
|
130 | (1) |
|
3.6 Point-to-Point Protocol (PPP) |
|
|
130 | (15) |
|
3.6.1 Link Control Protocol (LCP) |
|
|
131 | (6) |
|
|
137 | (2) |
|
3.6.3 Compression Control Protocol (CCP) |
|
|
139 | (1) |
|
|
140 | (1) |
|
3.6.5 Network Control Protocols (NCPs) |
|
|
141 | (1) |
|
|
142 | (1) |
|
|
143 | (2) |
|
|
145 | (3) |
|
|
148 | (1) |
|
|
149 | (5) |
|
3.9.1 Unidirectional Links |
|
|
153 | (1) |
|
3.10 Attacks on the Link Layer |
|
|
154 | (2) |
|
|
156 | (1) |
|
|
157 | (8) |
|
Chapter 4 ARP: Address Resolution Protocol |
|
|
165 | (16) |
|
|
165 | (1) |
|
|
166 | (3) |
|
4.2.1 Direct Delivery and ARP |
|
|
167 | (2) |
|
|
169 | (1) |
|
|
170 | (1) |
|
|
171 | (3) |
|
|
171 | (2) |
|
4.5.2 ARP Request to a Nonexistent Host |
|
|
173 | (1) |
|
|
174 | (1) |
|
|
174 | (1) |
|
4.8 Gratuitous ARP and Address Conflict Detection (ACD) |
|
|
175 | (2) |
|
|
177 | (1) |
|
4.10 Using ARP to Set an Embedded Device's IPv4 Address |
|
|
178 | (1) |
|
4.11 Attacks Involving ARP |
|
|
178 | (1) |
|
|
179 | (1) |
|
|
179 | (2) |
|
Chapter 5 The Internet Protocol (IP) |
|
|
181 | (52) |
|
|
181 | (2) |
|
5.2 IPv4 and IPv6 Headers |
|
|
183 | (11) |
|
|
183 | (3) |
|
5.2.2 The Internet Checksum |
|
|
186 | (2) |
|
5.2.3 DS Field and ECN (Formerly Called the ToS Byte or IPv6 Traffic Class) |
|
|
188 | (4) |
|
|
192 | (2) |
|
5.3 IPv6 Extension Headers |
|
|
194 | (14) |
|
|
196 | (4) |
|
|
200 | (3) |
|
|
203 | (5) |
|
|
208 | (7) |
|
|
208 | (1) |
|
5.4.2 IP Forwarding Actions |
|
|
209 | (1) |
|
|
210 | (5) |
|
|
215 | (1) |
|
|
215 | (5) |
|
5.5.1 The Basic Model: Bidirectional Tunneling |
|
|
216 | (1) |
|
5.5.2 Route Optimization (RO) |
|
|
217 | (3) |
|
|
220 | (1) |
|
5.6 Host Processing of IP Datagrams |
|
|
220 | (6) |
|
|
220 | (2) |
|
|
222 | (4) |
|
|
226 | (1) |
|
|
226 | (2) |
|
|
228 | (5) |
|
Chapter 6 System Configuration: DHCP and Autoconfiguration |
|
|
233 | (66) |
|
|
233 | (1) |
|
6.2 Dynamic Host Configuration Protocol (DHCP) |
|
|
234 | (42) |
|
6.2.1 Address Pools and Leases |
|
|
235 | (1) |
|
6.2.2 DHCP and BOOTP Message Format |
|
|
236 | (2) |
|
6.2.3 DHCP and BOOTP Options |
|
|
238 | (1) |
|
6.2.4 DHCP Protocol Operation |
|
|
239 | (13) |
|
|
252 | (15) |
|
6.2.6 Using DHCP with Relays |
|
|
267 | (4) |
|
6.2.7 DHCP Authentication |
|
|
271 | (2) |
|
6.2.8 Reconfigure Extension |
|
|
273 | (1) |
|
|
273 | (1) |
|
6.2.10 Location Information (LCI and LoST) |
|
|
274 | (1) |
|
6.2.11 Mobility and Handoff Information (MoS and ANDSF) |
|
|
275 | (1) |
|
|
276 | (1) |
|
6.3 Stateless Address Autoconfiguration (SLAAC) |
|
|
276 | (9) |
|
6.3.1 Dynamic Configuration of IPv4 Link-Local Addresses |
|
|
276 | (1) |
|
6.3.2 IPv6 SLAAC for Link-Local Addresses |
|
|
276 | (9) |
|
6.4 DHCP and DNS Interaction |
|
|
285 | (1) |
|
6.5 PPP over Ethernet (PPPoE) |
|
|
286 | (6) |
|
6.6 Attacks Involving System Configuration |
|
|
292 | (1) |
|
|
292 | (1) |
|
|
293 | (6) |
|
Chapter 7 Firewalls and Network Address Translation (NAT) |
|
|
299 | (54) |
|
|
299 | (1) |
|
|
300 | (3) |
|
7.2.1 Packet-Filtering Firewalls |
|
|
300 | (1) |
|
|
301 | (2) |
|
7.3 Network Address Translation (NAT) |
|
|
303 | (13) |
|
7.3.1 Traditional NAT: Basic NAT and NAPT |
|
|
305 | (6) |
|
7.3.2 Address and Port Translation Behavior |
|
|
311 | (2) |
|
|
313 | (1) |
|
7.3.4 Servers behind NATs |
|
|
314 | (1) |
|
7.3.5 Hairpinning and NAT Loopback |
|
|
314 | (1) |
|
|
315 | (1) |
|
7.3.7 Service Provider NAT (SPNAT) and Service Provider IPv6 Transition |
|
|
315 | (1) |
|
|
316 | (18) |
|
7.4.1 Pinholes and Hole Punching |
|
|
317 | (1) |
|
7.4.2 UNilateral Self-Address Fixing (UNSAF) |
|
|
317 | (2) |
|
7.4.3 Session Traversal Utilities for NAT (STUN) |
|
|
319 | (7) |
|
7.4.4 Traversal Using Relays around NAT (TURN) |
|
|
326 | (6) |
|
7.4.5 Interactive Connectivity Establishment (ICE) |
|
|
332 | (2) |
|
7.5 Configuring Packet-Filtering Firewalls and NATs |
|
|
334 | (5) |
|
|
335 | (2) |
|
|
337 | (1) |
|
7.5.3 Direct Interaction with NATs and Firewalls: UPnP, NAT-PMP, and PCP |
|
|
338 | (1) |
|
7.6 NAT for IPv4/IPv6 Coexistence and Transition |
|
|
339 | (6) |
|
7.6.1 Dual-Stack Lite (DS-Lite) |
|
|
339 | (1) |
|
7.6.2 IPv4/IPv6 Translation Using NATs and ALGs |
|
|
340 | (5) |
|
7.7 Attacks Involving Firewalls and NATs |
|
|
345 | (1) |
|
|
346 | (1) |
|
|
347 | (6) |
|
Chapter 8 ICMPv4 and ICMPv6: Internet Control Message Protocol |
|
|
353 | (82) |
|
|
353 | (2) |
|
8.1.1 Encapsulation in IPv4 and IPv6 |
|
|
354 | (1) |
|
|
355 | (6) |
|
|
356 | (2) |
|
|
358 | (2) |
|
8.2.3 Processing of ICMP Messages |
|
|
360 | (1) |
|
|
361 | (19) |
|
8.3.1 Extended ICMP and Multipart Messages |
|
|
363 | (1) |
|
8.3.2 Destination Unreachable (ICMPv4 Type 3, ICMPv6 Type 1) and Packet Too Big (ICMPv6 Type 2) |
|
|
364 | (8) |
|
8.3.3 Redirect (ICMPv4 Type 5, ICMPv6 Type 137) |
|
|
372 | (3) |
|
8.3.4 ICMP Time Exceeded (ICMPv4 Type 11, ICMPv6 Type 3) |
|
|
375 | (4) |
|
8.3.5 Parameter Problem (ICMPv4 Type 12, ICMPv6 Type 4) |
|
|
379 | (1) |
|
8.4 ICMP Query/Informational Messages |
|
|
380 | (15) |
|
8.4.1 Echo Request/Reply (ping) (ICMPv4 Types 0/8, ICMPv6 Types 129/128) |
|
|
380 | (3) |
|
8.4.2 Router Discovery: Router Solicitation and Advertisement (ICMPv4 Types 9, 10) |
|
|
383 | (3) |
|
8.4.3 Home Agent Address Discovery Request/Reply (ICMPv6 Types 144/145) |
|
|
386 | (1) |
|
8.4.4 Mobile Prefix Solicitation/Advertisement (ICMPv6 Types 146/147) |
|
|
387 | (1) |
|
8.4.5 Mobile IPv6 Fast Handover Messages (ICMPv6 Type 154) |
|
|
388 | (1) |
|
8.4.6 Multicast Listener Query/Report/Done (ICMPv6 Types 130/131/132) |
|
|
388 | (2) |
|
8.4.7 Version 2 Multicast Listener Discovery (MLDv2) (ICMPv6 Type 143) |
|
|
390 | (4) |
|
8.4.8 Multicast Router Discovery (MRD) (IGMP Types 48/49/50, ICMPv6 Types 151/152/153) |
|
|
394 | (1) |
|
8.5 Neighbor Discovery in IPv6 |
|
|
395 | (29) |
|
8.5.1 ICMPv6 Router Solicitation and Advertisement (ICMPv6 Types 133, 134) |
|
|
396 | (2) |
|
8.5.2 ICMPv6 Neighbor Solicitation and Advertisement (IMCPv6 Types 135, 136) |
|
|
398 | (3) |
|
8.5.3 ICMPv6 Inverse Neighbor Discovery Solicitation/Advertisement (ICMPv6 Types 141/142) |
|
|
401 | (1) |
|
8.5.4 Neighbor Unreachability Detection (NUD) |
|
|
402 | (1) |
|
8.5.5 Secure Neighbor Discovery (SEND) |
|
|
403 | (4) |
|
8.5.6 ICMPv6 Neighbor Discovery (ND) Options |
|
|
407 | (17) |
|
8.6 Translating ICMPv4 and ICMPv6 |
|
|
424 | (4) |
|
8.6.1 Translating ICMPv4 to ICMPv6 |
|
|
424 | (2) |
|
8.6.2 Translating ICMPv6 to ICMPv4 |
|
|
426 | (2) |
|
8.7 Attacks Involving ICMP |
|
|
428 | (2) |
|
|
430 | (1) |
|
|
430 | (5) |
|
Chapter 9 Broadcasting and Local Multicasting (IGMP and MLD) |
|
|
435 | (38) |
|
|
435 | (1) |
|
|
436 | (5) |
|
9.2.1 Using Broadcast Addresses |
|
|
437 | (2) |
|
9.2.2 Sending Broadcast Datagrams |
|
|
439 | (2) |
|
|
441 | (10) |
|
9.3.1 Converting IP Multicast Addresses to 802 MAC/Ethernet Addresses |
|
|
442 | (2) |
|
|
444 | (2) |
|
9.3.3 Sending Multicast Datagrams |
|
|
446 | (1) |
|
9.3.4 Receiving Multicast Datagrams |
|
|
447 | (2) |
|
9.3.5 Host Address Filtering |
|
|
449 | (2) |
|
9.4 The Internet Group Management Protocol (IGMP) and Multicast Listener Discovery Protocol (MLD) |
|
|
451 | (18) |
|
9.4.1 IGMP and MLD Processing by Group Members ("Group Member Part") |
|
|
454 | (3) |
|
9.4.2 IGMP and MLD Processing by Multicast Routers ("Multicast Router Part") |
|
|
457 | (2) |
|
|
459 | (5) |
|
9.4.4 Lightweight IGMPv3 and MLDv2 |
|
|
464 | (1) |
|
9.4.5 IGMP and MLD Robustness |
|
|
465 | (2) |
|
9.4.6 IGMP and MLD Counters and Variables |
|
|
467 | (1) |
|
9.4.7 IGMP and MLD Snooping |
|
|
468 | (1) |
|
9.5 Attacks Involving IGMP and MLD |
|
|
469 | (1) |
|
|
470 | (1) |
|
|
471 | (2) |
|
Chapter 10 User Datagram Protocol (UDP) and IP Fragmentation |
|
|
473 | (38) |
|
|
473 | (1) |
|
|
474 | (1) |
|
|
475 | (3) |
|
|
478 | (3) |
|
|
481 | (6) |
|
10.5.1 Teredo: Tunneling IPv6 through IPv4 Networks |
|
|
482 | (5) |
|
|
487 | (1) |
|
|
488 | (5) |
|
10.7.1 Example: UDP/IPv4 Fragmentation |
|
|
488 | (4) |
|
10.7.2 Reassembly Timeout |
|
|
492 | (1) |
|
10.8 Path MTU Discovery with UDP |
|
|
493 | (3) |
|
|
493 | (3) |
|
10.9 Interaction between IP Fragmentation and ARP/ND |
|
|
496 | (1) |
|
10.10 Maximum UDP Datagram Size |
|
|
497 | (1) |
|
10.10.1 Implementation Limitations |
|
|
497 | (1) |
|
10.10.2 Datagram Truncation |
|
|
498 | (1) |
|
|
498 | (7) |
|
10.11.1 IP Addresses and UDP Port Numbers |
|
|
499 | (1) |
|
10.11.2 Restricting Local IP Addresses |
|
|
500 | (1) |
|
10.11.3 Using Multiple Addresses |
|
|
501 | (1) |
|
10.11.4 Restricting Foreign IP Address |
|
|
502 | (1) |
|
10.11.5 Using Multiple Servers per Port |
|
|
503 | (1) |
|
10.11.6 Spanning Address Families: IPv4 and IPv6 |
|
|
504 | (1) |
|
10.11.7 Lack of Flow and Congestion Control |
|
|
505 | (1) |
|
10.12 Translating UDP/IPv4 and UDP/IPv6 Datagrams |
|
|
505 | (1) |
|
10.13 UDP in the Internet |
|
|
506 | (1) |
|
10.14 Attacks Involving UDP and IP Fragmentation |
|
|
507 | (1) |
|
|
508 | (1) |
|
|
508 | (3) |
|
Chapter 11 Name Resolution and the Domain Name System (DNS) |
|
|
511 | (68) |
|
|
511 | (1) |
|
|
512 | (4) |
|
|
514 | (2) |
|
11.3 Name Servers and Zones |
|
|
516 | (1) |
|
|
517 | (1) |
|
|
518 | (47) |
|
11.5.1 DNS Message Format |
|
|
520 | (4) |
|
11.5.2 The DNS Extension Format (EDNS0) |
|
|
524 | (1) |
|
|
525 | (1) |
|
11.5.4 Question (Query) and Zone Section Format |
|
|
526 | (1) |
|
11.5.5 Answer, Authority, and Additional Information Section Formats |
|
|
526 | (1) |
|
11.5.6 Resource Record Types |
|
|
527 | (28) |
|
11.5.7 Dynamic Updates (DNS UPDATE) |
|
|
555 | (3) |
|
11.5.8 Zone Transfers and DNS NOTIFY |
|
|
558 | (7) |
|
11.6 Sort Lists, Round-Robin, and Split DNS |
|
|
565 | (2) |
|
11.7 Open DNS Servers and DynDNS |
|
|
567 | (1) |
|
11.8 Transparency and Extensibility |
|
|
567 | (1) |
|
11.9 Translating DNS from IPv4 to IPv6 (DNS64) |
|
|
568 | (1) |
|
|
569 | (1) |
|
|
570 | (1) |
|
|
571 | (1) |
|
|
572 | (1) |
|
|
573 | (6) |
|
Chapter 12 TCP: The Transmission Control Protocol (Preliminaries) |
|
|
579 | (16) |
|
|
579 | (5) |
|
12.1.1 ARQ and Retransmission |
|
|
580 | (1) |
|
12.1.2 Windows of Packets and Sliding Windows |
|
|
581 | (2) |
|
12.1.3 Variable Windows: Flow Control and Congestion Control |
|
|
583 | (1) |
|
12.1.4 Setting the Retransmission Timeout |
|
|
584 | (1) |
|
|
584 | (3) |
|
12.2.1 The TCP Service Model |
|
|
585 | (1) |
|
12.2.2 Reliability in TCP |
|
|
586 | (1) |
|
12.3 TCP Header and Encapsulation |
|
|
587 | (4) |
|
|
591 | (1) |
|
|
591 | (4) |
|
Chapter 13 TCP Connection Management |
|
|
595 | (52) |
|
|
595 | (1) |
|
13.2 TCP Connection Establishment and Termination |
|
|
595 | (10) |
|
|
598 | (1) |
|
13.2.2 Simultaneous Open and Close |
|
|
599 | (2) |
|
13.2.3 Initial Sequence Number (ISN) |
|
|
601 | (1) |
|
|
602 | (2) |
|
13.2.5 Timeout of Connection Establishment |
|
|
604 | (1) |
|
13.2.6 Connections and Translators |
|
|
605 | (1) |
|
|
605 | (7) |
|
13.3.1 Maximum Segment Size (MSS) Option |
|
|
606 | (1) |
|
13.3.2 Selective Acknowledgment (SACK) Options |
|
|
607 | (1) |
|
13.3.3 Window Scale (WSCALE or WSOPT) Option |
|
|
608 | (1) |
|
13.3.4 Timestamps Option and Protection against Wrapped Sequence Numbers (PAWS) |
|
|
608 | (3) |
|
13.3.5 User Timeout (UTO) Option |
|
|
611 | (1) |
|
13.3.6 Authentication Option (TCP-AO) |
|
|
612 | (1) |
|
13.4 Path MTU Discovery with TCP |
|
|
612 | (4) |
|
|
613 | (3) |
|
13.5 TCP State Transitions |
|
|
616 | (9) |
|
13.5.1 TCP State Transition Diagram |
|
|
617 | (1) |
|
13.5.2 TIME_WAIT (2MSL Wait) State |
|
|
618 | (6) |
|
13.5.3 Quiet Time Concept |
|
|
624 | (1) |
|
|
625 | (1) |
|
13.5.5 Simultaneous Open and Close Transitions |
|
|
625 | (1) |
|
|
625 | (6) |
|
13.6.1 Connection Request to Nonexistent Port |
|
|
626 | (1) |
|
13.6.2 Aborting a Connection |
|
|
627 | (1) |
|
13.6.3 Half-Open Connections |
|
|
628 | (2) |
|
13.6.4 TIME-WAIT Assassination (TWA) |
|
|
630 | (1) |
|
13.7 TCP Server Operation |
|
|
631 | (9) |
|
|
632 | (2) |
|
13.7.2 Restricting Local IP Addresses |
|
|
634 | (1) |
|
13.7.3 Restricting Foreign Endpoints |
|
|
635 | (1) |
|
13.7.4 Incoming Connection Queue |
|
|
636 | (4) |
|
13.8 Attacks Involving TCP Connection Management |
|
|
640 | (2) |
|
|
642 | (1) |
|
|
643 | (4) |
|
Chapter 14 TCP Timeout and Retransmission |
|
|
647 | (44) |
|
|
647 | (1) |
|
14.2 Simple Timeout and Retransmission Example |
|
|
648 | (3) |
|
14.3 Setting the Retransmission Timeout (RTO) |
|
|
651 | (13) |
|
14.3.1 The Classic Method |
|
|
651 | (1) |
|
14.3.2 The Standard Method |
|
|
652 | (5) |
|
|
657 | (4) |
|
14.3.4 RTT Estimator Behaviors |
|
|
661 | (1) |
|
14.3.5 RTTM Robustness to Loss and Reordering |
|
|
662 | (2) |
|
14.4 Timer-Based Retransmission |
|
|
664 | (3) |
|
|
665 | (2) |
|
|
667 | (4) |
|
|
668 | (3) |
|
14.6 Retransmission with Selective Acknowledgments |
|
|
671 | (6) |
|
14.6.1 SACK Receiver Behavior |
|
|
672 | (1) |
|
14.6.2 SACK Sender Behavior |
|
|
673 | (1) |
|
|
673 | (4) |
|
14.7 Spurious Timeouts and Retransmissions |
|
|
677 | (5) |
|
14.7.1 Duplicate SACK (DSACK) Extension |
|
|
677 | (2) |
|
14.7.2 The Eifel Detection Algorithm |
|
|
679 | (1) |
|
14.7.3 Forward-RTO Recovery (F-RTO) |
|
|
680 | (1) |
|
14.7.4 The Eifel Response Algorithm |
|
|
680 | (2) |
|
14.8 Packet Reordering and Duplication |
|
|
682 | (3) |
|
|
682 | (2) |
|
|
684 | (1) |
|
|
685 | (1) |
|
|
686 | (1) |
|
14.11 Attacks Involving TCP Retransmission |
|
|
687 | (1) |
|
|
688 | (1) |
|
|
689 | (2) |
|
Chapter 15 TCP Data Flow and Window Management |
|
|
691 | (36) |
|
|
691 | (1) |
|
15.2 Interactive Communication |
|
|
692 | (3) |
|
15.3 Delayed Acknowledgments |
|
|
695 | (1) |
|
|
696 | (4) |
|
15.4.1 Delayed ACK and Nagle Algorithm Interaction |
|
|
699 | (1) |
|
15.4.2 Disabling the Nagle Algorithm |
|
|
699 | (1) |
|
15.5 Flow Control and Window Management |
|
|
700 | (19) |
|
|
701 | (3) |
|
15.5.2 Zero Windows and the TCP Persist Timer |
|
|
704 | (4) |
|
15.5.3 Silly Window Syndrome (SWS) |
|
|
708 | (7) |
|
15.5.4 Large Buffers and Auto-Tuning |
|
|
715 | (4) |
|
|
719 | (4) |
|
|
720 | (3) |
|
15.7 Attacks Involving Window Management |
|
|
723 | (1) |
|
|
723 | (1) |
|
|
724 | (3) |
|
Chapter 16 TCP Congestion Control |
|
|
727 | (66) |
|
|
727 | (3) |
|
16.1.1 Detection of Congestion in TCP |
|
|
728 | (1) |
|
16.1.2 Slowing Down a TCP Sender |
|
|
729 | (1) |
|
16.2 The Classic Algorithms |
|
|
730 | (9) |
|
|
732 | (2) |
|
16.2.2 Congestion Avoidance |
|
|
734 | (2) |
|
16.2.3 Selecting between Slow Start and Congestion Avoidance |
|
|
736 | (1) |
|
16.2.4 Tahoe, Reno, and Fast Recovery |
|
|
737 | (1) |
|
|
738 | (1) |
|
16.3 Evolution of the Standard Algorithms |
|
|
739 | (5) |
|
|
739 | (1) |
|
16.3.2 TCP Congestion Control with SACK |
|
|
740 | (1) |
|
16.3.3 Forward Acknowledgment (FACK) and Rate Halving |
|
|
741 | (1) |
|
|
742 | (1) |
|
16.3.5 Congestion Window Validation (CWV) |
|
|
742 | (2) |
|
16.4 Handling Spurious RTOs--the Eifel Response Algorithm |
|
|
744 | (1) |
|
|
745 | (22) |
|
16.5.1 Slow Start Behavior |
|
|
749 | (1) |
|
16.5.2 Sender Pause and Local Congestion (Event 1) |
|
|
750 | (4) |
|
16.5.3 Stretch ACKs and Recovery from Local Congestion |
|
|
754 | (3) |
|
16.5.4 Fast Retransmission and SACK Recovery (Event 2) |
|
|
757 | (2) |
|
16.5.5 Additional Local Congestion and Fast Retransmit Events |
|
|
759 | (3) |
|
16.5.6 Timeouts, Retransmissions, and Undoing cwnd Changes |
|
|
762 | (4) |
|
16.5.7 Connection Completion |
|
|
766 | (1) |
|
16.6 Sharing Congestion State |
|
|
767 | (1) |
|
|
768 | (2) |
|
16.8 TCP in High-Speed Environments |
|
|
770 | (7) |
|
16.8.1 High-speed TCP (HSTCP) and Limited Slow Start |
|
|
770 | (2) |
|
16.8.2 Binary Increase Congestion Control (BIC and CUBIC) |
|
|
772 | (5) |
|
16.9 Delay-Based Congestion Control |
|
|
777 | (4) |
|
|
777 | (1) |
|
|
778 | (1) |
|
16.9.3 TCP Westwood and Westwood+ |
|
|
779 | (1) |
|
|
779 | (2) |
|
|
781 | (1) |
|
16.11 Active Queue Management and ECN |
|
|
782 | (3) |
|
16.12 Attacks Involving TCP Congestion Control |
|
|
785 | (1) |
|
|
786 | (2) |
|
|
788 | (5) |
|
|
793 | (12) |
|
|
793 | (2) |
|
|
795 | (7) |
|
17.2.1 Keepalive Examples |
|
|
797 | (5) |
|
17.3 Attacks Involving TCP Keepalives |
|
|
802 | (1) |
|
|
802 | (1) |
|
|
803 | (2) |
|
Chapter 18 Security: EAP, IPsec, TLS, DNSSEC, and DKIM |
|
|
805 | (128) |
|
|
805 | (1) |
|
18.2 Basic Principles of Information Security |
|
|
806 | (1) |
|
18.3 Threats to Network Communication |
|
|
807 | (2) |
|
18.4 Basic Cryptography and Security Mechanisms |
|
|
809 | (12) |
|
|
809 | (3) |
|
18.4.2 Rivest, Shamir, and Adleman (RSA) Public Key Cryptography |
|
|
812 | (1) |
|
18.4.3 Diffie-Hellman-Merkle Key Agreement (aka Diffie-Hellman or DH) |
|
|
813 | (1) |
|
18.4.4 Signcryption and Elliptic Curve Cryptography (ECC) |
|
|
814 | (1) |
|
18.4.5 Key Derivation and Perfect Forward Secrecy (PFS) |
|
|
815 | (1) |
|
18.4.6 Pseudorandom Numbers, Generators, and Function Families |
|
|
815 | (1) |
|
|
816 | (1) |
|
18.4.8 Cryptographic Hash Functions and Message Digests |
|
|
817 | (1) |
|
18.4.9 Message Authentication Codes (MACs, HMAC, CMAC, and GMAC) |
|
|
818 | (1) |
|
18.4.10 Cryptographic Suites and Cipher Suites |
|
|
819 | (2) |
|
18.5 Certificates, Certificate Authorities (CAs), and PKIs |
|
|
821 | (11) |
|
18.5.1 Public Key Certificates, Certificate Authorities, and X.509 |
|
|
822 | (6) |
|
18.5.2 Validating and Revoking Certificates |
|
|
828 | (3) |
|
18.5.3 Attribute Certificates |
|
|
831 | (1) |
|
18.6 TCP/IP Security Protocols and Layering |
|
|
832 | (1) |
|
18.7 Network Access Control: 802.1X, 802.1AE, EAP, and PANA |
|
|
833 | (7) |
|
18.7.1 EAP Methods and Key Derivation |
|
|
837 | (2) |
|
18.7.2 The EAP Re-authentication Protocol (ERP) |
|
|
839 | (1) |
|
18.7.3 Protocol for Carrying Authentication for Network Access (PANA) |
|
|
839 | (1) |
|
18.8 Layer 3 IP Security (IPsec) |
|
|
840 | (36) |
|
18.8.1 Internet Key Exchange (IKEv2) Protocol |
|
|
842 | (12) |
|
18.8.2 Authentication Header (AH) |
|
|
854 | (4) |
|
18.8.3 Encapsulating Security Payload (ESP) |
|
|
858 | (6) |
|
|
864 | (1) |
|
|
865 | (1) |
|
18.8.6 IPsec NAT Traversal |
|
|
865 | (2) |
|
|
867 | (9) |
|
18.9 Transport Layer Security (TLS and DTLS) |
|
|
876 | (18) |
|
|
877 | (14) |
|
18.9.2 TLS with Datagrams (DTLS) |
|
|
891 | (3) |
|
18.10 DNS Security (DNSSEC) |
|
|
894 | (21) |
|
18.10.1 DNSSEC Resource Records |
|
|
896 | (6) |
|
|
902 | (9) |
|
18.10.3 Transaction Authentication (TSIG, TKEY, and SIG(0)) |
|
|
911 | (4) |
|
18.10.4 DNSSEC with DNS64 |
|
|
915 | (1) |
|
18.11 DomainKeys Identified Mail (DKIM) |
|
|
915 | (3) |
|
|
916 | (1) |
|
|
916 | (2) |
|
18.12 Attacks on Security Protocols |
|
|
918 | (1) |
|
|
919 | (3) |
|
|
922 | (11) |
Glossary of Acronyms |
|
933 | (30) |
Index |
|
963 | |