`Computer Networking
`A (yp-Down Approach featuring the Internet
`
`
`
`James F. Kurose + Keith W. Ross
`
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 1
`Page1
`
`
`
`Susan Hartman
`Senior Acquisitions Editor
`Lisa Kalner
`Assistant Editor
`Patty Mahtani
`Production Supervisor
`Helen Reebenacker
`Art Editor
`Executive Marketing Manager Michael Hirsch
`Composition
`Pre-Press Company, Inc.
`Technical Art
`PD & PS
`Copyeditor
`Roberta Lewis
`Proofreader
`Holly McLean Aldis
`Cover Design
`Joyce Cosentino
`Interior Design
`Delgado Design
`Design Manager
`Regina Hagen
`Cover Image
`© 1999 PhotoDisce,Inc.
`
`Access the latest information about Addison-Wesley titles from our World Wide Website:
`http://www.awl.com/cs
`
`The programs and applications presented in this book have been included for their instructional
`value. They have been tested with care, but are not guaranteed for any particular purpose. The
`publisher does not offer any warranties or representations, not does jt accept any liabilities with
`respect to the programsor applications.
`
`Library of Congress Cataloging-in-Publication Data
`Ross, Keith W., 1956-
`Computer networking: a top-down approachfeaturing the Internet / Keith W. Ross,
`James F. Kurose.
`
`p. em.
`Includes bibliographic references and index
`ISBN 0-201-4771 1-4
`L. Internet (Computer network) I. Kurose, James F.
`TK5105.875.157 R689 2001
`004.6—de21
`
`Copyright © 2001 by Addison Wesley Longman,Inc,
`
`00-025295
`
`All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or
`transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or
`otherwise, without the prior written permission of the publisher, Printed in the United States of America.
`
`23456789 10-MA-0201
`
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 2
`Page 2
`
`
`
`
`
`Chapter
`
`Computer
`Networks and
`the Internet
`
`
`
`1.1 + What Is the Internet?
`
`
`In this book we use the public Internet, a specific computer network (and one which
`probably most readers have used), as our principle vehicle for discussing computer
`networking protocols, But what is the Internet? We wouldlike to be able to give you
`a one-sentence definition of the Internet, a definition that you can take home and
`share with your family and friends. Alas, the Internet is very complex, both in terms
`of its hardware and software components, as well as in the services it provides,
`
`1.1.1 A Nuts and Bolts Description
`
`Instead of giving a one-sentence definition, let's try a more descriptive approach.
`There are a couple of ways to do this, One way is to describe the nuts and bolts of
`the Internet, that is, the basic hardware and software components that make upthe
`Internet, Another way is to describe the Internet in terms of a networking infrastruc-
`ture that provides services to distributed applications. Let’s begin with the nuts-and-
`bolts description, using Figure 1.1 to illustrate our discussion,
`The public Internet is a world-wide computer network, that is, a network that
`interconnects millions of computing devices throughout the world. Most ofthese
`computing devices are traditional desktop PCs, Unix-based workstations. and so
`
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 3
`Page 3
`
`
`
`2
`
`CHAPTER 1
`
`m Computer Networks and the Internet
`
`l
`
`
`i)
`7
`7
`hes
`eS
`~~
`os)
`“a 4 @
`Mo]
`>
`3
`Hast
`Mobile
`Server Router
`|
`| {or end system}
`
` Company network
`
`|
`
`
`
`Figure 1.1 + Somepieces of the Internet
`
`called servers that store and transmit information such as Web (WWW)pagesand
`e-mail messages. Increasingly, nontraditional computing devices such as Web TVs,
`mobile computers, pagers, and toasters are being connected to the Internet. (Toast-
`ers are not the only rather unusual devices to have been hooked up to the Internet:
`see the The Future of the Living Room [Greenberg 1997].) In the Internet jargon,all
`of these devices are called hosts or end systems. The Internet applications with
`
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 4
`Page 4
`
`
`
`1.1
`
`@ What Is the Internet?
`
`3
`
`which many of us are familiar, such as the Web and e-mail, are network applica-
`tion programsthat run on such end systems. We will look into Internet end systems
`in more detail in Section |.3 and then delve deeply into the study of network appli-
`cations in Chapter 2.
`Eind systems, as well as most other “pieces” ofthe Internet. run protocols that
`control
`the sending and receiving of information within the Internet. TCP (the
`Transmission Control Protocol) and [IP (the Internet Protocol) are two of the most
`important protocols in the Internet, The Internet's principal protocols are collec-
`tively known as TCP/IP. We begin looking into protocols in Section 1.2. But that’s
`just a start—muchofthis book is concerned with computer network protocols!
`End systems are connected together by communication links. We'll see in
`Section 1.5 that there are many types of communication links. Links are made up
`of different types of physical media, including coaxial cable, copper wire, fiber
`optics, and radio spectrum. Different links can transmit data at different rates. The
`link transmission rate is often called the link bandwidth andis typically measured
`in bits/second.
`Usually, end systems are not directly attached to each other via a single com-
`munication link. Instead, they are indirectly connected to each other throughinter-
`mediate switching devices knownas routers, A router takes information arriving on
`one ofits incoming communication links and then forwards that information on one
`of its outgoing communication links. The [P protocol specifies the format of the
`informationthat is sent and received among routers and end systems. The path that
`transmitted information takes from the sending end system, through a series of com-
`munications links and routers, to the receiving end system is known as a route or
`path through the network, We introduce routing in more detail in Section 1.4 and
`study the algorithms used to determine routes, as well as the internal structure of a
`routeritself, in Chapter 4,
`Rather than provide a dedicated path between communicating end systems, the
`Internet uses a technique knownas packet switching that allows multiple commu-
`nicating end systems to share a path, or parts of a path, at the same time. Theearli-
`est ancestors of the Internet were the first packet-switched networks.
`The Internet is really a network of networks. Thatis, the Internet is an intercon-
`nected set of privately and publicly owned and managed networks. Any network
`connected to the Internet must run the [P protocol and conform to certain naming
`and addressing conventions. Other than these few constraints, however, a network
`operator can configure and run its network (thatis, its little piece of the Internet)
`howeverit chooses. Because of the universal use of the IP protocol inthe Internet,
`the IP protocol is sometimes referred to as the Internet dial tone.
`The topology of the Internet, thatis, the structure of the interconnection among
`the various pieces ofthe Internet, is loosely hierarchical. Roughly speaking, from
`bottom-to-top, the hierarchy consists of end systems connected to local Internet
`service providers (ISPs) though access networks, An access network may be a
`so-called local area network within a companyor university, a dial telephone line
`
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 5
`Page 5
`
`
`
`4
`
`CHAPTER 1
`
`=u Computer Networks and the Internet
`
`with a modem, or a high-speed cable-based or phone-based access network. Local
`ISPs are in turn connected to regional [SPs, which are in turn connected to national
`and international [SPs. The national andinternational ISPs are connected together at
`the highest tier in the hierarchy. New tiers and branches(that is, new networks, and
`new networks of networks) can be added just as a new piece of Lego can be attached
`to an existing Lego construction. In the first half of 1996, approximately 40,000 new
`networks were added to the Internet [Network 1996]—an astounding growthrate.
`At the technical and developmentallevel, the Internet is madepossible through
`creation, testing, and implementation of Internet standards. These standards are
`developed by the Internet Engineering Task Force (IETF), The IETF standards doc-
`uments are called RFCs (request for comments). RFCs started out as general re-
`quest for comments(hence the name) to resolvearchitecture problemsthat faced the
`precursorto the Internet, RFCs, though not formally standards, have evolvedto the
`point where they are cited as such. RFCs tend to be quite technical and detailed.
`They define protocols such as TCP, IP, HTTP (for the Web), and SMTP(for open-
`standards e-mail). There are more than 2,000 different RFCs.
`The public Internet (that is, the global network of networks discussed above)is
`the network that one typically refers to as the Internet. There are also manyprivate
`networks, suchas certain corporate and government networks, whose hosts are not
`accessible from (that is, they cannot exchange messages with) hosts outside of that
`private network. These private networks are often referred to as intranets,as they
`often use the same Internet technology (for example, the same types ofhost, routers,
`links, protocols, and standards) as the public Internet.
`
`1.1.2 A Service Description
`The preceding discussionhas identified many of the pieces that make up the Inter-
`net. Let’s now leave the nuts-and-bolts description and take a more abstract, service-
`oriented view:
`
`+ The Internet allows distributed applications running onits end systems to ex-
`change data with each other. These applications include remote login,file trans-
`fer, electronic mail, audio and video streaming, real-time audio and video
`conferencing, distributed games, the World Wide Web, and much, much more
`[AT&T Apps 1998]. [t is worth emphasizing that the Web is not a separate net-
`work but ratherjust one of many distributed applications that use the communi-
`cation services provided by the Internet. The Web couldalso run over a network
`besides the Internet. One reason thatthe Internet is the communication medium
`of choice for the Web, however, is that no other existing packet-switched network
`connects more than 43 million [Network 1999] computers together and has over
`100 million users [Almanac 1998]. (By the way, determining the numberof com-
`puters hooked up to the Internetis a very difficult task, as no one is responsible
`for maintaining a list of who’s connected. When a new network is added to the
`Internet, its administrators do not need to report which end systems are con-
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 6
`Page 6
`
`
`
`1.1
`
`@ What Is the Internet?
`
`5
`
`nected to that network. Similarly, an exiting network does not report its changes
`in connected end systems to any central authority.)
`* The Internet provides twoservices toits distributed applications: a connection-
`oriented service and a connectionless service. Loosely speaking, connection-
`oriented service guarantees that data transmitted from a senderto a receiver will
`eventually be delivered to the receiver in orderand in its entirety. Connectionless
`service does not make any guarantees about eventual delivery. Typically, a dis-
`tributed application makes use of one orthe otherof these two services and not
`both. We examine these two different services in Section 1.3 and in great detail
`in Chapter 3.
`+ Currently, the Internet does not provide a service that makes promises about
`howlong it will take to deliver the data from senderto receiver. And except for
`increasing your access bit rate to yourInternet service provider, you currently
`cannot obtain better service (for example, shorter delays) by paying more—
`a state ofaffairs that some (particularly Americans!) find odd. We'll take a look
`at state-of-the art Internet research that is aimed at changing this situation in
`Chapter 6.
`
`Oursecond description of the Internet—in termsofthe services it provides to
`distributed applications—is a nontraditional, but important, one. Increasingly, ad-
`vances in the nuts-and-bolts components ofthe Internet are being driven by the needs
`of new applications. So it’s important to keep in mind that the Internet is an infra-
`structure in which new applications are being constantly invented and deployed.
`We have given two descriptions of the Internet, one in terms ofits hardware and
`software components, the other in terms of the services it provides to distributed ap-
`plications. But perhaps youare still confused as to what the Internet is. What is
`packet switching, TCP/IP, and connection-oriented service? What are routers? What
`kinds of communication links are present in the Internet? What is a distributed ap-
`plication? What does the Internet have to do with children’s toys? [f you feel a bit
`overwhelmed byall of this now, don’t worry—the purposeofthis bookis to intro-
`duce youto both the nuts and bolts of the Internet, as well as the principles that gov-
`ern how and whyit works. We will explain these important terms and questions in
`the subsequent sections and chapters.
`
`1.1.3 Some Good Hyperlinks
`
`As every Internet researcher knows, some of the best and most accurate information
`about the Internet and its protocols is not in hard-copy books, journals, or magazines.
`The best stuff about the Internetis in the Internet itself! Of course, there’s really too
`much material to sift through, and sometimes the gems are few and far between.
`Below, we list a few generally excellent Web sites for network- and Internet-related
`material. Throughout the book, we will also present links to relevant, high quality
`URLsthat provide background,original, or advanced material related to the particular
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 7
`Page 7
`
`
`
`6
`
`CHAPTER |
`
`@ Computer Networks and the Internet
`
`lopic understudy. Here is a set ofkey links that you may want to consult while you
`proceed through this book:
`
`+ Internet Engineering Task Force (IETF), http://www.ietforg: The IETF is an
`openinternational community concerned with the development and operation of
`the Internet and its architecture. The [ETF was formally established by the Inter-
`net Architecture Board (LAB), http://www.isi.edu/iab, in 1986. The IETF meets
`three times a year; muchof its ongoing work is conducted via mailing lists by
`working groups. Typically, based upon previous IETF proceedings, working
`groups will convene at meetings to discuss the work of the IETF working groups.
`The IETFis administered by the Internet Society, http://www.isoc.org, whose
`Website contains lots of high-quality, Internet-related material.
`+ The World Wide Web Consortium (W3C), http://www.w3.org/Consortium:
`The W3C was founded in 1994 to develop commonprotocols for the evolution
`of the World Wide Web,This is an outstanding site with fascinating information
`on emerging Webtechnologies, protocols, and standards.
`+ The Association for Computing Machinery (ACM), http://www.acm.org, and the
`Institute of Electrical and Electronics Engineers (IEEE), http://www.icee.org:
`These are the two main international professional societies that have technical
`conferences, magazines, and journals in the networking area. The ACM Special
`Interest Group in Data Communications (SIGCOMM). http://www.acm.org/
`sigcomm, the IEEE CommunicationsSociety, http://www.comsoc.org, and the
`IEEE ComputerSociety, http://www.computer.org, are the groups within these
`bodies whose efforts are most closely related to networking.
`+ Data communications tutorials fromthe online magazine Data Communications,
`hitp://www.data.com:
`Oneof the better magazines for data communications
`technology, The site includes many excellent tutorials.
`+ Media History Project, http://www.mediahistory.com: You may be wondering
`how the Internet got started. Or you may wonderhowelectrical communications
`got started in the first place. And you may even wonder about what preceded
`electrical communications! Fortunately, the Web contains an abundance of ex-
`cellent resources available on these subjects. This site promotes the study of me-
`dia history from petroglyphsto pixels. It covers the history ofdigital media, mass
`media, electrical media, print media, and even oral and scribal culture.
`
`1.2 + What Is a Protocol?
`
`Nowthat we've gota bit ofa feel for what the Internetis, let’s consider another im-
`portant buzzword in computer networking: “protocol.” What is a protocol? What
`does a protocol do? How would yourecognize a protocol if you met one?
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 8
`Page 8
`
`
`
`1.2
`
`m@ What Is a Protocol?
`
`7
`
`1.2.1 A Human Analogy
`It is probably easiest to understand the notion of a computer network protocol by
`first considering some human analogies, since we humans execute protocols all of
`the time. Consider what you do when you want to ask someoneforthe time ofday.
`A typical exchange is shownin Figure 1.2. Human protocol (or good manners,at
`least) dictates that onefirst offers a greeting (the first “Hi” in Figure 1.2) to initiate
`communication with someoneelse. The typical response to a “Hi” message(atleast
`outside of New York City) is a returned “Hi” message. Implicitly, one then takes a
`cordial “Hi” responseas an indication that one can proceed ahead and ask forthe
`time of day. A different response to the initial “Hi” (such as “Don’t bother me!” or
`“I don’t speak English,” or an unprintable reply that one might receive in New York
`City) might indicate an unwillingness or inability to communicate. In this case, the
`human protocol would be to not ask for the time of day. Sometimes one gets no re-
`sponseat all to a question, in which case one typically gives up asking that person
`for the time. Note that in our human protocol, there are specific messages we send,
`and specific actions we take in response to the received reply messages or other
`events (sitch as no reply within some given amountoftime). Clearly transmitted and
`received messages, and actions taken when these messagesare sent or received or
`other events occur, play a central role in a human protocol. If people run different
`protocols (for example, if one person has manners but the other does not, or if one
`
`
`
` Hi
`
`Oe
`bj
`
`TCP connection request
`iim
`| |
`
`TCP connection reply
`
`Gotthe time?
`
`GET http: //gaia.cs.umass.edu/index.htm
`oa.
`
`2:00
`
`time al
`|
`<file>
`
`Figure 1.2 + A human protocol and a computer network protocol
`
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 9
`Page 9
`
`
`
`8
`
`CHAPTER 1
`
`= Computer Networks and the Internet
`
`understands the conceptof time and the other does not) the protocols do not interop-
`erate and no useful work can be accomplished. The sameis true in networking—it
`takes two (or more) communicating entities running the same protocol in orderto
`accomplisha task.
`Let’s consider a second human analogy. Suppose you're in a collegeclass
`(a computer networking class, for example!). The teacher is droning on about proto-
`cols and you're confused, The teacher stops to ask, “Are there any questions?” (a
`message thatis transmitted to, and received by, all students whoare not sleeping).
`Youraise your hand(transmitting an implicit message to the teacher). Your teacher
`acknowledges you with a smile, saying “Yes. .
`.” (a transmitted message encourag-
`ing youto ask your question—teachers /ove to be asked questions) and you then ask
`your question (that is, transmit your message to your teacher). Your teacher hears
`your question(receives your question message) and answers(transmits a reply to
`you). Once again, we see that the transmission and receipt of messages, and a set of
`conventional actions taken when these messages are sent and received, are al the
`heart ofthis question-and-answerprotocol.
`
`1.2.2 Network Protocols
`
`A networkprotocolis similar to a humanprotocol, exceptthat the entities exchang-
`ing messages and taking actions are hardware or software components of a com-
`puter network, components that we will study shortly in the following sections.
`All activity in the Internet that involves two or more communicating remote entities
`is governed by a protocol. Protocols in routers determine a packet’s path from
`source to destination; hardware-implemented protocols in the network interface
`cards oftwo physically connected computers control the flow of bits on the “wire”
`between the two computers; a congestion-control protocol controls the rate at which
`packets are transmitted between senderand receiver, Protocols are running every-
`where in the Internet, and consequently much ofthis book is about computer net-
`work protocols.
`As an example of a computer network protocol with which youare probably
`familiar, consider what happens when you make a request to a Webserver, thatis,
`whenyou type in the URL of a Web page into your Web browser. The scenariois
`illustrated in the right half of Figure 1.2. First, your computerwill send a “connec-
`tion request” message to the Web serverand wait for a reply. The Webserverwill
`eventually receive your connection request message and return a “connection reply”
`message. Knowingthatit is now OK to request the Web document, your computer
`then sends the name of the Web page it wants to fetch from that Web serverin a
`“get” message. Finally, the Web server returns the contents of the Web documentto
`your computer,
`Given the human and networking examples above, the exchange of messages
`and the actions taken when these messagesare sent and received are the key defin-
`ing elements of a protocol:
`
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 10
`Page 10
`
`
`
`1.3 m The Network Edge
`
`9
`
`A protocoldefines the format and the order of messages exchanged between
`fwo or more communicating entities, as well as the actions taken on the trans-
`mission and/or receipt ofa message or other event.
`
`The Internet, and computer networks in general, make extensive use of pro-
`tocols, Different protocols are used to accomplish different communicationtasks.
`As youread through this book, you will learn that some protocols are simple and
`straightforward, while others are complex and intellectually deep. Mastering the
`field of computer networking is equivalent to understanding the what, why, and how
`of networking protocols.
`
`1.3 4 The Network Edge
`
`In the previous sections we presented a high-level description ofthe Internet and
`networking protocols, We are now goingto delve a bit more deeply into the compo-
`nents of the Internet. We beginin this sectionat the edge of network andlook at the
`components with which we are most familiar—the computers (for example, PCs and
`workstations) that we use onadaily basis. In the next section we will move fromthe
`network edge to the network core and examine switching and routing in computer
`networks, Then in Section 1.5 we will discuss the actual physical links that carry the
`signals sent between the computers and the switches.
`
`1.3.1 End Systems, Clients, and Servers
`
`In computer networking jargon, the computers that we use on a daily basis are often
`referred to as hosts or end systems. They are referred to as hosts because they host
`(run) application-level programs such as a Web browserorserver program, or an
`e-mail program, They are also referred to as end systems because theysit at the edge
`of the Internet, as shownin Figure 1.3. Throughout this book we will use the terms
`hosts and end systems interchangeably: that is, ost = end system.
`Hosts are sometimes further divided into two categories: clients and servers. In-
`formally, clients often tend to be desktop PCs or workstations, whereas servers are
`more powerful machines, But there is a more precise meaning of a client and a server
`in computernetworking.In the so-called client/server model, a client program run-
`ning on one end system requests and receives information froma server running on
`another end system. Studied in detail in Chapter2, this client/server model is un-
`doubtedly the most prevalentstructure for Internet applications. The Web, e-mail. file
`transfer, remote login (for example, Telnet), newgroups, and many other popular ap-
`plications adopt the client/server model. Since a client typically runs on one com-
`puter andthe server runs on another computer, client/server Internet applicationsare,
`
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 11
`Page 11
`
`
`
`10
`
`CHAPTER |
`
`& Computer Networks and the Internet
`
`Local ISP erd
`
`Regional ISP
`
`
`
`
`
`Base station
`
`@
`
`\
`
`
`
`Figure 1.3 + End-system interaction
`
`by definition, distributed applications. The client and the serverinteract with each
`other by communicating(that is, sending each other messages) overthe Internet. At
`this level of abstraction, the routers, links and other “pieces” of the Internet serve as a
`“black box”that transfers messages betweenthe distributed, communicating compo-
`nents ofan Internet application. This is the level of abstraction depicted in Figure 1.3.
`Computers (for example, a PC or a workstation), operating as clients and
`servers, are the most prevalent type of end system. However, an increasing number
`of alternative devices, such as so-called network computers and thin clients |Thin-
`planet 2000], Web TVs andset top boxes [Mills 1998], digital cameras, and other
`
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 12
`Page 12
`
`
`
`1.3 © The Network Edge
`
`11
`
`devices are being attached to the Internet as end systems. For an interesting discus-
`sion of the continuing evolution of Internet applications, see [AT&T Apps 1998;
`Dertouzos 1999; Lucky 1997].
`
`1.3.2 Connectionless and Connection-Oriented Services
`
`Wehave seen that end systems exchange messages with each other according to an
`application-level protocol in order to accomplish some task. The links. routers, and
`other piecesof the Internet provide the means to transport these messages between the
`end-system applications. But what are the characteristics of the communication ser-
`vices that are provided’? The [nternet, and more generally TCP/IP networks, provide
`two types of services to its applications: connectionless service and connection-
`oriented service. A developer creating an Internet application (for example, an e-mail
`application, a file transfer application, a Web application, or an Internet phone appli-
`cation) must programthe application to use one of these two services. Here, we only
`briefly describe these twoservices; we discuss them in much more detail in Chapter3,
`which covers transport layer protocols.
`
`Connection-Oriented Service
`
`When an application uses the connection-oriented service, the client and the server
`(residing in different end systems) send control packets to each other before sending
`packets with real data (such as e-mail messages). This so-called handshaking proce-
`dure alerts the client and server, allowing themto prepare for an onslaught of pack-
`ets. It is interesting to note that this initial handshaking procedure is similar to the
`protocol used in human interaction. The exchange of “Hi's” we saw in Figure 1.2 is
`an example of a human “handshaking protocol” (even though handshaking is not
`literally taking place between the two people). The two TCP messages that are
`exchanged as part of the WWW interaction shownin Figure 1.2 are twoof the three
`messages exchanged when TCPsets up a connection between a sender andreceiver.
`The third TCP message (not shown) that forms the final part of the TCP three-way
`handshake (see Section 3.5) is contained in the get message shown in Figure 1.2.
`Once the handshakingprocedureis finished, a connectionis said to be estab-
`lished between the two end systems. But the two end systems are connected in a
`very loose manner, hence the terminology connection-oriented. In particular, only
`the end systems themselves are aware ofthis connection; the packet switches (that
`is, routers) within the Internet are completely oblivious to the connection. This is
`because a TCP connection consists of nothing more than allocated resources
`(buffers) and state variables in the end systems. The packet switches do not main-
`tain any connection-state information,
`The Internet’s connection-oriented service comes bundled with several other
`services, including reliable data transfer, [low control, and congestion control. By
`reliable data transfer, we mean that an application can rely on the connection to
`
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 13
`Page 13
`
`
`
`12
`
`CHAPTER 1
`
`w Computer Networks and the Internet
`
`deliverall ofits data without error and in the properorder. Reliability in the Internet
`is achieved throughthe use of acknowledgments and retransmissions. To get a pre-
`liminary idea about how the Internet implements the reliable transport service, con-
`sider an application that has established a connection between end systems A andB,
`Whenendsystem B receives a packet fromA, it sends an acknowledgment; when end
`systemA receives the acknowledgment, it knows that the corresponding packet has
`definitely been received. When end system A doesn’treceive an acknowledgment, it
`assumesthat the packet it sent was not received by B; it therefore retransmits the
`packet. Flow control makes sure that neither side of a connection overwhelmsthe
`otherside by sending too many packets toofast. Indeed, the application at one side of
`the connection may not be able to process information as quickly as it receives the
`information. Therefore, there is a risk of overwhelmingeither side of an application.
`The flow-control service forces the sending end systemto reduce its rate whenever
`there is such a risk. We shall see in Chapter 3 that the Internet implements the flow
`control service by using sender and receiver buffers in the communicating endsys-
`tems. The Internet’s congestion-control service helps prevent the Internet from en-
`tering a state of gridlock. Whena router becomes congested, its buffers can overflow
`and packetloss can occur. In such circumstances, if every pair of communicating end
`systems continues to pump packets intothe network as fast as they can, gridlock sets
`in and few packets are delivered totheir destinations. The Internet avoids this prob-
`lem by foreing end systems to decrease the rate at whichthey send packets into the
`network during periods of congestion, End systemsare alerted to the existence of
`severe congestion whenthey stop receiving acknowledgments for the packets they
`have sent.
`We emphasizehere that although the Internet’s connection-oriented service
`comes bundled with reliable data transfer, flow control, and congestion control,
`these three features are by no means essential components ofa connection-oriented
`service. A different type of computer network may provide a connection-oriented
`service to its applications without bundling in one or more ofthese features. Indeed,
`any protocol that performs handshaking between the communicating entities before
`transferring data is a connection-oriented service [Iren 1999].
`The [nternet’s connection-oriented service has a name—TCP (Transmission
`Control Protocol); the initial version of the TCP protocolis defined in the Internet
`Request for Comments RFC 793 [RFC 793]. The services that TCP provides to an
`application include reliable transport, flow control, and congestion control. It 1s
`important to note that an application need only care about the services that are
`provided; it need not worry about how TCPactually implementsreliability, flow
`control, or congestion control. We, of course, are very interested in how TCP imple-
`ments these services, and we shall cover these topics in detail in Chapter3.
`
`Connectionless Service
`
`There is no handshaking with the Internet's connectionless service. When one side of
`an application wants to send packets to anotherside of an application, the sending ap-
`Epic Games Ex. 1016
`Epic Games Ex. 1016
`Page 14
`Page 14
`
`
`
`1.4 @ The Network Core
`
`13
`
`plication simply sends the packets. Since there is no handshaking procedure priorto
`the transmission of the packets, data can be delivered faster, But there are no ac-
`knowledgmentseither, so a source never knowsfor sure which packets arrive at the
`destination. Moreover, the service makes no provision for flow control or congestion
`control. The Internet’s connectionless service is provided by UDP (User Datagram
`Protocol); UDPis defined in the Internet Request for Comments RFC 768.
`Most of the more familiar Internet applications use TCP. the Internet's connec-
`tion-oriented service. These applications include Telnet (remote login), SMTP(for
`electronic mail), FTP (for file transfer), and HTTP (for the Web). Nevertheless.
`UDP, the Internet’s connectionless service, is used by many applications, including
`many of the emerging multimedia applications, such as Internet phone, audio-on-
`demand, and video conferencing.
`
`1.4 + The Network Core
`
`Having examined the end systems and end-end transport service model of the Inter-
`net in