Orakel Books
OrakelComputer Networks: A Systems Approach

Orakel Learn

Computer Networks: A Systems Approach

By Larry Peterson, Bruce Davie

An open computer networking textbook prepared as an Orakel learning companion with section-aware reading, listening, and questions. Source: https://book.systemsapproach.org/ License: CC BY 4.0. 76 section-aware reader routes are available.

Ask the bookChapter guide

Chapters

Choose where to begin

76 sections
1

Foreword

Foreword from Computer Networks: A Systems Approach. Readers: before you start the book, first take a moment and set your time machine to 1996. That is when the first edition of this book was published. Do you remember 1996? Were you alive then? People forget how long ago the foundations of the Internet were

Open
2

Foreword to the First Edition

Foreword to the First Edition from Computer Networks: A Systems Approach. The term spaghetti code is universally understood as an insult. All good computer scientists worship the god of modularity, since modularity brings many benefits, including the all-powerful benefit of not having to understand all parts of a problem at the same time in order to solve it. Modularity thus plays a role in presenting ideas in a book, as well as in writing code. If a book’s material is organized

Open
3

Preface

Preface from Computer Networks: A Systems Approach. It has been nearly ten years since the fifth edition of Computer Networks: A Systems Approach was published. Much has changed in that time, most notably, the explosion of the cloud and smartphone apps onto the scene. In many ways, this is reminiscent of the dramatic effect the Web was having on the Internet when we published the first edition of the book in

Open
4

Chapter 1: Foundation

Chapter 1: Foundation from Computer Networks: A Systems Approach. I must create a System, or be enslav’d by another Man’s; I will not Reason and Compare: my business is to

Open
5

Problem: Building a Network

Problem: Building a Network from Computer Networks: A Systems Approach. Suppose you want to build a computer network, one that has the potential to grow to global proportions and to support applications as diverse as teleconferencing, video on demand, electronic commerce, distributed computing, and digital libraries. What available technologies would serve as the underlying building blocks, and what kind of software architecture would you design to integrate these building blocks into

Open
6

1.1 Applications

1.1 Applications from Computer Networks: A Systems Approach. Most people know the Internet through its applications: the World Wide Web, email, social media, streaming music or movies, videoconferencing, instant messaging, file-sharing, to name just a few examples. That is to say, we interact with the Internet as users of the network. Internet users represent the largest class of people who interact with the Internet in some way, but there are several other important

Open
7

1.2 Requirements

1.2 Requirements from Computer Networks: A Systems Approach. We have established an ambitious goal for ourselves: to understand how to build a computer network from the ground up. Our approach to accomplishing this goal will be to start from first principles and then ask the kinds of questions we would naturally ask if building an actual network. At each step, we will use today’s protocols to illustrate various design choices available to us, but we will not accept these

Open
8

1.3 Architecture

1.3 Architecture from Computer Networks: A Systems Approach. The previous section established a pretty substantial set of requirements for network design—a computer network must provide general, cost-effective, fair, and robust connectivity among a large number of computers. As if this weren’t enough, networks do not remain fixed at any single point in time but must evolve to accommodate changes in both the underlying technologies upon which they are based as well as changes

Open
9

1.4 Software

1.4 Software from Computer Networks: A Systems Approach. Network architectures and protocol specifications are essential things, but a good blueprint is not enough to explain the phenomenal success of the Internet: The number of computers connected to the Internet has grown exponentially for over three decades (although precise numbers are hard to come by). The number of users of the Internet was estimated to be around 4.1 billion by the end of 2018—roughly half of the

Open
10

1.5 Performance

1.5 Performance from Computer Networks: A Systems Approach. Up to this point, we have focused primarily on the functional aspects of networks. Like any computer system, however, computer networks are also expected to perform well. This is because the effectiveness of computations distributed over the network often depends directly on the efficiency with which the network delivers the computation’s data. While the old programming adage “first get it right and then make it

Open
11

Perspective: Feature Velocity

Perspective: Feature Velocity from Computer Networks: A Systems Approach. This chapter introduces some of the stakeholders in computer networks—network designers, application developers, end users, and network operators—to help motivate the technical requirements that shape how networks are designed and built. This presumes all design decisions are purely technical, but of course, that’s usually not the case. Many other factors, from market forces, to government policy, to ethical

Open
12

Chapter 2: Direct Links

Chapter 2: Direct Links from Computer Networks: A Systems Approach. It is a mistake to look too far ahead. Only one link in the chain of destiny can be handled at a

Open
13

Problem: Connecting to a Network

Problem: Connecting to a Network from Computer Networks: A Systems Approach. In Chapter 1 we saw that networks consist of links interconnecting nodes. One of the fundamental problems we face is how to connect two nodes together. We also introduced the “cloud” abstraction to represent a network without revealing all of its internal complexities. So we also need to address the similar problem of connecting a host to a cloud. This, in effect, is the problem every Internet Service Provider (ISP)

Open
14

2.1 Technology Landscape

2.1 Technology Landscape from Computer Networks: A Systems Approach. Before diving into the challenges outlined in the problem statement at the beginning of this chapter, it is helpful to first get a lay of the land, which includes a wide array of link technologies. This is due, in part, to the diverse circumstances under which users are trying to connect their

Open
15

2.2 Encoding

2.2 Encoding from Computer Networks: A Systems Approach. The first step in turning nodes and links into usable building blocks is to understand how to connect them in such a way that bits can be transmitted from one node to the other. As mentioned in the preceding section, signals propagate over physical links. The task, therefore, is to encode the binary data that the source node wants to send into the signals that the links are able to carry and then to decode the

Open
16

2.3 Framing

2.3 Framing from Computer Networks: A Systems Approach. Now that we have seen how to transmit a sequence of bits over a point-to-point link—from adaptor to adaptor—let’s consider the scenario in Figure %s . Recall from Chapter 1 that we are focusing on packet-switched networks, which means that blocks of data (called frames at this level), not bit streams, are exchanged between nodes. It is the network adaptor that enables the nodes to exchange frames. When node A wishes

Open
17

2.4 Error Detection

2.4 Error Detection from Computer Networks: A Systems Approach. As discussed in Chapter 1, bit errors are sometimes introduced into frames. This happens, for example, because of electrical interference or thermal noise. Although errors are rare, especially on optical links, some mechanism is needed to detect these errors so that corrective action can be taken. Otherwise, the end user is left wondering why the C program that successfully compiled just a moment ago now suddenly

Open
18

2.5 Reliable Transmission

2.5 Reliable Transmission from Computer Networks: A Systems Approach. As we saw in the previous section, frames are sometimes corrupted while in transit, with an error code like CRC used to detect such errors. While some error codes are strong enough also to correct errors, in practice the overhead is typically too large to handle the range of bit and burst errors that can be introduced on a network link. Even when error-correcting codes are used (e.g., on wireless links) some errors

Open
19

2.6 Multi-Access Networks

2.6 Multi-Access Networks from Computer Networks: A Systems Approach. Developed in the mid-1970s by researchers at the Xerox Palo Alto Research Center (PARC), the Ethernet eventually became the dominant local area networking technology, emerging from a pack of competing technologies. Today, it competes mainly with 802.11 wireless networks but remains extremely popular in campus networks and data centers. The more general name for the technology behind the Ethernet is Carrier Sense,

Open
20

2.7 Wireless Networks

2.7 Wireless Networks from Computer Networks: A Systems Approach. Wireless technologies differ from wired links in some important ways, while at the same time sharing many common properties. Like wired links, issues of bit errors are of great concern—typically even more so due to the unpredictable noise environment of most wireless links. Framing and reliability also have to be addressed. Unlike wired links, power is a big issue for wireless, especially because wireless links are

Open
21

2.8 Access Networks

2.8 Access Networks from Computer Networks: A Systems Approach. In addition to the Ethernet and Wi-Fi connections we typically use to connect to the Internet at home, at work, at school, and in many public spaces, most of us connect to the Internet over an access or broadband service that we buy from an ISP. This section describes two such technologies: Passive Optical Networks (PON), commonly referred to as fiber-to-the-home, and Cellular Networks that connect our mobile

Open
22

Perspective: Race to the Edge

Perspective: Race to the Edge from Computer Networks: A Systems Approach. As we start to explore how softwarization is transforming the network, we should recognize that it is the access network that connects homes, businesses, and mobile users to the Internet that is undergoing the most radical change. The fiber-to-the-home and cellular networks described in Section 2.8 are currently constructed from complex hardware appliances (e.g., OLTs, BNGs, BBUs, EPCs). Not only have these devices

Open
23

Chapter 3: Internetworking

Chapter 3: Internetworking from Computer Networks: A Systems Approach. This section is available as an Orakel learning companion.

Open
24

Problem: Not All Networks are Directly Connected

Problem: Not All Networks are Directly Connected from Computer Networks: A Systems Approach. As we have seen, there are many technologies that can be used to build last-mile links or to connect a modest number of nodes together, but how do we build networks of global scale? A single Ethernet can interconnect no more than 1024 hosts; a point-to-point link connects only two. Wireless networks are limited by the range of their radios. To build a global network, we need a way to interconnect these different

Open
25

3.1 Switching Basics

3.1 Switching Basics from Computer Networks: A Systems Approach. In the simplest terms, a switch is a mechanism that allows us to interconnect links to form a larger network. A switch is a multi-input, multi-output device that transfers packets from an input to one or more outputs. Thus, a switch adds the star topology (see Figure %s ) to the set of possible network structures. A star topology has several attractive properties: - Even though a switch has a fixed number of inputs

Open
26

3.2 Switched Ethernet

3.2 Switched Ethernet from Computer Networks: A Systems Approach. Having discussed some of the basic ideas behind switching, we now focus more closely on a specific switching technology: Switched Ethernet. The switches used to build such networks, which are often referred to as L2 switches, are widely used in campus and enterprise networks. Historically, they were more commonly referred to as bridges because they were used to “bridge” ethernet segments to build an extended LAN.

Open
27

3.3 Internet (IP)

3.3 Internet (IP) from Computer Networks: A Systems Approach. In the previous section, we saw that it was possible to build reasonably large LANs using bridges and LAN switches, but that such approaches were limited in their ability to scale and to handle heterogeneity. In this section, we explore some ways to go beyond the limitations of bridged networks, enabling us to build large, highly heterogeneous networks with reasonably efficient routing. We refer to such networks as

Open
28

3.4 Routing

3.4 Routing from Computer Networks: A Systems Approach. So far in this chapter we have assumed that the switches and routers have enough knowledge of the network topology so they can choose the right port onto which each packet should be output. In the case of virtual circuits, routing is an issue only for the connection request packet; all subsequent packets follow the same path as the request. In datagram networks, including IP networks, routing is an issue for every

Open
29

3.5 Implementation

3.5 Implementation from Computer Networks: A Systems Approach. So far, we have talked about what switches and routers must do without describing how they do it. There is a straightforward way to build a switch or router: Buy a general-purpose processor and equip it with multiple network interfaces. Such a device, running suitable software, can receive packets on one of its interfaces, perform any of the switching or forwarding functions described in this chapter, and send

Open
30

Perspective: Virtual Networks All the Way Down

Perspective: Virtual Networks All the Way Down from Computer Networks: A Systems Approach. For almost as long as there have been packet-switched networks, there have been ideas about how to virtualize them, starting with virtual circuits. But what exactly does it mean to virtualize a

Open
31

Chapter 4: Advanced Internetworking

Chapter 4: Advanced Internetworking from Computer Networks: A Systems Approach. This section is available as an Orakel learning companion.

Open
32

Problem: Scaling to Billions

Problem: Scaling to Billions from Computer Networks: A Systems Approach. We have now seen how to build an internetwork that consists of a number of networks of different types. That is, we have dealt with the problem of heterogeneity. The second critical problem in internetworking—arguably the fundamental problem for all networking—is scale. To understand the problem of scaling a network, it is worth considering the growth of the Internet, which has roughly doubled in size each year for

Open
33

4.1 Global Internet

4.1 Global Internet from Computer Networks: A Systems Approach. At this point, we have seen how to connect a heterogeneous collection of networks to create an internetwork and how to use the simple hierarchy of the IP address to make routing in an internet somewhat scalable. We say “somewhat” scalable because, even though each router does not need to know about all the hosts connected to the internet, it does, in the model described so far, need to know about all the networks

Open
34

4.2 IP Version 6

4.2 IP Version 6 from Computer Networks: A Systems Approach. The motivation for defining a new version of IP is simple: to deal with exhaustion of the IP address space. CIDR helped considerably to contain the rate at which the Internet address space was being consumed and also helped to control the growth of routing table information needed in the Internet’s routers. However, these techniques are no longer adequate. In particular, it is virtually impossible to achieve 100%

Open
35

4.3 Multicast

4.3 Multicast from Computer Networks: A Systems Approach. Multi-access networks like Ethernet implement multicast in hardware. There are, however, applications that need a broader multicasting capability that is effective at the scale of the Internet. For example, when a radio station is broadcast over the Internet, the same data must be sent to all the hosts where a user has tuned in to that station. In that example, the communication is one-to-many. Other examples of

Open
36

4.4 Multiprotocol Label Switching

4.4 Multiprotocol Label Switching from Computer Networks: A Systems Approach. We continue our discussion of enhancements to IP by describing an addition to the Internet architecture that is very widely used but largely hidden from end users. The enhancement, called Multiprotocol Label Switching (MPLS), combines some of the properties of virtual circuits with the flexibility and robustness of datagrams. On the one hand, MPLS is very much associated with the Internet Protocol’s datagram-based

Open
37

4.5 Routing Among Mobile Devices

4.5 Routing Among Mobile Devices from Computer Networks: A Systems Approach. It probably should not be a great surprise to learn that mobile devices present some challenges for the Internet architecture. The Internet was designed in an era when computers were large, immobile devices, and, while the Internet’s designers probably had some notion that mobile devices might appear in the future, it’s fair to assume it was not a top priority to accommodate them. Today, of course, mobile computers

Open
38

Perspective: The Cloud is Eating the Internet

Perspective: The Cloud is Eating the Internet from Computer Networks: A Systems Approach. The Cloud and the Internet are symbiotic systems. They were historically distinct, but today the line between them is increasingly fuzzy. If you start with the textbook definition, the Internet provides end-to-end connectivity between any two hosts (e.g., a client laptop and a remote server machine), and the cloud supports several warehouse-sized datacenters, each of which provides a cost-effective way to power,

Open
39

Chapter 5: End-to-End Protocols

Chapter 5: End-to-End Protocols from Computer Networks: A Systems Approach. Victory is the beautiful, bright coloured flower. Transport is the stem without which it could never have

Open
40

Problem: Getting Processes to Communicate

Problem: Getting Processes to Communicate from Computer Networks: A Systems Approach. Many technologies can be used to connect together a collection of computers, ranging from simple Ethernets and wireless networks to global-scale internetworks. Once interconnected, the next problem is to turn this host-to-host packet delivery service into a process-to-process communication channel. This is the role played by the transport level of the network architecture, which, because it supports communication

Open
41

5.1 Simple Demultiplexor (UDP)

5.1 Simple Demultiplexor (UDP) from Computer Networks: A Systems Approach. The simplest possible transport protocol is one that extends the host-to-host delivery service of the underlying network into a process-to-process communication service. There are likely to be many processes running on any given host, so the protocol needs to add a level of demultiplexing, thereby allowing multiple application processes on each host to share the network. Aside from this requirement, the transport

Open
42

5.2 Reliable Byte Stream (TCP)

5.2 Reliable Byte Stream (TCP) from Computer Networks: A Systems Approach. In contrast to a simple demultiplexing protocol like UDP, a more sophisticated transport protocol is one that offers a reliable, connection-oriented, byte-stream service. Such a service has proven useful to a wide assortment of applications because it frees the application from having to worry about missing or reordered data. The Internet’s Transmission Control Protocol is probably the most widely used protocol of

Open
43

5.3 Remote Procedure Call

5.3 Remote Procedure Call from Computer Networks: A Systems Approach. A common pattern of communication used by application programs structured as a client/server pair is the request/reply message transaction: A client sends a request message to a server, and the server responds with a reply message, with the client blocking (suspending execution) to wait for the reply. :numref:Figure %s <fig-rpc-timeline> illustrates the basic interaction between the client and server in such an

Open
44

5.4 Transport for Real-Time (RTP)

5.4 Transport for Real-Time (RTP) from Computer Networks: A Systems Approach. In the early days of packet switching, most applications were concerned with transferring files, although as early as 1981, experiments were under way to carry real-time traffic, such as digitized voice samples. We call an application “real-time” when it has strong requirements for the timely delivery of information. Voice over IP (VoIP) is a classic example of a real-time application because you can’t easily carry

Open
45

Perspective: HTTP is the New Narrow Waist

Perspective: HTTP is the New Narrow Waist from Computer Networks: A Systems Approach. The Internet has been described as having a narrow waist architecture, with one universal protocol in the middle (IP), widening to support many transport and application protocols above it (e.g., TCP, UDP, RTP, SunRPC, DCE-RPC, gRPC, SMTP, HTTP, SNMP) and able to run on top of many network technologies below (e.g., Ethernet, PPP, WiFi, SONET, ATM). This general structure has been a key to the Internet becoming

Open
46

Chapter 6: Congestion Control

Chapter 6: Congestion Control from Computer Networks: A Systems Approach. This section is available as an Orakel learning companion.

Open
47

Problem: Allocating Resources

Problem: Allocating Resources from Computer Networks: A Systems Approach. By now we have seen enough layers of the network protocol hierarchy to understand how data can be transferred among processes across heterogeneous networks. We now turn to a problem that spans the entire protocol stack—how to effectively and fairly allocate resources among a collection of competing users. The resources being shared include the bandwidth of the links and the buffers on the routers or switches where

Open
48

6.1 Issues in Resource Allocation

6.1 Issues in Resource Allocation from Computer Networks: A Systems Approach. Resource allocation and congestion control are complex issues that have been the subject of much study ever since the first network was designed. They are still active areas of research. One factor that makes these issues complex is that they are not isolated to one single level of a protocol hierarchy. Resource allocation is partially implemented in the routers, switches, and links inside the network and partially

Open
49

6.2 Queuing Disciplines

6.2 Queuing Disciplines from Computer Networks: A Systems Approach. Regardless of how simple or how sophisticated the rest of the resource allocation mechanism is, each router must implement some queuing discipline that governs how packets are buffered while waiting to be transmitted. The queuing algorithm can be thought of as allocating both bandwidth (which packets get transmitted) and buffer space (which packets get discarded). It also directly affects the latency experienced by

Open
50

6.3 TCP Congestion Control

6.3 TCP Congestion Control from Computer Networks: A Systems Approach. This section describes the predominant example of end-to-end congestion control in use today, which is implemented by TCP. The essential strategy of TCP is to send packets into the network without a reservation and then to react to observable events that occur. TCP assumes only FIFO queuing in the network’s routers, but also works with other queuing

Open
51

6.4 Advanced Congestion Control

6.4 Advanced Congestion Control from Computer Networks: A Systems Approach. This section explores congestion control more deeply. In doing so, it is important to understand that the standard TCP’s strategy is to control congestion once it happens, as opposed to trying to avoid congestion in the first place. In fact, TCP repeatedly increases the load it imposes on the network in an effort to find the point at which congestion occurs, and then it backs off from this point. Said another way,

Open
52

6.5 Quality of Service

6.5 Quality of Service from Computer Networks: A Systems Approach. The promise of general-purpose packet-switched networks is that they support all kinds of applications and data, including multimedia applications that transmit digitized audio and video streams. In the early days, one obstacle to the fulfillment of this promise was the need for higher-bandwidth links. That is no longer an issue, but there is more to transmitting audio and video over a network than just providing

Open
53

Perspective: Software-Defined Traffic Engineering

Perspective: Software-Defined Traffic Engineering from Computer Networks: A Systems Approach. The overarching problem this chapter addresses is how to allocate the available network bandwidth to a set of end-to-end flows. Whether it’s TCP congestion control, integrated services, or differentiated services, there is an assumption that the underlying network bandwidth being allocated is fixed: a 1-Gbps link between site A and site B is always a 1-Gbps link, and the algorithms focus on how to best share that

Open
54

Chapter 7: End-to-End Data

Chapter 7: End-to-End Data from Computer Networks: A Systems Approach. This section is available as an Orakel learning companion.

Open
55

Problem: What Do We Do with the Data?

Problem: What Do We Do with the Data? from Computer Networks: A Systems Approach. From the network’s perspective, application programs send messages to each other. Each of these messages is just an uninterpreted string of bytes. From the application’s perspective, however, these messages contain various kinds of data\ —arrays of integers, video frames, lines of text, digital images, and so on. In other words, these bytes have meaning. We now consider the problem of how best to encode the

Open
56

7.1 Presentation Formatting

7.1 Presentation Formatting from Computer Networks: A Systems Approach. One of the most common transformations of network data is from the representation used by the application program into a form that is suitable for transmission over a network and vice versa. This transformation is typically called presentation formatting. As illustrated in Figure %s , the sending program translates the data it wants to transmit from the representation it uses internally into a message that can be

Open
57

7.2 Multimedia Data

7.2 Multimedia Data from Computer Networks: A Systems Approach. Multimedia data, comprised of audio, video, and still images, now makes up the majority of traffic on the Internet. Part of what has made the widespread transmission of multimedia across networks possible is advances in compression technology. Because multimedia data is consumed mostly by humans using their senses—vision and hearing—and processed by the human brain, there are unique challenges to compressing it. You

Open
58

Perspective: Big Data and Analytics

Perspective: Big Data and Analytics from Computer Networks: A Systems Approach. This chapter is about data, and since no topic in Computer Science is receiving more attention than big data (or alternatively, data analytics), a natural question is what relationship there might be between big data and computer networks. Although the term is often used informally by the popular press, a working definition is quite simple: sensor data is collected by monitoring some physical or man-made system and

Open
59

Chapter 8: Network Security

Chapter 8: Network Security from Computer Networks: A Systems Approach. It is true greatness to have in one the frailty of a man and the security of a

Open
60

Problem: Security Attacks

Problem: Security Attacks from Computer Networks: A Systems Approach. Computer networks are typically a shared resource used by many applications representing different interests. The Internet is particularly widely shared, being used by competing businesses, mutually antagonistic governments, and opportunistic criminals. Unless security measures are taken, a network conversation or a distributed application may be compromised by an

Open
61

8.1 Trust and Threats

8.1 Trust and Threats from Computer Networks: A Systems Approach. Before we address the how’s and why’s of building secure networks, it is important to establish one simple truth: We will inevitably fail. This is because security is ultimately an exercise in making assumptions about trust, evaluating threats, and mitigating risk. There is no such thing as perfect

Open
62

8.2 Cryptographic Building Blocks

8.2 Cryptographic Building Blocks from Computer Networks: A Systems Approach. We introduce the concepts of cryptography-based security step by step. The first step is the cryptographic algorithms—ciphers and cryptographic hashes—that are introduced in this section. They are not a solution in themselves, but rather building blocks from which a solution can be built. Cryptographic algorithms are parameterized by keys, and a later section then addresses the problem of distributing the keys. In

Open
63

8.3 Key Predistribution

8.3 Key Predistribution from Computer Networks: A Systems Approach. To use ciphers and authenticators, the communicating participants need to know what keys to use. In the case of a secret-key cipher, how does a pair of participants obtain the key they share? In the case of a public-key cipher, how do participants know what public key belongs to a certain participant? The answer differs depending on whether the keys are short-lived session keys or longer-lived predistributed

Open
64

8.4 Authentication Protocols

8.4 Authentication Protocols from Computer Networks: A Systems Approach. So far we described how to encrypt messages, build authenticators, predistribute the necessary keys. It might seem as if all we have to do to make a protocol secure is append an authenticator to every message and, if we want confidentiality, encrypt the

Open
65

8.5 Example Systems

8.5 Example Systems from Computer Networks: A Systems Approach. We have now seen many of the components required to provide one or two aspects of security. These components include cryptographic algorithms, key predistribution mechanisms, and authentication protocols. In this section, we examine some complete systems that use these

Open
66

Perspective: Is Security Getting Worse or Better?

Perspective: Is Security Getting Worse or Better? from Computer Networks: A Systems Approach. Security breaches are now a standard risk of connecting any system to the Internet, and it is rare for a week to go by without news of some new attack. Verizon, a large telco, conducts an annual review of the state of cyber-attacks; in 2024 they reached a milestone with over 10,000 incidents, such as ransomware and phishing attacks, covered in the report. Measured by number of attacks then, it seems that things are

Open
67

Chapter 9: Applications

Chapter 9: Applications from Computer Networks: A Systems Approach. Now this is not the end. It is not even the beginning of the end. But it is, perhaps, the end of the

Open
68

Problem: Applications Need Their Own Protocols

Problem: Applications Need Their Own Protocols from Computer Networks: A Systems Approach. We started this book by talking about application programs—everything from web browsers to videoconferencing tools—that people want to run over computer networks. In the intervening chapters, we have developed, one building block at a time, the networking infrastructure needed to make such applications possible. We have now come full circle, back to network applications. These applications are part network protocol

Open
69

9.1 Traditional Applications

9.1 Traditional Applications from Computer Networks: A Systems Approach. We begin our discussion of applications by focusing on two of the most popular—the World Wide Web and email. Broadly speaking, both of these applications use the request/reply paradigm—users send requests to servers, which then respond accordingly. We refer to these as “traditional” applications because they typify the sort of applications that have existed since the early days of computer networks (although the Web

Open
70

9.2 Multimedia Applications

9.2 Multimedia Applications from Computer Networks: A Systems Approach. Just like the traditional applications described in the previous section, multimedia applications such as telephony and videoconferencing need their own protocols. Much of the initial experience in designing protocols for multimedia applications came from the MBone tools—applications such as vat and vic that were developed for use on the MBone, an overlay network that supports IP multicast to enable multiparty

Open
71

9.3 Infrastructure Applications

9.3 Infrastructure Applications from Computer Networks: A Systems Approach. There are some protocols that are essential to the smooth running of the Internet but that don’t fit neatly into the strictly layered model. One of these is the Domain Name System (DNS)—not an application that users normally invoke directly, but rather a service that almost all other applications depend upon. This is because the name service is used to translate host names into host addresses; the existence of such

Open
72

9.4 Overlay Networks

9.4 Overlay Networks from Computer Networks: A Systems Approach. From its inception, the Internet has adopted a clean model, in which the routers inside the network are responsible for forwarding packets from source to destination, and application programs run on the hosts connected to the edges of the network. The client/server paradigm illustrated by the applications discussed in the first two sections of this chapter certainly adhere to this

Open
73

Perspective: The Cloud is the New Internet

Perspective: The Cloud is the New Internet from Computer Networks: A Systems Approach. As we saw at the end of :ref:Section 9.1 <9.1 Traditional Applications>, there has been a migration of traditional Internet applications like email and web servers from machines running on-premises to VMs running in commodity clouds. This corresponds to a shift in terminology (from “Web Services” to “Cloud Services”) and in many of the underlying technologies being used (from Virtual Machines to Cloud Native

Open
74

About This Book

About This Book from Computer Networks: A Systems Approach. About This Book [Source figure omitted pending media-rights review.] :align: left :scale: 50% :alt: written by humans not by AI button :target:

Open
75

Read the Latest!

Read the Latest! from Computer Networks: A Systems Approach. Systems Approach Newsletter: Stay up to date with the latest developments by subscribing to the Systems Approach Newsletter <https://systemsapproach.org/newsletter>, where the authors connect the concepts and lessons in this book to what's happening in the Internet

Open
76

Print Copies

Print Copies from Computer Networks: A Systems Approach. We make all books in the Systems Approach series available as both print and e-books. This book is available via Amazon: Computer Networks: A Systems

Open