throbber
SECOND EDITION
`
`COMPUTER
`NETWORKS
`
`------------------------(cid:173)
`
`~·.
`
`ANDREW S. TANENBAUM
`
`Ex.1067.001
`
`DELL
`
`

`

`

`

`COMPUTER NETWORKS
`
`SECOND EDITION
`
`ANDREW S. TANENBAUM
`Vrije Universiteit
`Amsterdam, The Netherlands
`
`PRENTICE HALL
`
`ENGLEWOOD CLIFFS, NEW JERSEY 07632
`
`Ex.1067.003
`
`DELL
`
`

`

`Library of Congress Cataloging-in-Publication Data
`Tanenbaum, Andrew S.
`Computer networks I Andrew S. Tanenbaum.-2nd ed.
`p.
`cm.
`Bibliography: p.
`Includes index.
`ISBN 0-13-162959-X
`1. Computer networks.
`TK5!05.5.T36 1988
`004.6-dcl9
`
`I. Title.
`

`
`88-16937
`CIP
`
`Editorial/production supervision: Lisa Schulz Garboski
`Manufacturing buyer: Mary Ann Gloriande
`
`Prentice Hall Software Series
`Brian W. Kernighan, Advisor
`
`The publisher offers discounts on this book when ordered in bulk
`quantities. For more information, write:
`
`Special Sales/College Marketing
`Prentice Hall
`College Technical and Reference Division
`Englewood Cliffs, NJ 07632
`
`© 1989 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.
`
`Printed in the United States of America
`
`10 9
`
`ISBN
`
`0-13-162959-X
`
`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.1067.004
`
`DELL
`
`

`

`To Suzanne, Barbara, Marvin, Muis, and the memory of Sweetie 7t
`
`Ex.1067.005
`
`DELL
`
`

`

`CONTENTS
`
`1
`
`INTRODUCTION
`
`1
`
`1.1 THE USES OF COMPUTER NETWORKS 3
`1.1.1 Network Goals 3
`1.1.2 Applications of Networks 4
`
`1.2 NETWORK STRUCTURE 6
`
`1.3 NETWORK ARCHITECTURES 9
`1.3.1 Protocol Hierarchies 9
`1.3.2 Design Issues for the Layers 13
`
`1.4 THE OSI REFERENCE MODEL 14
`1.4.1 The Physical Layer 15
`1.4.2 The Data Link Layer 16
`1.4.3 The Network Layer 16
`1.4.4 The Transp01t Layer 17
`l.4.5 The Session Layer 18
`l.4.6 The Presentation Layer 18
`1.4. 7 The Application Layer 19
`1.4.8 Data Transmission in the OSI Model 19
`
`1.5 SERVICES 21
`1.5.1 OSI Terminology 21
`1.5.2 Connection-Oriented and Connectionless Services 22
`1.5.3 Service Primitives 24
`1.5.4 The Relationship of Services to Protocols 26
`
`1.6 NETWORK STANDARDIZATION 27
`1.6.l Who's Who in the Telecommunication World 28
`1.6.2 Who's Who in the Standards World 29
`1.6.3 Discussion of the Standardization of the OSI model 30
`
`1.7 EXAMPLE NETWORKS 32
`1.7.1 Public Networks 32
`1.7.2 The ARPANET 35
`1.7.3 MAP and TOP 36
`1. 7.4 USENET 40
`1.7.5 CSNET 41
`1.7.6 BITNET 42
`1.7.7 SNA 43
`
`1.8 OUTLINE OF THE REST OF THE BOOK 47
`
`1.9 SUMMARY 48
`
`v
`
`Ex.1067.006
`
`DELL
`
`

`

`vi
`2
`
`CONTENf S
`
`THE PHYSICAL LA YER
`
`52
`
`2.1 THE THEORETICAL BASIS FOR DATA COMMUNICATION 52
`2.1.1 Fourier Analysis 52
`2.1.2 Bandwidth-Limited Signals 53
`2.1.3 The Maximum Data Rate of a Channel 56
`
`2.2 TRANSMISSION MEDIA 57
`2.2.1 Magnetic Media 57
`2.2.2 Twisted Pair 57
`2.2.3 Baseband Coaxial Cable 58
`2.2.4 Broadband Coaxial Cable 59
`2.2.5 Fiber Optics 62
`2.2.6 Line-of-Sight Transmission 65
`2.2.7 Communication Satellites 66
`
`2.3 ANALOG TRANSMISSION 70
`2.3. l The Telephone System 70
`2.3.2 Modems 72
`2.3.3 RS-232-C and RS-449 76
`
`2.4 DIGIT AL TRANSMISSION 77
`2.4.1 Pulse Code Modulation 79
`2.4.2 Encoding Systems 81
`2.4.3 The X.21 Digital Interface 82
`
`2.5 TRANSMISSION AND SWITCHING 84
`2.5.1 Frequency Division and Time Division Multiplexing 84
`2.5.2 Circuit Switching 86
`2.5.3 Packet Switching 88
`2.5.4 Hybrid Switching 89
`
`2.6
`
`ISDN-INTEGRATED SERVICES DIGITAL NETWORK 90
`2.6.1
`ISDN Services 91
`2.6.2 Evolution of ISDN 93
`2.6.3 ISDN System Architecture 95
`2.6.4 The Digital PBX g9
`2.6.5 The ISDN Interface 102
`2.6.6 ISDN Signaling-SS #7 106
`2.6.7 Perspective on ISDN 107
`
`2.7 TERMINAL HANDLING 109
`2.7.1 Polling 110
`2. 7 .2 Multiplexing versus Concentration 111
`
`2.8 SUMMARY 113
`
`Ex.1067.007
`
`DELL
`
`

`

`3
`
`THE MEDIUM ACCESS SUBLAYER
`
`CONTENTS
`
`vii
`
`116
`
`3.1 LOCAL AND METROPOLITAN AREA NETWORKS 116
`3.1.1 Static Channel Allocation in LANs and MANs 118
`3.1.2 Dynamic Channel Allocation in LANs and MANs 119
`
`3.2 THE ALOHA PROTOCOLS 121
`3.2.1 Pure ALOHA and Slotted ALOHA 121
`3.2.2 Finite Population ALOHA 124
`
`3.3 LOCAL AREA NETWORK PROTOCOLS 127
`3.3.1 Persistent and Nonpersistent CSMA 127
`3.3.2 CSMA with Collision Detection 128
`3.3.3 Collision-Free Protocols 130
`3.3.4 BRAP-Broadcast Recognition with Alternating Priorities 131
`3.3.5 MLMA-The Multi-Level Multi-Access Protocol 132
`3.3.6 Binary Countdown 134
`3.3.7 Limited-Contention Protocols 135
`3.3.8 The Adaptive Tree Walk Protocol 136
`3.3.9 The Um Protocol 138
`IEEE STANDARD 802 FOR LOCAL AREA NETWORKS 141
`3.4.1 IEEE Standard 802.2 and Ethernet 141
`3.4.2 IEEE Standard 802.4: Token Bus 148
`3.4.3 IEEE Standard 802.5: Token Ring 153
`3.4.4 Comparison of Local Area Networks 163
`
`3.4
`
`3.5 FIBER OPTIC NETWORKS 165
`3.5.1 FDDI 166
`3.5.2 Fibemet II 168
`3.5.3 S/NET 170
`3.5.4 FASNET AND EXPRESSNET 171
`3.5.5 DATAKIT 173
`
`3.6 SATELLITE NETWORKS 175
`3.6.1 SPADE 176
`3.6.2 ALOHA Revisited 177
`3.6.3 Reservation ALOHA 179
`
`3.7 PACKET RADIO NETWORKS 182
`3.7.1 The University of Hawaii ALOHA System 182
`3.7.2 Design Issues for Packet Radio Networks 183
`
`3.8 EXAMPLES OF THE MAC SUBLAYER 188
`3.8.1 The MAC Sublayer in Public Networks 189
`3.8.2 The MAC Sublayer in the ARPANET 189
`3.8.3 The MAC Sublayer in MAP and TOP 189
`3.8.4 The MAC Sublayer in USENET 190
`
`3.9 SUMMARY 190
`
`Ex.1067.008
`
`DELL
`
`

`

`viii
`4
`
`CONTENTS
`
`THE DATA LINK LAYER
`
`196
`
`4.1 DATA LINK LAYER DESIGN ISSUES 197
`4.1.1 Services Provided to the Network Layer 197
`4.1.2 Framing 199
`4.1.3 Error Control 202
`4.1.4 Flow Control 203
`4.1.5 Link management 204
`
`4.2 ERROR DETECTION AND CORRECTION 204
`4.2.1 Error-Correcting Codes 206
`4.2.2 Error-Detecting Codes 208
`
`4.3 ELEMENTARY DATA LINK PROTOCOLS 212
`4.3.1 An Unrestricted Simplex Protocol 216
`4.3.2 A Simplex Stop-and-Wait Protocol 217
`4.3.3 A Simplex Protocol for a Noisy Channel 219
`
`4.4 SLIDING WINDOW PROTOCOLS 223
`4.4.1 A One Bit Sliding Window Protocol 225
`4.4.2 A Protocol Using Go Back n 228
`4.4.3 A Protocol Using Selective Repeat 234
`
`4.5 PROTOCOL PERFORMANCE 239
`4.5.1 Performance of the Stop-and-Wait Protocol 239
`4.5.2 Performance of the Sliding Window Protocol 242
`
`4.6 PROTOCOL SPECIFICATION AND VERIFICATION 244
`4.6.1 Finite State Machine Models 245
`4.6.2 The Estelle Protocol Specification Language 251
`4.6.3 Petri Net Models 252
`
`4.7 EXAMPLES OF THE DATA LINK LA YER 253
`4.7.1 The Data Link Layer in Public Networks 254
`4.7.2 The Data Link Layer in the ARPANET 257
`4.7.3 The Data Link Layer in MAP and TOP 262
`4.7.4 The Data Link Layer in USENET 265
`
`4.7 SUMMARY 267
`
`5
`
`THE NETWORK LA YER
`
`271
`
`5.1 NETWORK LA YER DESIGN ISSUES 271
`5.1.1 Services Provided to the Transport Layer 271
`5.1.2 Internal Organization of the Network Layer 280
`5.1.3 Routing 284
`5.1.4 Congestion 287
`5.1.5 Internetworking 288
`
`Ex.1067.009
`
`DELL
`
`

`

`CONTENTS
`
`ix
`
`5.2 ROUTING ALGORITHMS 289
`5.2.1 Shortest Path Routing 289
`5.2.2 Multipath Routing 291
`5.2.3 Centralized Routing 294
`5.2.4 Isolated Routing 296
`5.2.5 Flooding 298
`5.2.6 Distributed Routing 299
`5.2. 7 Optimal Routing 300
`5.2.8 Flow-Bf!Sed Routing 303
`5.2.9 Hierarchical Routing 305
`5.2.10 Broadcast Routing 306
`
`5.3 CONGESTION CONTROL ALGORITHMS
`5.3.1 Preallocation of Buffers 309
`5.3.2 Packet Discarding 310
`5.3.3 Isarithmic Congestion Control
`5.3.4 Flow Control 313
`5.3.5 Choke Packets 314
`5.3.6 Deadlocks 315
`
`312
`
`309
`
`5.4
`
`INTERNETWORKING 320
`5.4.1 OSI and Intemetworking 321
`5.4.2 Bridges 325
`5.4.3 Gateways 337
`5.4.4 Comparison of Connection-Oriented and Connectionless Gateways 345
`5.4.5 Bridge and Gateway Software 346
`
`5.5 EXAMPLES OF THE NETWORK LA YER 350
`5.5.1 The Network Layer in Public Networks 350
`5.5.2 The Network Layer in the ARPANET (IP) 358
`5.5.3 The Network Layer in MAP and TOP 362
`5.5.4 The Network Layer in USENET 363
`
`5.6 SUMMARY 365
`
`6
`
`THE TRANSPORT LAYER
`
`370
`
`6.1 TRANSPORT LA YER DESIGN ISSUES 371
`6.1.1 Services Provided to the Session Layer 371
`6.1.2 Quality of Service 373
`6.1.3 The OSI Transport Service Primitives 375
`6.1.4 Transport Protocols 381
`6.1.5 Elements of Transport Protocols 384
`
`Ex.1067.010
`
`DELL
`
`

`

`x
`
`CONTENTS
`
`6.2 CONNECTION MANAGEMENT 387
`6.2.1 Addressing 388
`6.2.2 Establishing a Connection 391
`6.2.3 Releasing a Connection 397
`6.2.4 Timer-Based Connection Management 401
`6.2.5 Flow Control and Buffering 403
`6.2.6 Multiplexing 407
`6.2. 7 Crash Recovery 409
`
`6.3 A SIMPLE TRANSPORT PROTOCOL ON TOP OF X.25 411
`6.3.1 The Example Service Primitives 411
`6.3.2 The Example Transport Entity 413
`6.3.3 The Example as a Finite State Machine 420
`
`6.4 EXAMPLES OF THE TRANSPORT LA YER 422
`6.4.1 The Transport Layer in Public Networks 422
`6.4.2 The Transport Layer in the ARP ANET (TCP) 429
`6.4.3 The Transport Layer in MAP and TOP 435
`6.4.4 The Transport Layer in USENET 436
`
`6.5 SUMMARY 436
`
`7
`
`THE SESSION LAYER
`
`440
`
`7.1 SESSION LA YER DESIGN ISSUES 441
`7.1.1 Services Provided to the Presentation Layer 441
`7.1.2 Data Exchange 443
`7 .1.3 Dialog Management 444
`7 .1.4 Synchronization 446
`7.1.5 Activity Management 448
`7.1.6 Exception Reporting 451
`7.1.7 The OSI Session Service Primitives 451
`
`7 .2 REMOTE PROCEDURE CALL 454
`7.2.1 The Client-Server Model 455
`7 .2.2 Implemehtation of Remote Procedure Call 456
`7 .2. 3 Semantics of Remote Procedure Call 460
`7 .2.4 Orphans 462
`7 .2.5 Discussion of RPC 464
`
`7.3 EXAMPLES OF THE SESSION LA YER 465
`7.3.1 The Session Layer in Public Networks 465
`7.3.2 The Session Layer in the ARPANET 469
`7.3.3 The Session Layer in MAP and TOP 469
`7.3.4 The Session Layer in USENET 469
`
`7.4 SUMMARY 469
`
`Ex.1067.011
`
`DELL
`
`

`

`8
`
`THE PRESENTATION LA YER
`
`CONTENTS
`
`xi
`
`471
`
`8.1 PRESENTATION LAYER DESIGN ISSUES 472
`8.1.1 Data Representation 472
`8.1.2 Data Compression 473
`8.1.3 Network Security and Privacy 473
`8.1.4 The OSI Presentation Service Primitives 475
`
`8.2 ABSTRACT SYNTAX NOTATION 1 (ASN.1) 475
`8.2.1 Data Structures 476
`8.2.2 Abstract Syntax 481
`8.2.3 Transfer Syntax 487
`
`8.3 DATA COMPRESSION TECHNIQUES 490
`8.3.1 Encoding a Finite Set of Equally Likely Symbols 491
`8.3.2 Frequency Dependent Coding 491
`8.3.3 Context Dependent Encoding 494
`
`8.4 CRYPTOGRAPHY 496
`8.4.1 Traditional Cryptography 496
`8.4.2 The Data Encryption Standard 503
`8.4.3 The Key Distribution Problem 510
`8.4.4 Public Key Cryptography 513
`8.4.5 Authentication and Digital Signatures 516
`
`8.5 EXAMPLES OF THE PRESENT A TI ON LA YER 520
`8.5.1 The Presentation Layer in Public Networks 521
`8.5.2 The Presentation Layer in the ARPANET 523
`8.5.3 The Presentation Layer in MAP and TOP 524
`8.5.4 The Presentation Layer in USENET 524
`
`8.6 SUMMARY 524
`
`9
`
`THE APPLICATION LAYER
`
`528
`
`9.1 APPLICATION LAYER DESIGN ISSUES 528
`9.1.1 File Transfer, Access, and Management 529
`9.1.2 Electronic Mail 530
`9.1.3 Virtual Terminals 531
`9.1.4 Other Applications 531
`9.1.5 OSI Service Elements-ACSE and CCR 532
`
`9.2 FILE TRANSFER, ACCESS, AND MANAGEMENT 535
`9.2.1 File Servers 535
`9.2.2 Concurrency Control 539
`
`Ex.1067.012
`
`DELL
`
`

`

`xii
`
`CONTENTS
`
`9.2.3 Replicated Files 540
`9.2.4 Implementation Issues 542
`
`9.3 ELECTRONIC MAIL 546
`9.3.1 Architecture and Services of MOTIS and X.400 547
`9.3.2 The User Agent 551
`9.3.3 The Message Transfer Agent 555
`
`9.4 VIRTUAL TERMINALS 558
`9.4.1 Scroll Mode Terminals 559
`9.4.2 Page Mode Terminals 561
`9.4.3 Form Mode Terminals 562
`
`9.5 OTHER APPLICATIONS 569
`9.5.1 Directory Service 569
`9.5.2 Job Transfer and Management 571
`9.5.3 Picture Storage and Transfer 573
`9.5.4 Teletext and Videotex 574
`
`9.6 EXAMPLES OF THE APPLICATION LAYER 576
`9.6.1 The Application Layer in Public Networks 576
`9.6.2 The Application Layer in the ARPANET 587
`9.6.3 The Application Layer in MAP and TOP 593
`9.6.4 The Application Layer in USENET 598
`
`9.7 SUMMARY 604
`
`10 READING LIST AND BIBLIOGRAPHY
`
`608
`
`10.1 SUGGESTIONS FOR FURTHER READING 608
`10.1.1 Introduction and General Works 609
`10.1.2 The Physical Layer 610
`10.1.3 The Medium Access Control Sublayer 611
`10.1.4 The Data Link Layer 611
`10.1.5 The Network Layer 612
`10.1.6 The Transport Layer 612
`10.1. 7 The Session Layer 613
`10.1.8 The Presentation Layer 614
`10.1. 9 The Application Layer 615
`
`10.2 ALPHABETICAL BIBLIOGRAPHY 615
`
`A APPENDIX: QUEUEING THEORY
`
`INDEX
`
`631
`
`642
`
`Ex.1067.013
`
`DELL
`
`

`

`PREFACE
`
`Computer networking has changed enormously over the past decade, and this
`book has changed along with it. Ten years ago, computer networks were exotic
`research tools used only by few specialists. Today, computers ranging from per(cid:173)
`sonal computers to supercomputers are more likely to be part of a network than not.
`Most organizations that use computers either already have, or are soon planning to
`install, one or more local area networks. Worldwide electronic mail is a daily real(cid:173)
`ity for millions of people. In short, networks have evolved from an academic
`curiosity to an essential tool for users in business, government, and universities.
`Only a few short years ago, the design of a computer network was something of
`a black art. Every computer manufacturer had its own network architecture, no two
`of which were compatible. All that has changed now. Virtually the entire com(cid:173)
`puter industry has now agreed to a series of International Standards for describing
`network architectures. These standards are known as the OSI Reference Model. In
`the near future, almost all other network architectures will disappear, and comput(cid:173)
`ers from one vendor will be able to communicate effortlessly with computers from
`another vendor, thus stimulating network usage even more.
`This book uses the OSI Reference Model as a framework. The model is based
`on a principle first enunciated by Julius Caesar: Divide and Conquer. The idea is to
`design networks as a sequence of layers, one based upon the previous one. By
`reducing the study of the whole to the study of its parts, the entire process becomes
`more manageable.
`
`xiii
`
`Ex.1067.014
`
`DELL
`
`

`

`xiv
`
`PREFACE
`
`Because networking has changed so much since the first edition, this second
`edition is almost a completely new book. Over half of the material is completely
`new, and much of the remainder has also been heavily updated and improved.
`Whole new areas are now discussed in detail, including ISDN, LAN s, fiber optics,
`and bridges. The treatment of the upper OSI layers has been completely rewritten
`and expanded by over a hundred pages to include important topics such as the OSI
`transport protocols, ASN.1, FfAM, and VTP. New networks, including MAP,
`TOP, and USENET are now examined in some detail and network software is also
`given more coverage.
`The idea of organizing the book around the seven OSI layers has proved very
`successful and has been retained in this second edition. Chapter 1 provides an
`introduction to the subject of computer networks in general and layered protocols in
`particular. The next five chapters deal with the lower layers, physical through tran(cid:173)
`sport, which collectively are the providers of the transport service. Chapter 2 cov(cid:173)
`ers physical media, analog and digital transmission, the telephone system and
`ISDN. Chapter 3 looks at the MAC sublayer and local area networks, including
`IEEE standard 802. Chapter 4 is about the data link layer and its protocols: also(cid:173)
`rithms for reliably transmitting data over umeliable lines. Chapter 5 treats the net(cid:173)
`work layer, especially routing, congestion control, and internetworking. Finally,
`chapter 6 studies the transport layer, in particular, connection management and
`end-to-end protocols.
`The last three chapters deal with the upper layers, the users of the transport ser(cid:173)
`vice. Chapter 7 is about the session layer, which is concerned with providing reli(cid:173)
`able service, even in the face of umeliable hardware. Chapter 8 covers the presen(cid:173)
`tation layer, including the OSI abstract syntax notation, data compression, and
`cryptography. Chapter 9 provides an introduction to some application layer issues,
`including file transfer, electronic mail, virtual terminals, remote job entry, and
`directory services. Chapter 10 contains a reading list and bibliography.
`Queueing theory is a basic mathematical tool that is used to analyze computer
`networks, so an appendix is provided on it for the benefit of readers not familiar
`with this subject.
`The book can be used as a text for undergraduates or beginning graduate stu(cid:173)
`dents in computer science, electrical engineering, and related disciplines. The only
`prerequisites are a general familiarity with computer systems and programming,
`although a little knowledge of elementary calculus and probability theory is useful
`in a few places, but is not essential. Some of the examples are given in Pascal, so
`some knowledge of this, or a similar programming language is a plus. Since the
`amount of material in the book may be too much for a one semester course, depend(cid:173)
`ing on the level of the students, I have made a serious attempt to· make each chapter
`relatively independent of the other ones. In this way an instructor could choose to
`emphasize, for example, data communication and the lower layers, or alternatively,
`software and the upper layers.
`The book can also be used by computer professionals who are interested in
`
`Ex.1067.015
`
`DELL
`
`

`

`PREFACE
`
`xv
`
`networking. For this reason, I have attempted to limit the amount of mathematics
`used, and have included numerous practical examples instead of providing niany
`pages of abstract derivations. Even programmers or technical managers who are
`not network specialists should be able to follow a considerable amount of the book.
`Many people have helped me during the preparation of the second edition. I
`would especially like to thank Imrich Chlamtac Bdale Garbee, John Henshall,
`Brian Kernighan, John Limb, Chris Makemson, Daniel Pitt, Sandy Shaw, Jennifer
`Steiner and my editor, John Wait. I would also like to thank my students for help(cid:173)
`ing to debug the text. Special thanks go to Jeroen Belien, Berend Jan Beugel,
`Remco Feenstra, Anneth de Gee, Comelis Kroon, Roemer Lievaart, Maarten Lit(cid:173)
`maath, Paul Polderman, Rob van Swinderen, Luuk Uljee, and Felix Yap.
`Last but not least, I would like to thank Suzanne, Barbara, Marvin, and Muis.
`Suzanne for still being so understanding after all these years; Barbara and Marvin
`for using their computer instead of mine, thus making this book possible; and and
`Muis for being as quiet as a mouse while I was writing.
`
`ANDREWS. TANENBAUM
`
`Ex.1067.016
`
`DELL
`
`

`

`1
`
`INTRODUCTION
`
`Each of the past three centuries has been dominated by a single technology.
`The eighteenth century was the time of the great mechanical systems accompany(cid:173)
`ing the Industrial Revolution. The nineteenth century was the age of the steam
`engine. During the twentieth century, the key technology has been information
`gathering, processing, and distribution. Among other developments, we have seen
`the installation of worldwide telephone networks, the invention of radio and televi(cid:173)
`sion, the birth and unprecedented growth of the computer industry, and the launch(cid:173)
`ing of communication satellites.
`As we move toward the final years of this century, these areas are rapidly con(cid:173)
`verging, and the differences between collecting, transporting, storing, and process(cid:173)
`ing information are quickly disappearing. Organizations with hundreds of offices
`spread over a wide geographical area routinely expect to be able to examine the
`current status of even their most remote outpost at the push of a button. As our
`ability to gather, process, and distribute information grows, the demand for even
`more sophisticated information processing grows even faster.
`Although the computer industry is young compared to other industries (e.g.,
`automobiles and air transportation), computers have made spectacular progress in a
`short time. During the first two decades of their existence, computer systems were
`highly centralized, usually within a single large room. Not infrequently, this room
`had glass walls, through which visitors could gawk at the great electronic wonder
`inside. A medium-size company or university might have had one or two
`
`1
`
`Ex.1067.017
`
`DELL
`
`

`

`2
`
`INTRODUCTION
`
`CHAP. 1
`
`computers, while large institutions had at most a few dozen. The idea that within
`20 years equally powerful computers smaller than postage stamps would be mass
`produced by the millions was pure science fiction.
`The merging of computers and communications has had a profound influence
`on the way computer systems are organized. The concept of the "computer center"
`as a room with a large computer to which users bring their work for processing is
`rapidly becoming obsolete. This model has not one, but at least two flaws: the con(cid:173)
`cept of a single large computer doing all the work, and the idea of users bringing
`work to the computer instead of bringing the computer to the users.
`The old model of a single computer serving all of the organization's computa(cid:173)
`tional needs, is rapidly being replaced by one in which a large number of separate
`but interconnected computers do the job. These systems are called computer net(cid:173)
`works. The design and analysis of these networks are the subjects of this book.
`Throughout the book we will use the term "computer network" to mean an
`interconnected collection of autonomous computers. Two computers are said to be
`interconnected if they are able to exchange information. The connection need not
`be via a copper wire; lasers, microwaves, and communication satellites can also be
`used. By requiring the computers to be autonomous, we wish to exclude from our
`definition systems in which there is a clear master/slave relation. If one computer
`can forcibly start, stop, or control another one, the computers are not autonomous.
`A system with one control unit and many slaves is not a network; nor is a large
`computer with remote card readers, printers, and terminals.
`There is considerable confusion in the literature between a computer network
`and a distributed system. The key distinction is that in a distributed system, the
`existence of multiple autonomous computers is transparent (i.e., not visible) to the
`user. Het can type a command to run a program, and it runs. It is up to the operat(cid:173)
`ing system to select the best processor, find and transport all the input files to that
`processor, and put the results in the appropriate place.
`In other words, the user of a distributed system is not aware that there are multi(cid:173)
`ple processors; it looks like a virtual uniprocessor. Allocation of jobs to processors
`and files to disks, movement of files between where they are stored and where they
`are needed, and all other system functions must be automatic.
`With a network, a user must explicitly log onto one machine, explicitly submit
`jobs remotely, explicitly move files around and generally handle all the network
`management personally. With a distributed system, nothing has to be done expli(cid:173)
`citly; it is all automatically done by the system without the user's knowledge.
`In effect, a distributed system is a special case of a network, one whose ,
`software gives it a high degree of cohesiveness and transparency. Thus the distinc(cid:173)
`tion between a network and a distributed system lies with the software (especially
`the operating system), rather than with the hardware.
`
`t "He" should be read as "he or she" throughout this book.
`
`Ex.1067.018
`
`DELL
`
`

`

`SEC. 1.1
`
`USES OF COMPUTER NETWORKS
`
`3
`
`Nevertheless, there is a lot of overlap between the two subjects. For example,
`both distributed systems and computer networks need to move files around. The
`difference lies in who invokes the movement, the system or the user. Although this
`book primarily focuses on networks, many of the topics are also important in distri(cid:173)
`buted systems. For more information about distributed systems, see Crichlow
`(1988), Sloman and Kramer (1987), and Tanenbaum and van Renesse (1985).
`
`1.1. USES OF COMPUTER NETWORKS
`
`Before we start to examine the technical issues in detail, it is worth devoting
`some time to pointing out why people are interested in computer networks and what
`they can be used for.
`
`1.1.1. Network Goals
`
`Many organizations already have a substantial number of computers in opera(cid:173)
`tion, often located far apart. For example, a company with· many factories may
`have a computer at each location to keep track of inventories, monitor productivity,
`and do the local payroll. Initially, each of these computers may have worked in iso(cid:173)
`lation from the others, but at some point, management may have decided to connect
`them to be able to extract and correlate information about the entire company.
`Put in slightly more general form, the issue here is resource sharing, and the
`goal is to make all programs, data, and equipment available to anyone on the net(cid:173)
`work without regard to the physical location of the resource and the user. In other
`words, -the mere fact that a user happens to be 1000 km away from his data should
`not prevent him from using the data as though they were local. Load sharing is
`another aspect of resource sharing. This goal may be summarized by saying that it
`is an attempt to end the "tyranny of geography."
`A second goal is to provide high reliability by having alternative sources of
`supply. For example, all files could be replicated on two or three machines, so if
`one of them is unavailable (due to a hardware failure), the other copies could be
`used. In addition, the presence of multiple CPUs means that if one goes down, the
`others may be able to take over its work, although at reduced performance. For
`military, banking, air traffic control, and many other applications, the ability to con(cid:173)
`tinue operating in the face of hardware problems is of great importance.
`Another goal is saving money. Small computers have a much better
`price/performance ratio than large ones. Mainframes are roughly a factor of ten
`faster than the fastest single chip microprocessors, but they cost a thousand times
`more. This imbalance has caused many systems designers to build systems consist(cid:173)
`ing of powerful personal computers, one per user, with data kept on one or more
`shared file server machines.
`This goal leads to networks with many computers located in the same building.
`
`Ex.1067.019
`
`DELL
`
`

`

`4
`
`INTRODUCTION
`
`CHAP. 1
`
`Such a network is called a LAN (local area network) to contrast it with the far(cid:173)
`flung WAN (wide area network), which is also called a long haul network.
`A closely related point is the ability to increase system performance gradually
`as the workload grows just by adding more processors. With central mainframes,
`when the system is full, it must be replaced by a larger one, usually at great expense
`and with even greater disruption to the users.
`Yet another goal of setting up a computer network has little to do with technol(cid:173)
`ogy at all. A computer network can provide a powerful communication medium
`among widely separated people. Using a network, it is easy for two or more people
`who live far apart to write a report together. When one author makes a change to
`the document, which is kept online, the others can see the change immediately,
`instead of waiting several days for a letter. Such a speedup makes cooperation
`among far-flung groups of people easy where it previously had been impossible. In
`the long run, the use of networks to enhance human-to-human communication may
`prove more important than technical goals such as improved reliability.
`In Fig. 1-1 we give a classification of multiple processor systems arranged by
`physical size. At the top are data flow machines, highly parallel computers with
`many functional units all working on the same program. Next come the multi(cid:173)
`processors, systems that communicate via shared memory. Beyond the multipro(cid:173)
`cessors are the true networks, computers that communicate by exchanging mes(cid:173)
`sages. Finally, the connection of two or more networks is called internetworking.
`
`Interprocessor Processors located
`distance
`in same
`
`Example
`
`0.1 m
`
`1m
`
`10 m
`
`100 m
`
`1 km
`
`10 km
`
`Circuit board
`
`System
`
`Room
`
`Building
`
`Campus
`
`City
`
`100 km
`
`Country
`
`1000 km
`
`Continent
`
`10,000 km
`
`Planet
`
`} Data flow machine
`
`} Multiprocessor
`
`l Local netwock
`
`} Long haul netwock
`
`}
`
`lntecconnection of long haul netwock•
`
`Fig. 1-1. Classification of interconnected processors by scale.
`
`1.1.2. Applications of Networks
`
`Replacing a single mainframe by workstations on a LAN does not make many
`new applications possible, although it may improve the reliability and performance.
`In contrast, the availability of a (public) WAN makes many new applications
`
`Ex.1067.020
`
`DELL
`
`

`

`SEC. 1.2
`
`USES OF COMPUTER NETWORKS
`
`5
`
`feasible. Some of these new applications may have important effects on society as
`a whole. To give an idea about some important uses of computer networks, we will
`now briefly look at just three examples: access to remote programs, access to
`remote databases, and value-added communication facilities.
`A company that has produced a model simulating the world economy may
`allow its clients to log in over the network and run the program to see how various
`projected inflation rates, interest rates, and currency fluctuations might affect their
`businesses. This approach is often preferable to selling the program outright, espe(cid:173)
`cially if the model is constantly being adjusted or requires an extremely large main(cid:173)
`frame computer to run.
`Another major area of network use is access to remote databases. It may soon
`be easy for the average person sitting at home to make reservations for airplanes,
`trains, buses, boats, hotels, restaurants, theaters, and so on, anywhere in the world
`with instant confirmation. Home banking and the automated newspaper also fall in
`this category. Present newspapers offer a little bit of everything, but electronic
`ones can be easily tailored to each reader's personal taste, for example, everything
`about computers, the major stories about politics and epidemics, but no football,
`thank you.
`The next step beyond automated newspapers (plus magazines and scientific
`journals) is the fully automated library. Depending on the cost, size, and weight of
`the terminal, the printed word may become obsolete. Skeptics should take note of
`the effect the printing press had on the medieval illuminated manuscript.
`All these applications use networking for economic reasons: calling up a distant
`computer via a network is cheaper than calling it directly. The lower rate is possi(cid:173)
`ble because a normal telephone call ties up an expensive, dedicated circuit for the
`duration of the call, whereas access via a network ties up long-distance lines only
`while data are actually being transmitted.
`A third category of potential widespread network use is as a communication
`medium. Computer scientists already take it for granted that they can send elec(cid:173)
`tronic mail from their terminals to their colleagues anywhere in the world. In the
`future, it will be possible for everyone, not just people in the computer business, to
`send and receive electronic mail. Furthermore, this mail will also be able to con(cid:173)
`tain digitized voice, still pictures and possibly even moving television and video
`images. One can easily imagine children in different countries trying to learn each
`other's languages by drawing a picture of a child on a shared screen and labeling it
`girl, jeune fille, or meisje.
`Electronic bulletin board systems already exist, but these tend to be used by
`computer experts, are oriented towards technical topics, and are often limited in
`geographic scope. Future systems will be national or international, be used by mil(cid:173)
`lions of nontechnical people, and cover a much broader range of subjects. Using a
`bulletin board may be as common as reading a magazine.
`It is sometimes said that there is a

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket