Chapter 1 Introduction And Overview 1
1.1 The Motivation For Internetworking 1
1.2 The TCP/IP Internet 2
1.3 Internet Services 3
1.4 History And Scope Of The Internet 6
1.5 The Internet Architecture Board 8
1.6 The IAB Reorganization 9
1.7 The Internet Society 11
1.8 Internet Request For Comments 11
1.9 Internet Protocols And Standardization 12
1.10 Future Growth And Technology 12
1.11 Organization Of The Text 13
1.12 Summary 14
Chapter 2 Review Of Underlying Network Technologies 17
2.1 Introduction 17
2.2 Two Approaches To Network Communication 18
2.3 Wide Area And Local Area Networks 19
2.4 Ethernet Technology 20
2.5 Fiber Distributed Data Interconnect(FDDI) 32
2.6 Asynchronous Transfer Mode 36
2.7 ARPANET Technology 37
2.8 National Science Foundation Networking 39
2.9 ANSNET 44
2.10 A Planned Wide Area Backbone 44
2.11 Other Technologies Over Which TCP/IP Has Been Used 44
2.12 Summary And Conclusion 47
Chapter 3 Internetworking Concept And Architectural Model 49
3.1 Introduction 49
3.2 Application-Level Interconnection 49
3.3 Network-Level Interconnection 50
3.4 Properties Of The Internet 51
3.5 Internet Architecture 52
3.6 Interconnection Through IP Routers 52
3.7 The User s View 54
3.8 All Networks Are Equal 54
3.9 The Unanswered Questions 55
3.10 Summary 56
Chapter 4 Internet Addresses 59
4.1 Introduction 59
4.2 Universal Identifiers 59
4.3 Three Primary Classes Of IP Addresses 60
4.4 Addresses Specify Network Connections 61
4.5 Network And Broadcast Addresses 61
4.6 Limited Broadcast 62
4.7 Interpreting Zero To Mean This 62
4.8 Weaknesses In Internet Addressing 63
4.9 Dotted Decimal Notation 65
4.10 Loopback Address 65
4.11 Summary Of Special Address Conventions 66
4.12 Internet Addressing Authority 66
4.13 An Example 67
4.14 Network Byte Order 69
4.15 Summary 70
Chapter 5 Mapping Internet Addresses To Physical Addresses(ARP) 73
5.1 Introduction 73
5.2 The Address Resolution Problem 73
5.3 Two Types Of Physical Addresses 74
5.4 Resolution Through Direct Mapping 74
5.5 Resolution Through Dynamic Binding 75
5.6 The Address Resolution Cache 76
5.7 ARP Refinements 77
5.8 Relationship Of ARP To Other Protocols 77
5.9 ARP Implementation 77
5.10 ARP Encapsulation And Identification 79
5.11 ARP Protocol Format 79
5.12 Summary 81
Chapter 6 Determining An Internet Address At Startup(RARP) 83
6.1 Introduction 83
6.2 Reverse Address Resolution Protocol(RARP) 84
6.3 Timing RARP Transactions 86
6.4 Primary And Backup RARP Servers 86
6.5 Summary 87
Chapter 7 Internet Protocol:Connectionless Datagram Delivery 89
7.1 Introduction 89
7.2 A Virtual Network 89
7.3 Internet Architecture And Philosophy 90
7.4 The Concept Of Unreliable Delivery 90
7.5 Connectionless Delivery System 91
7.6 Purpose Of The Internet Protocol 91
7.7 The Internet Datagram 91
7.8 Internet Datagram Options 100
7.9 Summary 106
Chapter 8 Internet Protocol:Routing IP Datagrams 109
8.1 Introduction 109
8.2 Routing In An Internet 109
8.3 Direct And Indirect Delivery 111
8.4 Table-Driven IP Routing 113
8.5 Next-Hop Routing 113
8.6 Default Routes 115
8.7 Host-Specific Routes 115
8.8 The IP Routing Algorithm 116
8.9 Routing With IP Addresses 116
8.10 Handling Incoming Datagrams 118
8.11 Establishing Routing Tables 119
8.12 Summary 119
Chapter 9 Internet Protocol:Error And Control Messages(ICMP) 123
9.1 Introduction 123
9.2 The Internet Control Message Protocol 123
9.3 Error Reporting vs.Error Correction 124
9.4 ICMP Message Delivery 125
9.5 ICMP Message Format 126
9.6 Testing Destination Reachability And Status(Ping) 127
9.7 Echo Request And Reply Message Format 128
9.8 Reports Of Unreachable Destinations 128
9.9 Congestion And Datagram Flow Control 130
9.10 Source Quench Format 130
9.11 Route Change Requests From Routers 131
9.12 Detecting Circular Or Excessively Long Routes 133
9.13 Reporting Other Problems 134
9.14 Clock Synchronization And Transit Time Estimation 134
9.15 Information Request And Reply Messages 136
9.16 Obtaining A Subnet Mask 136
9.17 Summary 137
Chapter 10 Subnet And Supernet Address Extensions 139
10.1 Introduction 139
10.2 Review Of Relevant Facts 139
10.3 Minimizing Network Numbers 140
10.4 Transparent Routers 141
10.5 Proxy ARP 142
10.6 Subnet Addressing 143
10.7 Flexibility In Subnet Address Assignment 146
10.8 Implementation Of Subnets With Masks 147
10.9 Subnet Mask Representation 148
10.10 Routing In The Presence Of Subnets 149
10.11 The Subnet Routing Algorithm 150
10.12 A Unified Routing Algorithm 151
10.13 Maintenance Of Subnet Masks 152
10.14 Broadcasting To Subnets 152
10.15 Supernet Addressing 153
10.16 The Effect Of Supernetting On Routing 154
10.17 Summary 155
Chapter 11 Protocol Layering 159
11.1 Introduction 159
11.2 The Need For Multiple Protocols 159
11.3 The Conceptual Layers Of Protocol Software 160
11.4 Functionality Of The Layers 163
11.5 X.25 And Its Relation To The ISO Model 164
11.6 Differences Between X.25 And Internet Layering 167
11.7 The Protocol Layering Principle 169
11.8 Layering In The Presence Of Network Substructure 171
11.9 Two Important Boundaries In The TCP/IP Model 173
11.10 The Disadvantage Of Layering 174
11.11 The Basic Idea Behind Multiplexing And Demultiplexing 174
11.12 Summary 176
Chapter 12 User Datagram Protocol(UDP) 179
12.1 Introduction 179
12.2 Identifying The Ultimate Destination 179
12.3 The User Datagram Protocol 180
12.4 Format Of UDP Messages 181
12.5 UDP Pseudo-Header 182
12.6 UDP Encapsulation And Protocol Layering 183
12.7 Layering And The UDP Checksum Computation 185
12.8 UDP Multiplexing,Demultiplexing,And Ports 185
12.9 Reserved And Available UDP Port Numbers 186
12.10 Summary 188
Chapter 13 Reliable Stream Transport Service(TCP) 191
13.1 Introduction 191
13.2 The Need For Stream Delivery 191
13.3 Properties Of The Reliable Delivery Service 192
13.4 Providing Reliability 193
13.5 The Idea Behind Sliding Windows 195
13.6 The Transmission Control Protocol 198
13.7 Ports,Connections,And Endpoints 199
13.8 Passive And Active Opens 201
13.9 Segments,Streams,And Sequence Numbers 201
13.10 Variable Window Size And Flow Control 202
13.11 TCP Segment Format 203
13.12 Out Of Band Data 205
13.13 Maximum Segment Size Option 206
13.14 TCP Checksum Computation 207
13.15 Acknowledgements And Retransmission 208
13.16 Timeout And Retransmission 209
13.17 Accurate Measurement Of Round Trip Samples 211
13.18 Karn s Algorithm And Timer Backoff 212
13.19 Responding To High Variance In Delay 213
13.20 Response To Congestion 214
13.21 Establishing A TCP Connection 216
13.22 Initial Sequence Numbers 217
13.23 Closing a TCP Connection 217
13.24 TCP Connection Reset 219
13.25 TCP State Machine 219
13.26 Forcing Data Delivery 221
13.27 Reserved TCP Port Numbers 221
13.28 TCP Performance 221
13.29 Silly Window Syndrome And Small Packets 223
13.30 Avoiding Silly Window Syndrome 224
13.31 Summary 227
Chapter 14 Routing:Cores,Peers,And Algorithms(GGP) 231
14.1 Introduction 231
14.2 The Origin Of Routing Tables 232
14.3 Routing With Partial Information 233
14.4 Original Internet Architecture And Cores 234
14.5 Core Routers 235
14.6 Beyond The Core Architecture To Peer Backbones 238
14.7 Automatic Route Propagation 240
14.8 Vector Distance(Bellman-Ford)Routing 240
14.9 Gateway-To-Gateway Protocol(GGP) 242
14.10 GGP Message Formats 243
14.11 Link-State(SPF)Routing 245
14.12 SPF Protocols 246
14.13 Summary 246
Chapter 15 Routing:Autonomous Systems(EGP) 249
15.1 Introduction 249
15.2 Adding Complexity To The Architectural Model 249
15.3 A Fundamental Idea:Extra Hops 250
15.4 Autonomous System Concept 252
15.5 Exterior Gateway Protocol(EGP) 254
15.6 EGP Message Header 255
15.7 EGP Neighbor Acquisition Messages 256
15.8 EGP Neighbor Reachability Messages 257
15.9 EGP Poll Request Messages 258
15.10 EGP Routing Update Messages 259
15.11 Measuring From The Receiver s Perspective 261
15.12 The Key Restriction Of EGP 262
15.13 Technical Problems 264
15.14 Decentralization Of Internet Architecture 264
15.15 Beyond Autonomous Systems 264
15.16 Summary 265
Chapter 16 Routing:In An Autonomous System(RIP,OSPF,HELLO) 267
16.1 Introduction 267
16.2 Static Vs.Dynamic Interior Routes 267
16.3 Routing Information Protocol(RIP) 270
16.4 The Hello Protocol 276
16.5 Combining RIP,Hello,And EGP 278
16.6 The Open SPF Protocol(OSPF) 279
16.7 Routing With Partial Information 286
16.8 Summary 286
Chapter 17 Internet Multicasting(IGMP) 289
17.1 Introduction 289
17.2 Hardware Broadcast 289
17.3 Hardware Multicast 290
17.4 IP Multicast 291
17.5 IP Multicast Addresses 291
17.6 Mapping IP Multicast To Ethernet Multicast 292
17.7 Extending IP To Handle Multicasting 293
17.8 Internet Group Management Protocol 294
17.9 IGMP Implementation 294
17.10 Group Membership State Transitions 295
17.11 IGMP Message Format 296
17.12 Multicast Address Assignment 297
17.13 Propagating Routing Information 297
17.14 The Mrouted Program 298
17.15 Summary 300
Chapter 18 TCP/IP Over ATM Networks 303
18.1 Introduction 303
18.2 ATM Hardware 304
18.3 Large ATM Networks 304
18.4 The Logical View Of An ATM Network 305
18.5 The Two ATM Connection Paradigms 306
18.6 Paths,Circuits,And Identifiers 307
18.7 ATM Cell Transport 308
18.8 ATM Adaptation Layers 308
18.9 AAL5 Convergence,Segmentation,And Reassembly 311
18.10 Datagram Encapsulation And IP MTU Size 311
18.11 Packer Type And Multiplexing 312
18.12 IP Address Binding In An ATM Network 313
18.13 Logical IP Subnet Concept 314
18.14 Connection Management 315
18.15 Address Binding Within An LIS 316
18.16 ATMARP Packet Format 316
18.17 Using ATMARP Packets To Determine An Address 318
18.18 Obtaining Entries For A Server Database 320
18.19 Timing Out ATMARP Information In A Server 320
18.20 Timing Out ATMARP Information In A Host Or Router 320
18.21 Summary 321
Chapter 19 Client-Server Model Of Interaction 325
19.1 Introduction 325
19.2 The Client-Server Model 325
19.3 A Simple Example:UDP Echo Server 326
19.4 Time And Date Service 328
19.5 The Complexity Of Servers 329
19.6 RARP Server 330
19.7 Alternatives To The Client-Server Model 331
19.8 Summary 332
Chapter 20 The Socket Interface 335
20.1 Introduction 335
20.2 The UNIX I/O Paradigm And Network I/O 336
20.3 Adding Network I/O to UNIX 336
20.4 The Socket Abstraction 337
20.5 Creating A Socket 337
20.6 Socket Inheritance And Termination 338
20.7 Specifying A Local Address 339
20.8 Connecting Sockets To Destination Addresses 340
20.9 Sending Data Through A Socket 341
20.10 Receiving Data Through A Socket 343
20.11 Obtaining Local And Remote Socket Addresses 344
20.12 Obtaining And Setting Socket Options 345
20.13 Specifying A Queue Length For A Server 346
20.14 How A Server Accepts Connections 346
20.15 Servers That Handle Multiple Services 347
20.16 Obtaining And Setting Host Names 348
20.17 Obtaining And Setting The Internal Host Domain 349
20.18 BSD UNIX Network Library Calls 349
20.19 Network Byte Order Conversion Routines 350
20.20 IP Address Manipulation Routines 351
20.21 Accessing The Domain Name System 352
20.22 Obtaining Information About Hosts 354
20.23 Obtaining Information About Networks 355
20.24 Obtaining Information About Protocols 355
20.25 Obtaining Information About Network Services 356
20.26 An Example Client 357
20.27 An Example Server 359
20.28 Summary 362
Chapter 21 Bootstrap And Autoconfiguration(BOOTP,DHCP) 365
21.1 Introduction 365
21.2 The Need For An Alternative To RARP 366
21.3 Using IP To Determine An IP Address 366
21.4 The BOOTP Retransmission Policy 367
21.5 The BOOTP Message Format 368
21.6 The Two-Step Bootstrap Procedure 369
21.7 Vendor-Specific Field 370
21.8 The Need For Dynamic Configuration 370
21.9 Dynamic Host Configuration 372
21.10 Dynamic IP Address Assignment 372
21.11 Obtaining Multiple Addresses 373
21.12 Address Acquisition States 374
21.13 Early Lease Termination 374
21.14 Lease Renewal States 376
21.15 DHCP Message Format 377
21.16 DHCP Options And Message Type 378
21.17 Option Overload 379
21.18 DHCP And Domain Names 379
21.19 Summary 380
Chapter 22 The Domain Name System(DNS) 383
22.1 Introduction 383
22.2 Names For Machines 384
22.3 Flat Namespace 384
22.4 Hierarchical Names 385
22.5 Delegation Of Authority For Names 386
22.6 Subset Authority 386
22.7 TCP/IP Internet Domain Names 387
22.8 Official And Unofficial Internet Domain Names 388
22.9 Items Named And Syntax Of Names 390
22.10 Mapping Domain Names To Addresses 391
22.11 Domain Name Resolution 393
22.12 Efficient Translation 394
22.13 Caching:The Key To Efficiency 395
22.14 Domain Server Message Format 396
22.15 Compressed Name Format 399
22.16 Abbreviation Of Domain Names 399
22.17 Inverse Mappings 400
22.18 Pointer Queries 401
22.19 Object Types And Resource Record Contents 401
22.20 Obtaining Authority For A Subdomain 402
22.21 Summary 403
Chapter 23 Applications:Remote Login(TELNET,Rlogin) 407
23.1 Introduction 407
23.2 Remote Interactive Computing 407
23.3 TELNET Protocol 408
23.4 Accommodating Heterogeneity 410
23.5 Passing Commands That Control The Remote Side 412
23.6 Forcing The Server To Read A Control Function 414
23.7 TELNET Options 414
23.8 TELNET Option Negotiation 415
23.9 Rlogin(BSD UNIX) 416
23.10 Summary 417
Chapter 24 Applications:File Transfer And Access(FTP,TFTP,NFS) 419
24.1 Introduction 419
24.2 File Access And Transfer 419
24.3 On-line Shared Access 420
24.4 Sharing By File Transfer 421
24.5 FTP:The Major TCP/IP File Transfer Protocol 421
24.6 FTP Features 422
24.7 FTP Process Model 422
24.8 TCP Port Number Assignment 424
24.9 The User s View Of FTP 424
24.10 An Example Anonymous FTP Session 426
24.11 TFTP 427
24.12 NFS 429
24.13 NFS Implementation 429
24.14 Remote Procedure Call(RPC) 430
24.15 Summary 431
Chapter 25 Applications:Electronic Mail(822,SMTP,MIME) 433
25.1 Introduction 433
25.2 Electronic Mail 433
25.3 Mailbox Names And Aliases 435
25.4 Alias Expansion And Mail Forwarding 435
25.5 The Relationship Of Internetworking And Mail 436
25.6 TCP/IP Standards For Electronic Mail Service 438
25.7 Electronic Mail Addresses 438
25.8 Pseudo Domain Addresses 440
25.9 Simple Mail Transfer Protocol(SMTP) 440
25.10 The MIME Extension For Non-ASCII Data 443
25.11 MIME Multipart Messages 444
25.12 Summary 445
Chapter 26 Applications:Internet Management(SNMP,SNMPv2) 447
26.1 Introduction 447
26.2 The Level Of Management Protocols 447
26.3 Architectural Model 448
26.4 Protocol Architecture 450
26.5 Examples of MIB Variables 451
26.6 The Structure Of Management Information 452
26.7 Formal Definitions Using ASN.I 453
26.8 Structure And Representation Of MIB Object Names 453
26.9 Simple Network Management Protocol 458
26.10 SNMP Message Format 460
26.11 Example Encoded SNMP Message 462
26.12 Summary 463
Chapter 27 Summary Of Protocol Dependencies 465
27.1 Introduction 465
27.2 Protocol Dependencies 465
27.3 Application Program Access 467
27.4 Summary 468
Chapter 28 Internet Security And Firewall Design 471
28.1 Introduction 471
28.2 Protecting Resources 472
28.3 The Need For An Information Policy 472
28.4 Communication,Cooperation,And Mutual Mistrust 474
28.5 Mechanisms For Internet Security 475
28.6 Firewalls And Internet Access 476
28.7 Multiple Connections And Weakest Links 477
28.8 Firewall Implementation And High-Speed Hardware 478
28.9 Packet-Level Filters 479
28.10 Security And Packet Filter Specification 480
28.11 The Consequence Of Restricted Access For Clients 481
28.12 Accessing Services Through A Firewall 481
28.13 The Details Of Firewall Architecture 483
28.14 Stub Network 484
28.15 An Alternative Firewall Implementation 484
28.16 Monitoring And Logging 485
28.17 Summary 486
Chapter 29 The Future Of TCP/IP(IPng,IPv6) 489
29.1 Introduction 489
29.2 Why Change TCP/IP And The Internet? 490
29.3 Motivation For Changing IPv4 491
29.4 The Road To A New Version Of IP 492
29.5 The Name Of The Next IP 492
29.6 Features Of IPv6 493
29.7 General Form Of An IPv6 Datagram 494
29.8 IPv6 Base Header Format 494
29.9 IPv6 Extension Headers 496
29.10 Parsing An IPv6 Datagram 497
29.11 IPv6 Fragmentation And Reassembly 498
29.12 The Consequence Of End-To-End Fragmentation 498
29.13 IPv6 Source Routing 500
29.14 IPv6 Options 500
29.15 Size Of The IPv6 Address Space 502
29.16 IPv6 Colon Hexadecimal Notation 502
29.17 Three Basic IPv6 Address Types 503
29.18 The Duality Of Broadcast And Multicast 504
29.19 An Engineering Choice And Simulated Broadcast 504
29.20 Proposed IPv6 Address Space Assignment 504
29.21 Ipv6 Address Encoding And Transition 506
29.22 Providers,Subscribers,And Address Hierarchy 506
29.23 Additional Hierarchy 507
29.24 Summary 508
Appendix 1 A Guide To RFCs 511
Appendix 2 Glossary Of Internetworking Terms And Abbreviations 557
Bibliography 591
Index 599