`
`DATA AND
`COMPUTER
`COMMUNICATIONS
`
`WILLIAM STALLINGS
`
`PRENTICE HALL
`UPPER SADDLE RIVER, N EW J ERSEY 07458
`
`
`
`Ex.1022
`APPLE INC. / Page 1 of 9
`
`
`
`lilttllry (1£ C.,.1g:rcss Catatoglllg;-fD.Pt1blict1fic1ft D11t11
`St11llu1gs. Wi.ltiatn.
`U::11a aOd rot.npUtct commtonicatinn.~ I William St::1Jh.ug .. - 5th i:<l.
`p. Clll.
`li)CIUdCS bibliovopb.kal refooon,c,.,• ,,nil iu<l~>:.
`ISB~ (hwalid) O-OZ..-15425-3
`1. Uata transmissioJl S)'Stern,;, 1, Crompul~r iwt.,....,r\.!i.
`I KSIO:S.S73 19%
`l»l.6-dc--2(1
`
`I. titk.
`96-2•1419
`CW
`
`Publisher: Alart Alli
`Editor-in-Chief: Mama Ho11on
`P 1'(1duc1iM Ma,13£,Cr: Ba)·ani Mendoza de Leon
`Production l:.<litur: ~fona PQmpili
`Manttt.int Editor: Laura Steele
`L>csigo Duee101: A01y R<):;en
`
`~s.igner: Judy \1at1-Coni.~lio
`Co,·er Desi&'Uer: Tom Nery
`O.,\·ec UJu~ll'ator. Wendy Grossman
`Cop)-' Editor: Chip Lee
`M.in1.1foc1u.-ing. AU)'Cr: Donna Sullivan
`EditoriaJ Assistant: Shirley McGui,-e
`
`e 19'r. by Pre1uic,e ff3U, Inc.
`Simon & Schuster I A Viacom Compaoy
`Upper Saddle Ri\'er. New Jersey 07458
`
`Tb..: ;.1ull1<)r' .'Ind puhli~hcr of this book have used their best efforLs in prep.inag this book. 11,ese effo11(;
`include the developmenl. ~arch • .1mJ 1e:11i11g of 1he 1hcMi~ :ln<I progi·:un~ 10 dc1enninc their
`etrec1i,,,m~. The author and puhlisher shall not be liable in any e.,.cnt for im:.tden1a.l or oon~ql11.rntial
`damages in connection w1th. or ar~ng QUI of, the hnnishi,,g. pc1formanc..-:, or use of these programs.
`
`AIJ right:! ,c~,'\"'Cd. Ko part of thL-. book may be reproduced. in any form or by any roe.am,, without
`permission tn wntlng from the pubfu.her.
`
`Printed in the United Stales of America
`
`10 9 8 7 6 5 4 3 2
`
`l
`
`ISBN 0-02-415425-3
`
`rRJ:i,.,ic1:.-IIALL lITTFRNATIO.,..\I, (UK) Ll\tr1l::n, f.,m,lon
`PRFl>,*l'ICF·HAU. ( If' Aus, KALI,\ PTY. LIMfTC!D. Sydney
`PR.Ci,. I ILC!•J l:\J.L C\.°'4ADA. lNC'., TQF(/11(()
`PRFl>,*rt(E HAI.I. HISl'A-.(MMl'KU:,\'U, S.A.. Mexico
`PRCt,.T1CE·H:\.LL OF l~OIA PRJ\'ATE LL\tlTED. NC'w D<:fh1
`PIU-'l>,'flCE•HAIJ., Of JAl'A.._, INC:., Tt1k)'fl
`SIMO ... & SCHl :STCk ASI.'\ PTI'.! . LTD .• Si11gap<m.·
`EortORA l'llE.'ffl(F•H.\1 1 l)Q Rl~,\..<;II, 1.11),\., Rio di': .lanl':im
`
`Ex.1022
`APPLE INC. / Page 2 of 9
`
`
`
`BRIEF CdNTENTS
`
`CHAPTER 1
`
`I Nm onuc, 10"
`
`1
`
`PA RT ONE
`33
`J)ata Communications
`D ATA To ,NSMISSION
`CHAPTER 2
`CHAPTER 3
`TRANSMfSSTON M H>IA
`CHAPTER 4
`95
`0 A!A ENCODING
`CHAPTER 5
`THE 0 ATA COMMUNICATION i NTfR>ACt
`CHAPTER 6
`157
`0 ATA L INK C OXTROl,
`CHAP'l'UR 7
`197
`M UU'IPLEXJNG
`
`33
`73
`
`229
`
`PART TWO
`Wide-Area Networks
`CHAPTtR 8
`CIRCLIT SWITCHING
`CHAPTER 9
`PACK er Sw n CIUNG
`CH APTER 10
`301
`f RAME R ELAY
`CHAPTER 11 A SY1'CHRONOUS ThAXSFbR M OOE (ATM)
`
`229
`253
`
`PART THREE
`363
`Local Area Networks
`CHAP'rER 12
`LAN TECHNOLOGY
`CHAPTER 13
`401
`L A N SYSTEMS
`CHAPTER 14
`465
`B RIDGES
`
`363
`
`PART FOUR
`Com,nuuications Architecture and Protocols
`
`P ROTOCOIS A1'L> A.RCHITECTURF
`C HAPTER 15
`527
`CHAVTER 16
`lNTEllNET\VORKl1':G
`585
`CHAPT6R 17 T R., "SVORT i'ROTOCOLS
`623
`CHAPTER 18 N ETWORK StCLRITY
`CHAPTER 19 OISTIUDUTEO APPi ICA]I0:-1S
`
`627
`
`497
`497
`
`139
`
`327
`
`xi
`
`
`
`Ex.1022
`APPLE INC. / Page 3 of 9
`
`
`
`I .4 I PROTOCOI.S ANO PROTOCOL :\llCHll tCTUR.E 11
`
`other digital devices. To the latter case, c.lcHa are usually transmitte d in packets.
`Because the medium is shared, only ooe station at a time can tran smit a packet.
`More recently, examples of swilchcd LANs have appeared. The two most
`prominent examples are ATM LA}-ls. which simply use a n ATM network in a loca 1
`area. and F ibre Channel \Ve \ViJJ examine t hese LANs, as well as the more common
`broadcast LANs, in Part Ill.
`
`1.4 PROTOCOLS AND PROTOCOL ARCHITECTURE
`
`\Vheu computers, termina ls, and/or other data processing devices exchange data,
`t he scope of concern is much broade r than the conce rns we have discussed in Sec(cid:173)
`tions 1.2 and J .3. Consider, for example, the transfer of a file oetwcen two comput(cid:173)
`e rs. There must be a data path between the two computers, e ither directly or via a
`communication network. But more is neede-d. Typicill ta.sks to he performe d are
`
`1. The source system must either activate the dfrect data communication path or
`inform the communication network of the identity of the desired destina tion
`system.
`2. The source system must ascertain that the destination system is pre pa re-el to
`receive data.
`3. The file transfer application on the source system must ascertain that Lhc file
`management program on the destitrntion system is prepared lO accept and
`store the file fo r this particula r user.
`4. If the file formats m~ed on the two syslems are incompMible. one o r the other
`system must perform a format tra nslation funclion.
`
`IL is clear that there must be a high degree of coopera tion between the two
`computer systems. The exchange of information between compute rs fo r the pur(cid:173)
`pose of cooperative action is generally refen e d to as computer com,ruwications.
`Similarly. ,vhe n two or more computers are interconnected via a communication
`network, lhe set of computer stations is referred lo as a compwer network. Because
`n similar )evel o f cooperation is re quite d between a user at a terminal a nd one at a
`computer 1 these terms are often used whe n some of the communicating entit ies a re
`terruinals.
`ln discussing computer communications a nd computer networks, two con•
`cepts are paramount:
`
`• Protocols
`• Computer-communications architecture. or protocol architecture
`
`A protocol is used (or comrnuniw"ltioo between entities in d ifferent syste ms.
`The lerms "entity" and "sy~tem'" are used in a very general sense. Examples o f
`
`
`
`Ex.1022
`APPLE INC. / Page 4 of 9
`
`
`
`12 CH,\PTER 1 / INTRODUCTION
`
`entities are user application programs, file transfer packages, data-base manage(cid:173)
`ment systems, electronic mail facilities, and terminals. Examples of systems are
`computers, terminals, and remote sensors. Note that in some cases the entity and
`the system in which it resides are coextensive (e.g., terminals). In general, an entity
`is anything capable of sending or receiving information, and a system is a physically
`distinct object that contains one or more entities. For two entities to communicate
`successfully, they must "speak the same language." What is communicated. how it
`is communicated, and when it is communicated must conform to some mutually
`acceptable conventions between the entities involved. The conventions arc referred
`lo as:, pr0tocol. which may be defined as a set of rules governing the exchange of
`data between two entities. The key elements of a protocol are
`
`• Synlax. Includes such things as data format and signal levels.
`• ScmunticS- Includes control information for coordination and error handling.
`• Timing. Includes speed matching and sequencing.
`
`Having introduced the concept of a protocol, we can now introduce the con(cid:173)
`cept of a protocol architecture. It is clear that there must be a high degree of coop(cid:173)
`eration between the two computers. instead of implementing the logic for this as a
`single module, the task is broken up into subtasks. each of which is implemented
`separately. As an example, Figure 1.4 suggests the way in which a file transfer facil(cid:173)
`ity could be implemented. Three modules are used. Tasks 3 and 4 in the preceding
`list could be performed by a file transfer module. The two modules on the two sys(cid:173)
`tems exchange files and commands. However, rather than requiring the file trans(cid:173)
`fer module to handle the details of actually transferring data and commands, the file
`transfer modules each rely on a communications service module. This module is
`responsible for making sure that the file transfer commands and data are reliably
`exchanged between systems. Among other things, this module would perform t;,sk
`2. Now. the nature of the exchange between systems is independent of the nature of
`the network that interconnects them. Therefore, rather than building details of the
`network interface into the communications service module, it makes sense to have
`a third module, a network access module, that performs task 1 by interacting with
`the network.
`
`Compuler 1
`
`file transfer
`application
`
`Files and file trnnsfer commands
`
`Computer 2
`
`File transfer
`application
`
`Communic::ilions
`Communicati,m:-.-rdated mes.sages
`-...------------------------
`service modult:.
`1-- - ----" Nelwo,k interface
`logic
`Network ac.ttltS
`module
`
`CommunitatjorlS
`s.erviee ,nodule
`
`Nt:1wotk access
`LUodulc
`
`FIGUR E 1.4 A simplified architecture for file transfer.
`
`
`
`Ex.1022
`APPLE INC. / Page 5 of 9
`
`
`
`1.4 I PROTOCOLS AN() PROTOCOL ARCHI I hCTUKE 13
`
`Let us try to summarize the motivation for the three modules in Figure 1.4.
`The file tra nsfer module contains all of the logic that is unique to the file transfer
`application. such as transmitting passwords, file commands. and file records. There
`is a need to transmit these files and commands reliably. However, the same sorts of
`reliability requirements are relevant to a variety of applications (e.g., electronic
`mail , document transfer). Therefore, these requirements arc met by a separate com(cid:173)
`munications service module LhaL can be used by a variety of applications. The com(cid:173)
`munications service module is concerned with assuring that the two computer sys(cid:173)
`tems are active and ready for data transfer and for keeping track of Lhe data that are
`being exchanged to assure delivery. However. these tasks arc independent of the
`type or network that is being used. Therefore, the logic for actually dealing with the
`network is separated out into a separate network access module. That way, if lbe
`network to be used is changed, only the network access module is affected.
`Thus, instead of a single module for performing communications, there is a
`structured set of modules that implements the communications function. That struc(cid:173)
`ture is referred to as a protocol architecture. In Lhe remainder of this section. we
`generalize the preceding example to present a simplified protocol architecture. Fol(cid:173)
`lowing that. we look at more complex, real-world examples: TCP/IP and OSI.
`
`A Three-Layer Model
`In very general terms, communications can be said to involve three agents: applica(cid:173)
`tions, computers. and networks. One example of an a pp lie,, Lion is a file transfer
`operation. These applications execute on computers that can often support multiple
`simultaneous applications. Computers are connected to networks, and the data to
`be exchanged arc transferred by the network from one computer to another. Thus,
`the transfer of data from one application to another involves first getting the data
`to the computer in which the application resides and Lhen getting it to the intended
`application within the computer.
`With these concepts in mind, ii appears natural to organi,,e the communica-
`tion task into three relatively independent layers:
`
`• Network access layer
`• Transport layer
`• Application layer
`
`The neh,·ork access layer is concerned with the exchange of data between a
`computer and the network LO which it is attached. The sending computer must pro(cid:173)
`vide the network with the address of the dcstinalion computer, so that Lbe network
`may route the data to the appropriate destination. The sending computer may wish
`Lo invoke certain services, such as priority, that might be provided by the network.
`The specific software used at this layer depends on the type of network to be used;
`different standards have been developed for circuit switching, packet switching,
`local area networks, and others. Thus, it makes sense I<> separate those functions
`having to do with network access into a separate layer. By doing this, the remain(cid:173)
`der of the communications software, above the network access layer, need not be
`
`
`
`Ex.1022
`APPLE INC. / Page 6 of 9
`
`
`
`15.2 I OSI 513
`
`lnromii:g
`l'OU Rc-ductiOCI
`
`t
`, ... , lf"•,.-1 O;tla I
`t
`'
`'
`'
`,,.1
`'
`I
`t
`I
`t
`'
`'
`'
`I
`t
`'
`'
`'
`1 .. 1
`t
`__,,,
`
`'
`'
`'
`
`i
`
`,\.l'l)L
`
`rrm.1
`
`S-J'Cll
`
`1'-i'U II
`
`'> YUi.
`
`nvrou
`
`I
`
`1--1
`'
`' '
`Tr.1mp.">fl H
`'
`'
`'
`i"I
`'
`'
`'
`Um~hflk H
`'
`'
`'
`I
`
`, .. 1
`'
`'
`'
`H
`'
`'
`'
`1 ... 1
`
`I
`
`I
`!"'I L!inll:ite\ I
`' J
`:
`'
`'
`H "'·""') I f'fes.!11,1/ll lM
`I
`:
`'
`' ' E· 1
`' Sc~n
`J
`'
`J
`'
`'
`'
`I Nelwntt
`I
`'
`'
`'
`:,..J•u1.1 H Oaufinl(
`J
`'
`'
`'
`I l'tw11i..-.il
`
`Out.goine,
`PDl.i Ri:dnnillll
`
`r ...,~1:ox"V
`'
`
`AprlotUt11,;,,1
`
`J•f'OU
`
`Sl"DU
`
`T-'iin11
`
`Jh,11-v,"I
`
`/
`
`\r~ov v
`
`'
`
`Appli,;111ion
`
`Pn:~111:,1x,11
`
`&,,,.11'111
`
`N;.·1wurl,;
`
`-
`
`'-- c-~?) f'tlJ'Q.'.fll
`
`OLJ>Ol;
`
`pqlh (1:.g.. point
`lo-pe,int link,
`ix1w~rk'1
`~ )
`
`Fl(it:RF. 15.6 The OS! environment.
`
`Standardization Within the OSI Framework
`The p1i ncipal motivation for t he development of lhe OSI model was lo provide. a
`framework for stan<lartlizalion. Within the model, o ne or more protocol standards
`can he developed at eacb layer. The model defines, in general te rms, Lhe functions
`to l>e performed al tha t layer and facilitates the standards-making process in two
`ways:
`
`• Because the functions of each layer are wcll-<lcfincd. standard'i can be devel (cid:173)
`oped inde pendently a nd simulta neously for each layer, tberel>y speeding up
`the standards-making process.
`• Because the boundaries be tween layers arc well defined, ch;inges in stttndards
`in one layer need not affect already existing sof<ware in another layer: this
`makes it easier to introduce new Slandarcls.
`
`Figure 15.7 illustrates the use of the OSI model as such a framework. The
`overall communications function is decompose<! inro se,1cn dist incl layers, using the
`principles outlined in Table 15.2. These principles es_,entially amount to the use of
`modular design. That is, the overall function is broken up into a number of mmJ(cid:173)
`ules, making the interfaces between modules as simple as possible. In addition. the
`design principle of information-biding is used: Lower layers arc concerned with
`greater levels of detail; upper layers are inde pendent of t hese details. Within each
`
`
`
`Ex.1022
`APPLE INC. / Page 7 of 9
`
`
`
`518 CI U.PTER 15 / ProtoC"•'>h :lll<l Arrhitecturc
`
`Network Layer
`The network layer provides for the transfer of information between end systems
`across some sort of communications network. It relieves higher layers of the need
`lo know anything about the underlying data uansmission and switching technolo(cid:173)
`gie.s used to connect systems. At this layer, the computer system engages io a <lia•
`loguc with Lhe nclwork to specify the destination address and to requcsl certain net(cid:173)
`work facilities, such as priority.
`There is a spectrum of possibilities for intervening communications facilities
`to be managed by the network layer. At one extreme, there is a rurect point-to(cid:173)
`point link between stations. ln this case, there may be no need for a network layer
`because the data link layer can perform the necessary function of managing Lhe
`link.
`
`Nexl, the systems could be connected across a single network. such as a
`circuit-switching or packet-switching network. As an example. the packet level of
`the X.25 standard is a network layer standard for thi~ situation. Figure 15.J0 s:hows
`bow the presence of a network is accommodated by the OSI architecture. The lower
`three layers Jre concen1ed wilh auaching to and communicating with the network.
`The packets created by the end system pass through one or more network nodes
`
`End
`sy~tcm
`
`Rela)'
`s~tcm
`
`Eod
`.system
`
`7
`
`6
`
`5
`
`4
`
`,,
`
`2
`
`1
`
`Applicaljon•layc:r protocol
`
`Prts.entatior:1-layer protocol
`
`Session-ltiyer rrotoool
`
`Trnnspon-laycr protocol
`
`Nt:twork
`
`~oa1a luik~
`
`Network.~
`
`Data link~
`
`7
`
`6
`
`5
`
`4
`
`J
`
`2
`
`~
`
`Physical ~
`
`Physical~
`
`I
`
`?
`
`Physic.ii media foe OSI
`
`I~ ?
`
`FIG URE 15,10 Tho use of a relay.
`
`Pby~icJII media for OSI
`
`
`
`Ex.1022
`APPLE INC. / Page 8 of 9
`
`
`
`528 C:HAPTCR 16 / INTr.RNETWORKING
`
`P acket-switched and packet broadcasting networks grew out of a need 10
`
`allow the computer user to have access to resources beyond those available
`in a single system, 111 a similar fashion, the resources or a single network arc
`often inadequate to meet users' needs. Because the networks that might be Minter(cid:173)
`est exhibit so many differences, it is impractical to consider merging them into a sin(cid:173)
`gle network. Rather, what is needed is the ability to interconnect various networks
`so tbat :my two stations on any of the constituent networks can communicate.
`Table 16.l lisLs some commonly used terms relating to the interconnection of
`neLworks, or intemct,vorking. An i..nterconnecccd set of networks, from a user's
`point of view, may appear simply as a larger network. However, if each of the con(cid:173)
`stituent networks retains its identity, and special mechanisms are needed for com(cid:173)
`municating across multiple networks, then the entire configuration is often referred
`to as an internet, and each of the conslHuent networks as a subnetwork.
`Each constituenl subnetwork in an internet supports communication among
`,he devices attached lo that subnetwork; these devices are referred to as end~
`tems (ESs). In addition. subnetworks are connected by devices referred to in the
`ISO documents as intermediate systems ( ISs). ISs provide a communications path
`and perform the neces.,ary relaying and routing functions so that data can be
`exchanged between devices attached 10 different subnetworks in the internet.
`Two types of ISs of particular interest are bridges and routers. The differences
`between tbem have to do with the types of protocols used for the ioternetworking
`logic. In essence, a bridge operates at layer 2 of the open systems interconnection
`(OSI) 7-laycr architecture and acts as a relay of frames between like networks.
`(Bridges were examined in detail in Qiapter 14.) A router operates at layer 3 of
`the OSI architecture and routes packets between potentially different networks.
`
`TABLE 16.l
`
`Inu:rnetworking lerrns.
`
`
`
`Communicaliou Network
`A (Rcility thal provides a data lrruufer ~cr•lke among s1ations auached to the network.
`loternet
`A ooUection of oommun.ication networks interconnected b)' bridges and/or routers.
`Suhnclv.ork
`Refc:.f"S to a oonstitucnt nctwork of an inlernet. This avoids ambiguity since lhe entire i.tncrl)cl,
`rrom 1t use.r's point of .,fow. is a single network.
`Gnd S}~tem (liS)
`A device attache<J to 011e of the suboel\-...orks of an internel that is used lo support end-USCt
`applicatious or scn·ioes.
`lutcrmcdiatc Sys.ten1 (IS)
`A de,1ice used to connccl two subnetworks an<.1 pem,it communicalion between end systems
`an.ached to differe nt suhnctworks.
`Hridec
`" An IS used to connt'<:l two LANs that use identical LAN protocols. The bridge acts as an add/CS;
`filter. pick.i1lg up packets from one LAN that are intended for a destinatinn on aootber [.,.\:-Jan
`01
`passing those packet-. o n. ·rhe bridge docs not modify the contents of the ~ekcts and does
`add anything to the packet. ' l'he bridge operates at layer 2 of the OST model.
`Router
`An IS used 1.0 conncCl two networks lhat may 01' may not be ~imilar. The ro uter cmplOfS 11.11
`internet pro tocol present in eacl) rout.er and each h06t of the nelwotk. The router opc1Z1tC!> al
`layer 3 of lhe OSI model.
`
`1t
`
`--
`
`Ex.1022
`APPLE INC. / Page 9 of 9
`
`