What Is the Internet?
In this book, we’ll use the public
Internet, a specific computer network, as our principal
vehicle for discussing computer networks
and their protocols. But what is the
Internet? There are a couple of ways to
answer this question. First, we can describe
the nuts and bolts of the Internet, that
is, the basic hardware and software components
that make up the Internet. Second, we
can describe the Internet in terms of a networking
infrastructure that provides services to
distributed applications. Let’s begin
with the nuts-and-bolts description,
using Figure 1.1 to illustrate our discussion.
1.1.1
A Nuts-and-Bolts
Description
The Internet is a computer network that
interconnects hundreds of millions of computing
devices throughout the world. Not too
long ago, these computing devices were
primarily traditional desktop PCs, Linux
workstations, and so-called servers that store
and transmit information such as Web
pages and e-mail messages. Increasingly,
however, nontraditional Internet end
systems such as laptops, smartphones, tablets,
TVs, gaming consoles, Web cams,
automobiles, environmental sensing devices,
picture frames, and home electrical and
security systems are being connected to the
Internet. Indeed, the term computer
network is beginning to sound a bit dated, given
the many nontraditional devices that are
being hooked up to the Internet. In Internet jargon,
all of these devices are called hosts or
end systems. As of July 2011, there were
nearly 850 million end systems attached
to the Internet [ISC 2012], not counting
smartphones, laptops, and other devices
that are only intermittently connected to the
Internet. Overall, more there are an
estimated 2 billion Internet users [ITU 2011].
End systems are connected together by a
network of communication links and
packet switches. We’ll see in Section
1.2 that there are many types of communication
links, which are made up of different
types of physical media, including coaxial
cable, copper wire, optical fiber, and
radio spectrum. Different links can transmit
data at different rates, with the transmission
rate of a link measured in bits/second.
When one end system has data to send to
another end system, the sending end system
segments the data and adds header bytes
to each segment. The resulting packages
of information, known as packets in the
jargon of computer networks, are then
sent through the network to the
destination end system, where they are reassembled
into the original data.
A packet switch takes a packet arriving
on one of its incoming communication
links and forwards that packet on one of
its outgoing communication links. Packet
switches come in many shapes and
flavors, but the two most prominent types in
today’s Internet are routers and link-layer
switches. Both types of switches forward
packets toward their ultimate destinations.
Link-layer switches are typically
used in access networks, while routers
are typically used in the network core. The
sequence of communication links and
packet switches traversed by a packet from
the sending end system to the receiving
end system is known as a route or path
through the network. The exact amount of
traffic being carried in the Internet is
difficult to estimate but Cisco [Cisco
VNI 2011] estimates global Internet traffic will
be nearly 40 exabytes per month in 2012.
Packet-switched networks (which
transport packets) are in many ways similar
to transportation networks of highways,
roads, and intersections (which transport
vehicles). Consider, for example, a
factory that needs to move a large
amount of cargo to some destination warehouse
located thousands of kilometers
away. At the factory, the cargo is
segmented and loaded into a fleet of trucks.
Each of the trucks then independently
travels through the network of highways,
roads, and intersections to the
destination warehouse. At the destination warehouse,
the cargo is unloaded and grouped with
the rest of the cargo arriving from
the same shipment. Thus, in many ways,
packets are analogous to trucks, communication
links are analogous to highways and
roads, packet switches are analogous
to intersections, and end systems are
analogous to buildings. Just as a truck
takes a path through the transportation
network, a packet takes a path through a
computer network.
End systems access the Internet through Internet
Service Providers (ISPs),
including residential ISPs such as local
cable or telephone companies; corporate
ISPs; university ISPs; and ISPs that
provide WiFi access in airports, hotels, coffee
shops, and other public places. Each ISP
is in itself a network of packet switches
and communication links. ISPs provide a
variety of types of network access to the
high-speed local area network access,
wireless access, and 56 kbps dial-up modem
access. ISPs also provide Internet
access to content providers, connecting Web
sites directly to the Internet. The
Internet is all about connecting end systems to
each other, so the ISPs that provide
access to end systems must also be interconnected.
These lower-tier ISPs are interconnected
through national and international
upper-tier ISPs such as Level 3
Communications, AT&T, Sprint, and NTT.
An upper-tier ISP consists of high-speed
routers interconnected with high-speed
fiber-optic links. Each ISP network,
whether upper-tier or lower-tier, is managed
independently, runs the IP protocol (see
below), and conforms to certain naming
and address conventions. We’ll examine
ISPs and their interconnection more
closely in Section 1.3.
End systems, packet switches, and other
pieces of the Internet run protocols
that control the sending and receiving
of information within the Internet. The
Transmission Control Protocol (TCP) and
the Internet Protocol (IP) are two of
the most important protocols in the
Internet. The IP protocol specifies the format of
the packets that are sent and received
among routers and end systems. The Internet’s
principal protocols are collectively
known as TCP/IP. We’ll begin looking into protocols
in this introductory chapter. But that’s
just a start—much of this book is concerned
with computer network protocols!
Given the importance of protocols to the
Internet, it’s important that everyone
agree on what each and every protocol
does, so that people can create systems and
products that interoperate. This is
where standards come into play. Internet standards
are developed by the Internet Engineering
Task Force (IETF)[IETF 2012].
The IETF standards documents are called requests
for comments (RFCs). RFCs
started out as general requests for
comments (hence the name) to resolve network
and protocol design problems that faced
the precursor to the Internet [Allman 2011].
RFCs tend to be quite technical and
detailed. They define protocols such as TCP, IP,
HTTP (for the Web), and SMTP (for
e-mail). There are currently more than 6,000
RFCs. Other bodies also specify
standards for network components, most notably
for network links. The IEEE 802 LAN/MAN
Standards Committee [IEEE 802
2012], for example, specifies the
Ethernet and wireless WiFi standards.
1.1.1
A Services
Description
Our discussion above has identified many
of the pieces that make up the Internet.
But we can also describe the Internet
from an entirely different angle—namely, as
an infrastructure that provides
services to applications. These applications
include electronic mail, Web surfing,
social networks, instant messaging, Voiceover-
IP (VoIP), video streaming, distributed
games, peer-to-peer (P2P) file sharing,
television over the Internet, remote
login, and much, much more. The
applications are said to be distributed
applications, since they involve multiple
run on end systems—they do not run in
the packet switches in the network core.
Although packet switches facilitate the
exchange of data among end systems, they
are not concerned with the application
that is the source or sink of data.
Let’s explore a little more what we mean
by an infrastructure that provides
services to applications. To this end,
suppose you have an exciting new idea for a
distributed Internet application, one
that may greatly benefit humanity or one that
may simply make you rich and famous. How
might you go about transforming
this idea into an actual Internet
application? Because applications run on end systems,
you are going to need to write programs
that run on the end systems. You
might, for example, write your programs
in Java, C, or Python. Now, because you
are developing a distributed Internet
application, the programs running on the
different end systems will need to send
data to each other. And here we get to a
central issue—one that leads to the
alternative way of describing the Internet as a
platform for applications. How does one
program running on one end system
instruct the Internet to deliver data to
another program running on another end
system?
End systems attached to the Internet
provide an Application Programming
Interface (API) that specifies how a
program running on one end system asks
the Internet infrastructure to deliver
data to a specific destination program running
on another end system. This Internet API
is a set of rules that the sending
program must follow so that the Internet
can deliver the data to the destination
program. We’ll discuss the Internet API
in detail in Chapter 2. For now, let’s
draw upon a simple analogy, one that we
will frequently use in this book. Suppose
Alice wants to send a letter to Bob
using the postal service. Alice, of course,
can’t just write the letter (the data)
and drop the letter out her window. Instead,
the postal service requires that Alice
put the letter in an envelope; write Bob’s
full name, address, and zip code in the
center of the envelope; seal the envelope;
put a stamp in the upper-right-hand
corner of the envelope; and finally, drop the
envelope into an official postal service
mailbox. Thus, the postal service has its
own “postal service API,” or set of
rules, that Alice must follow to have the
postal service deliver her letter to
Bob. In a similar manner, the Internet has an
API that the program sending data must
follow to have the Internet deliver the
data to the program that will receive
the data.
The postal service, of course, provides
more than one service to its customers.
It provides express delivery, reception
confirmation, ordinary use, and many more
services. In a similar manner, the
Internet provides multiple services to its applications.
When you develop an Internet
application, you too must choose one of the
Internet’s services for your
application. We’ll describe the Internet’s services in
Chapter 2.
We have just given two descriptions of
the Internet; one in terms of its hardware
and software components, the other in
terms of an infrastructure for providing
services to distributed applications.
But perhaps you are still confused as to what the
Internet is. What are packet switching
and TCP/IP? What are routers? What kinds of
communication links are present in the
Internet? What is a distributed application?
How can a toaster or a weather sensor be
attached to the Internet? If you feel a bit
overwhelmed by all of this now, don’t
worry—the purpose of this book is to introduce
you to both the nuts and bolts of the
Internet and the principles that govern how
and why it works. We’ll explain these
important terms and questions in the following
sections and chapters.


Post A Comment:
0 comments so far,add yours