Chapter 1 Introduction 1
1.1 OVERVIEW OF THE INTERNET 2
1.1.1 Networks 2
1.1.2 Switching 4
1.1.3 The Internet 6
1.1.4 Accessing the Internet 7
1.1.5 Hardware and Software 8
1.2 PROTOCOL LAYERING 9
1.2.1 Scenarios 9
1.2.2 TCP/IP Protocol Suite 12
1.2.3 The OSI Model 20
1.3 INTERNET HISTORY 22
1.3.1 Early History 22
1.3.2 Birth of the Internet 22
1.3.3 Internet Today 24
1.4 STANDARDS AND ADMINISTRATION 24
1.4.1 Internet Standards 24
1.4.2 Internet Administration 26
1.5 END-CHAPTER MATERIALS 27
1.5.1 Further Reading 27
1.5.2 Key Terms 28
1.5.3 Summary 28
1.6 PRACTICE SET 29
1.6.1 Quizzes 29
1.6.2 Questions 29
1.6.3 Problems 30
1.7 SIMULATION EXPERIMENTS 31
1.7.1 Applets 31
1.7.2 Lab Assignments 32
Chapter 2 Application Layer 33
2.1 INTRODUCTION 34
2.1.1 Providing Services 35
2.1.2 Application-Layer Paradigms 36
2.2 CLIENT-SERVER PARADIGM 38
2.2.1 Application Programming Interface 39
2.2.2 Using Services of the Transport Layer 43
2.3 STANDARD CLIENT-SERVER APPLICATIONS 44
2.3.1 World Wide Web and HTTP 44
2.3.2 FTP 59
2.3.3 Electronic Mail 63
2.3.4 TELNET 76
2.3.5 Secure Shell (SSH) 78
2.3.6 Domain Name System (DNS) 81
2.4 PEER-TO-PEER PARADIGM 92
2.4.1 P2P Networks 92
2.4.2 Distributed Hash Table (DHT) 95
2.4.3 Chord 97
2.4.4 Pastry 104
2.4.5 Kademlia 108
2.4.6 A Popular P2P Network: BitTorrent 112
2.5 SOCKET INTERFACE PROGRAMMING 114
2.5.1 Socket Interface in C 114
2.6 END-CHAPTER MATERIALS 128
2.6.1 Further Reading 128
2.6.2 Key Terms 129
2.6.3 Summary 129
2.7 PRACTICE SET 130
2.7.1 Quizzes 130
2.7.2 Questions 130
2.7.3 Problems 132
2.8 SIMULATION EXPERIMENTS 136
2.8.1 Applets 136
2.8.2 Lab Assignments 136
2.9 PROGRAMMING ASSIGNMENT 137
Chapter 3 Transport Layer 139
3.1 INTRODUCTION 140
3.1.1 Transport-Layer Services 141
3.2 TRANSPORT-LAYER PROTOCOLS 154
3.2.1 Simple Protocol 154
3.2.2 Stop-and-Wait Protocol 155
3.2.3 Go-Back-N Protocol (GBN) 160
3.2.4 Selective-Repeat Protocol 166
3.2.5 Bidirectional Protocols: Piggybacking 173
3.2.6 Internet Transport-Layer Protocols 173
3.3 USER DATAGRAM PROTOCOL (UDP) 175
3.3.1 User Datagram 175
3.3.2 UDP Services 176
3.3.3 UDP Applications 179
3.4 TRANSMISSION CONTROL PROTOCOL (TCP) 181
3.4.1 TCP Services 181
3.4.2 TCP Features 184
3.4.3 Segment 185
3.4.4 A TCP Connection 188
3.4.5 State Transition Diagram 194
3.4.6 Windows in TCP 198
3.4.7 Flow Control 200
3.4.8 Error Control 205
3.4.9 TCP Congestion Control 213
3.4.10 TCP Timers 223
3.4.11 Options 227
3.5 END-CHAPTER MATERIALS 227
3.5.1 Further Reading 227
3.5.2 Key Terms 227
3.5.3 Summary 228
3.6 PRACTICE SET 228
3.6.1 Quizzes 228
3.6.2 Questions 229
3.6.3 Problems 232
3.7 SIMULATION EXPERIMENTS 239
3.7.1 Applets 239
3.7.2 Lab Assignments 239
3.8 PROGRAMMING ASSIGNMENT 240
Chapter 4 Network Layer 241
4.1 INTRODUCTION 242
4.1.1 Network-Layer Services 243
4.1.2 Packet Switching 246
4.1.3 Network-Layer Performance 251
4.1.4 Network-Layer Congestion 255
4.1.5 Structure of A Router 258
4.2 NETWORK-LAYER PROTOCOLS 261
4.2.1 IPv4 Datagram Format 262
4.2.2 IPv4 Addresses 269
4.2.3 Forwarding of IP Packets 286
4.2.4 ICMPv4 295
4.3 UNICAST ROUTING 299
4.3.1 General Idea 300
4.3.2 Routing Algorithms 302
4.3.3 Unicast Routing Protocols 313
4.4 MULTICAST ROUTING 333
4.4.1 Introduction 333
4.4.2 Multicasting Basics 336
4.4.3 Intradomain Routing Protocols 343
4.4.4 Interdomain Routing Protocols 349
4.5 NEXT GENERATION IP 350
4.5.1 Packet Format 351
4.5.2 IPv6 Addressing 353
4.5.3 Transition from IPv4 to IPv6 358
4.5.4 ICMPv6 359
4.6 END-CHAPTER MATERIALS 361
4.6.1 Further Reading 361
4.6.2 Key Terms 361
4.6.3 Summary 362
4.7 PRACTICE SET 362
4.7.1 Quizzes 362
4.7.2 Questions 363
4.7.3 Problems 366
4.8 SIMULATION EXPERIMENTS 373
4.8.1 Applets 373
4.8.2 Lab Assignments 373
4.9 PROGRAMMING ASSIGNMENT 374
Chapter 5 Data-Link Layer: Wired Networks 375
5.1 INTRODUCTION 376
5.1.1 Nodes and Links 377
5.1.2 Two Types of Links 377
5.1.3 Two Sublayers 378
5.2 DATA LINK CONTROL (DLC) 378
5.2.1 Framing 378
5.2.2 Flow and Error Control 381
5.2.3 Error Detection and Correction 382
5.2.4 Two DLC Protocols 396
5.3 MULTIPLE ACCESS PROTOCOLS 403
5.3.1 Random Access 404
5.3.2 Controlled Access 416
5.3.3 Channelization 419
5.4 LINK-LAYER ADDRESSING 419
5.5 WIRED LANS: ETHERNET PROTOCOL 428
5.5.1 IEEE Project 802 428
5.5.2 Standard Ethernet 429
5.5.3 Fast Ethernet (100 Mbps) 436
5.5.4 Gigabit Ethernet 437
5.5.5 10-Gigabit Ethernet 438
5.5.6 Virtual LANs 438
5.6 OTHER WIRED NETWORKS 442
5.6.1 Point-to-Point Networks 443
5.6.2 SONET 448
5.6.3 Switched Network: ATM 455
5.7 CONNECTING DEVICES 460
5.7.1 Repeaters or Hubs 460
5.7.2 Link-Layer Switches 461
5.7.3 Routers 463
5.8 END-CHAPTER MATERIALS 464
5.8.1 Recommended Reading 464
5.8.2 Key Terms 464
5.8.3 Summary 465
5.9 PRACTICE SET 466
5.9.1 Quizzes 466
5.9.2 Questions 466
5.9.3 Problems 468
5.10 SIMULATION EXPERIMENTS 476
5.10.1 Applets 476
5.10.2 Lab Assignments 477
5.11 PROGRAMMING ASSIGNMENTS 477
Chapter 6 Wireless Networks and Mobile IP 479
6.1 WIRELESS LANs 480
6.1.1 Introduction 480
6.1.2 IEEE 802.11 Project 483
6.1.3 Bluetooth 495
6.1.4 WiMAX 501
6.2 OTHER WIRELESS NETWORKS 503
6.2.1 Channelization 503
6.2.2 Cellular Telephony 510
6.2.3 Satellite Networks 521
6.3 MOBILE IP 527
6.3.1 Addressing 527
6.3.2 Agents 529
6.3.3 Three Phases 530
6.3.4 Inefficiency in Mobile IP 535
6.4 END-CHAPTER MATERIALS 536
6.4.1 Further Reading 536
6.4.2 Key Terms 537
6.4.3 Summary 537
6.5 PRACTICE SET 538
6.5.1 Quizzes 538
6.5.2 Questions 538
6.5.3 Problems 540
6.6 SIMULATION EXPERIMENTS 545
6.6.1 Applets 545
6.6.2 Lab Assignments 545
6.7 PROGRAMMING ASSIGNMENT 545
Chapter 7 Physical Layer and Transmission Media 547
7.1 DATA AND SIGNALS 548
7.1.1 Analog and Digital 549
7.1.2 Transmission Impairment 556
7.1.3 Data Rate Limits 558
7.1.4 Performance 560
7.2 DIGITAL TRANSMISSION 563
7.2.1 Digital-to-Digital Conversion 563
7.2.2 Analog-to-Digital Conversion 569
7.3 ANALOG TRANSMISSION 574
7.3.1 Digital-to-Analog Conversion 574
7.3.2 Analog-to-Analog Conversion 579
7.4 BANDWIDTH UTILIZATION 581
7.4.1 Multiplexing 581
7.4.2 Spread Spectrum 587
7.5 TRANSMISSION MEDIA 591
7.5.1 Guided Media 591
7.5.2 Unguided Media: Wireless 596
7.6 END-CHAPTER MATERIALS 598
7.6.1 Recommended Reading 598
7.6.2 Key Terms 598
7.6.3 Summary 599
7.7 PRACTICE SET 600
7.7.1 Quizzes 600
7.7.2 Questions 600
7.7.3 Problems 601
Chapter 8 Multimedia and Quality of Service 607
8.1 COMPRESSION 608
8.1.1 Lossless Compression 608
8.1.2 Lossy Compression 617
8.2 MULTIMEDIA DATA 623
8.2.1 Text 623
8.2.2 Image 623
8.2.3 Video 627
8.2.4 Audio 629
8.3 MULTIMEDIA IN THE INTERNET 630
8.3.1 Streaming Stored Audio/Video 631
8.3.2 Streaming Live Audio/Video 634
8.3.3 Real-Time Interactive Audio/Video 635
8.4 REAL-TIME INTERACTIVE PROTOCOLS 641
8.4.1 Rationale for New Protocols 642
8.4.2 RTP 645
8.4.3 RTCP 648
8.4.4 Session Initialization Protocol (SIP) 651
8.4.5 H.323 658
8.4.6 SCTP 660
8.5 QUALITY OF SERVICE 674
8.5.1 Data-Flow Characteristics 674
8.5.2 Flow Classes 675
8.5.3 Flow Control to Improve QoS 676
8.5.4 Integrated Services (IntServ) 682
8.5.5 Differentiated Services (DiffServ) 686
8.6 END-CHAPTER MATERIALS 687
8.6.1 Recommended Reading 687
8.6.2 Key Terms 688
8.6.3 Summary 688
8.7 PRACTICE SET 689
8.7.1 Quizzes 689
8.7.2 Questions 689
8.7.3 Problems 692
8.8 SIMULATION EXPERIMENTS 700
8.8.1 Applets 700
8.8.2 Lab Assignments 700
8.9 PROGRAMMING ASSIGNMENTS 700
Chapter 9 Network Management 701
9.1 INTRODUCTION 702
9.1.1 Configuration Management 702
9.1.2 Fault Management 704
9.1.3 Performance Management 705
9.1.4 Security Management 705
9.1.5 Accounting Management 705
9.2 SNMP 706
9.2.1 Managers and Agents 706
9.2.2 Management Components 707
9.2.3 An Overview 709
9.2.4 SMI 710
9.2.5 MIB 713
9.2.6 SNMP 716
9.3 ASN.1 722
9.3.1 Language Basics 722
9.3.2 Data Types 723
9.3.3 Encoding 726
9.4 END-CHAPTER MATERIALS 726
9.4.1 Further Reading 726
9.4.2 Key Terms 726
9.4.3 Summary 726
9.5 PRACTICE SET 727
9.5.1 Quizzes 727
9.5.2 Questions 727
9.5.3 Problems 728
Chapter 10 Network Security 731
10.1 INTRODUCTION 732
10.1.1 Security Goals 732
10.1.2 Attacks 733
10.1.3 Services and Techniques 734
10.2 CONFIDENTIALITY 735
10.2.1 Symmetric-Key Ciphers 735
10.2.2 Asymmetric-Key Ciphers 746
10.3 OTHER ASPECTS OF SECURITY 751
10.3.1 Message Integrity 751
10.3.2 Message Authentication 752
10.3.3 Digital Signature 753
10.3.4 Entity Authentication 758
10.3.5 Key Management 761
10.4 INTERNET SECURITY 766
10.4.1 Application-Layer Security 767
10.4.2 Transport-Layer Security 776
10.4.3 Network-Layer Security 782
10.5 FIREWALLS 792
10.5.1 Packet-Filter Firewall 793
10.5.2 Proxy Firewall 793
10.6 END-CHAPTER MATERIALS 794
10.6.1 Further Reading 794
10.6.2 Key Terms 794
10.6.3 Summary 795
10.7 PRACTICE SET 796
10.7.1 Quizzes 796
10.7.2 Questions 796
10.7.3 Problems 798
10.8 SIMULATION EXPERIMENTS 803
10.8.1 Applets 803
10.8.2 Lab Assignments 803
10.9 PROGRAMMING ASSIGNMENTS 803
Chapter 11 Socket Programming In Java 805
11.1 INTRODUCTION 806
11.1.1 Addresses and Ports 806
11.1.2 Client-Server Paradigm 809
11.2 PROGRAMMING WITH UDP 810
11.2.1 Iterative Approach 810
11.2.2 Concurrent Approach 820
11.3 PROGRAMMING WITH TCP 823
11.3.1 Iterative Approach 823
11.3.2 Concurrent Approach 832
11.4 END-CHAPTER MATERIALS 835
11.4.1 Further Reading 835
11.4.2 Key Terms 835
11.4.3 Summary 835
11.5 PRACTICE SET 836
11.5.1 Quizzes 836
11.5.2 Questions 836
11.5.3 Problems 838
11.6 PROGRAMMING ASSIGNMENTS 838
Appendix A Unicode 841
Appendix B Positional Numbering System 845
Appendix C HTML, CSS, XML, and XSL 853
Appendix D Miscellaneous Information 861
Appendix E 8B/6T Code 865
Glossary 867
References 901
Index 905