`
`lnternetworking
`
`with
`
`TCP/IP
`
`VOLUME I
`
`Principles, Protocols, and Architecture
`
`Douglas E. Comer-
`
`Samsung — Exhibit 1016 — Page 1
`
`Samsung - Exhibit 1016 - Page 1
`
`
`
`Internetworking With TCP/IP
`
`;*____________
`
`Samsung — Exhibit 1016 — Page 2
`
`Samsung - Exhibit 1016 - Page 2
`
`
`
`
`
`lnternetworking With TCP/IP
`
`Vol I:
`
`Principles, Protocols, and Architecture
`
`Second Edition
`
`DOUGLAS E. COMER
`
`Department of Computer Sciences
`Purdue University
`West Lafayette, IN 47907
`
`3
`
`PRENTICE HALL
`Englewood Cliffs, New Jersey 07632
`
`i
`
`Samsung — Exhibit 1016 — Page 3
`
`Samsung - Exhibit 1016 - Page 3
`
`
`
`Library of Congress CataIogIng—1n—Publtcatton Data
`
`Comer, Douglas E.
`Internetworktng with TCP/IP / Douglas E. Caner. -- 2nd ed.
`p.
`cm.
`) and tndex.
`Includes blbllographlcal references (v. 1, p.
`Contents: vol. 1. Prlnctples. protocols. and archltecture.
`ISBN 0—13—468505—9 (v.
`1)
`1. Computer networks.
`2. Computer network protocols.
`transnlsston systems.
`I. Title.
`TK5105.5.C59
`1991
`004.6-—dc2O
`
`3. Data
`
`90-7529
`CIP
`
`Editorial/production supervision: Joe Scordato
`Cover design: Karen Stephens
`Cover illustration: Jim Kinstrey
`Manufacturing buyers: Linda Behrens and Patrice Fraccio
`
`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
`detennine 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 fumishing, perfonnance, or use of these
`programs.
`
`©1991 by Prentice-Hall, Inc.
`A Division of Simon & Schuster
`
`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.
`
`primed in the United States of America
`
`10
`
`9
`
`8
`
`7
`
`6
`
`5
`
`UNIX is a registered trademark of AT&T Bell
`Laboratories. proNET—l0 is a trademark of
`Proteon Corporation. VAX, Microvax, and
`LSI 11 are trademarks of Digital Equipment
`Corporation. Network Systems and HYPER-
`channels are registered trademarks of Network
`Systems Corporation.
`
`ISBN E]-1.3-'-IEBSEIS-‘I
`
`Prentice-Hall International (UK) Limited, London
`Prentice-Hall of Australia Pty. Limited, Sidney
`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
`
`
`
`""“ ""‘“"""“‘ "" "“"""**!"m, .
`
`Samsung — Exhibit 1016 — Page 4
`
`Samsung - Exhibit 1016 - Page 4
`
`
`
`
`
`T0 Chris
`
`Samsung — Exhibit 1016 — Page 5
`
`Samsung - Exhibit 1016 - Page 5
`
`
`
`
`
`Contents
`
`Foreword
`
`Preface
`
`Chapter 1
`
`Introduction and Overview
`
`1.1 The Need For An Internet
`1.2 The TCP/IP Internet
`2
`1.3 Internet Services
`3
`
`1
`
`6
`1.4 History And Scope Of The Internet
`1.5 The Original Internet Activities Board
`1.6 The New IAB Organization
`9
`11
`1.7 Internet Request For Comments
`1.8 Internet Protocols and Standardization
`
`8
`
`12
`
`1.9 Future Growth and Technology
`1.10 The FNC And The NREN 13
`
`12
`
`1.1] Organization Of This Text
`1.12 Summary
`15
`
`14
`
`xix
`
`xxi
`
`1
`
`Chapter 2 Review of Underlying Network Technologies
`
`17
`
`2.1 Introduction
`
`17
`
`18
`2.2 Two Approaches To Network Communication
`2.3 Wide Area, Metropolitan Area, and Local Area Networks
`2.4 Ethernet Technology
`20
`2.5 ProNET Token Ring Technology
`2.6 ARPANET Technology
`33
`2.7 National Science Foundation Networking
`
`36
`
`28
`
`19
`
`2.8 Other Technologies over which TCP/IP has been used
`2.9 Summary Ana’ Conclusion
`48
`
`44
`
`Samsung — Exhibit 1016 — Page 6
`
`Samsung - Exhibit 1016 - Page 6
`
`
`
`viii
`
`Contents
`
`Chapter 3 lnternetworking Concept and Architectural Model
`
`51
`
`3.1 Introduction
`
`51
`
`3.2 Application-Level Interconnection
`3.3 Network-Level Interconnection
`52
`
`51
`
`3.4 Properties Of The Internet
`3.5 Internet Architecture
`54
`
`53
`
`3.6 Interconnection Through 1P Gateways or Routers
`3.7 The User’s View 56
`
`54
`
`56
`3.8 All Networks Are Equal
`3.9 The Unanswered Questions
`3.10 Summary
`58
`
`57
`
`Chapter 4 Internet Addresses
`
`61
`
`4.1 Introduction
`
`61
`
`61
`4.2 Universal Identifiers
`4.3 Three Primary Classes Of IP Addresses
`4.4 Addresses Specify Network Connections
`4.5 Network And Broadcast Addresses
`63
`4.6 Limited Broadcast
`64
`
`62
`63
`
`4.7 Interpreting Zero To Mean “This"
`4.8 Weaknesses In Internet Addressing
`4.9 Dotted Decimal Notation
`66
`
`64
`65
`
`67
`4.10 Loopback Address
`4.11 Summary Of Special Address Conventions
`4.12 Internet Addressing Authority
`68
`4.13 An Example
`68
`4.14 Network Byte Order
`4.15 Summary
`70
`
`69
`
`67
`
`Chapter 5 Mapping Internet Addresses to Physical Addresses (ARP)
`
`73
`
`73
`5.1 Introduction
`5.2 The Address Resolution Problem 73
`
`5.3 Two Types Of Physical Addresses
`5.4 Resolution Through Direct Mapping
`5.5 Resolution Through Dynamic Binding
`5.6 The Address Resolution Cache
`76
`
`74
`
`74
`75
`
`77
`5.7 ARP Refinements
`5.8 Relationship Of ARP To Other Protocols
`
`77
`
`— vv«"
`
`Samsung — Exhibit 1016 — Page 7
`
`Samsung - Exhibit 1016 - Page 7
`
`
`
`Contents
`
`ix
`
`77
`5.9 ARP Implementation
`5.10 ARP Encapsulation And Identification
`5.11 ARP Protocol Format
`79
`
`79
`
`5.12 Summary
`
`80
`
`Chapter 6 Determining an Internet Address at Startup (RARP)
`
`83
`
`83
`6.1 Introduction
`6.2 Reverse Address Resolution Protocol (RARP)
`
`84
`
`86
`6.3 Timing RARP Transactions
`6.4 Primary And Backup RARP Servers
`6.5 Summary
`87
`
`86
`
`Chapter 7 Internet Protocol: Connectionless Datagram Delivery
`
`89
`
`89
`7.1 Introduction
`7.2 A Virtual Network
`
`89
`
`90
`90
`
`7.3 Internet Architecture And Philosophy
`7.4 The Concept Of Unreliable Delivery
`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
`7.9 Summary
`106
`
`100
`
`Chapter 8 Internet Protocol: Routing IP Datagrams
`
`109
`
`8.1 Introduction
`
`109
`
`111
`
`109
`8.2 Routing In An Internet
`8.3 Direct And Indirect Delivery
`8.4 Table-Driven IP Routing
`113
`8.5 Default Routes
`115
`115
`8.6 H0st—Specific Routes
`8.7 The Final Algorithm 115
`116
`8.8 Routing With IP Addresses
`8.9 Handling Incoming Datagrams
`8.10 Establishing Routing Tables
`8.11 Summary
`119
`
`118
`119
`
`1
`
`Samsung — Exhibit 1016 — Page 8
`
`
`
`_,,M\,__”,._,.,...-.--.-rn-u.--.-w-.—‘.__'....‘......
`
`
`
`""h¢4-‘.«"-..4,._4..
`
`Samsung - Exhibit 1016 - Page 8
`
`
`
`x
`
`Contents
`
`Chapter 9 Internet Protocol: Error and Control Messages (ICMP)
`
`123
`
`9.1 Introduction
`
`123
`
`123
`124
`
`127
`128
`
`130
`
`9.2 The Internet Control Message Protocol
`9.3 Error Reporting vs. Error Correction
`9.4 ICMP Message Delivery
`125
`9.5 ICMP Message Format
`126
`9.6 Testing Destination Reachability And Status
`9.7 Echo Request And Reply Message Format
`9.8 Reports Of Unreachable Destinations
`128
`9.9 Congestion And Datagram Flow Control
`9.10 Source Quench Format
`130
`131
`9.11 Route Change Requests From Gateways
`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
`
`133
`
`134
`
`Chapter 10 Protocol Layering
`
`139
`
`10.1 Introduction
`
`139
`
`139
`10.2 The Need For Multiple Protocols
`10.3 The Conceptual Layers Of Protocol Software
`10.4 Functionality Of The Layers
`143
`10.5 CCITT X.25 And Its Relation To The ISO Model
`
`140
`
`144
`
`10.6 Diflerences Between X.25 And Internet Layering
`10.7 The Protocol Layering Principle
`149
`10.8 Layering In The Presence Of Network Substructure
`10.9 Two Important Boundaries In The TCP/IP Model
`10.10 The Disadvantage OfLayering
`154
`10.11 The Basic Idea Behind Multiplexing And Demultiplexing
`10.12 ISO’s OSI Protocols
`156
`
`151
`153
`
`147
`
`154
`
`10.13 Summary
`
`157
`
`Chapter 11 User Datagram Protocol
`
`159
`
`11.1 Introduction
`
`159
`
`11.2 Identifying The Ultimate Destination
`11.3 The User Datagram Protocol
`160
`
`159
`
`
`
`Samsung — Exhibit 1016 — Page 9
`
`Samsung - Exhibit 1016 - Page 9
`
`
`
` xi
`
`Contents
`
`161
`
`11.4 Format Of UDP Messages
`11.5 UDP Pseudo—Header
`162
`163
`11.6 UDP Encapsulation And Protocol Layering
`11.7 Layering And The UDP Checksum Computation
`11.8 UDP Multiplexing, Demultiplexing, And Ports
`11.9 Reserved And Available UDP Port Numbers
`11.10 Summary
`168
`
`165
`165
`166
`
`Chapter 12 Reliable Stream Transport Service (TCP)
`
`171
`
`12.1 Introduction
`
`171
`
`171
`12.2 The Need For Stream Delivery
`12.3 Properties Of The Reliable Delivery Service
`12.4 Providing Reliability
`173
`12.5 The Idea Behind Sliding Windows
`12.6 The Transmission Control Protocol
`
`175
`177
`
`172
`
`12.7 Ports, Connections, And Endpoints
`12.8 Passive And Active Opens
`180
`12.9 Segments, Streams, And Sequence Numbers
`12.10 Variable Window Size And Flow Control
`
`178
`
`181
`182
`
`183
`12.11 TCP Segment Format
`184
`12.12 Out OfBand Data
`185
`12.13 Maximum Segment Size Option
`186
`12.14 TCP Checksum Computation
`12.15 Acknowledgements And Retransmission
`12.16 Timeout And Retransmission
`188
`
`187
`
`12.17 Accurate Measurement Of Round Trip Samples
`12.18 Karn's Algorithm And Timer Backofi‘
`191
`12.19 Responding To High Variance In Delay
`192
`12.20 Response To Congestion
`192
`12.21 Establishing A TCP Connection
`12.22 Initial Sequence Numbers
`196
`12.23 Closing a TCP Connection
`196
`12.24 TCP Connection Reset
`198
`12.25 TCP State Machine
`198
`
`194
`
`200
`12.26 Forcing Data Delivery
`12.27 Reserved TCP Port Numbers
`
`200
`
`12.28 TCP Performance
`12.29 Summary
`202
`
`200
`
`190
`
`Samsung — Exhibit 1016 — Page 10
`
`Samsung - Exhibit 1016 - Page 10
`
`
`
`xii
`
`Contents
`
`Chapter 13 Routing: Cores, Peers, and Algorithms (GGP)
`
`205
`
`13.1 Introduction
`
`205
`
`206
`
`208
`
`13.2 The Origin Of Gateway Routing Tables
`13.3 Routing With Partial Information
`207
`13.4 Original Internet Architecture And Cores
`13.5 Core Gateways
`209
`13.6 Beyond The Core Architecture To Peer Backbones
`13.7 Automatic Route Propagation
`214
`13.8 Vector Distance (Bellman-Ford) Routing
`13.9 Gateway—To—Gateway Protocol (GGP)
`13.10 GGP Message Formats
`216
`13.11 Link—State (SPF) Routing
`218
`13.12 SPF Protocols
`219
`
`212
`
`214
`216
`
`13.13 Summary
`
`220
`
`Chapter 14 Routing: Autonomous Systems (EGP)
`
`223
`
`14.1 Introduction
`
`223
`
`14.2 Adding Complexity To The Architectural Model
`14.3 A Fundamental Idea: Extra Hops
`224
`14.4 Autonomous System Concept
`226
`14.5 Exterior Gateway Protocol (EGP)
`14.6 EGP Message Header
`229
`14.7 EGP Neighbor Acquisition Messages
`14.8 EGP Neighbor Reachability Messages
`14.9 EGP Poll Request Messages
`232
`234
`14.10 EGP Routing Update Messages
`14.11 Measuring From The Receiver’s Perspective
`14.12 The Key Restriction 0fEGP 236
`14.13 Technical Problems
`238
`
`230
`231
`
`228
`
`14.14 Decentralization Of The Internet Architecture
`14.15 Beyond Autonomous Systems
`239
`14.16 Summary
`240
`
`223
`
`235
`
`239
`
`Chapter 15 Routing: Interior Gateway Protocols (RIP, OSPF, HELLO)
`
`243
`
`15.1 Introduction
`
`243
`
`15.2 Static Vs. Dynamic Interior Routes
`15.3 Routing Information Protocol (RIP)
`15.4 The Hello Protocol
`252
`
`243
`246
`
`
`
`Samsung — Exhibit 1016 — Page 11
`
`Samsung - Exhibit 1016 - Page 11
`
`
`
` xiii
`
`Contents
`
`15.5 Combining RIP, Hello, And EGP
`15.6 The Open SPF Protocol (OSPF)
`15.7 Routing With Partial Information
`15.8 Summary
`262
`
`254
`255
`262
`
`Chapter 16 Transparent Gateways And Subnet Addressing
`
`265
`
`16.1 Introduction
`
`265
`
`265
`16.2 Review 0fRelevant Facts
`16.3 Minimizing Network Numbers
`16.4 Transparent Gateways
`267
`16.5 Proxy ARP
`268
`16.6 Subnet Addresses
`
`270
`
`266
`
`16.7 Flexibility In Subnet Address Assignment
`16.8 Implementation Of Subnets With Masks
`16.9 Subnet Mask Representation
`274
`16.10 Routing In The Presence 0fSubnets
`16.11 The Subnet Routing Algorithm 276
`16.12 Unified Routing Algorithm 276
`16.13 Maintenance Of Subnet Masks
`16.14 Broadcasting To Subnets
`278
`16.15 Summary
`279
`
`278
`
`272
`273
`
`275
`
`Chapter 17 Multicast Addressing (IGMP)
`
`281
`
`281
`17.1 Introduction
`17.2 Hardware Broadcast
`173 Hardware Multicast
`17.4 IP Multicast
`283
`17.5 IP Multicast Addresses
`
`281
`282
`
`283
`
`17.6 Mapping IP Multicast To Ethernet Multicast
`17.7 Extending [P To Handle Multicasting
`285
`17.8 Internet Group Management Protocol
`286
`17.9 IGMP Implementation
`286
`17.10 Group Membership State Transitions
`17.11 IGMP Message Format
`288
`289
`17.12 Multicast Address Assignment
`17.13 Propagating Routing Information
`17.14 Summary
`290
`
`289
`
`287
`
`284
`
`Samsung — Exhibit 1016 — Page 12
`
`Samsung - Exhibit 1016 - Page 12
`
`
`
`Contents
`
`293
`
`303
`
`311
`
`xiv
`
`Chapter 18 Client-Server Model Of Interaction
`
`293
`18.1 Introduction
`18.2 The Client—Server Model
`
`293
`
`18.3 A Simple Example: UDP Echo Server
`18.4 Time And Date Service
`296
`
`294
`
`18.5 The Complexity of Servers
`18.6 RARP Server
`298
`18.7 Alternatives To The Client-Server Model
`
`297
`
`299
`
`18.8 Summary
`
`300
`
`Chapter 19 Bootstrap Protocol (BOOTP)
`
`19.1 Introduction
`19.2 Introduction
`
`303
`303
`
`304
`19.3 Using IP To Determine An IP Address
`19.4 The BOOTP Retransmission Policy
`305
`19.5 BOOTP Message Format
`306
`19.6 The Two-Step Bootstrap Procedure
`19.7 Vendor-Specific Field
`308
`19.8 Summary
`309
`
`307
`
`Chapter 20 The Domain Name System
`
`311
`20.1 Introduction
`20.2 Names For Machines
`
`311
`
`312
`20.3 F[at Namespace
`20.4 Hierarchical Names
`
`313
`
`20.5 Delegation Of Authority For Names
`20.6 Subset Authority
`314
`20.7 TCP/IP Internet Domain Names
`
`315
`
`313
`
`20.8 Official And Unofficial Internet Domain Names
`20.9 Items Named And Syntax Of Names
`319
`20.10 Mapping Domain Names To Addresses
`20.11 Domain Name Resolution
`321
`
`319
`
`316
`
`322
`20.12 Efficient Translation
`20.13 Caching: The Key To Efliciency
`20.14 Domain Server Message Format
`2015 Compressed Name Format
`327
`20.16 Abbreviation Of Domain Names
`329
`20.17 Inverse Mappings
`
`323
`324
`
`328
`
`
`
`Samsung — Exhibit 1016 — Page 13
`
`Samsung - Exhibit 1016 - Page 13
`
`
`
` XV
`
`Contents
`
`329
`20.18 Pointer Queries
`20.19 Object Types And Resource Record Contents
`20.20 Obtaining Authority For A Subdomain
`331
`20.21 Summary
`332
`
`330
`
`Chapter 21 The Socket Interface
`
`335
`
`335
`21.1 Introduction
`21.2 The UNIX I/O Paradigm And Network 1/0
`21.3 Adding Network 1/0 to UNIX 336
`21.4 The Socket Abstraction
`337
`
`336
`
`337
`21.5 Creating A Socket
`21.6 Socket Inheritance And Termination
`
`338
`
`340
`
`339
`21.7 Specifying A Local Address
`21.8 Connecting Sockets To Destination Addresses
`21.9 Sending Data Through A Socket
`341
`21.10 Receiving Data Through A Socket
`343
`21.11 Obtaining Local And Remote Socket Addresses
`21.12 Obtaining And Setting Socket Options
`345
`21.13 Specifying A Queue Length For A Server
`346
`21.14 How A Server Accepts Connections
`346
`21.15 Servers That Handle Multiple Services
`347
`21.16 Obtaining And Setting The Host Names
`348
`21.17 Obtaining And Setting The Internal Host Domain
`21.18 4BSD UNIX Network Library Calls
`349
`21.19 Network Byte Order Conversion Routines
`21.20 IP Address Manipulation Routines
`351
`21.21 Accessing The Domain Name System 352
`21.22 Obtaining Information About Hosts
`354
`355
`21.23 Obtaining Information About Networks
`355
`21.24 Obtaining Information About Protocols
`21.25 Obtaining Information About Network Services
`21.26 An Example Client
`357
`21.27 An Example Server
`359
`2128 Summary
`362
`
`350
`
`344
`
`349
`
`356
`
`Chapter 22 Applications: Remote Login (TELNET, Rlogin)
`
`365
`
`22.1 Introduction
`
`365
`
`22.2 Remote Interactive Computing
`22.3 TELNET Protocol
`366
`
`365
`
`22.4 Accommodating Heterogeneity
`
`368
`
`Samsung — Exhibit 1016 — Page 14
`
`Samsung - Exhibit 1016 - Page 14
`
`
`
`xvi
`
`Contents
`
`22.5 Passing Commands That Control The Remote Side
`22.6 Forcing The Server To Read A Control Function
`22.7 TELNET Options
`372
`22.8 TELNET Option Negotiation
`22.9 Rlogin (4BSD UNIX)
`374
`22.10 Summary
`375
`
`373
`
`370
`372
`
`Chapter 23 Applications: File Transfer And Access (FTP, TFTP, NFS)
`
`377
`
`23.1 Introduction
`
`377
`
`23.2 File Access And Transfer
`23.3 On-line Shared Access
`
`377
`378
`
`379
`23.4 Sharing By File Transfer
`23.5 FTP: The Major TCP/1P File Transfer Protocol
`23.6 FTP Features
`380
`23.7 FTP Process Model
`
`380
`
`379
`
`23.8 TCP Port NumberAssignment
`23.9 The User's View 0fFTP 382
`23.10 An Example Anonymous FTP Session
`23.11 TFTP
`385
`23.12 NFS
`387
`
`382
`
`387
`23.13 NFS Implementation
`23.14 Remote Procedure Call (RPC)
`23.15 Summary
`389
`
`388
`
`384
`
`Chapter 24 Applications: Electronic Mail (822, SMTP)
`
`391
`
`391
`24.1 Introduction
`391
`24.2 Electronic Mail
`24.3 Mailbox Names And Aliases
`
`393
`
`393
`24.4 Alias Expansion And Mail Forwarding
`24.5 The Relationship Of lnternetworking And Mail
`24.6 TCP/1P Standard For Electronic Mail Service
`24.7 Electronic Mail Addresses
`397
`24.8 Pseudo Domain Addresses
`398
`
`394
`396
`
`24.9 Simple Mail Transfer Protocol (SMTP)
`24.10 Summary
`401
`
`399
`
`
`
`Samsung — Exhibit 1016 — Page 15
`
`Samsung - Exhibit 1016 - Page 15
`
`
`
`
`
`
`
`-«e<v~—.A»~,.:..,.y_:.-rs-av.-.~_:—..-_-_v~-;..x..,,,,
`
`
`
`
`
`
`
`Chapter 25 Applications: Internet Management (SNMP, CMOT)
`
`403
`
`11
`rK.
`
`1
`
`403
`25.1 Introduction
`25 .2 The Level Of Management Protocols
`25.3 Architectural Model
`404
`25.4 Protocol Architecture
`406
`25.5 Common Management Information Base
`25.6 Examples of MIB Variables
`407
`25.7 The Structure Of Management Information
`25.8 Formal Definitions Using ASN.1
`409
`25.9 Structure And Representation Of MIB Object Names
`25.10 Simple Network Management Protocol
`414
`25.11 SNMP Message Format
`416
`25.12 Example Encoded SNMP Message
`25.13 Summary
`419
`
`403
`
`418
`
`406
`
`408
`
`409
`
`Chapter 26 Summary Of Protocol Dependencies
`
`421
`
`26.1 Introduction
`
`421
`
`421
`26.2 Protocol Dependencies
`26.3 Application Program Access
`26.4 Summary
`424
`
`423
`
`Chapter 27 TCP/IP Internet Research And Engineering Problems
`
`427
`
`27.1 Introduction
`
`427
`
`428
`430
`
`27.2 The Forces Stimulating Evolution
`27.3 Routing In An Expanded Internet
`27.4 Finding Users
`431
`27.5 Finding Services
`432
`27.6 Managing Networks
`432
`27.7 Automatic Configuration
`27.8 New Applications
`434
`27.9 High-Speed Communication Technologies
`27.10 Reliable Transactions
`438
`
`433
`
`27.11 Security
`27.12 Summary
`
`439
`439
`
`437
`
`Samsung — Exhibit 1016 — Page 16
`
`Samsung - Exhibit 1016 - Page 16
`
`
`
`xviii
`
`Appendix 1 A Guide To RFCs
`
`Contents
`
`441
`
`Appendix 2 Glossary Of lnternetworking Terms and Abbreviations
`
`477
`
`Appendix 3 Standardization And Official TCP/IP Protocol Standards
`
`513
`
`Appendix 4 Examples Of Internet Information Archives
`
`Bibliography
`
`Index
`
`523
`
`527
`
`535
`
`
`
`Samsung — Exhibit 1016 — Page 17
`
`Samsung - Exhibit 1016 - Page 17
`
`
`
`
`
`Foreword
`
`
`
`....,..‘,-,,..,;.,-,;»__..
`
`This second edition of Professor Douglas Comer’s book provides an up-to-date
`overview and introduction to TCP/IP. There have been many requests for the article,
`
`report, or book to read to get started on understanding the TCP/IP protocols. This book
`satisfies those requests. Writing an introduction to TCP/IP for the uninitiated is a very
`difficult task. While combining the explanation of the general principles of computer
`communication with the specific examples from the TCP/IP protocol suite, Doug Comer
`has provided a very readable book.
`While this book is specifically about the TCP/IP protocol suite, it is a good book
`for learning about computer communications protocols in general. The principles of ar-
`chitecture, layering, multiplexing, encapsulation, addressing and address mapping, rout-
`ing, and naming are quite similar in any protocol suite, though, of course, different in
`detail (See Chapters 3, 10, 18, 20, and 26).
`Computer communication protocols do not do anything themselves. Like operat-
`ing systems, they are in the service of application processes. Processes are the active
`elements that request communication and are the ultimate senders and receivers of the
`data transmitted. The various layers of protocols are like the various layers in a com-
`puter operating system, especially the file system. Understanding protocol architecture
`is like understanding operating system architecture.
`In this book Doug Comer has taken
`the “bottom up” approach — starting with the physical networks and moving up in lev-
`els of abstraction to the applications.
`Since application processes are the active elements using the communication sup-
`ported by the protocols, TCP/IP is an “interprocess communication” (IPC) mechanism.
`While there are several experiments in progress with operating system style message
`passing and procedure call types of IPC based on IP, the focus in this book is on more
`traditional applications that use the UDP datagram or TCP logical connection forms of
`IPC (See Chapters 11, 12, 18, 20, and 22-25). Typically in operating systems there is a
`set of functions provided by the operating system to the application processes. This
`system call interface usually includes calls for opening, reading, writing, and closing
`files, among other things.
`In many systems there are similar system calls for IPC func-
`tions including network communication. As an example of such an interface Doug Co-
`mer presents an overview of the socket interface (See Chapter 21).
`One of the key ideas inherent in TCP/IP and in the title of this book is “intemet—
`working." The power of a communication system is directly related to the number of
`entities in that system. The telephone network is very useful because (nearly) all the
`telephones are in one network (as it appears to the users). Computer communication
`
`Samsung — Exhibit 1016 — Page 18
`
`Samsung - Exhibit 1016 - Page 18
`
`
`
`xx
`
`Foreword
`
`systems and networks are currently separated and fragmented. The goal of interconnec-
`tion and intemetworking, to have a single powerful computer communication network,
`is fundamental to the design of TCP/IP. Essential to intemetworking is addressing (See
`Chapters 4, 5, 6, and 17), and a universal protocol — the Internet Protocol (See Chapters
`7, 8, and 9). Of course, the individual networks have their own protocols which are
`used to carry the IP datagrams (See Chapter 2), and there must be a mapping between
`the individual network address and the IP address (See Chapters 5, 6, and 19).
`To have an intemetwork the individual networks must be connected. The connect-
`
`ing devices are called gateways. Further, these gateways must have some procedures
`for forwarding data from one network to the next. The data is in the form of IP da-
`tagrams and the destination is specified by an IP address, but the gateway must make a
`routing decision based on the IP address and what it knows about the connectivity of
`the networks making up the Internet. The procedures for distributing the current con-
`nectivity information to the gateways are called routing algorithms, and these are
`currently the subject of much study and development (See Chapters 13, 14, 15, 16, and
`17).
`
`Like all communication systems, the TCP/IP protocol suite is an unfinished sys-
`It is evolving to meet changing requirements and new opportunities. Thus, this
`tem.
`book is, in a sense, a snapshot of TCP/IP circa 1990. And, as Doug Comer points out,
`there are many loose ends (See Chapter 27). One area that has changed significantly
`9
`since the first edition of this book is network management (See Chapter 25).
`Most chapters end with a few pointers to material “for further study.’ Many of
`these refer to memos of the RFC series of notes. This series of notes is the result of a
`
`policy of making the working ideas and the protocol specifications developed by the
`TCP/IP research and development community widely available. This availability of the
`basic and detailed information about these protocols, and the availability of the early
`implementations of them, has had much to do with their current widespread use. This
`commitment to public documentation at this level of detail is unusual for a research ef-
`fort, and has had significant benefits for the development of computer communication
`(See Appendices 1, 3, and 4).
`This book brings together information about the various pans of the TCP/IP archi-
`tecture and protocols and makes it accessible.
`Its publication is a very significant mile-
`stone in the evolution of computer communications.
`
`Jon Postel,
`Director, Communications Division
`Information Sciences Institute
`
`University of Southern California
`
`June, 1990
`
`
`
`Samsung — Exhibit 1016 — Page 19
`
`Samsung - Exhibit 1016 - Page 19
`
`
`
`
`
`Preface
`
`In the last century, railroads revolutionized the world by providing a transportation
`network that moved raw materials and manufactured products. They made an industri-
`alized society possible. Digital communication networks have started a new revolution
`by providing the technology that transports the data needed by a society in which infor-
`mation plays a key role. Networking already permeates industry, education, and
`government.
`It has already begun to change the way we view the world by shrinking
`geographic distances and forming new communities of people who interact frequently.
`More important, network growth is explosive. The revolution is well underway.
`To understand networking and the selection of topics discussed in this book,
`
`it is
`
`important to realize that network research and development occurred in three stages.
`Before the 1960s, the main question was, “How can we transmit bits across a commun-
`ication medium efficiently and reliably?" The results include the development of infor-
`mation theory, the sampling theorem, and other ideas commonly referred to as signal
`processing. Beginning around the mid 1960s, emphasis shifted to packet switching and
`the question became, “How can we transmit packets across a communication medium
`efficiently and reliably?” The results include the development of packet switching
`technologies, local area networks, and statistical analysis of network response to load.
`From approximately the mid 1970s to the present, emphasis has centered on network ar-
`chitecture and the question, “How can we provide communication services across a
`series of interconnected networks?” The results include the development of intemet-
`work technologies, protocol layering models, datagram and stream transport services,
`and the client—server interaction paradigm.
`Most textbooks and network courses concentrate on the first two stages of network
`research, presenting the well—known theories of data communications and queueing
`analysis. Although such information is important to engineers who design network
`technologies and hardware products, most network architects purchase commercially
`available network hardware.
`Instead of detailed knowledge about how bits or packets
`flow across communication media,
`they need to know how to interconnect such
`hardware and how to use the resulting system.
`It examines the architec-
`This text concentrates on the third stage of networking.
`ture of interconnected networks and explains the principles and protocols that make
`such interconnected architectures function as a single unified communication system.
`More important, it shows how an interconnected architecture can be used for distributed
`computation.
`
`
`
`.--.'-wtt‘<'.=r-r:-.d«*.-
`
`
`L.. .
`l‘.A_.v
`1.
`
`
`
`Samsung - Exhibit 1016 - Page 20
`
`Samsung - Exhibit 1016 - Page 20
`
`
`
`xxii
`
`Preface
`
`The entire text focuses on the concept of intemetworking in general and the
`TCP/IP intemet technology in particular.
`lntemetworking is a powerful abstraction that
`allows us to deal with the complexity of multiple underlying communication technolo-
`gies.
`It hides the details of network hardware and provides a high level communication
`environment. As the book shows, the ultimate goal of intemetworking is maximal in-
`teroperability, that is, maximizing the ability of programs on diverse computer and net-
`work systems to communicate reliably and efficiently.
`The text reviews both the architecture of network interconnections as well as inter-
`
`net communication services and the protocols needed to provide those services. By the
`end of the book, the reader will understand how it is possible to interconnect multiple
`physical networks into a coordinated system, how intemet protocols operate in that en-
`vironment, and how application programs use the resulting system. As a specific exam-
`ple, the reader learns the details of the Connected (TCP/IP) Internet, including the archi-
`tecture of the gateway system and the application protocols it supports.
`In addition, the
`book discusses some of the limitations of the intemet approach.
`It is challenging
`Writing about intemetworking is both exciting and challenging.
`It is exciting be-
`because, as in any rapidly changing research area, nothing is stable.
`cause the TCP/IP Internet is an active, rapidly expanding entity. Researchers working
`on it generate new ideas constantly and the possibilities seem endless. Looking back
`over TCP/IP and the evolution of the Internet makes it clear that much has been accom-
`
`plished. Knowing that the research has taken a little over a decade makes one realize
`how intense the effort has been.
`
`Designed as both a college text and as a professional reference, the book is written
`at an advanced undergraduate or graduate level. For professionals, the book provides a
`comprehensive introduction to the TCP/IP technology and the architecture of the Inter-
`net. Although it is not intended to replace protocol standards, the book is a good start-
`ing point for leaming about intemetworking because it provides a unifonn overview that
`emphasizes principles. Moreover, it gives the reader perspective that can be extremely
`difficult to obtain from individual protocol documents.
`When used in the classroom, the text provides more than sufficient material for a
`single semester network course at either the undergraduate or graduate level. Such a
`course can be extended to a 2-semester sequence if accompanied by programming pro-
`jects and readings from the literature. For undergraduate courses, it can be taken at face
`value. Students should be expected to grasp the basic concepts described in the text,
`and they should be able to describe or use them. At the graduate level, students should
`be expected to use the material here as a basis for further exploration of current
`research. They should understand it well enough to answer exercises or solve problems
`that require them to explore subtleties and consequences. Many of the exercises suggest
`such subtleties; solving them often requires students to read protocol standards and ap-
`ply creative energy to comprehend consequences.
`At all
`levels, hands—on experience sharpens the concepts and helps students gain
`intuition. Thus, I encourage instructors to invent projects that force students to use in-
`temetwork services and protocols. Although such experimentation is safest when the
`instructional
`laboratory network is isolated from production computing facilities, we
`have found that students exhibit the most enthusiasm, and benefit the most, when they
`have access to the “real” TCP/IP Internet.
`
`
`
`Samsung — Exhibit 1016 — Page 21
`
`Samsung - Exhibit 1016 - Page 21
`
`
`
`
`
`Preface
`
`X’““
`
`The book is organized into four main parts. Chapters 1 and 2 form an introduction
`that provides an overview and discusses existing technologies.
`In particular, Chapter 2
`reviews physical network hardware. The intention is to provide basic intuition about
`what
`is possible, not
`to spend inordinate time on hardware details. Chapters 3-12
`describe the TCP/IP Internet from the viewpoint of a single host, showing the basic ser-
`vices available and the protocols a host uses to access them. They cover the basics of
`lntemet addressing and routing as well as the notion of protocol layering. Chapters
`13-17 describe the architecture of an intemet when viewed globally. They explore the
`
`core gateway system and the protocols gateways use to exchange routing information.
`Finally, Chapters 18-26 discuss application level services available in the Internet.
`They present the client—server model of interaction and give several examples of how
`one can organize client and server software. The last section discusses electronic mail
`and the domain name system, two topics that are extremely popular.
`The chapters have been organized “bottom up.” They begin with an overview of
`hardware and continue to build new functionality on top of it. This view will appeal to
`anyone who has developed Internet software because it follows the same pattern one
`uses in implementation. The concept of layering does not appear until Chapter 10. The
`discussion of layering emphasizes the distinction between conceptual
`layers of func-
`tionality and the reality of layered protocol software in which multiple objects appear at
`each layer.
`Although it is difficult to omit any chapter completely, the instructor will find that
`students are often satisfied to know that something is possible without knowing the de-
`tails. For example, one can skim through Chapters 5, 6, and 9 by covering only the
`functionality and not the details of the protocols.
`In