Chapter 1 Introduction 1
1.1 Growth Of Computer Networking 1
1.1 Growth Of Computer Networking 1
Chapter Contents 1
1.2 Complexity in Network Systems 2
1.3 Mastering The Complexity 2
1.3 Mastering The Complexity 2
1.2 Complexity In Network Systems 2
1.4 Concepts And Terminology 3
1.5 Organization Of The Text 3
1.5 Organization Of The Text 3
1.4 Concepts And Terminology 3
1.6 Summary 4
1.6 Summary 4
7.8 An Example Frame Format 7
2.2 Copper Wires 7
2.1 Introduction 7
Chapter 2 Transmission Media 7
PART 1 Data Transmission 7
2.3 Glass Fibers 9
2.4 Radio 10
2.5 Microwave 10
2.8 Summary 12
2.7 Laser 12
2.6 Infrared 12
3.1 Introduction 15
Chapter 3 Local Asynchronous Communication (RS-232) 15
3.3 Using Electric Current To Send Bits 16
3.2 The Need For Asynchronous Communication 16
3.5 Asynchronous Character Transmission With RS-232 17
3.4 Standards For Communication 17
3.6 Baud Rate, Framing , And Errors 19
3.7 Full Duplex Asynchronous Communication 20
3.9 Hardware Bandwidth And The Transmission Of Bits 21
3.8 Limitations Of Real Hardware 21
3.10 Summary 22
Chapter 4 Long-Distance Communication (Carriers And Modems) 25
4.1 Introduction 25
4.2 Sending Signals Across Long Distances 25
4.3 Modem Hardware Used For Modulation And Demodulation 28
4.5 Optical, Radio,And Dialup Modems 29
4.4 Leased Serial Data Circuits 29
4.6 Carrier Frequencies And Multiplexing 31
4.8 Summary 33
4.7 Time Division Multiplexing 33
PARTⅡ Packet Transmission 37
Chapter 5 Packets, Frames, And Error Detection 37
5.1 Introduction 37
5.2 The Concept Of Packets 37
5.3 Packets And Time-Division Multiplexing 39
5.4 Packets And Hardware Frames 40
5.5 Byte Stuffing 41
5.6 Transmission Errors 43
5.7 Parity Bits And Parity Checking 43
5.8 Probability,Mathematics,And Error Detection 44
5.9 Detecting Errors With Checksums 45
5.10 Detecting Errors With Cyclic Redundancy Checks 46
5.11 Combining Building Blocks 47
5.13 Summary 49
5.12 Frame Format And Error Detection Mechanisms 49
6.2 Direct Point-to-Point Communication 53
Chapter 6 LAN Technologies And Network Topology 53
6.1 Introduction 53
6.3 Shared Communication Channels 55
6.4 Significance Of LANs And locality Of Reference 56
6.5 LAN Topologies 57
6.6 Example Bus Network : Ethernet 59
6.7 Carrier Sense On Multi-Access Networks(CSMA) 60
6.8 Collision Detection And Backoff(CSMA/CD) 61
6.9 Another Example Bus Network :LocalTalk 62
6.10 Example Ring Network :IBM Token Ring 63
6.11 Another Example Ring Network :FDDI 64
6.12 Example Star Network :ATM 66
6.13 Summary 67
7.1 Introduction 71
Chapter 7 Hardware Addressing And Frame Type Identification 71
7.3 How LAN Hardware Uses Addresses To Filter Packets 72
7.2 Specifying A Recipient 72
7.4 Format Of A Physical Address 74
7.5 Broadcasting And A Broadcast Address 75
7.7 Frame Headers And Frame Format 76
7.6 Identifying Packet Contents 76
7.9 Using Networks That Do Not Have Self-identifying Frames 78
7.10 Network Analyzers, Physical Addresses,Frame Types 80
7.11 Summary 82
7.12 Ethernet Address Assignment 83
8.2 Speeds Of LANs And Computers 85
Chapter 8 LAN Wiring , Physical Topology , And Interface Hardware 85
8.1 Introduction 85
8.3 Network Interface Hardware 86
8.4 The Connection Between A NIC And A Network 88
8.5 Original Thick Ethernet Wiring 88
8.6 Connection Multiplexing 90
8.7 Thin Ethernet Wiring 91
8.8 Twisted Pair Ethernet 92
8.9 Advantages And Disadvantages Of Wiring Schemes 94
8.11 Network Interface Cards And Wiring Schemes 96
8.10 The Topology Paradox 96
8.12 Wiring Schemes And Other Network Technologies 98
8.13 Summary 99
9.2 Distance Limitation And LAN Design 101
9.1 Introduction 101
Chapter 9 Extending LANs : Fiber Modems, Repeaters,Bridges ,and Switches 101 101
9.3 Fiber Optic Extensions 102
9.4 Repeaters 103
9.5 Bridges 106
9.6 Frame Filtering 107
9.8 Planning A Bridged Network 108
9.7 Startup And Steady State Behavior of Bridged Networks 108
9.9 Bridging Between Buildings 109
9.10 Bridging Across Longer Distances 110
9.11 A Cycle Of Bridges 112
9.12 Distributed Spanning Tree 113
9.13 Switching 113
9.14 Combining Switches And Hubs 114
9.16 Summary 115
9.15 Bridging And Switching With Other Technologies 115
Chapter 10 WAN Technologies And Routing 119
10.1 Introduction 119
10.2 Large Networks And Wide Areas 119
10.3 Packet Switches 120
10.4 Forming A WAN 121
10.5 Store And Forward 122
10.6 Physical Addressing In A WAN 123
10.7 Next-Hop Forwarding 123
10.8 Source Independence 125
10.9 Relationship Of Hierarchical Addresses To Routing 125
10.10 Routing In A WAN 126
10.11 Use Of Default Routes 128
10.13 Shortest Path Computation In A Graph 129
10.12 Routing Table Computation 129
10.15 Vector Distance Routing 132
10.14 Distributed Route Computation 132
10.17 Example WAN Technologies 134
10.16 Link-State Routing(SPF ) 134
10.18 Summary 137
Chapter 11 Network Ownership, Service Paradlgm, And Performance 141
11.1 Introduction 141
11.2 Network Ownership 142
11.3 Service Paradigm 143
11.4 Connection Duration And Persistence 144
11.5 Examples of Service Paradigms 146
11.6 Addresses And Connection Identifiers 147
11.7 Network Performance Characteristics 148
11.8 Summary 151
12.2 The Need For Protocols 155
12.1 Introduction 155
Chapter 12 Protocois And Layering 155
12.3 Protocol Suites 156
12.5 The Seven Layers 157
12.4 A Plan For Protocol Design 157
12.6 Stacks : Layered Software 159
12.7 How Layered Software Works 160
12.9 The Scientific Basis For Layering 161
12.8 Multiple,Nested Headers 161
12.10 Techniques Protocols Use 162
12.11 The Art Of Protocol Design 170
12.12 Summary 171
PARTⅢ Internetworking 175
13.2 The Motivation For Internetworking 175
13.1 Introduction 175
Chapter 13 Internetworking : Concepts, Architecture,and Protocols 175
13.4 Universal Service In A Heterogeneous World 176
13.3 The Concept Of Universal Service 176
13.6 Physical Network Connection With Routers 177
13.5 Internetworking 177
13.7 Internet Architecture 178
13.8 Achieving Universal Service 179
13.9 A Virtual Network 179
13.11 Significance Of Internetworking And TCP/IP 181
13.10 Protocols For Internetworking 181
13.12 Layering And TCP/IP Protocols 182
13.13 Host Computers, Routers, And Protocol Layers 183
13.14 Summary 184
14.2 Addresses For The Virtual Internet 187
Chapter 14 IP : Internet Protocol Addresses 187
14.1 Introduction 187
14.3 The IP Addressing Scheme 188
14.4 The IP Address Hierarchy 189
14.5 Classes Of IP Addresses 189
14.6 Computing The Class of An Address 191
14.7 Dotted Decimal Notation 192
14.8 Classes And Dotted Decimal Notation 192
14.9 Division Of The Address Space 193
14.11 An Addressing Example 194
14.10 Authority For Addresses 194
14.12 Special IP Addresses 195
14.13 Summary Of Special IP Addresses 197
14.15 Routers And The IP Addressing Principle 198
14.14 The Berkeley Broadcast Address Form 198
14.16 Multi-Homed Hosts 199
14.17 Summary 200
15.1 Introduction 203
Chapter 15 Binding Protocol Addresses(ARP) 203
15.2 Protocol Addresses And Packet Delivery 204
15.3 Address Resolution 204
15.4 Address Resolution Techniques 205
15.5 Address Resolution With Table Lookup 206
15.6 Address Resolution With Closed-Form Computation 207
15.7 Address Resolution With Message Exchange 208
15.8 Address Resolution Protocol 209
15.9 ARP Message Delivery 210
15.10 ARP Message Format 211
15.11 Sending An ARP Message 212
15.12 Identifying ARP Frames 213
15.14 Processing An Incoming ARP Message 213
15.13 Caching ARP Responses 213
15.15 Layering, Address Resolution,Protocol Addresses 214
15.16 Summary 215
16.1 Introduction 219
16.2 Connectionless Service 219
Chapter 16 IP Datagrams And Datagram Forwarding 219
16.3 Virtual Packets 220
16.4 The IP Datagram 221
16.5 Forwarding An IP Datagram 222
16.6 IP Addresses And Routing Table Entries 223
16.8 Destination And Next-Hop Addresses 224
16.7 The Mask Field And Datagram Forwarding 224
16.9 Best-Effort Delivery 225
16.10 The IP Datagram Header Format 226
16.11 Summary 227
Chapter 17 IP Encapsulation,Fragmentation,And Reassembly 229
17.2 Datagram Transmission And Frames 229
17.1 Introduction 229
17.3 Encapsulation 230
17.4Transmission Across An Internet 231
17.5 MTU,Datagram Size, And Encapsulation 232
17.6 Reassembly 234
17.7 Identifying A Datagram 234
17.9 Fragmenting A Fragment 235
17.8 Fragment Loss 235
17.10 Summary 236
18.2 The Success Of IP 239
18.1 Introduction 239
Chapter 18 The Future IP(Ipv6) 239
18.3 The Mot?vation For Change 240
18.4 A Name And A Version Number 241
18.5 Characterization Of Features In Ipv6 241
18.6 IPv6 Datagram Format 242
18.7 IPv6 Base Header Format 242
18.8 How IPv6 Handles Multiple Headers 244
18.9 Fragmentation, Reassembly,And Path MTU 245
18.10 The Purpose Of Multiple Headers 246
18.11 IPv6 Addressing 247
18.13 Summary 248
18.12 IPv6 Colon Hexadecimal Notation 248
Chapter 19 An Error Reporting Mechanism(ICMP) 251
19.1 Introduction 251
19.2 Best-Effort Semantics And Error Detection 251
19.3 Internet Control Message Protocol 252
19.4 ICMP Message Transport 254
19.6 Using ICMP To Trace A Route 255
19.5 Using ICMP Messages To Test Reachability 255
19.7 Using ICMP For Path MTU Discovery 256
19.8 Summary 257
20.2 The Need For Reliable Transport 259
20.1 Introduction 259
Chapter 20 TCP : Reliable Transport Service 259
20.3 The Transmission Control Protocol 260
20.4 The Service TCP Provides To Applications 260
20.5 End-To-End Service And Datagrams 261
20.6 Achieving Reliability 262
20.7 Packet Loss And Retransmission 263
20.8 Adaptive Retransmission 264
20.10 Buffers.Flow Control,And Windows 265
20.9 Compar?son Of Retransmission Times 265
20.11 Three-Way Handshake 267
20.12 Congestion Control 268
20.13 TCP Segment Format 268
20.14 Summary 269
Chapter 21 Client-Server interaction 273
PART Ⅳ Network Applications 273
21.1 Introduction 273
21.2 The Functionality Application Software Provides 274
21.3 The Functionality An Internet Provides 274
21.4 Making Contact 275
21.5 The Client-Server Paradigm 275
21.6 Characteristics Of Clients And Servers 275
21.8 Requests, Responses,And Direction Of Data Flow 276
21.7 Server Programs And Server-Class Computers 276
21.9 Transport Protocols and Client-Server Interaction 277
21.10 Multiple Services On One Computer 278
21.11 Identifying A Particular Service 279
21.12 Multiple Copies of A Server For A Single Service 279
21.13 Dynamic Server Creation 280
21.14 Transport Protocols And Unambiguous Communication 280
21.15 Connection-Oriented And Connectionless Transport 281
21.16 A Service Reachable Through Multiple Protocols 282
21.17 Complex Client-Server Interactions 282
21.18 Interactions And Circular Dependencies 283
21.19 Summary 283
22.2 Application Program Interface 285
22.1 Introduction 285
Chapter 22 The Socket Interface 285
22.3 The Socket API 286
22.4 Sockets And Socket Libraries 286
22.5 Socket Communication And UNIX I/O 287
22.6 Sockets, Descriptors, And Network I/O 288
22.7 Parameters And The Socket API 288
22.8 Procedures That Implement The Socket API 289
22.9 Read And Write With Sockets 295
22.10 Other Socket Procedures 295
22.11 Sockets,Threads,And Inheritance 296
22.12 Summary 296
23.2 Connection-Oriented Communication 299
23.1 Introduction 299
Chapter 23 Example Of A Client And A Server 299
23.5 Sequence Of Socket Procedure Calls 300
23.4 Command-Line Arguments For The Example Programs 300
23.3 An Example Service 300
23.6 Code For Example Client 302
23.7 Code For Example Server 305
23.8 Stream Service And Multiple Recv Calls 307
23.9 Socket Procedures And Blocking 308
23.10 Size Of The Code And Error Reporting 308
23.11 Using The Example Client With Another Service 309
23.12 Using Another Client To Test The Server 309
23.13 Summary 310
24.1 Introduction 313
Chapter 24 Naming With The Domain Name System 313
24.2 Structure Of Computer Names 314
24.3 Geographic Structure 315
24.4 Domain Names Within An Organization 316
24.5 The DNS Client-Server Model 318
24.6 The DNS Server Hierarchy 318
24.8 Locality Of Reference And Multiple Servers 320
24.7 Server Architectures 320
24.10 Resolving A Name 321
24.9 Links Among Servers 321
24.12 Types Of DNS Entries 323
24.11 Optimization Of DNS Performance 323
24.13 Aliases Using The CNAME Type 324
24.14 An Important Consequence Of Multiple Types 324
24.16 Summary 325
24.15 Abbreviations And The DNS 325
25.2 The Electronic Mail Paradigm 329
25.1 Introduction 329
Chapter 25 Eiectronic Mail Representation And Transfer 329
25.3 Electronic Mailboxes And Addresses 330
25.4 Electronic Mail Message Format 331
25.5 Carbon Copies 333
25.6 Multipurpose Internet Mail Extensions 333
25.8 Mail Transfer 335
25.7 E-mail And Application Programs 335
25.9 The Simple Mail Transfer Protocol 336
25.10 Optimizing For Multiple Recipients On A Computer 336
25.11 Mail Exploders, Lists ,And Forwarders 336
25.12 Mail Gateways 337
25.13 Automated Mailing Lists 338
25.14 Mail R?lays And E-mail Addresses 339
25.15 Mailbox Access 340
25.16 Dialup Connections And POP 342
25.17 Summary 342
Chapter 26 File Transfer And Remote File Access 345
26.1 Introduction 345
26.2 Data Transfer And Distributed Computation 345
26.4 Generalized File Transfer 346
26.3 Saving Intermediate Results 346
26.5 Interactive And Batch Transfer Paradigms 347
26.7 FTP General Model And User Interface 348
26.6 The File Transfer Protocol 348
26.8 FTP Commands 349
26.9 Connections , Authorization, And File Permissions 350
26.11File Transfer In Either Direction 351
26.10 Anonymous File Access 351
26.14 Changing Directories And Listing Contents 352
26.12 Wildcard Expansion In File Names 352
26.13 File Name Translation 352
26.15 File Types And Transfer Modes 353
26.16 Example Of Using FTP 354
26.18 Client-Server Interaction In FTP 356
26.17 Verbose Output 356
26.19 Control And Data Connections 356
26.20 Data Connections And End Of File 357
26.22 Network File System 358
26.21 Trivial File Transfer Protocol 358
26.23 Summary 359
27.2 Browser interface 363
Chapter 27 World Wide Web Pages And Browsing 363
27.1 Introduction 363
27.3 Hypertext And Hypermedia 364
27.4 Document Representation 364
27.5 HTML Format And Representation 365
27.7 Headings 367
27.6 Example HTML Formatting Tags 367
27.9 Embedding Graphics Images in A Web Page 368
27.8 Lists 368
27.10 Identifying A Page 369
27.11 Hypertext Links From One Document To Another 370
27.12 Client-Server Interaction 371
27.13 Web Document Transport And HTTP 372
27.14 Browser Architecture 372
27.15 Optional Clients 373
27.16 Caching In Web Browsers 374
27.27 Summary 375
Chapter 28 CGI Technology For Dynamic Web Documents 379
28.1 Introduction 379
28.2 Three Basic Types of Web Documents 380
28.3 Advantages And Disadvantages Of Each Document Type 380
28.4 Implementation Of Dynamic Documents 382
28.5 The CGI Standard 383
28.6 Output From A CGI Program 383
28.7 An Example CGI Program 384
28.8 Parameters And Environment Variables 386
28.10 A CGI Script With Long-Term State Information 387
28.9 State Information 387
28.11 A CGI Script With Short-Term State Information 389
28.12 Forms And Interaction 392
28.13 Summary 392
29.1 Introduction 395
Chapter 29 Java Technology For Active Web Documents 395
29.2 An Early Form of Continuous Update 396
29.3 Active Documents And Server Overhead 397
29.4 Active Document Representation And Translation 397
29.5 Java Technology 399
29.6 The Java Programming Language 399
29.7 The Java Run-Time Environment 401
29.8 The Java Library 402
29.9 A Graphics Toolkit 403
29.10 Using Java Graphics on A Particular Computer 404
29.12 Compiling A Java Program 405
29.11 Java Interpreters And Browsers 405
29.13 An Example Applet 406
29.14 Invoking An Applet 408
29.15 Example Of Interaction With A Browser 409
29.16 Errors And Exception Handling 411
29.17 Alternatives And Variations 411
29.18 Summary 412
Chapter 30 Network Management(SNMP) 415
30.1 Introduction 415
30.2 Managing An Internet 415
30.3 The Danger Of Hidden Failures 416
30.4 Network Management Software 417
30.5 Clients, Servers, Managers,And Agents 417
30.6 Simple Network Management Protocol 418
30.7 Fetch-Store Paradigm 418
30.8 The MIB And Object Names 419
30.10 MIB Variables That Correspond To Arrays 420
30.9 The Variety Of MIB Variables 420
30.11 Summary 421
31.2 Secure Networks And Policies 423
Chapter 31 Network Security 423
31.1 Introductionk 423
31.3 Aspects Of Security 424
31.5 Integrity Mechanisms 425
31.4 Responsibility And Control 425
31.7 Encryption And Privacy 426
31.6 Access Control And Passwords 426
31.9 Authentication With Digital Signatures 427
31.8 Public Key Encryption 427
31.10 Packet Filtering 428
31.11 Internet Firewall Concept 430
31.12 Summary 431
Chapter 32 Initialization (Configuration) 433
32.2 Bootstrapping 433
32.1 Introduction 433
32.3 Starting Protocol Software 434
32.4 Protocol Parameters 434
32.6 Examples Of Items That Need To Be Configured 435
32.5 Protocol Configuration 435
32.7 Example Configuration : Using A Disk File 436
32.8 The Need To Automate Protocol Configuration 437
32.9 Methods For Automated Protocol Configuration 437
32.10 The Address Used To Find An Address 438
32.11 A Sequence Of Protocols Used During Bootstrap 439
32.12 Bootstrap Protocol(BOOTP) 439
32.13 Automatic Address Assignment 441
32.15 Optimizations In DHCP 442
32.14 Dynamic Host Configuration Protocol(DHCP) 442
32.16 DHCP Message Format 443
32.18 Summary 444
32.17 DHCP And Domain Names 444
Appendix 1 Glossary Of Networking Terms And Abbreviations 447
Appendix 2 The ASCII Character Set 477
Appendix3 How To Use The CD-ROM Included With This Book 479
Bibliography 485
Index 495