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, instant messaging, Voice-over-IP (VoIP), Internet
radio, video streaming, disttibuted 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 end systems that exchange
data with each other. Importantly, Internet applications 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 software pieces that run on the end systems. You might, for example, write your software pieces in Java, C, or Python. Now, because you are developing a distributed Internet application, the software pieces 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 application piece running on one end
system instruct the Internet to deliver data to another software piece running on
another end system? End systems attached to the Internet provide an Application Programming Interface (API) that specifies how a software piece running on one end system asks the Internet infrastructure to deliver data to a specific destination software piece running
on another end system. The Internet API is a set of rules that the sending soft\
ware piece must follow so that the Internet can deliver the data to the destination
software piece. 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 dmp the letter Ollt 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 software sending data must follow to have the Internet deliver the data to the software that will receive the data. The postal service, of course, provides more than one service to its customers. It provides express delivery, reception confirmation, nrdinary use, and many more services. In a similar manner, the Internet provides multiple services to its applicano
tions. 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. This second description of the Internet-an infrastructure for providing servconcept
ices to distributed applications-is an important one. Increasingly, advances in the nuts-and-bolts components of the Internet are being driven by the needs of new applications. So it's important to keep in mind that the Internet is an infrastructure in which new applications are being constantly invented and deployed . 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, TCPfIP, and an API? What are routers? What
kinds of communication I inks 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 aU 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 tbe following sections and chapters .
Geen opmerkingen:
Een reactie posten