`
`
`
`PRINCIPLES, PROTOCOLS,PRINCIPLES, PROTOCOLS,
`
`
`
`AND ARCHITECTUREAND ARCHITECTURE
`
`
`
`
`DOUGLAS E. COMER 1DOUGLAS E. COMER 1
`
`
`
`
`
`
`
`ARRIS EX. 1018 J,ARRIS EX. 1018 J,
`
`
`
`INTERNETWORKING WITHINTERNETWORKING WITH
`
`
`
`TC%1>/1PTC%1>/1P
`
`
`
`
`
`'1N'WRN3TW0I.I1NLG;. mm
`-.
`-.
`
`VOLUMEI
`PRINCIPLES, PROTOCOLS,
`AND ARCHITECTURE
`
`DOUGLA-.3 E. Comma,
`
`“THE classic text for an introduction to TCP/lP."
`—~Jon Postel, RFC editor and former Deputy lnternet Architect
`“Although others have tried, there is no better written or organized explanation of the core
`of TCP/IP'”
`—.Joel Snyder, Network Computing
`“As an introduction to the TCP/lP protocol suite and its underpinnings, this is an excellent
`book.
`it is also a good reference book to keep around for anyone who is working with
`79*”/'9"
`——George v. Neville—Neil, USENIX ,'login.'
`
`The all—time best—selIing TCP/IP book, /nternetworking with TCP/IP, is still THE reference
`for anyone who wants to learn about or work with the TCP/lP protocol suite. Volume I of
`the series by Douglas Comer provides the most up—to-date conceptual introduction to
`TCP/IP protocols and the latest developments in lnternet technology.
`Renowned for its clarity and accessibility, this superb text covers wide area (WAN) Internet
`backbones as well as local area network (LAN) technologies like Ethernet and FDDI. The
`text explains address binding (ARP), lP connectionless datagram delivery, error detection,
`multicasting, and routing.
`
`_1-msmwsm1ou;or sgauunmz.
`
`I Discusses how to use TCP/iP over an ATM network.
`I Covers the latest lPng (next generation) deveiopments and information.
`I Describes CIDR (Classless lnter—Domaih Routing) and supernettlng.
`Ii Discusses security in TCP/lP environments and firewall design.
`-I Categorizes hundreds of new RFCs and the protocols they describe.
`
`-ml laklllanrh whims is
`
`U Compares the lSO 7-layer reference model to the TCP/1P 5-layer reference model.
`I Explains TCP: reliability, acknowledgments, flow control, and sliding windows.
`I Details adaptive retransmission, including slow-start and silly window avoidance.
`I Describes the socket interface that applications use to access TCP/lP protocols.
`I Presents routing architectures for large and small internets.
`i Discusses bridges and routers.
`-I Examines appiication services:
`
`Domain Name System (DNS)
`Electronic mail (SMTP, MIME)
`File transfer and access (FTP, TFTP, NFS)
`Remote login (TELENET, rlogin)
`Network management (SNMP, MlB, ANSJ)
`
`PRENTICE HALL
`Upper Saddle River, NJ 07458
`
`
`
`
`
`Internetworking With TCP/IP
`
`
`
`
`
`Internetworking With TCP/IP
`Vol I:
`Principles, Protocols, and Architecture
`Third Edition
`
`DOUGLAS E. COMER
`
`Department of Compllfer Sciences
`Pllrdue Unil'ersity
`West Lafayette, IN 47907
`
`PRENTICE HALL
`Upper Saddle River, New Jersey 07458
`
`
`
`Corner, Douglll
`intemelW<>lkins willi TCP/lP I Dcuglu E. Comer. -- 3td e.d.
`em.
`p.
`lncl\ldel bibliosnphical ~rerenc ... and indu.
`ConICtlU: v. l. Principleo, protocola. and .n:hitoclll~
`ISBN 0-13-216987-8 (v. I)
`l. TCPIIP (Comp.tloer network ptolOCol) 2. Client/server comp.ttins.
`I. Tille.
`3.loternetworkins (fclecanmunicotion)
`]995
`TK5]05.S8~.C66
`005.2--ck:20
`
`95·]830
`
`'"
`
`Acquisitions editor: ALAN APT
`Production editor: IRWIN ZUCKER
`Cover designer: WENDY ALLING JU DY
`Buyer: LOR I BULWIN
`Editorial assistant: SHIRLEY MCGUIRE
`
`Cl 1995 by Prentice- Hall. Inc.
`A Simon & Schuster Company
`Upper Saddle Ri\·er. New Jersey 07458
`
`All rights reserved. No part of this book may be
`reproduced. in any form or by any means.
`withom 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 amhor and
`publisher make no warranty of any kind. e~presscd 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 usc of these programs.
`
`UNIX is a registered trademark of UNIX System Laboratories. Incorporated
`proNET-IO is a trademaric of Proteon Corporation
`LSI II 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
`
`I SBN 0- 13- 216 9 87-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. Ncw Delhi
`Prentice-Hall of Japan. Inc., Tokyo
`Simon & Schuster Asia Pte. Ltd., Singapore
`Editora Prentice-Hall do Brasil, Ltda., Rio de Janeiro
`
`
`
`To Chris To C'h.='f.5' To C'h.='f.5'
`
`
`
`Additional Enthusiastic Comments About
`Internetworking With rep/IP Volume 1
`
`"Unquestionably THE reference for Tep/IP; both informative and easy to
`read, this book is liked by both novice and experienced. "
`
`- Raj Yavatkar
`University of Kentucky
`US Editor, Computer Communications
`
`"The third edition maintains Comer's Intemetworking with Tep/IP as the
`acknowledged leader in Tep!IP books by adding up-to-the-minute ma(cid:173)
`terial on ATM, CIDR, firewalls, DHCP and the next version of IP, IPng."
`
`- Ralph Droms
`Bucknell University
`IFTF Working Group Chair
`
`"Doug Comer remains the first and best voice of Internet technology.
`Despite the legion of 'Internet carpetbaggers' (the current crop of 'au(cid:173)
`thors' who can barely spell F-T-P) which contributes noise - but no
`knowledge - on the Internet and its infrastructure, Dr. Comer shines
`through as the premiere source for lucid explanations and accurate infor(cid:173)
`mation. He sets a standard for which many strive, but precious few at-
`fain. "
`
`- Marshall Rose
`Dover Beach Consulting
`IETF Area Director
`
`"Comer's Volume 1 drastically changed the course of networking history. "
`
`- Dan Lynch
`Interop Company
`lAB Member
`
`"When you need to teach the details of TCPI IP, you need the latest in(cid:173)
`formation. Once again, Comer separates the chaff from the wheat with
`his latest edition of the TCPI IP book that a generation of networkers grew
`up with. "
`
`- Shawn Ostermann
`Ohio University
`
`
`
`Contents
`
`Foreword
`
`Preface
`
`Chapter 1 Introduction And Overview
`
`The Motil'ation For Internerworkillg
`1.1
`The rePIIP Internel 2
`1.2
`Internel Services 3
`J.3
`History And Scope Of The Internet
`1.4
`The IlIfernet Architecture Board 8
`1.5
`1.6
`The lAB Reorganization 9
`II
`1.7
`The [merne! Society
`II
`1.8
`II/femel Request For Comments
`1.9
`III(el"llel Protocols And Standardization
`12
`Fl/fIIre Growth And Technology
`1.10
`13
`1.11 Organizatioll O/The Text
`14
`Summary
`1.12
`
`6
`
`12
`
`xxi
`
`xxiii
`
`1
`
`Chapter 2 Review Of Underlying Network Technologies
`
`17
`
`17
`ImrOOl/etion
`2.1
`Two Approaches To Network COII/fllllllication
`2.2
`2.3 Wide Area And Local Area Networks
`19
`2.4
`E,heme/ Technology
`20
`2.5
`Fiber Distributed Data IlIIerCOlllleC! (FOOl)
`2.6
`Asynchronous Transfer Mode
`36
`2.7
`ARPANET Technology
`37
`2.8
`Naliollal Science FOl/lldalion Nerworking
`2.9
`ANSNET 44
`
`39
`
`18
`
`32
`
`vii
`
`
`
`viii
`
`Contents
`
`2.10 A Plallned Wide Area Backbone 44
`2.11 Other Technologies Over Which TCPIIP Has Been Used
`2.12
`Summary And Conelusion
`47
`
`44
`
`Chapter 3
`
`Internetworking 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
`
`49
`Introduction
`Application-Level Interconnection 49
`Network-LevellnterCOllnectiOfl
`50
`Properties 01 The Intemet
`51
`Internet Architecture 52
`Interconnection Through IP Routers 52
`The User's View 54
`54
`All Networks Are Equal
`The Unanswered Questions 55
`Summary
`56
`
`Chapter 4
`
`Internet Addresses
`
`59
`
`59
`Imroduction
`4.1
`Universalldelllijiers
`4.2
`59
`Three Primary Classes 01 I P Addresses 60
`4.3
`Addresses Specify Network Connections
`61
`4.4
`Network And Broadcast Addresses
`61
`4.5
`Limited Broadcast 62
`4.6
`IlIIerpreting Zero To Mean 'This"
`4.7
`4.8 Weaknesses 111 IlIIernet Addressing
`4.9
`DOlled Decimal Notation
`65
`4.10 Loopback Address 65
`4.11
`Summary Of Special Address Convellliolls 66
`4.12
`Internet Addressillg Authority 66
`4.13 All Example
`67
`4.14 Network Byte Order 69
`4.15
`Summary 70
`
`62
`63
`
`Chapter 5 Mapping Internet Addresses To Physical Addresses (ARP)
`
`73
`
`5.1
`5.2
`5.3
`5.4
`
`73
`Inlroductiol/
`73
`The Address Resolmiol/ Problem
`Two Types Of Physical Addresses 74
`74
`Resolution Throllgh Direct Mapping
`
`
`
`Contents
`
`;,
`
`75
`
`Resolution Through Dynamic Binding
`5.5
`The Address Resolution Cache
`76
`5.6
`ARP Refinements 77
`5.7
`5.8
`Relationship Of ARP To Other Protocols
`77
`ARP Implementation
`5.9
`5.10 ARP Encapsulation And Identification
`79
`5.1 I ARP Protocol Format
`5.12
`Summary
`81
`
`77
`
`79
`
`Chapter 6 Determining An Internet Address At Startup (RARP)
`
`83
`
`6.1
`6.2
`6.3
`6.4
`6.5
`
`83
`Introduction
`Reverse Address Resolution Protocol (RARP)
`Timing RARP Transactions
`86
`Primary And Backup RARP Servers
`Summary
`87
`
`86
`
`84
`
`Chapter 7
`
`Internet Protocol: Connection less Datagram Delivery
`
`89
`
`7.1
`7.2
`7.3
`7.4
`7.5
`7.6
`7.7
`7.8
`7.9
`
`Introduction
`89
`89
`A Virlllal Network
`Internet Architecture And Philosophy 90
`The Concept Of Unreliable Delivery
`90
`Conllectiolliess DeliveJY System
`91
`Purpose Of The IlIlernet Protocol
`91
`The Internet Datagram
`9 1
`Internet Datagram Options
`106
`Summary
`
`100
`
`Chapter 8
`
`Internet Protocol: Routing IP Datagrams
`
`109
`
`III
`
`8.1
`109
`ImrodUCliOIl
`ROllting In All Internet
`8.2
`109
`Direct And Indirect Delivery
`8.3
`Table-Driven I? ROllling
`113
`8.4
`Next-Hop ROllling
`113
`8.5
`liS
`Defaliit ROlltes
`8.6
`liS
`Host-Specific Routes
`8.7
`116
`The IP Routing Algorithm
`8.8
`116
`Routing With IP Addresses
`8.9
`8.10 Handling Incoming Datagrams
`
`118
`
`
`
`8./ 1 Establishing ROllling Tables
`8.12
`Summary
`JI9
`
`119
`
`Contents
`
`Chapter 9
`
`Internet Protocol : Error And Control Messages (ICMP)
`
`123
`
`123
`124
`
`lntroduction
`9.1
`123
`9.2
`The IlIfernet COllfrol Message ProTOcol
`Error Reponing vs. Error Correction
`9.3
`9.4
`ICMP Message Delil'elY
`125
`ICMP Message Format
`9.5
`126
`9.6
`Testing Destination Reachability And Status (Ping)
`9.7
`Echo Request And Reply Message Format
`128
`9.8
`Reports Of Unreachable Destinmiolls
`128
`9.9
`Congestion And Datagram Flow Control
`130
`Source Quench Format
`9.10
`130
`9.11
`ROllle Change Requests From Romers
`131
`9.12 Detecting Circlilar Or Excessil'ely Long ROlltes
`9.13 Reporting Other Problems
`134
`9.14 Clock Synchronizmion And Trallsit Time Estimation
`9.15
`In/ormation Request And Reply Messages
`136
`9.16 Obtaining A Subnet Mask
`136
`9.17 Summary
`137
`
`127
`
`133
`
`134
`
`Chapter 10 Subnet And Supernet Address Extensions
`
`139
`
`10.1
`10.2
`10.3
`10.4
`10.5
`10.6
`10.7
`10.8
`10.9
`10.10
`10.11
`10.12
`10.13
`10.14
`10.15
`10.16
`10.17
`
`140
`
`Introducrion
`139
`139
`Review Of Relemnt Facts
`Minimizing Network Numbers
`Transparent Romers
`141
`Proxy ARP
`142
`Subnet Addressing
`143
`Flexibility In Subnet Addres.~ Assignmcm
`Implementation Of Subnets Wilh Masks
`Subllet Mask Representation
`148
`Routing 1/1 The Presence 0/ Suhnets
`The Subnet ROUling Algorithm
`150
`A Unified Rouling Algorithm
`151
`Maintenance Of Subnet Masks
`152
`Broadcasting To Subncrs
`152
`SlIpernet Addressing
`153
`The Effect 0/ Supernelling On Roming
`Summary
`155
`
`146
`147
`
`149
`
`154
`
`
`
`•
`
`Contents
`
`Chapter 11 Protocol Layering
`
`11.1
`1/.2
`11.3
`/fA
`11.5
`11.6
`/1.7
`/1.8
`/1.9
`/J .10
`/l.1l
`11.12
`
`160
`
`159
`Imrodllclion
`159
`The Need For Multiple Protocols
`The COllceptllal Layers Of Protocol Software
`163
`FIII/cliollafity Of The Layers
`X.25 And lIS Rela/ioll To The ISO Model
`[64
`Differences Between X.25 And illlernet Layering
`The Protocol Layering Principle
`169
`Layering In Tile Presence Of NeN'ork Substructure
`Two Importafll BOllndaries /11 The rePII? Model
`The Disadvantage Of Layering
`174
`The Basic Mea Behind MII/tip/exing And Demultiplexing
`176
`Summary
`
`167
`
`171
`173
`
`,i
`
`159
`
`174
`
`Chapter 12 User Datagram Protocol (UDP)
`
`179
`
`179
`
`[79
`Introduction
`12.1
`Identifying The Ultimate Des/ination
`12.2
`The User Datagram Pro/ocol
`180
`12.3
`12.4 FormatOjUDPMessages
`lSI
`12.5 UDP Pseudo-Header
`182
`183
`12.6 UDP Encapsulation Anti Protocol Layering
`12.7 Layering And The UDP Checksum Computation
`12.8 UDP MII/liplexing, Demultiplexing, And Ports
`12.9 Reserved And Available UDP Pori Numbers
`12.10 Summary
`188
`
`185
`185
`186
`
`Chapter 13 Reliable Stream Transport Service (TCP)
`
`191
`
`191
`IlIIrodllClioll
`13.1
`191
`13.2 The Need For Srream Delivery
`13.3 Properries Of The Reliable Delil'el)' Service
`13.4 Providing Reliability
`193
`13.5
`The Idea Behind Sliding Windoll's
`13.6
`The Transmission Control Protocol
`13.7 Ports. Connections. And Endpoinrs
`13.8 Passive And Active Opens
`201
`13.9
`Segmems, Streams, And Sequence Numbers
`13.10 Variable Window Size And FloII' COfllrol
`13.1 I TCP Segment Formm
`203
`
`195
`198
`199
`
`192
`
`201
`202
`
`
`
`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
`
`208
`
`205
`Old Of Band Data
`206
`Maximum Segment Size Option
`207
`TCP Checksum Computation
`Acknowledgements And Retransmission
`Timeom And Retransmission
`209
`Accurate Measurement Of Round Trip Samples 2 11
`Karn" s Algorithm And Tim er Backoff 212
`Respondillg To High Variance In Delay
`213
`Response To Congestion
`2 14
`Establishing A TCP Connection
`Illitial Sequence Numbers 2 17
`217
`Closillg a TCP Connection
`TCP Connection Reset 219
`TCP State Machine
`219
`Forcing Dara Delivery
`221
`Reserved TCP Port Numhers
`TCP PClformance
`221
`Silly Window Syndrome And Small Packets 223
`Avoidillg Silly Window Syndrome
`224
`227
`Summary
`
`2 16
`
`221
`
`Chapter 14 Routing: Cores, Peers, And Algorithms (GGP)
`
`231
`
`231
`IllIroduclion
`14.1
`232
`Th e Origin Of Routing Tahles
`14.2
`233
`14.3 ROUling With Partial III formation
`14.4
`Originalllllernet ArchitecLUre And Cores 234
`235
`Core ROlllers
`14.5
`14.6
`Beyond The Core Architecture To Peer Backbones
`14]
`Automatic Route Propagation
`240
`240
`Vector DisIance (Bellman- Ford) Roming
`14.8
`14.9
`Gatev"ay-To-Gareway Protocol (GG P) 242
`GGP Message Formars
`14.10
`243
`14.11
`Link-State (SPF) Routing
`245
`SPF Protocols 246
`14.12
`Summary 246
`14.13
`
`238
`
`Chapter 15 Routing: Autonomous Systems (EGP)
`
`249
`
`Introduction
`/5.1
`249
`15.2 Adding Complexity To The Architectural Model 249
`15.3 A Fundamental Idea: EXira Hops 250
`
`
`
`Contents
`
`15.4
`15.5
`/5.6
`/5.7
`/5.8
`/5.9
`15.10
`15.11
`/5./2
`/5./3
`/5.14
`15.15
`15.16
`
`xiii
`
`261
`
`254
`
`256
`257
`
`252
`Au/onomous System Concept
`Exterior Gateway Protocol (EGP)
`EGP Message Header
`255
`EGP Neighbor Acquisition Messages
`EGP Neighbor Reachability Messages
`EGP Poll Request Messages
`258
`EG P ROllling Update Messages
`259
`Measuring From The Receiver's Perspectiw
`The Key Restriction Of EGP
`262
`Technical Problems
`264
`Decemralization Of Internet Architecture
`Beyond Autonomous Systems
`264
`Summary 265
`
`264
`
`Chapter 16 Routing: In An Autonomous System (RIP, OSPF, HELLO) 267
`
`/6.1
`/6.2
`16.3
`16.4
`/6.5
`16.6
`16.7
`16.8
`
`267
`lntroduction
`Static Vs. Dynamic lnterior Rallies
`Routing Informatioll Protocol (RIP)
`The Hello Protocol
`276
`Combining RIP, Hello, And EGP
`The Open SPF Protocol (OSPF)
`ROllting With Partial Information
`Summary 286
`
`278
`279
`286
`
`267
`270
`
`Chapter 17
`
`Internet Multicasting (IGMP)
`
`289
`
`289
`290
`
`/7./
`fmrodllction
`289
`17.2 Hardware Broadcast
`173 Hardware Multicast
`17.4
`IP Multicast
`29 1
`17.5
`IP Multicast Addresses
`291
`17.6 Mapping IP Multicast To Ethernet MlIlticast
`17.7 Extellding IP To Handle Multicasting
`293
`17.8
`lnternet Group Management Protocol 294
`294
`17.9
`lGMP Implementation
`17.10 Group Membership State TransiliOlls
`17.1 J IGMP Message Format
`296
`17.12 Multicast Address Assignment 297
`17.13 Propagatillg ROlllillg Illformatioll
`297
`17.14 The Mrollled Program
`298
`17.15 Summary
`300
`
`295
`
`292
`
`
`
`xiv
`
`Chapter 18 TCP/IP Over ATM Networks
`
`Contems
`
`303
`
`18.1
`18.2
`IS3
`/S.4
`/S.5
`IS.6
`18.7
`18.8
`18.9
`18.10
`/8.11
`18.12
`/8.13
`18./4
`18.15
`18.16
`18.17
`18.18
`18.19
`18.20
`18.21
`
`Introduction
`303
`ATM Hardware
`304
`Large ATM Networks
`304
`The Logical View Of An ATM Neru.-ork
`The Two ATM Connection Paradigms
`Palhs, CirClli/s, And Idellfifiers
`307
`ATM Cell Transport
`308
`ArM Adapta/ion Layers
`308
`AAL5 Convergence, Segmentation, And Reassembly
`Datagram Encapsularion Alld IP MTU Size
`311
`Packet Type And Multiplexing
`312
`IP Address Binding I" An ATM Network
`LogicallP Subnet Concept 3 14
`Connection Mallagemellf
`315
`Address Binding Within An LIS
`ATMARP Packet Formal
`316
`Using ATMARP Packets To Determine An Address 3 18
`Ob/ainillg Entries For A Server Database
`320
`Timing Ollt ATMARP In/ormalion ln A Server
`320
`Timillg 0111 ATMARP Informalionln A Hosl Or ROilier
`Summary
`321
`
`311
`
`320
`
`305
`306
`
`313
`
`316
`
`Chapter 19 Client·Server Model Of Interaction
`
`325
`
`Imrodllc/iol1
`325
`19.1
`325
`The Cliellt-Sen'el" Model
`19.2
`19.3 A Simple Example: UDP Echo Server 326
`Time And Dale Service
`328
`19.4
`19.5 The Complexity of Sen'eJ"s
`329
`19.6 RARP Sen'eJ"
`330
`19.7 Allematil'es To The Clielll-Server Model
`/9.8
`Summary
`332
`
`331
`
`Chapter 20 The Socket Interface
`
`335
`
`Introduction
`335
`20.1
`The UNIX flO Paradigm And Network 110
`20.2
`20.3 Adding Network 110 to UNIX
`336
`The Socket Abstraclioll
`337
`20.4
`
`336
`
`
`
`Contents
`
`338
`
`337
`Creating A Sockel
`205
`Socket Inheritance And Terminalion
`20.6
`Specifying A Local Address
`339
`20.7
`Cormecling Sockets To Destination Addresses 340
`20.8
`Sending Dolo Through A Socket
`341
`20.9
`Receiving Data Through A Socket
`343
`20.10
`Obtaining Local And Remole Socket Addresses 344
`20.11
`Obtaining And Setting Sockel Options
`345
`20.12
`20.13
`Specifying A Queue Length For A Serrer 346
`20.14
`How A Server Accepts Connections
`346
`SelTers Tllat Halldle Mulliple Services
`347
`20.15
`Obtaining Alld Setting Hosl Names
`348
`20.16
`Obtaining And Setting The Intemol NaSI DOlliain
`20.17
`BSD UNIX Network Library Calls
`349
`20.18
`20.19 NefWork Byte Order Conversion Routines 350
`20.20 IP Address Manipulation ROlltines
`351
`20.21 Accessing The Domain Name System
`352
`20.22 Obtaining In/ormation Abolll Hosts
`354
`20.23 Obtaining In/ormation About Networks 355
`20.24 Obtaining In/ornUltion Abolll Protocols
`355
`20.25 Obtaining Information Abolll Network Sen'ices 356
`20.26 All Example Client
`357
`20.27 All Example Serrer 359
`20.28 Summary
`362
`
`•
`
`349
`
`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.J1
`21.12
`21.13
`2/.14
`21.15
`21.16
`
`365
`Introduction
`The Need For An Alternative To RARP 366
`Using IP To Determine AnlP Address 366
`The BOOTP Retransmission Policy
`367
`Tile BOOTP Message Format
`368
`The TWO-SfCP Boolslrap Procedure
`Vendor-Specific Field
`370
`The Need For Dynamic Configllrarion
`Dynamic Host Configuration
`372
`Dynamic IP Address Assignment 372
`ObfOilljng Multiple Addresses 373
`Address Acquisition States
`374
`Early Lease Termination
`374
`Lease Renewal States
`376
`DHCP Message Format
`377
`DHCP Options And Message Type
`
`369
`
`370
`
`378
`
`
`
`21.17 Option Overload 379
`21 .18 DHCP And Domain Names 379
`21.19 Summary
`380
`
`Contents
`
`Chapter 22 The Domain Name System (DNS)
`
`383
`
`22./
`22.2
`22.3
`22.4
`22.5
`22.6
`22.7
`22.8
`22.9
`22./0
`22.11
`22.12
`22.13
`22.14
`22.15
`22.16
`22./7
`22./8
`22./9
`22.20
`22.21
`
`386
`
`388
`
`383
`Introduction
`Names For Machines 384
`Flat Namespace
`384
`Hierarchical Name!
`385
`Delegation OJ AllfllOriry For Names
`Suhset Authority 386
`387
`TCPIIP Internel Domain Names
`Official And Unojficial llllemet Domain Names
`l/ems Named And Sylllax OJ Names
`390
`Mapping Domaill Names To Addresses
`391
`Domain Name ReSO/llfioll
`393
`Ejficiem Tralls/alioll
`394
`395
`Cachillg: The Key To Efficiellcy
`Domain Server Message Format 396
`Compressed Name Format
`399
`AbbreviatiOn OJ Domain Names
`400
`11I1'erse Mappings
`Pointer Queries
`401
`Objecl Types Alld Resource Record Contents 401
`Obraining Authority For A Subdomain
`402
`Summary 403
`
`399
`
`Chapter 23 Applications: Remote Login (TELNET, Rlogin)
`
`407
`
`407
`
`407
`Introduction
`23.1
`23.2 Remote Imeractil'e Computing
`23.3
`TELNET Protocol 408
`23.4 Accommodating Heterogeneity 410
`23.5 Passillg Commands That Colltrol The Remote Side
`23.6 Forcing The Se/"l'C/" To Read A Control FlInctioll
`23.7 TELNET Options 414
`23.8
`TELNET Option Negotiation
`23.9 Rlogin (BSD UNIX)
`416
`23.10 Summary 417
`
`415
`
`412
`4 14
`
`
`
`ConlentS
`
`xvii
`
`Chapter 24 Applications: File Transfer And Access (FTP, TFTP, NFS) 419
`
`419
`Introduc/ion
`24.1
`242 File Access And Transfer 419
`24.3 On-line Shared Access 420
`Sharing By File Transfer
`421
`24.4
`245 Frp: The Major TCPIIP File Transfer Pr%col 421
`24.6 FTP Features
`422
`24.7
`422
`ITP Process Model
`24.8
`TCP Par/ Number Assignment 424
`24.9
`The User's View Of ITP 424
`An Example Anonymous FTP Session
`24.10
`TFTP
`427
`24.1I
`24.12
`NFS 429
`429
`24.13
`NFS Implememation
`24./4
`Remote Procedure Call (RPC) 430
`24.15
`Summary 431
`
`426
`
`Chapter 25 Applications: Electronic Mail (822, SMTP, MIME)
`
`433
`
`433
`Introdllc/ioll
`25.1
`25.2 Elec/rollic Mail
`433
`25.3 Mailbox Names And Aliases 435
`435
`25.4 Alias Expamion And Mail FOIwardillg
`436
`255 The Relationship Of !lIIerne/working And Mail
`25.6 TCPIIP Slallllards For Electronic Mail Service 438
`25.7 Electronic Mail Addresses 438
`25.8 Pseudo Domain Addresses 440
`25.9
`440
`Simple Mail Transfer Pr%eol (SMTP)
`25.10 The MIME Ex/ension For Non-ASCII Data
`443
`25.1 I MIME MlIlliparl Messages
`444
`25.12 SlImmary
`445
`
`Chapter 26 Applications: Internet Management (SNMP, SNMPv2)
`
`447
`
`447
`IlIIroduclioll
`26.1
`26.2 The Level Of Malia gemelli PrO/aeols 447
`26.3 Archi/eClllral Model
`448
`26.4 Protocol Arclli/eell/re 450
`451
`26.5 Examples of MIB Variables
`26.6 The SlrUCf/lre Of Mallagememlnformatioll
`
`452
`
`
`
`xviii
`
`Contents
`
`453
`26.7 Formal Definitions Using ASN.I
`Struclllre And Represelllation Of MIB Object Names
`26.8
`26.9
`Simple Network Management Protocol 458
`26.10 SNMP Message Format 460
`26.11 Example Encoded SNMP Message
`26.12 Summary 463
`
`462
`
`453
`
`Chapter 27 Summary Of Protocol Dependencies
`
`465
`
`465
`IlIIroduction
`27.1
`27.2 Protocol Dependencies 465
`27.3 Applicafion Program Access 467
`27.4
`Summary
`468
`
`Chapter 28
`
`Internet Security And Firewall Design
`
`471
`
`474
`
`471
`Introduction
`28.1
`28.2 Protecting Resources 472
`28.3
`The Need For An Information Policy 472
`Commllllicatioll. Cooperation. And MlIIual Misrrust
`28.4
`Mechanisms Forlfllemet Securiry 475
`28.5
`Firewalls And Internet Access 476
`28.6
`Multiple Connectiom And Weakest Links 477
`28.7
`Firewallimplementarion And High·Speed Hardware 478
`28.8
`Packet-Lel'el Filters 479
`28.9
`480
`Securiry And Packer Filter Specification
`28./0
`The Consequence Of Restricted Access For C/iellls
`28.11
`Accessing Services Throllgh A Firewall
`481
`28.12
`The Details Of Firewall Archile(."tllre 483
`28.13
`Stub NeN·ork
`484
`28.14
`An Alternative Firewall Implememation 484
`28.15
`MonilOring And Logging 485
`28.16
`Summary
`486
`28.17
`
`481
`
`Chapter 29 The Future Of TCP/IP (IPng, IPv6)
`
`489
`
`489
`IlIIroducrioll
`29.1
`29.2 Why Chal/ge TCP/IP And The Internet?
`491
`29.3 Motivation For Changing IP,,4
`29.4 The Road To A New Version Of IP
`29.5
`The Name Of Tile Next IP
`492
`
`492
`
`490
`
`
`
`-
`
`Contents
`
`xix
`
`494
`
`29.6 Features Of IPv6 493
`29.7 General Form Of AIl/Pv6 Datagram
`29.8
`IPv6 Base Header Formal
`494
`29.9
`IPI,6 Extension Headers
`496
`29.10 Parsing An IPv6 Dmagrom
`497
`29.1 I IPv6 Fragmenrarioll And Reassembly 498
`29.12 The COl/sequence Of End-To-End Fragmentation
`29.13 IPI'6 Source ROllling
`500
`29.14 IPv60plions 500
`502
`29.15 Size G/Tlle IPv6 Address Space
`502
`29./6 IPv6 Cololl Hexadecimal NotaliOIl
`503
`29.17 Three Basic IPv6 Address Types
`504
`29./8 The Duoliry O/Broadcast And Multicast
`29.19 An Engineering Choice And Simula/ed Broadcast 504
`29.20 Proposed IPv6 Address Space Assigllmem 504
`29.2 J IPv4 Address Encoding And Transition
`506
`29.22 Providers, Subscribers, And Address Hierarchy 506
`29.23 Additional Hierarchy 507
`29.24 Summary 508
`
`498
`
`Appendix 1 A Guide To RFCs
`
`511
`
`Appendix 2 Glossary Of Internetworking Terms And Abbreviations
`
`557
`
`Bibliography
`
`Index
`
`591
`
`599
`
`
`
`
`
`-
`
`Foreword
`
`Professor Douglas Comer's book has become rhe classic text for an introduction to
`TCP/IP. Writing an introduction to TePtlP 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 Tepnp protocol suite. Doug Comer has provided a
`very readable book.
`Whi le Ihis book is specifically about the Tepnp protocol sui Ie, il is a good book
`for learning about computer communications protocols in general. The principles of ar(cid:173)
`chitecture. layering, multiplex ing, encapsulation. addressing and address mapping, rout(cid:173)
`ing, and naming are quite similar in any protocol sui le, though, of course. different in
`detail.
`Computer communication protocols do not do anything themselves. Li ke operat(cid:173)
`ing systems, they arc in the service of application processes. Processes are the active
`clements 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(cid:173)
`puter operating system. especially the file system. Understanding protocol architecture
`is like understanding opemting system architecture. In this book Doug Comer has taken
`the "bottom up" approach - starting with the physical networks and moving up in lev(cid:173)
`els of abstraction to the applications.
`Since application processes are the active clements using the communication sup(cid:173)
`l>Orted by the protocol s. TCP/IP is an "interprocess communication" (IPC) mechanism.
`While there are several experiments in progress with operating system sty le message
`passing and procedure call types of IPC based on IP, the focus in this book is on more
`traditional applications that usc the UDP datagram or TCP logical connection ronns of
`IPC. Typically in operating systems there is a set of functions prov ided by the operat(cid:173)
`ing 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 arc similar system calls for IPC functions including network communication. As
`:10 example of such an interface Doug Comer presents an overview of the socket inter(cid:173)
`face.
`One of the key ideas inherent in TCP/IP and in the title of this book is " internet(cid:173)
`working." The power of a commun ication system is directly related to the number of
`entities in that system. The telephone network is very useful because (nearly) all the
`telephones are connected to one network (as it appears to the users). Computer com(cid:173)
`munication systems and networks are currently separ.l.led and fragmented. As more
`users and enterprises adopt TCP/IP as their network communication technology and are
`joining the Internet this is becoming less of a problem. but there is still a long way to
`
`x)(i
`
`
`
`xxii
`
`Foreword
`
`go. The goal of interconnection and intemetworking. to have a single powerful comput(cid:173)
`er communication network, is fundamental to the design of TCP/IP.
`Essential to internet working is addressing, and a uni versal protocol - the Internet
`Protocol. Of course, the individual networks have their own protocols which are used
`to carry the IP datagrams, and there must be a mapping between the individual network
`address and the IP address. Over the lifetime of TCP/IP, the nature of these individual
`networks have changed from the early days of the ARPANET to the recently developed
`ATM networks. A new chapter in this edition discusses IP over ATM networks. Thi s
`book now includes recent developments in Dynamic Host Configuration (DHCP) that
`will ease the administrat ion of networks and the installation of new computers.
`To have an internetwork, the individual networks must be connected. The connect(cid:173)
`ing devices are called routers. Further, these routers must have some procedures for
`forwarding data from one network to the next. The data is in the form of IP datagrams
`and the destination is specified by an IP address, but the router must make a routing de(cid:173)
`cision 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 connectivity infor(cid:173)
`mation to the routers are called routing algorithms, and these are currently the subject of
`much study and development. In particular, the recent development of the Classless In(cid:173)
`terDomain Routing (CIDR) technique to reduce the amount of routing information ex(cid:173)
`changed is important.
`Like all communication systems, the TCP/IP protocol suite is an unfin ished sys(cid:173)
`tem.
`It is evolving to meet changi ng requirements and new opportun it ies. Thus, this
`book is, in a sense, a snapshot of TCP/IP. And, as Doug Comer points out, there are
`many loose ends. With the recent rapid growth of the Internet there is concern about it
`outgrowing the capabilities of the TCPflP protocols, particularly the address space. In
`response the research and engineering community has developed a "next generation"
`version of the Internet Protocol called IPng. Many of the enterprises now joining the
`Internet have concerns about security. A new chapter in this edition discusses the secu(cid:173)
`rity and firewalls.
`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 avai lable. 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(cid:173)
`fort. and has had sign ificant benefits for the development of computer communication.
`Th is book brings together information about the various pans of Ihe TCP/IP archi(cid:173)
`tecture and protocols and makes it accessible. Its publication is a very significant mile(cid:173)
`stone in the evolution of computer communications.
`
`Jon Postel,
`Associate Director for Networking
`Information Sciences Institute
`University of Southern California
`
`January 1995
`
`
`
`-
`
`Preface
`
`The world has changed dramatically since the second edilion of this book was pub(cid:173)
`lished.
`It hardly seems possible on ly four years have elapsed. When I began the
`second edition in the summer of 1990, the Internet had grown to nearly 300,000 host
`computers, up from 5,()()() hosts when the book was first written. At the lime. we marv(cid:173)
`eled nt how large an obscure research project had become. Cynics predicted thaI con(cid:173)
`tinued growth would lead to a complete collapse by 1993. Instead of collapsing, the in(cid:173)
`ternet has continued its e:<plosivc expansion; the " large" Internet of 1990 is only 7% of
`the current Internet.
`TCP/IP and the Internet have accommodated change well. The basic technology
`has survived over a decade of exponential growth and the associated increases in traffic.
`The protocols huve worked over new high-speed network technologies. and the design
`has handled applica!ions thut could not be imagined a decade ago. Of course, the entire
`protocol suite has not remained static. New protocols have been deployed. and new
`techniques have been developed to adapt ex isting protocols to new network technolo(cid:173)
`gies. Changes are documented in RFCs, which have increased by over 50 percent.
`Thi s edition contains updated infonnation throughout the text (includi ng us