`ngand
`Ver A~
`
`Ex.1022
`APPLE INC. / Page 1 of 31
`
`
`
`lnternetworking With TCP/IP
`Vol I:
`Principles, Protocols, and Architecture
`Third Edition
`
`DOUGLAS E. COMER
`
`Department of Computer Sciences
`Purdue University
`West Lafayette, IN 47907
`
`PRENTICE HALL
`Englewood Cliffs, New Jersey 07632
`
`Ex.1022
`APPLE INC. / Page 2 of 31
`
`
`
`Library of Congress Cataloging-in-Publication Data
`
`Comer, Douglas
`Intemctworlcing with TCP/IP / Douglas E. Comer. -- 3rd ed.
`p.
`cm.
`Includes bibliographical references and index.
`Contents: v. I. Principles, protocols , and architecture
`ISBN 0-13-216987-8 (v. 1)
`I . TCP/IP (Computer network protocol) 2. Client/server computing.
`3. Intemctworking (Telecommunication)
`I. Title.
`TK5105.585.C66
`1995
`005.2--dc20
`
`95-1830
`CIP
`
`Acquisitions editor: ALAN APT
`Production editor: IRWIN ZUCKER
`Cover designer: WENDY ALLING JUDY
`Buyer: LORI BULWIN
`Editorial assistant: SHIRLEY MCGUIRE
`
`ii ©1995 by Prentice-Hall, Inc.
`
`A Simon & Schuster Company
`Englewood Cliffs, New Jersey 07632
`
`All rights reserved. No part of this book may be
`reproduced, in any form or by any means,
`without permission in writing from the publisher.
`
`The author and publisher of this book have used their best efforts in preparing this book. These efforts include the
`development, research, and testing of the theories and programs to determine their effectiveness. The author and
`publisher make no warranty of any kind, expressed or implied, with regard to these programs or the documentation
`contained in this book. The author and publisher shall not be liable in any event for incidental or consequential damages
`in connection with, or arising out of, the furnishing, performance, or use of these programs.
`
`UNIX is a registered trademark of UNIX System Laboratories, Incorporated
`proNET-10 is a trademark of Proteon Corporation
`LSI 11 is a trademark of Digital Equipment Corporation
`Microsoft Windows is a trademark of Microsoft Corporation
`
`Printed in the United States of America
`
`10 9 8 7 6 5 4 3
`
`ISBN
`
`□ -13-216987-8
`
`Prentice-Hall International (UK) Limited, London
`Prentice-Hall of Australia Pty. Limited, Sydney
`Prentice-Hall Canada Inc., Toronto
`Prentice-Hall Hispanoamericana, S.A., Mexico
`Prentice-Hall of India Private Limited, New Delhi
`Prentice-Hall of Japan, Inc., Tokyo
`Simon & Schuster Asia Pte. Ltd., Singapore
`Editora Prentice-Hall do Brasil, Ltda., Rio de Janeiro
`
`Ex.1022
`APPLE INC. / Page 3 of 31
`
`
`
`It
`
`Contents
`
`1d easy to
`
`1Unications
`
`'!IP as the
`1inute ma(cid:173)
`', IPng."
`
`echnology.
`rop of 'au(cid:173)
`, - but no
`ner shines
`urate infor(cid:173)
`Jus few at-
`
`ing history."
`
`'w latest in(cid:173)
`wheat with
`orkers grew
`
`xxi
`
`xxiii
`
`Foreword
`
`Preface
`
`Chapter 1
`
`Introduction And Overview
`
`The Motivation For lnternetworking
`1.1
`The TCP/JP Internet 2
`1.2
`3
`Internet Services
`1.3
`History And Scope Of The Internet 6
`1.4
`The Internet Architecture Board 8
`1.5
`The JAB Reorganization 9
`1.6
`11
`The Internet Society
`1.7
`11
`Internet Request For Comments
`1.8
`Internet Protocols And Standardization
`1 .9
`12
`1.10 Future Growth And Technology
`13
`1.11 Organization Of The Text
`14
`1 .12
`Summary
`
`12
`
`Chapter 2 Review Of Underlying Network Technologies
`
`17
`
`2.1
`2.2
`2.3
`2.4
`2.5
`2.6
`2.7
`2.8
`2.9
`
`17
`Introduction
`Two Approaches To Network Communication
`19
`Wide Area And Local Area Networks
`20
`Ethernet Technology
`Fiber Distributed Data Interconnect (FDD[)
`36
`Asynchronous Transfer Mode
`37
`ARPANET Technology
`National Science Foundation Networking
`ANSNET 44
`
`39
`
`18
`
`32
`
`vii
`
`Ex.1022
`APPLE INC. / Page 4 of 31
`
`
`
`viii
`
`Contents
`
`2.10 A Planned Wide Area Backbone
`44
`2.11 Other Technologies Over Which TCP/JP Has Been Used 44
`2.12
`Summary And Conclusion
`47
`
`Chapter 3
`
`lnternetworking Concept And Architectural Model
`
`49
`
`3 .1
`3 .2
`3.3
`3.4
`3 .5
`3.6
`3 .7
`3.8
`3.9
`3 .10
`
`1 ntroduction 49
`Application-Level Interconnection 49
`Network-Level Interconnection 50
`51
`Properties Of The Internet
`Internet Architecture 52
`Interconnection Through JP Routers 52
`1
`The User's View
`54
`All Networks Are Equal
`54
`The Unanswered Questions
`Summary 56
`
`55
`
`Chapter 4
`
`Internet Addresses
`
`59
`
`59
`Introduction
`4.1
`Universal Identifiers 59
`4.2
`Three Primary Classes Of JP Addresses 60
`4.3
`61
`Addresses Specify Network Connections
`4.4
`61
`Network And Broadcast Addresses
`4.5
`Limited Broadcast 62
`4.6
`Interpreting Zero To Mean "This"
`4.7
`4.8 Weaknesses In Internet Addressing
`65
`Dotted Decimal Notation
`4.9
`65
`4.10 Loopback Address
`Summary Of Special Address Conventions
`4.11
`Internet Addressing Authority 66
`4.12
`67
`4.13 An Example
`4.14 Network Byte Order
`Summary 70
`4.15
`
`62
`63
`
`66
`
`69
`
`Chapter 5 Mapping Internet Addresses To Physical Addresses (ARP)
`
`73
`
`5 .1
`5.2
`5.3
`5.4
`
`1 ntroduction 73
`73
`The Address Resolution Problem
`Two Types Of Physical Addresses
`74
`Resolution Through Direct Mapping
`74
`
`Ex.1022
`APPLE INC. / Page 5 of 31
`
`
`
`Contents
`
`Contents
`
`ix
`
`49
`
`75
`
`Resolution Through Dynamic Binding
`5.5
`76
`The Address Resolution Cache
`5.6
`ARP Refinements 77
`5 .7
`Relationship Of ARP To Other Protocols 77
`5.8
`77
`ARP Implementation
`5 .9
`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 (RAAP)
`
`83
`
`6.1
`6.2
`6.3
`6.4
`6.5
`
`Introduction
`83
`Reverse Address Resolution Protocol (RARP)
`Timing RARP Trans(J,ctions
`86
`Primary And Backup RARP Servers
`Summary
`87
`
`86
`
`84
`
`59
`
`Chapter 7
`
`Internet Protocol: Connectionless Datagram Delivery
`
`89
`
`7.1
`7.2
`7.3
`7.4
`7.5
`7.6
`7.7
`7.8
`7.9
`
`Introduction
`89
`A Virtual Network
`89
`Internet Architecture And Philosophy
`The Concept Of Unreliable Delivery
`Connectionless Delivery System
`91
`Purpose Of The Internet Protocol
`91
`The Internet Datagram
`91
`Internet Datagram Options
`Summary
`106
`
`100
`
`90
`90
`
`Chapter 8
`
`Internet Protocol: Routing IP Datagrams
`
`109
`
`(ARP)
`
`73
`
`Introduction
`8.1
`109
`Routing In An Internet
`8.2
`109
`Direct And Indirect Delivery
`8.3
`111
`Table -Driven IP Routing
`8.4
`113
`Next-Hop Routing
`8.5
`113
`Default Routes
`8.6
`115
`Host-Specific Routes
`8.7
`115
`The IP Routing Algorithm
`8.8
`116
`Routing With IP Addresses
`8.9
`116
`8.10 Handling Incoming Datagrams
`
`118
`
`Ex.1022
`APPLE INC. / Page 6 of 31
`
`
`
`8.11 Establishing Routing Tables
`8.12
`Summary
`119
`
`119
`
`Contents
`
`Chapter 9 Internet Protocol: Error And Control Messages (ICMP)
`
`123
`
`123
`124
`
`Introduction
`9.1
`123
`The Internet Control Message Protocol
`9.2
`Error Reporting vs. Error Correction
`9.3
`9.4
`ICMP Message Delivery
`125
`ICMP Message Format
`9.5
`126
`9.6
`Testing Destination Reachability And Status (Ping)
`Echo Request And Reply Message Format
`9.7
`128
`9.8
`Reports Of Unn!achable Destinations
`128
`9.9
`Congestion And Datagram Flow Control
`130
`Source Quench Format
`9.10
`130
`9.11 Route Change Requests From Routers
`131
`9.12 Detecting Circular Or Excessively Long Routes
`9.13 Reporting Other Problems
`134
`9.14 Clock Synchronization And Transit Time Estimation
`9.15
`Information Request And Reply Messages
`136
`9.16 Obtaining A Subnet Mask
`136
`9.17 Summary
`137
`
`127
`
`133
`
`134
`
`Chapter 1 O Subnet And Supernet Address Extensions
`
`139
`
`10.1
`10.2
`10.3
`10.4
`10.5
`10.6
`10.7
`10.8
`10.9
`JO.JO
`10.11
`10.12
`10.13
`10.14
`10.15
`10.16
`10.17
`
`140
`
`introduction
`139
`Review Of Relevant Facts
`139
`Minimizing Network Numbers
`Transparent Routers
`141
`Proxy ARP
`142
`Subnet Addressing
`143
`Flexibility In Subnet Address Assignment
`Implementation Of Subnets With Masks
`Subnet Mask Representation
`148
`Routing In The Presence Of Subnets
`The Subnet Routing Algorithm
`150
`A Unified Routing Algorithm
`151
`Maintenance Of Subnet Masks
`152
`Broadcasting To Subnets
`152
`Supernet Addressing
`153
`The Effect Of Supernetting On Routing
`Summary
`155
`
`146
`147
`
`149
`
`154
`
`Ex.1022
`APPLE INC. / Page 7 of 31
`
`
`
`Contents
`
`Contents
`
`Chapter 11 Protocol Layering
`
`xi
`
`159
`
`123
`
`139
`
`160
`
`159
`Introduction
`11.1
`159
`The Need For Multiple Protocols
`11.2
`The Conceptual Layers Of Protocol Software
`11.3
`163
`11.4 Functionality Of The Layers
`164
`11.5 X.25 And Its Relation To The ISO Model
`11.6 Differences Between X.25 And Internet Layering
`11.7 The Protocol Layering Principle
`169
`11.8 Layering In The Presence Of Network Substructure
`11.9 Two Important Boundaries In The TCP/IP Model
`174
`11 .10 The Disadvantage Of Layering
`11.11 The Basic Idea Behipd Multiplexing And Demultiplexing
`11.12 Summary
`176
`
`167
`
`171
`173
`
`174
`
`Chapter 12 User Datagram Protocol (UDP}
`
`179
`
`12 .1
`12.2
`12.3
`12.4
`12.5
`12.6
`12.7
`12.8
`12 .9
`12.10
`
`179
`
`179
`Introduction
`Identifying The Ultimate Destination
`180
`The User Datagram Protocol
`181
`Format Of UDP Messages
`182
`UDP Pseudo-Header
`183
`UDP Encapsulation And Protocol Layering
`Layering And The UDP Checksum Computation
`UDP Multiplexing, Demultiplexing, And Ports
`Reserved And Available UDP Port Numbers
`188
`Summary
`
`185
`185
`186
`
`Chapter 13 Reliable Stream Transport Service (TCP}
`
`191
`
`191
`Introduction
`13 .1
`191
`The Need For Stream Delivery
`13.2
`13.3 Properties Of The Reliable Delivery Service
`193
`13.4 Providing Reliability
`13.5
`The Idea Behind Sliding Windows
`13.6 The Transmission Control Protocol
`13.7 Ports, Connections, And Endpoints
`201
`13 .8 Passive And Active Opens
`13.9
`Segments, Streams, And Sequence Numbers
`13.10 Variable Window Size And Flow Control
`13.11 TCP Segment Format 203
`
`195
`198
`199
`
`192
`
`201
`202
`
`Ex.1022
`APPLE INC. / Page 8 of 31
`
`
`
`xii
`
`Contents
`
`13.12
`13.13
`13.14
`13.15
`13.16
`13.17
`13.18
`13.19
`13.20
`13.21
`13.22
`13.23
`13.24
`13.25
`13.26
`13.27
`13.28
`13.29
`13.30
`13.31
`
`216
`
`221
`
`Out Of Band Data
`205
`Maximum Segment Size Option
`206
`TCP Checksum Computation
`207
`Acknowledgements And Retransmission
`Timeout And Retransmission
`209
`Accurate Measurement Of Round Trip Samples
`Karn' s Algorithm And Timer Backoff 212
`Responding To High Variance In Delay
`213
`Response To Congestion
`214
`Establishing A TCP Connection
`Initial Sequence Numbers
`217
`Closing a TCP Connection
`217
`TCP Connection Reset 219
`TCP State Machine
`219
`Forcing Data Delivery
`221
`Reserved TCP Port Numbers
`TCP Performance
`221
`Silly Window Syndrome And Small Packets
`Avoiding Silly Window Syndrome
`224
`Summary
`227
`
`208
`
`211
`
`223
`
`Chapter 14 Routing: Cores, Peers, And Algorithms (GGP)
`
`231
`
`234
`
`Introduction
`14 .1
`231
`The Origin Of Routing Tables
`14.2
`232
`14.3 Routing With Partial Information
`233
`14.4 Original Internet Architecture And Cores
`14.5 Core Routers
`235
`14.6 Beyond The Core Architecture To Peer Backbones
`14.7 Automatic Route Propagation
`240
`14 .8 Vector Distance (Bellman-Ford) Routing
`14.9 Gateway-To -Gateway Protocol (GGP)
`14.10 GGP Message Formats
`243
`14.11 Link-State (SPF) Routing
`245
`14.12 SPF Protocols
`246
`14 .13 Summary
`246
`
`240
`242
`
`238
`
`Chapter 15 Routing: Autonomous Systems (EGP)
`
`249
`
`Introduction
`15.1
`249
`15.2 Adding Complexity To The Architectural Model
`15.3 A Fundamental Idea: Extra Hops
`250
`
`249
`
`Ex.1022
`APPLE INC. / Page 9 of 31
`
`
`
`Contents
`
`Contents
`
`xiii
`
`254
`
`15.4 Autonomous System Concept 252
`15 .5 Exterior Gateway Protocol ( EGP)
`15.6 EGP Message Header 255
`15.7 EGP Neighbor Acquisition Messages 256
`257
`15.8 EGP Neighbor Reachability Messages
`258
`15.9 EGP Poll Request Messages
`15.10 EGP Routing Update Messages 259
`15.11 Measuring From The Receiver's Perspective
`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
`265
`15.16 Summary
`
`261
`
`I
`Chapter 16 Routing: In An Autonomous System (RIP, OSPF, HELLO) 267
`
`267
`Introduction
`16.1
`Static Vs. Dynamic Interior Routes 267
`16.2
`270
`16.3 Routing Information Protocol (RIP)
`The Hello Protocol 276
`16.4
`16.5 Combining RIP, Hello, And EGP 278
`279
`16.6 The Open SPF Protocol (OSPF)
`16.7 Routing With Partial Information 286
`Summary 286
`16.8
`
`Chapter 17
`
`Internet Multicasting (IGMP)
`
`289
`
`289
`Introduction
`17.1
`17.2 Hardware Broadcast 289
`17.3 Hardware Multicast 290
`291
`IP Multicast
`17.4
`291
`IP Multicast Addresses
`17.5
`17.6 Mapping IP Multicast To Ethernet Multicast 292
`293
`17.7 Extending IP To Handle Multicasting
`Internet Group Management Protocol 294
`17.8
`IGMP Implementation 294
`17.9
`17.10 Group Membership State Transitions
`17.11 IGMP Message Format 296
`17.12 Multicast Address Assignment 297
`297
`17.13 Propagating Routing Information
`17.14 The Mrouted Program 298
`17.15 Summary 300
`
`295
`
`231
`
`249
`
`Ex.1022
`APPLE INC. / Page 10 of 31
`
`
`
`xiv
`
`Chapter 18 TCP/IP Over ATM Networks
`
`Contents
`
`303
`
`305
`306
`
`311
`
`303
`Introduction
`18 .1
`304
`18.2 ATM Hardware
`304
`18.3 Large ATM Networks
`18.4
`The Logical View Of An ATM Network
`18.5 The Two ATM Connection Paradigms
`307
`18.6 Paths, Circuits, And Identifiers
`308
`18.7 ATM Cell Transport
`308
`/8.8 ATM Adaptation Layers
`18.9 AAL5 Convergence, Segmentation, And Reassembly
`311
`18.10 Datagram Enc(lpsulation And IP MTV Size
`312
`18.11 Packet Type A~d Multiplexing
`18.12 IP Address Binding In An ATM Network
`18.13 Logical IP Subnet Concept 314
`315
`18.14 Connection Management
`18.15 Address Binding Within An LIS
`316
`18.16 ATMARP Packet Format
`18.17 Using ATMARP Packets To Determine An Address 318
`320
`18.18 Obtaining Entries For A Server Database
`320
`18.19 Timing Out ATMARP Information In A Server
`18.20 Timing Out ATMARP Information In A Host Or Router 320
`321
`18.21 Summary
`
`313
`
`316
`
`Chapter 19 Client-Server Model Of Interaction
`
`325
`
`325
`Introduction
`19.1
`325
`The Client-Server Model
`19.2
`19.3 A Simple Example: UDP Echo Server
`328
`19.4 Time And Date Service
`329
`The Complexity of Servers
`19.5
`330
`19.6 RARP Server
`19 .7 Alternatives To The Client-Server Model
`332
`19.8
`Summary
`
`326
`
`331
`
`Chapter 20 The Socket Interface
`
`335
`
`335
`Introduction
`20.1
`The UNIX /10 Paradigm And Network I/O
`20.2
`336
`20.3 Adding Network I/O to UNIX
`The Socket Abstraction 337
`20.4
`
`336
`
`Ex.1022
`APPLE INC. / Page 11 of 31
`
`
`
`f1l \
`
`Contents
`
`303
`
`Contents
`
`xv
`
`338
`
`337
`Creating A Socket
`20.5
`Socket inheritance And Termination
`20.6
`339
`Specifying A Local Address
`20.7
`Connecting Sockets To Destination Addresses 340
`20.8
`341
`Sending Data Through A Socket
`20.9
`343
`Receiving Data Through A Socket
`20.10
`Obtaining Local And Remote Socket Addresses 344
`20.11
`345
`Obtaining And Setting Socket Options
`20.12
`Specifying A Queue Length For A Server 346
`20.13
`346
`How A Server Accepts Connections
`20.14
`347
`Servers That Handle Multiple Services
`20.15
`348
`Obtaining And Setting Host Names
`20.16
`Obtaining And Setting The Internal Host Domain
`20.17
`349
`BSD UNIX Network Library Calls
`20.18
`20.19 Network Byte Order Conversion Routines
`351
`20.20 IP Address Manipulation Routines
`352
`20.21 Accessing The Domain Name System
`354
`20.22 Obtaining Information About Hosts
`355
`20.23 Obtaining Information About Networks
`20.24 Obtaining Information About Protocols 355
`20.25 Obtaining Information About Network Services
`20.26 An Example Client 357
`359
`20.27 An Example Server
`362
`20.28 Summary
`
`349
`
`350
`
`356
`
`325
`
`Chapter 21 Bootstrap And Autoconfiguration (BOOTP, DHCP)
`
`365
`
`21.1
`21.2
`21.3
`21.4
`21 .5
`21.6
`21.7
`21.8
`21.9
`21.10
`21.11
`21.12
`21.13
`21.14
`21.15
`21.16
`
`335
`
`365
`Introduction
`366
`The Need For An Alternative To RARP
`Using IP To Determine An IP Address 366
`367
`The BOOTP Retransmission Policy
`368
`The BOOTP Message Format
`The Two -Step Bootstrap Procedure
`370
`Vendor-Specific Field
`The Need For Dynamic Configuration
`372
`Dynamic Host Configuration
`Dynamic IP Address Assignment 372
`Obtaining Multiple Addresses 373
`374
`Address Acquisition States
`374
`Early Lease Termination
`376
`Lease Renewal States
`DHCP Message Format
`377
`DHCP Options And Message Type
`
`369
`
`370
`
`378
`
`Ex.1022
`APPLE INC. / Page 12 of 31
`
`
`
`xvi
`
`21 .17 Option Overload 379
`21.18 DHCP And Domain Names
`380
`21.19 Summary
`
`379
`
`Chapter 22 The Domain Name System (DNS)
`
`Contents
`
`383
`
`384
`
`386
`
`383
`Introduction
`22 .1
`22.2 Names For Machines
`384
`22.3 Flat Namespace
`22 .4 Hierarchical Names
`385
`22.5 Delegation Of Authority For Names
`386
`22 .6
`Subset Authority,
`22.7 TCP/JP Internet Domain Names
`387
`22.8 Official And Unofficial Internet Domain Names
`390
`22.9
`Items Named And Syntax Of Names
`22.10 Mapping Domain Names To Addresses 391
`393
`22.11 Domain Name Resolution
`394
`22.12 Efficient Translation
`22 .13 Caching: The Key To Efficiency
`22.14 Domain Server Message Format
`399
`22.15 Compressed Name Format
`22.16 Abbreviation Of Domain Names
`400
`22.17 Inverse Mappings
`22.18 Pointer Queries 401
`22.19 Object Types And Resource Record Contents
`402
`22 .20 Obtaining Authority For A Subdomain
`403
`22.21 Summary
`
`388
`
`401
`
`395
`396
`
`399
`
`Chapter 23 Applications: Remote Login (TELNET, Rlogin)
`
`407
`
`407
`
`407
`Introduction
`23 .1
`23.2 Remote Interactive Computing
`TELNET Protocol 408
`23 .3
`410
`23.4 Accommodating Heterogeneity
`23.5 Passing Commands That Control The Remote Side
`23 .6 Forcing The Server To Read A Control Function
`414
`23.7 TELNET Options
`23.8 TELNET Option Negotiation
`416
`23.9 Rlogin (BSD UNIX)
`417
`23.10 Summary
`
`415
`
`412
`414
`
`Ex.1022
`APPLE INC. / Page 13 of 31
`
`
`
`Contents
`
`Contents
`
`xvii
`
`Chapter 24 Applications: File Transfer And Access (FTP, TFTP, NFS) 419
`
`383
`
`407
`
`419
`Introduction
`24.1
`419
`24.2 File Access And Transfer
`24.3 On-line Shared Access 420
`421
`24.4
`Sharing By File Transfer
`24.5 FTP: The Major TCP/JP File Transfer Protocol 421
`422
`24.6 FTP ,Features
`422
`24.7 FTP Process Model
`24.8 TCP Port Number Assignment 424
`424
`24.9 The User's View Of FTP
`24.10 An Example Anonymous FTP Session
`1
`427
`24.11 TFTP
`429
`24.12 NFS
`429
`24.13 NFS Implementation
`24.14 Remote Procedure Call (RPC)
`24.15 Summary 431
`
`430
`
`426
`
`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
`25.6 TCP/IP Standards For Electronic Mail Service
`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
`
`436
`438
`
`Chapter 26 Applications: Internet Management (SNMP, SNMPv2)
`
`447
`
`447
`Introduction
`26.1
`The Level Of Management Protocols
`26.2
`448
`26.3 Architectural Model
`450
`26.4 Protocol Architecture
`26.5 Examples of MIB Variables . 451
`26 .6 The Structure Of Management Information
`
`447
`
`452
`
`Ex.1022
`APPLE INC. / Page 14 of 31
`
`
`
`xviii
`
`26.7
`26.8
`26.9
`26.10
`26.11
`26.12
`
`453
`Formal Definitions Using ASN.1
`Structure And Representation Of MJB Object Names
`458
`Simple Network Management Protocol
`SNMP Message Format 460
`Example Encoded SNMP Message
`463
`Summary
`
`462
`
`453
`
`Chapter 27 Summary Of Protocol Dependencies
`
`465
`Introduction
`27.1
`27.2 Protocol Dependencies 465
`27.3 Application Rrogram Access 467
`468
`27.4
`Summary
`
`Chapter 28
`
`Internet Security And Firewall Design
`
`471
`Introduction
`28.1
`28.2 Protecting Resources 472
`472
`28.3
`The Need For An Information Policy
`28.4 Communication, Cooperation, And Mutual Mistrust
`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
`479
`28.9 Packet-Level Filters
`480
`28.10 Security And Packet Filter Specification
`28.11 The Consequence Of Restricted Access For Clients
`481
`28.12 Accessing Services Through A Firewall
`483
`28.13 The Details Of Firewall Architecture
`28.14 Stub Network 484
`28.15 An Alternative Firewall Implementation 484
`485
`28.16 Monitoring And Logging
`486
`28.17 Summary
`
`474
`
`478
`
`481
`
`Chapter 29 The Future Of TCP/IP (IPng, 1Pv6)
`
`489
`Introduction
`29.1
`29.2 Why Change TCP/IP And The Internet?
`491
`29.3 Motivation For Changing IPv4
`29.4
`The Road To A New Version Of IP
`492
`29.5
`The Name Of The Next IP
`
`492
`
`490
`
`Contents
`
`465
`
`471
`
`489
`
`Ex.1022
`APPLE INC. / Page 15 of 31
`
`
`
`Contents
`
`Contents
`
`xix
`
`29.6
`29.7
`29.8
`29.9
`29.10
`29.11
`29.12
`29.13
`29.14
`29.15
`29.16
`29.17
`29.18
`29.19
`29.20
`29.21
`29.22
`29.23
`29.24
`
`498
`
`493
`Features Of 1Pv6
`General Form Of An 1Pv6 Datagram 494
`1Pv6 Base Header Format 494
`496
`1Pv6 Extension Headers
`Parsing An 1Pv6 Datagram 497
`1Pv6 Fragmentation And Reassembly 498
`The Consequence Of End-To-End Fragmentation
`1Pv6 Source Routing 500
`1Pv6 Options 500
`502
`Size Of The 1Pv6 Address Space
`502
`1Pv6 Colon Hexadecimal Notation
`503
`Three Basic 1Pv6 Address Types
`504
`The Duality Of Broadcast And Multicast
`An Engineering Choice And Simulated Broadcast 504
`Proposed 1Pv6 Addre{Js Space Assignment 504
`506
`1Pv4 Address Encoding And Transition
`Providers, Subscribers, And Address Hierarchy
`507
`Additional Hierarchy
`508
`Summary
`
`506
`
`Appendix 1 A Guide To RFCs
`
`511
`
`Appendix 2 Glossary Of lnternetworking Terms And Abbreviations
`
`557
`
`Bibliography
`
`Index
`
`591 ·
`
`599
`
`465
`
`471
`
`489
`
`Ex.1022
`APPLE INC. / Page 16 of 31
`
`
`
`1
`
`Introduction And Overview
`
`1.1 The Motivation For lnternetworking
`
`Data communication has become a fundamental part of computing. World-wide
`networks gather data about such diverse subjects as atmospheric conditions, crop pro(cid:173)
`duction, and airline traffic. Groups establish electronic mailing lists so they can share
`information of common interest. Hobbyists exchange programs for their home comput(cid:173)
`ers. In the scientific world, data networks are essential because they allow scientists to
`send programs and data to remote supercomputers for processing, to retrieve the results,
`and to exchange information with colleagues.
`Unfortunately, most networks are independent entities, established to serve the
`needs of a single group. The users choose a hardware technology appropriate to their
`communication problems. More important, it is impossible to build a universal network
`from a single hardware technology because no single network suffices for all uses.
`Some users need a high-speed network to connect machines, but such networks cannot
`be expanded to span large distances. Others settle for a slower speed network that con(cid:173)
`nects machines thousands of miles apart.
`In the past 15 years, a new technology has evolved that makes it possible to inter(cid:173)
`connect many disparate physical networks and make them function as a coordinated
`unit. The technology, called internetworking, accommodates multiple, diverse underly(cid:173)
`ing hardware technologies by providing a way to interconnect heterogeneous networks
`and a set of communication conventions. The internet technology hides the details of
`network hardware and permits computers to communicate independent of their physical
`network connections.
`The internet technology described in this book is an example of open system inter(cid:173)
`connection. It is called an open system because, unlike proprietary communication sys(cid:173)
`tems available from one specific vendor, the specifications are publicly available. Thus,
`
`Ex.1022
`APPLE INC. / Page 17 of 31
`
`
`
`Introduction And Overview
`
`Chap . I
`
`anyone can build the software needed to communicate across an internet. More impor(cid:173)
`to foster communication between
`tant, the entire technology has been designed
`machines with diverse hardware architectures, to use almost any packet switched net(cid:173)
`work hardware, and to accommodate multiple computer operating systems.
`To appreciate internet technology, think of how it affects a professional group.
`Consider, for example, the effect of interconnecting the computers used by scientists.
`Any scientist can exchange data resulting from an experiment with any other scientist.
`National centers can collect data from natural phenomena and make the data available
`to all scientists . Computer services and programs available at one location can be used
`by scientists at other locations. As a result, the speed with which scientific investiga(cid:173)
`tions proceed increases; the changes are dramatic.
`
`1.2 The TCP/IP Internet
`U.S. government agencies have realized the importance and potential of internet
`technology for many years and have been funding research that has made possible a
`global internet. This book discusses principles and ideas underlying the internet tech(cid:173)
`nology that has resulted from research funded by the Advanced Research Projects Agen(cid:173)
`cy (ARPA)t. The ARPA technology includes a set of network standards that specify the
`details of how computers communicate, as well as a set of conventions for interconnect(cid:173)
`ing networks and routing traffic. Officially named the TCP/IP Internet Protocol Suite
`and commonly referred to as TCP/IP (after the names of its two main standards), it can
`be used to communicate across any set of interconnected networks. For example, some
`corporations use TCP/IP to interconnect all networks within their corporation, even
`though the corporation has no connection to outside networks. Other groups use
`TCP/IP for communication among geographically distant sites.
`Although the TCP/IP technology is noteworthy by itself, it is especially interesting
`because its viability has been demonstrated on a large scale. It forms the base technolo(cid:173)
`gy for a global internet that connects homes, university campuses and other schools,
`corporations, and government labs in 61 countries. In the U.S., The National Science
`Foundation (NSF) , the Department of Energy (DOE), the Department of Defense
`(DOD), the Health and Human Services Agency, (HHS) and the Nationa l Aeronautics
`and Space Administration (NASA) have all participated in funding the Internet, and use
`TCP/IP to connect many of their research sites. Known as the ARPA/NSF Internet, the
`TCP/IP Internet, the global Internet, or just the Internet+, the resulting internet allows
`researchers at connected institutions to share information with colleagues around the
`world as easily as they share it with researchers in the next room. An outstanding suc(cid:173)
`cess , the Internet demonstrates the viability of the TCP/IP technology and shows how it
`can accommodate a wide variety of underlying network technologies.
`Most of the material in this book applies to any internet that uses TCP/IP, but
`some chapters refer specifically to the global Internet. Readers interested only in the
`technology should be careful to watch for the distinction between the Internet architec(cid:173)
`ture as it exists and general TCP/IP intemets as they might exist. It would be a mis-
`t ARPA was called the Defense Advanced Research Projects Agency for several years during the 1980s.
`:j:We will follow the usual convention of capitalizing Internet when referring specifically to the global
`Internet, and use lower case to refer to private intemets that use TCP/IP.
`
`Ex.1022
`APPLE INC. / Page 18 of 31
`
`
`
`rview
`
`Chap. 1
`
`. More impor(cid:173)
`ation between
`t switched net(cid:173)
`s.
`~ssional group.
`d by scientists.
`other scientist.
`: data available
`on can be used
`1tific investiga-
`
`ntial of internet
`nade possible a
`1e internet tech-
`1 Projects Agen-
`, that specify the
`for interconnect(cid:173)
`:t Protocol Suite
`,tandards), it can
`r example, some
`orporation, even
`ther groups use
`
`cially interesting
`1e base technolo-
`1d other schools,
`National Science
`nent of Defense
`anal Aeronautics
`Internet, and use
`NSF Internet, the
`1g internet allows
`agues around the
`t outstanding sue(cid:173)
`and shows how it
`
`uses TCP/IP, but
`rested only in the
`, Internet architec(cid:173)
`t would be a mis-
`
`ars during the l 980s.
`ecifically to the global
`
`Sec. 1.2
`
`The TCP/IP Internet
`
`take, however, to ignore completely sections of the text that describe the global Internet
`- many corporate networks are already more complex than the global Internet of ten
`years ago, and many of the problems they face have already been solved in the global
`Internet.
`
`1.3 Internet Services
`
`One cannot appreciate the technical details underlying TCP/IP without understand(cid:173)
`ing the services it provides. This section reviews internet services briefly, highlighting
`the services most users access, and leaves to later chapters the discussion of how com(cid:173)
`puters connect to a TCP/IP internet and how the functionality is implemented.
`Much of our discussion of services will focus on standards called protocols. Proto(cid:173)
`cols like TCP and IP provide the rules for communication. They contain the details of
`message formats, describe how a computer responds when a message arrives, and speci(cid:173)
`fy how a computer handles errors or other abnormal conditions. Most important, they
`allow us to discuss computer communication independent of any particular vendor's
`network hardware. In a sense, protocols are to communication what algorithms are to
`computation. An algorithm allows one to specify or understand a computation without
`knowing the details of a particular CPU instruction set. Similarly, a communication
`protocol allows one to specify or understand data communication without depending on
`detailed knowledge of a particular vendor's network hardware.
`Hiding the low-level details of communication helps improve productivity in
`several ways. First, because programmers deal with higher-level protocol abstractions,
`they do not need to learn or remember as many details about a given hardware confi(cid:173)
`guration. They can create new programs quickly. Second, because programs built us(cid:173)
`ing higher-level abstractions are not restricted to a particular machine architecture or a
`particular network hardware, they do not need to be changed when machines or net(cid:173)
`works are reconfigured. Third, because application programs built using higher-level
`protocols are independent of the underlying hardware, they can provide direct communi(cid:173)
`cation for an arbitrary pair of machines. Programmers do not need to build special ver(cid:173)
`sions of application software to move and translate data between each possible pair of
`machine types.
`We will see that all network services are described by protocols. The next sections
`refer to protocols used to specify application-level services as well as those used to de(cid:173)
`fine network-level services. Later chapters explain each of these protocols in more de(cid:173)
`tail.
`
`1.3.1 Application Level Internet Services
`
`From the user's point of view, a TCP/IP internet appears to be a set of application
`programs that use the network to carry out useful communication tasks. We use the
`term interoperability to refer to the ability of diverse computing systems to cooperate in
`solving computational problems. Internet application programs exhibit a high degree of
`
`Ex.1022
`APPLE INC. / Page 19 of 31
`
`
`
`4
`
`Introduction And Overview
`
`Chap. I
`
`interoperability. Most users that access the Internet do so merely by running application
`programs without understanding the TCP/IP technology, the structure of the underlying
`internet, or even the path the data travels to its destination; they rely on the application
`programs and the underlying network software to handle such details. Only program(cid:173)
`mers who write network application programs need to view the internet as a network
`and need to understand some of the technology.
`The most popular and widespread Internet application services include:
`• Electronic mail. Electronic mail allows a user to compose memos and send them
`to individuals or groups. Another part of the mail application allows users to read
`memos that they have received. Electronic mail has been so successful that many
`Internet users depend on it for normal business correspondence. Although many
`electronic mail ,systems exist, using TCP/IP makes mail delivery more reliable be(cid:173)
`cause it does not rely on intermediate computers to relay mail messages. A
`TCP/IP mail delivery system operates by having the sender's machine contact the
`receiver's machine directly . Thus, the sender knows that on