continue? What are the implications for those who design and operate networks?
21. The number of standardized protocols in use at the application layer has significantly increased since
the 1980s. Why? Do you think this trend will continue? What are the implications for those who
design and operate networks?
22. How many bits (not bytes) are there in a 10-page text document? Hint: There are approximately 350
words on a double-spaced page. We need 8 bits to encode each character.
23. What are three current cyber security issues we face on the Internet?
24. What is the Internet of Things (IoT)? What are the benefits and risks of IoT?
EXERCISES
A. Investigate the latest cyber security threats. What services and/or data were affected by these threats?
What was done to recover from this situation?
B. It turns out that not all industries are equally sensitive to cyber-attacks. There are multiple industries
that belong to the “critical infrastructure.” Investigate which industries belong to the critical
infrastructure, why are they part of it, and what laws govern this group of industries regarding cyber
security.
C. Discuss the issue of communications monopolies and open competition with an economics instructor
and relate his or her comments to your data communication class.
D. Find a college or university offering a specialized degree in telecommunications or data
communications and describe the program.
E. Investigate the IoT. What IoT devices are you most interested in? Why?
F. Investigate the networks in your school or organization. Describe the important LANs and BNs in use
(but do not describe the specific clients, servers, or devices on them).
G. Visit the Internet Engineering Task (IETF) website (www.ietf.org). Describe one standard that is in
the RFC stage.


the RFC stage.
H. Discuss how the revolution/evolution of communications and networking is likely to affect how you
will work and live in the future.
I. Investigate the pros and cons of developing native apps versus taking a browser-based approach.
MINICASES
I. Global Consultants John Adams is the chief information officer (CIO) of Global Consultants (GC),
a very large consulting firm with offices in more than 100 countries around the world. GC is about to
purchase a set of several Internet-based financial software packages that will be installed in all of
their offices. There are no standards at the application layer for financial software but several
software companies that sell financial software (call them group A) use one de facto standard to
enable their software to work with one another’s software. However, another group of financial
software companies (call them group B) use a different de facto standard. Although both groups have
software packages that GC could use, GC would really prefer to buy one package from group A for one
type of financial analysis and one package from group B for a different type of financial analysis. The
problem, of course, is that then the two packages cannot communicate and GC’s staff would end up
having to type the same data into both packages. The alternative is to buy two packages from the
same group—so that data could be easily shared—but that would mean having to settle for second
best for one of the packages. Although there have been some reports in the press about the two
groups of companies working together to develop one common standard that will enable software to
work together, there is no firm agreement yet. What advice would you give Adams?
II. Atlas Advertising Atlas Advertising is a regional advertising agency with offices in Boston, New
York, Providence, Washington, D.C., and Philadelphia. (1) Describe the types of networks you think


they would have (e.g., LANs, BNs, WANs) and where they are likely to be located. (2) What types of
standard protocols and technologies do you think they are using at each layer (e.g., see Figures 1-3
and 1-5)?
III. Consolidated Supplies Consolidated Supplies is a medium-sized distributor of restaurant supplies
that operates in Canada and several northern U.S. states. They have 12 large warehouses spread
across both countries to service their many customers. Products arrive from the manufacturers and
are stored in the warehouses until they are picked and put on a truck for delivery to their customers.
The networking equipment in their warehouses is old and is starting to give them problems; these
problems are expected to increase as the equipment gets older. The vice president of operations, Pat
McDonald, would like to replace the existing LANs and add some new wireless LAN technology into
all the warehouses, but he is concerned that now may not be the right time to replace the equipment.
He has read several technology forecasts that suggest there will be dramatic improvements in
networking speeds over the next few years, especially in wireless technologies. He has asked you for
advice about upgrading the equipment. Should Consolidated Supplies replace all the networking
equipment in all the warehouses now, should it wait until newer networking technologies are
available, or should it upgrade some of the warehouses this year, some next year, and some the year
after, so that some warehouses will benefit from the expected future improvements in networking
technologies?
IV. Asia Importers Caisy Wong is the owner of a small catalog company that imports a variety of
clothes and houseware from several Asian countries and sells them to its customers over the Web and
by telephone through a traditional catalog. She has read about the convergence of voice and data and


by telephone through a traditional catalog. She has read about the convergence of voice and data and
is wondering about changing her current traditional, separate, and rather expensive telephone and
data services into one service offered by a new company that will supply both telephone and data over
her Internet connection. What are the potential benefits and challenges that Asia Importers should
consider in making the decision about whether to move to one integrated service?
TECH UPDATES
In every chapter, we will offer couple ideas to investigate.
Topic A: From ARPANET To NoT: What Happened to the Internet?
What started as a secret military project in the 1960s, grew to the largest network of interconnected
computers known as the Internet, which is changing into the largest network of interconnected devices
that (at the time they were discovered) were not meant to talk to each other. Discuss the history of the
Internet (ARPANET) and the future of it (NoT).
Topic B: A Brief History of Cyber Attacks
We all heard about modern ransomware that encrypts every file on your computer and you must pay a
ransom (in bitcoin, of course!) to get these files unencrypted, or phishing attacks (emails that pretend to
be real) that ask you to download a file or click on link and can cause lot of harm to you and your data.
But, when did this start? What was the evolution of attacks on the Internet? How did individuals,
business, and governments respond to these attacks? What is the current citation with cyber-attacks?
Deliverables
Your job will be to prepare a presentation/video (7–10 minutes long) that addresses the topic and
provides information on the following items:
1. Title Slide
2. Short description of topic
3. Main players—these could be people, processes, software, hardware, etc.


3. Main players—these could be people, processes, software, hardware, etc.
4. How it works—use lot of pictures and be as technical as possible; create this part as a tutorial so that
your audience can follow along


5. How does it relate to material covered in class so far (and in the future)
6. Additional material/books/links where to learn more about this topic
7. Credits
8. List of References
9. Memo addressed to your professor describing all of the above information
HANDS-ON ACTIVITY 1A
Internet as We Know It Today
We think about access to the Internet as a daily normal. We check our email, news, chat with friends and
family, and do shopping on the Internet. The objective of this activity is for you to experience this
convergence.
1. Investigate the history of the Internet at http://www.vox.com/a/internet-maps that shows you a
history of the Internet through maps.
2. See how many people are using the Internet in your state/country at
https://www.akamai.com/us/en/resources/visualizing-akamai/real-time-web-monitor.jsp?
tab=traffic&theme=dark.
3. See the cyber security attacks in progress on information systems connected to the Internet by
clicking on the Attacks tab at https://www.akamai.com/us/en/resources/visualizing-akamai/real-
time-web-monitor.jsp?tab=attacks&theme=dark.
Deliverable
Deliverable Write a one-page summary of the history and current state of the Internet. What was the most
surprising thing you learned during your investigation?
HANDS-ON ACTIVITY 1B
Seeing the PDUs in Your Messages
We talked about how messages are transferred using layers and the different PDUs used at each layer. The
objective of this activity is for you to see the different PDUs in the messages that you send. To do this, we’ll
use Wireshark, which is one of the world’s foremost network protocol analyzers and is the de facto


standard that most professional and education institutions use today. It is used for network
troubleshooting, network analysis, software and communications protocol development, and general
education about how networks work.
Wireshark enables you to see all messages sent by your computer, as well as some or all of the messages
sent by other computers on your LAN, depending on how your LAN is designed. Most modern LANs are
designed to prevent you from eavesdropping on other computer’s messages, but some older ones still
permit this. Normally, your computer will ignore the messages that are not addressed for your computer,
but Wireshark enables you to eavesdrop and read messages sent to and from other computers.
Wireshark is free. Before you start this activity, download and install it from https://www.wireshark.org.
1. Start Wireshark.
2. Click on Capture and then Interfaces. Click the Start button next to the active interface (the one that
is receiving and sending packets). Your network data will be captured from this moment on.
3. Open your browser and go to a Web page that you have not visited recently (a good one is
www.iana.org).
4. Once the Web page has loaded, go back to Wireshark and stop the packet capture by clicking on
Capture and then Stop (the hot key for this is Ctrl + E).


5. You will see results similar to those in Figure 1-9. There are three windows below the tool bar:
a. The top window is the Packet List. Each line represents a single message or packet that was
captured by Wireshark. Different types of packets will have different colors. For example, HTTP
packets are colored green. Depending on how busy your network is, you may see a small number
of packets in this window or a very large number of packets.
b. The middle window is the Packet Detail. This will show the details for any packet you click on in
the top window.
c. The bottom window shows the actual contents of the packet in hexadecimal format, so it is
usually hard to read. This window is typically used by network programmers to debug errors.
6. Let’s take a look at the packets that were used to request the Web page and send it to your computer.
The application layer protocol used on the Web is HTTP, so we’ll want to find the HTTP packets. In
the Filter toolbar, type http and hit enter.
FIGURE 1-9 Wireshark capture
7. This will highlight all the packets that contain HTTP packets and will display the first one in Packet
Detail window. Look at the Packet Detail window in Figure 1-8 to see the PDUs in the message we’ve
highlighted. You’ll see that it contains an Ethernet II Frame, an IP packet, a TCP segment, and an
HTTP packet. You can see inside any or all of these PDUs by clicking on the +box in front of them. In
Figure 1-8, you’ll see that we’ve clicked the +box in front of the HTTP packet to show you what’s
inside it.
Deliverables


inside it.
Deliverables
1. List the PDU at layers 2, 3, and 4 that were used to transmit your HTTP GET packet.
a. Locate your HTTP GET packet in the Packet List and click on it.
b. Look in the Packet Detail window to get the PDU information.
2. How many different HTTP GET packets were sent by your browser? Not all the HTTP packets are
GET packets, so you’ll have to look through them to answer this question.


3. List at least five other protocols that Wireshark displayed in the Packet List window. You will need to
clear the filter by clicking on the “Clear” icon that is on the right of the Filter toolbar.


PART TWO FUNDAMENTAL CONCEPTS


CHAPTER 2
APPLICATION LAYER
The application layer (also called layer 5) is the software that enables the user to perform useful work. The
software at the application layer is the reason for having the network because it is this software that
provides the business value. This chapter focuses on the four fundamental types of application
architectures used at the application layer (host-based, client-based, client–server, cloud-based), plus a
fifth legacy architecture (peer-to-peer). It then looks at the Internet and the primary software application
packages it enables: the Web, email, and Telnet.
OBJECTIVES
Understand host-based, client-based, client–server, and cloud-based application architectures
Understand how the Web works
Understand how email works
Be aware of how Telnet and instant messaging work
OUTLINE
2.1 Introduction
2.2 Application Architectures
2.2.1 Host-Based Architectures
2.2.2 Client-Based Architectures
2.2.3 Client–Server Architectures
2.2.4 Cloud Computing Architectures
2.2.5 Peer-to-Peer Architectures
2.2.6 Choosing Architectures
2.3 World Wide Web
2.3.1 How the Web Works
2.3.2 Inside an HTTP Request
2.3.3 Inside an HTTP Response
2.4 Electronic Mail
2.4.1 How Email Works
2.4.2 Inside an SMTP Packet
2.4.3 Attachments in Multipurpose Internet Mail Extension
2.5 Other Applications
2.5.1 Telnet
2.5.2 Videoconferencing
2.6 Implications for Cyber Security
Summary


2.1 INTRODUCTION
Network applications are the software packages that run in the application layer. You should be quite
familiar with many types of network software, because it is these application packages that you use when
you use the network. In many respects, the only reason for having a network is to enable these
applications.
In this chapter, we first discuss five basic architectures for network applications and how each of those
architectures affects the design of networks. Because you probably have a good understanding of
applications such as the Web and word processing, we will use those as examples of different application
architectures. We then examine several common applications used on the Internet (e.g., Web, email) and
use those to explain how application software interacts with the networks. By the end of this chapter, you
should have a much better understanding of the application layer in the network model and what exactly
we meant when we used the term protocol data unit in Chapter 1.
2.2 APPLICATION ARCHITECTURES
In Chapter 1, we discussed how the three basic components of a network (client computer, server
computer, and circuit) worked together. In this section, we will get a bit more specific about how the client
computer and the server computer can work together to provide application software to the users. An
application architecture is the way in which the functions of the application layer software are spread
among the clients and servers in the network.
The work done by any application program can be divided into five general functions. The first is data
storage. Most application programs require data to be stored and retrieved, whether it is a small file such
as a memo produced by a word processor or a large database such as an organization’s accounting
records. The second function is data access logic, the processing required to access data, which often
means database queries in SQL (structured query language). The third function is the application logic


means database queries in SQL (structured query language). The third function is the application logic
(sometimes called business logic), which also can be simple or complex, depending on the application.
The fourth function is the presentation logic (sometimes called the user interface), the presentation of
information to the user and the acceptance of the user’s commands. The fifth function is services logic,
which is the provision of services to other applications (e.g., application program interfaces (API)). This is
like the user interface, but enables other application software packages to make requests, rather than
users. Not every application has services logic. These five functions—data storage, data access logic,
application logic, presentation logic, and services logic—are the basic building blocks of any application.
TECHNICAL FOCUS 2-1
Cloud Computing Deployment Models
When an organization decides to use cloud-based architecture, it needs to decide on which
deployment model will it use. There are three deployment models from which to choose:
Private cloud As the name suggests, private clouds are created for the exclusive use of a single
private organization. The cloud (hardware and software) would be hosted by the organization in
a private data center. This deployment model provides the highest levels of control, privacy, and
security. This model is often used by organizations needing to satisfy regulations posed by
regulators, such as in the financial and health-care industries.
Public cloud This deployment model is used by multiple organizations that share the same
cloud resources. The level of control is lower than in private clouds, and many companies are
concerned with the security of their data. However, this deployment model doesn’t require any
upfront capital investment, and the selected service can be up and running in a few days. Public
clouds are a good choice when a lot of people in the organization are using the same application.


Because of this, the most frequently used software as a service (SaaS) is email. For example,
many universities have moved to this model for their students.


Community cloud This deployment model is used by organizations that have a common
purpose. Rather than each organization creating its own private cloud, organizations decide to
collaborate and pool their resources. Although this cloud is not private, only a limited number of
companies have access to it. Community clouds are considered to be a subset of public clouds.
Therefore, community clouds realize the benefits from cloud infrastructure (such as speed of
deployment) with the added level of privacy and security that private clouds offer. This
deployment model is often used in the government, health care, and finance industries,
members of which have similar application needs and require a very high level of security.
Sometimes an organization will choose to use only one of these deployment models for all its
cloud-based applications. This strategy is called a pure strategy, such as a pure private cloud
strategy or a pure public cloud strategy. In other cases, the organization is best supported by a
mix of public, private, and community clouds for different applications. This strategy is called a
hybrid cloud strategy. A hybrid cloud strategy allows the organization to take advantage of
the benefits that these different cloud deployment models offer. For example, a hospital can use
Gmail for its email application (public cloud) but a private cloud for patient data, which require
high security. The downside of a hybrid cloud strategy is that an organization has to deal with
different platforms and cloud providers. However, the truth is that this strategy offers the
greatest flexibility, so most organizations eventually end up with this strategy.
There are many ways in which these five functions can be allocated between the client computers and the
servers in a network. There are four fundamental application architectures in use today. In host-based
architectures, the server (or host computer) performs virtually all of the work. In client-based
architectures, the client computers perform most of the work. In client–server architectures, the


work is shared between the servers and clients. In cloud-based architectures, the cloud provides services
(software, platform, and/or infrastructure) to the client. Although the client–server architecture is the
dominant application architecture, cloud-based architecture is becoming the runner-up because it
offers rapid scalability and deployability of computer resources.
2.2.1 Host-Based Architectures
The very first data communications networks developed in the 1960s were host-based, with the server
(usually a large mainframe computer) performing all functions. The clients (usually terminals) enabled
users to send and receive messages to and from the host computer. The clients merely captured
keystrokes, sent them to the server for processing, and accepted instructions from the server on what to
display (see Figure 2-1).
This very simple architecture often works very well. Application software is developed and stored on the
one server along with all data. If you’ve ever used a terminal or Citrix Receiver, you’ve used a host-based
application. There is one point of control, because all messages flow through the one central server. In
theory, there are economies of scale, because all computer resources are centralized (but more on cost
later).
There are two fundamental problems with host-based networks. First, the server must process all
messages. As the demands for more and more network applications grow, many servers become
overloaded and unable to quickly process all the users’ demands. Prioritizing users’ access becomes
difficult. Response time becomes slower, and network managers are required to spend increasingly more
money to upgrade the server. Unfortunately, upgrades to the mainframes that are usually the servers in
this architecture are “lumpy.” That is, upgrades come in large increments and are expensive (e.g.,
$500,000); it is difficult to upgrade “a little.”


FIGURE 2-1 Host-based architecture
2.2.2 Client-Based Architectures
In the late 1980s, there was an explosion in the use of personal computers. Today, more than 90% of most
organizations’ total computer processing power now resides on personal computers, not in centralized
mainframe computers. Part of this expansion was fueled by a number of low-cost, highly popular
applications such as word processors, spreadsheets, and presentation graphics programs. It was also
fueled in part by managers’ frustrations with application software on host mainframe computers. Most
mainframe software is not as easy to use as personal computer software, is far more expensive, and can
take years to develop. In the late 1980s, many large organizations had application development backlogs
of 2–3 years; that is, getting any new mainframe application program written would take years. New York
City, for example, had a 6-year backlog. In contrast, managers could buy personal computer packages or
develop personal computer-based applications in a few months.
With client-based architectures, the clients are personal computers on a LAN, and the server is usually
another personal computer on the same network. The application software on the client computers is
responsible for the presentation logic, the application logic, and the data access logic; the server simply
stores the data (Figure 2-2). There is no services logic.
This simple architecture often works very well. If you’ve ever used a word processor and stored your
document file on a server (or written a program in Visual Basic or C that runs on your computer but stores
data on a server), you’ve used a client-based architecture.
The fundamental problem in client-based networks is that all data on the server must travel to the client
for processing. For example, suppose the user wishes to display a list of all employees with company life


insurance. All the data in the database (or all the indices) must travel from the server where the database
is stored over the network circuit to the client, which then examines each record to see if it matches the
data requested by the user. This can overload the network circuits because far more data are transmitted
from the server to the client than the client actually needs.
2.2.3 Client–Server Architectures
Most applications written today use client–server architectures. Client–server architectures attempt to
balance the processing between the client and the server by having both do some of the logic. In these
networks, the client is responsible for the presentation logic, whereas the server is responsible for the data
access logic and data storage. The application logic may either reside on the client, reside on the server, or


be split between both.
Figure 2-3 shows one example, with the presentation logic and application logic on the client, and services
logic, application logic, data access logic and data storage on the server. In this case, the client software
accepts user requests and performs the application logic that produces database requests that are
transmitted to the server. The server software accepts the database requests, performs the data access
logic, and transmits the results to the client. The client software accepts the results and presents them to
the user.
When you used a Web browser to get pages from a Web server, you used a client–server architecture.
Likewise, if you’ve ever written a program that uses SQL to talk to a database on a server, you’ve used a
client–server architecture.
FIGURE 2-2 Client-based architecture
FIGURE 2-3 Two-tier thick client client–server architecture
For example, if the user requests a list of all employees with company life insurance, the client would
accept the request, format it so that it could be understood by the server and transmit it to the server. On
receiving the request, the server searches the database for all requested records and then transmits only
the matching records to the client, which would then present them to the user. The same would be true for
database updates; the client accepts the request and sends it to the server. The server processes the update
and responds (either accepting the update or explaining why not) to the client, which displays it to the
user.
One of the strengths of client–server networks is that they enable software and hardware from different


vendors to be used together. But this is also one of their disadvantages, because it can be difficult to get
software from different vendors to work together. One solution to this problem is middleware, software
that sits between the application software on the client and the application software on the server.
Middleware does two things. First, it provides a standard way of communicating that can translate
between software from different vendors. Many middleware tools began as translation utilities that
enabled messages sent from a specific client tool to be translated into a form understood by a specific
server tool.
The second function of middleware is to manage the message transfer from clients to servers (and vice
versa) so that clients need not know the specific server that contains the application’s data. The
application software on the client sends all messages to the middleware, which forwards them to the
correct server. The application software on the client is therefore protected from any changes in the
physical network. If the network layout changes (e.g., a new server is added), only the middleware must be
updated.
There are literally dozens of standards for middleware, each of which is supported by different vendors
and provides different functions. Two of the most important standards are Distributed Computing
Environment (DCE) and Common Object Request Broker Architecture (CORBA). Both of these standards
cover virtually all aspects of the client–server architecture but are quite different. Any client or server
software that conforms to one of these standards can communicate with any other software that conforms
to the same standard. Another important standard is Open Database Connectivity (ODBC), which
provides a standard for data access logic.
Two-Tier, Three-Tier, and n-Tier Architectures
There are many ways in which the application logic can be partitioned between the client and the server.
The example in Figure 2-3 is one of the most common. In this case, the server is responsible for the data


and the client, the application and presentation. This is called a two-tier architecture, because it uses
only two sets of computers, one set of clients and one set of servers.
A three-tier architecture uses three sets of computers, as shown in Figure 2-4. In this case, the
software on the client computer is responsible for presentation logic, an application server is responsible
for the services logic and application logic, and a separate database server is responsible for the data
access logic and data storage.
n-tier architecture uses more than three sets of computers. In this case, the client is responsible for
presentation logic, a database server is responsible for the data access logic and data storage, and the
services logic and application logic are spread across two or more different sets of servers. Figure 2-5
shows an example of an n-tier architecture. The client uses the Web browser (presentation logic). The
Web server that responds to the user’s requests, either by providing Hypertext Markup Language (HTML)
pages and graphics (application logic) or by sending the request to the application server that perform
various tasks (services logic and application logic). The database server stores all the data (data access
logic and data storage). Each of these four components is separate, making it easy to spread the different
components on different servers and to partition the application logic on two different servers.


FIGURE 2-4 Three-tier thin client client–server architecture
FIGURE 2-5 The n-tier thin client client–server architecture
The primary advantage of an n-tier client–server architecture compared with a two-tier architecture (or a
three-tier compared with a two-tier) is that it separates the processing that occurs to better balance the
load on the different servers; it is more scalable. In Figure 2-5, we have three separate servers, which


provides more power than if we had used a two-tier architecture with only one server. If we discover that
the application server is too heavily loaded, we can simply replace it with a more powerful server, or even
put in two application servers. Conversely, if we discover the database server is underused, we could put
data from another application on it.
There are two primary disadvantages to an n-tier architecture compared with a two-tier architecture (or a
three-tier with a two-tier). First, it puts a greater load on the network. If you compare Figures 2-3, 2-4,
and 2-5, you will see that the n-tier model requires more communication among the servers; it generates
more network traffic so you need a higher capacity network. Second, it is much more difficult to program
and test software in n-tier architectures than in two-tier architectures because more devices have to
communicate to complete a user’s transaction.
FIGURE 2-6 The typical two-tier thin-client architecture of the Web
Thin Clients versus Thick Clients
Another way of classifying client–server architectures is by examining how much of the application logic
is placed on the client computer. A thin-client architecture places little or no application logic on the
client (e.g., Figure 2-5), whereas a thick-client architecture places all or almost all of the application
logic on the client (e.g., Figure 2-3). There is no direct relationship between thin and thick clients and two-
, three-, and n-tier architectures. For example, Figure 2-6 shows a typical Web architecture: a two-tier
architecture with a thin client. One of the biggest forces favoring thin clients is the Web.
Thin clients are much easier to manage. If an application changes, only the server with the application


Thin clients are much easier to manage. If an application changes, only the server with the application
logic needs to be updated. With a thick client, the software on all of the clients would need to be updated.
Conceptually, this is a simple task; one simply copies the new files to the hundreds of affected client
computers. In practice, it can be a very difficult task. The thin-client architecture also enables cloud-based
architecture, which is discussed next.
2.2.4 Cloud Computing Architectures
The traditional client–server architecture can be complicated and expensive to deploy. Every application
has to be hosted on a server so that it can fulfill requests from potentially thousands of clients. An
organization has hundreds of applications, so running a successful client–server architecture requires a
variety of software and hardware and the skilled personnel who can build and maintain this architecture.
Cloud computing architectures are different because they outsource part or all of the infrastructure to
other firms that specialize in managing that infrastructure. Thus, cloud computing utilizes a network of
remote servers hosted by an organization to store, manage, and process data. There are three common
cloud-based architecture models that an organization can pick from. Figure 2-7 summarizes these three


models and compares them to the client–server architecture.
The first column of this figure shows the thin client–server architecture, in which the organization
manages the entire application software and hardware. In addition to the software components we’ve
discussed previously (the application logic, data access logic, and the data themselves), the servers need
an operating system (e.g., Windows, Linux). Most companies also use virtualization software to install
many virtual or logical servers on the same physical computer. This software (VMware is one of the
leaders) creates a separate partition on the physical server for each of the logical servers. Each partition
has its own operations system and its own server software and works independently from the other
partitions.
This software must run on some hardware, which includes a server, a storage device, and the network
itself. The server may be a large computer or a server farm. A server farm is a cluster of computers
linked together so that they act as one computer. Requests arrive at the server farm (e.g., Web requests)
and are distributed among the computers so that no one computer is overloaded. Each computer is
separate so that if one fails, the server farm simply bypasses it. Server farms are more complex than single
servers because work must be quickly coordinated and shared among the individual computers. Server
farms are very scalable because one can always add another computer. Figure 2-8 shows one row of a
server farm at Indiana University. There are seven more rows like this one in this room, and another room
contains about the same number.
FIGURE 2-7 Cloud architecture models compared to thin client–server architecture
Source: Adapted from www.cbc.radio-canada.ca/en/reporting-to-canadians/sync/sync-issue-1-2012/cloud-services


FIGURE 2-8 One row of a server farm at Indiana University
Many companies use separate storage devices instead of the hard disks in the servers themselves. These
storage devices are special-purpose hard disks designed to be very large and very fast. The six devices on
the left of Figure 2-8 comprise a special storage device called a storage area network (SAN).
Software as a Service (SaaS)
SaaS is one of the three cloud computing models. With SaaS, an organization outsources the entire
application to the cloud provider (see the last column of Figure 2-7) and uses it as any other application
that is available via a browser (thin client). SaaS is based on multitenancy. This means that rather than
having many copies of the same application, there is only one application that everybody shares, yet
everybody can customize it for his or her specific needs. Imagine a giant office building in which all people
share the infrastructure (water, A/C, electricity) but can customize the offices they are renting. The
customers can customize the app and don’t have to worry about upgrades, security, or underlying
infrastructure because the cloud provider does it all. The most frequently used SaaS application is email.
At Indiana University, all student email is outsourced to Google’s Gmail. Customer relationship
management (CRM) from Salesforce.com is another very commonly used SaaS.
Platform as a Service (PaaS)
PaaS is another of the three cloud computing models. What if there is an application you need but no
cloud provider offers one you like? You can build your own application and manage your own data on the
cloud infrastructure provided by your cloud supplier. This model is called Platform as a Service
(PaaS). The developers in your organization decide what programming language to use to develop the
application of choice. The needed hardware and software infrastructure, called the platform, is rented


application of choice. The needed hardware and software infrastructure, called the platform, is rented
from the cloud provider (see Figure 2-7). In this case, the organization manages the application and its
own data but uses the database software (data access logic) and operating system provided by the cloud
provider. PaaS offers a much faster development and deployment of custom applications at a fraction of


the cost required for the traditional client–server architecture. PaaS providers include Amazon Elastic
Cloud Compute (EC2), Microsoft Windows Azure, and Google App Engine.
Infrastructure as a Service (IaaS)
As you can see in Figure 2-7, with Infrastructure as a Service (IaaS), the cloud provider manages the
hardware, including servers, storage, and networking components. The organization is responsible for all
the software, including operating system (and virtualization software), database software, and its
applications and data. IaaS is sometimes referred to also as HaaS, or Hardware as a Service, because
in this cloud model, only the hardware is provided; everything else is up to the organization. This model
allows a decrease in capital expenditures for hardware and maintaining the proper environment (e.g.,
cooling) and redundancy, and backups for data and applications. Providers of IaaS are Amazon Web
Services, Microsoft Windows Azure, and Akamai.
In conclusion, cloud computing is a technology that fundamentally changed the way we think about
applications in that they are rented and paid for as a service. The idea is the same as for utilities—water,
gas, cable, and phone. The provider of the utility builds and is running the infrastructure; you plug in and
sign up for a type of service. Sometimes you pay as you go (water, gas), or you sign up for a level of service
(phone, cable).
2.2.5 Peer-to-Peer Architectures
Peer-to-peer (P2P) architectures are very old, but their modern design became popular in the early 2000s
with the rise of P2P file-sharing applications (e.g., Napster). With a P2P architecture, all computers act as
both a client and a server. Therefore, all computers perform all four functions: presentation logic,


both a client and a server. Therefore, all computers perform all four functions: presentation logic,
application logic, data access logic, and data storage (see Figure 2-9). With a P2P file-sharing application,
a user uses the presentation, application, and data access logic installed on his or her computer to access
the data stored on another computer in the network. With a P2P application-sharing network (e.g., grid
computing such as seti.org), other users in the network can use others’ computers to access application
logic as well.
FIGURE 2-9 Peer-to-peer architecture
The advantage of P2P networks is that the data can be installed anywhere on the network. They spread the
storage throughout the network, even globally, so they can be very resilient to the failure of any one
computer. The challenge is finding the data. There must be some central server that enables you to find
the data you need, so P2P architectures often are combined with a client–server architecture. Security is a
major concern in most P2P networks, so P2P architectures are not commonly used in organizations,
except for specialized computing needs (e.g., grid computing).


2.2.6 Choosing Architectures
Each of the preceding architectures has certain costs and benefits, so how do you choose the “right”
architecture? In many cases, the architecture is simply a given; the organization has a certain architecture,
and one simply has to use it. In other cases, the organization is acquiring new equipment and writing new
software and has the opportunity to develop a new architecture, at least in some part of the organization.
Almost all new applications today are client–server applications. Client–server architectures provide the
best scalability, the ability to increase (or decrease) the capacity of the servers to meet changing needs.
For example, we can easily add or remove application servers or database servers depending on whether
we need more or less capacity for application software or database software and storage.
Client–server architectures are also the most reliable. We can use multiple servers to perform the same
tasks, so that if one server fails, the remaining servers continue to operate and users don’t notice
problems.
Finally, client–server architectures are usually the cheapest because many tools exist to develop them.
And lots of client–server software exists for specific parts of applications so we can more quickly buy parts
of the application we need. For example, no one writes Shopping Carts anymore; it’s cheaper to buy a
Shopping Carts software application and put it on an application server than it is to write your own.
MANAGEMENT FOCUS 2-1
Cloud Computing with Salesforce.com
Salesforce.com, the world’s number one cloud platform, is the poster child for cloud computing.
Companies used to buy and install software for CRM, the process of identifying potential customers,
marketing to them, converting them into customers, and managing the relationship to retain them.
The software and needed servers were expensive and took a long time to acquire and install.
Typically, only large firms could afford it.


Typically, only large firms could afford it.
Salesforce.com changed this by offering a cloud computing solution. The CRM software offered by
salesforce.com resides on the salesforce.com servers. There is no need to buy and install new
hardware or software. Companies just pay a monthly fee to access the software over the Internet.
Companies can be up and running in weeks, not months, and it is easy to scale from a small
implementation to a very large one. Because salesforce.com can spread its costs over so many users,
they can offer deals to small companies that normally wouldn’t be able to afford to buy and install
their own software. Salesforce is a very competitive organization that is keeping up with the mobile
world too. In fall 2013, it announced the “Salesforce $1 Million Hackathon,” where hundreds of
teams competed to build the next killer mobile app on the Salesforce platform. Yup, the winning
team will walk away with $1 million! Although we don’t know the winner of this largest single
hackathon, the reader can discover this easily by googling it.
Client–server architectures also enable cloud computing. As we mentioned in Section 2.2.4, companies
may choose to run a SaaS because of low price and high scalability compared to traditional client–server
architecture hosted at home. One major issue that companies face when choosing SaaS is the security of
the data. Each company has to evaluate the risk of its data being compromised and select its cloud
provider carefully. However, SaaS is gaining popularity and companies are becoming more and more
accustomed to this solution.
2.3 WORLD WIDE WEB
The Web was first conceived in 1989 by Sir Tim Berners-Lee at the European Particle Physics Laboratory
(CERN) in Geneva. His original idea was to develop a database of information on physics research, but he


found it difficult to fit the information into a traditional database. Instead, he decided to use a hypertext
network of information. With hypertext, any document can contain a link to any other document.


CERN’s first Web browser was created in 1990, but it was 1991 before it was available on the Internet for
other organizations to use. By the end of 1992, several browsers had been created for UNIX computers by
CERN and several other European and American universities, and there were about 30 Web servers in the
entire world. In 1993, Marc Andreessen, a student at the University of Illinois, led a team of students that
wrote Mosaic, the first graphical Web browser, as part of a project for the university’s National Center for
Supercomputing Applications (NCSA). By the end of 1993, the Mosaic browser was available for UNIX,
Windows, and Macintosh computers, and there were about 200 Web servers in the world. Today, no one
knows for sure how many Web servers there are. There are more than 250 million separate websites, but
many of these are hosted on the same servers by large hosting companies such as godaddy.com or Google
sites.
2.3.1 How the Web Works
The Web is a good example of a two-tier client–server architecture (Figure 2-10). Each client computer
needs an application layer software package called a Web browser. There are many different browsers,
such as Microsoft’s Internet Explorer. Each server on the network that will act as a Web server needs an
application layer software package called a Web server. There are many different Web servers, such as
those produced by Microsoft and Apache.
To get a page from the Web, the user must type the Internet uniform resource locator (URL) for the
page he or she wants (e.g., www.yahoo.com) or click on a link that provides the URL. The URL specifies
the Internet address of the Web server and the directory and name of the specific page wanted. If no


directory and page are specified, the Web server will provide whatever page has been defined as the site’s
home page.
FIGURE 2-10 How the Web works
For the requests from the Web browser to be understood by the Web server, they must use the same
standard protocol or language. If there were no standard and each Web browser used a different
protocol to request pages, then it would be impossible for a Microsoft Web browser to communicate with
an Apache Web server, for example.
The standard protocol for communication between a Web browser and a Web server is Hypertext
Transfer Protocol (HTTP). To get a page from a Web server, the Web browser issues a special packet
called an HTTP request that contains the URL and other information about the Web page requested
(see Figure 2-10). Once the server receives the HTTP request, it processes it and sends back an HTTP
response, which will be the requested page or an error message (see Figure 2-10).
This request–response dialogue occurs for every file transferred between the client and the server. For
example, suppose the client requests a Web page that has two graphic images. Graphics are stored in
separate files from the Web page itself using a different file format than the HTML used for the Web page
(e.g., in JPEG [Joint Photographic Experts Group] format). In this case, there would be three request–


response pairs. First, the browser would issue a request for the Web page, and the server would send the
response. Then, the browser would begin displaying the Web page and notice the two graphic files. The
browser would then send a request for the first graphic and a request for the second graphic, and the
server would reply with two separate HTTP responses, one for each request.
2.3.2 Inside an HTTP Request
The HTTP request and HTTP response are examples of the packets we introduced in Chapter 1 that are
produced by the application layer and sent down to the transport, network, data link, and physical layers
for transmission through the network. The HTTP response and HTTP request are simple text files that
take the information provided by the application (e.g., the URL to get) and format it in a structured way so
that the receiver of the message can clearly understand it.
An HTTP request from a Web browser to a Web server has three parts. The first two parts are required;
the last is optional. The parts are as follows:
The request line, which starts with a command (e.g., get), provides the Web page, and ends with the
HTTP version number that the browser understands; the version number ensures that the Web
server does not attempt to use a more advanced or newer version of the HTTP standard that the
browser does not understand.
The request header, which contains a variety of optional information such as the Web browser
being used (e.g., Internet Explorer) and the date.
The request body, which contains information sent to the server, such as information that the user
has typed into a form.
Figure 2-11 shows an example of an HTTP request for a page on our Web server, formatted using version
1.1 of the HTTP standard. This request has only the request line and the request header, because no


request body is needed for this request. This request includes the date and time of the request (expressed
in Greenwich Mean Time [GMT], the time zone that runs through London) and name of the browser used
(Mozilla is the code name for the browser). The “Referrer” field means that the user obtained the URL for
this Web page by clicking on a link on another page, which in this case is a list of faculty at Indiana
University (i.e., www.indiana.edu/∼isdept/faculty.htm). If the referrer field is blank, then it means the
user typed the URL himself or herself. You can see inside HTTP headers yourself at
www.rexswain.com/httpview.html.
FIGURE 2-11 An example of a request from a Web browser to a Web server using the HTTP (Hypertext
Transfer Protocol) standard


MANAGEMENT FOCUS 2-2
Top Players in Cloud Email
Among the wide variety of applications that organizations are using, email is most frequently
deployed as SaaS. Four major industry players provide email as SaaS: Google, Microsoft, USA.NET,
and Intermedia. Although cloud-based email seems to appeal more to smaller companies, it provides
a cost–effective solution for organizations with up to 15,000 users (as a rule of thumb). Google was
the first company to enter this market and offered Google Apps, Calendar, and 30 Gb of storage in
addition to email. Microsoft entered this market in 2008 and offered Microsoft Office 365. Microsoft
offers not only email but the whole MS Office Suite. And, of course, all the office applications are
accessible from multiple devices. USA.NET is a SaaS company that offers Microsoft Exchange and
robust security features that meet the federal and industry regulations, such as FINRA and HIPAA.
It services approximately 6,000 organizations worldwide that provide financial, health care, energy,
and critical infrastructure services. In addition, USA.NET offers Security-as-a-Service platform from
the cloud. Finally, Intermedia, which was founded in 1995, is the largest Microsoft-hosted Exchange
provider. This was the first company to offer Hosted Microsoft Exchange, and today, it has 90,000
customers and more than 700,000 users. Just like Microsoft, Intermedia delivers the Office Suite in
the cloud.
The prices for the services these companies offer differ quite a bit. The cheapest of these four
companies is Google, starting at $4.17 per user per month. However, these are basic prices that
increase with the number of features and services added.
The response body in this example shows a Web page in Hypertext Markup Language (HTML).


The response body in this example shows a Web page in Hypertext Markup Language (HTML).
The response body can be in any format, such as text, Microsoft Word, Adobe PDF, or a host of other
formats, but the most commonly used format is HTML. HTML was developed by CERN at the same
time as the first Web browser and has evolved rapidly ever since. HTML is covered by standards
produced by the IETF, but Microsoft keeps making new additions to HTML with every release of its
browser, so the HTML standard keeps changing.
2.3.3 Inside an HTTP Response
The format of an HTTP response from the server to the browser is very similar to that of the HTTP
request. It, too, has three parts, with the first required and the last two optional:
The response status, which contains the HTTP version number the server has used, a status code
(e.g., 200 means “OK”; 404 means “not found”), and a reason phrase (a text description of the status
code).
The response header, which contains a variety of optional information, such as the Web server
being used (e.g., Apache), the date, and the exact URL of the page in the response.
The response body, which is the Web page itself.
Figure 2-12 shows an example of a response from our Web server to the request in Figure 2-11. This
example has all three parts. The response status reports “OK,” which means the requested URL was found
and is included in the response body. The response header provides the date, the type of Web server
software used, the actual URL included in the response body, and the type of file. In most cases, the actual
URL and the requested URL are the same, but not always. For example, if you request an URL but do not


specify a file name (e.g., www.indiana.edu), you will receive whatever file is defined as the home page for
that server, so the actual URL will be different from the requested URL.


FIGURE 2-12 An example of a response from a Web server to a Web browser using the HTTP standard
2.4 ELECTRONIC MAIL
Electronic mail (or email) was one of the earliest applications on the Internet and is still among the most
heavily used today. With email, users create and send messages to one user, several users, or all users on a
distribution list. Most email software enables users to send text messages and attach files from word
processors, spreadsheets, graphics programs, and so on. Many email packages also permit you to filter or
organize messages by priority.


Several standards have been developed to ensure compatibility between different email software
packages. Any software package that conforms to a certain standard can send messages that are formatted
using its rules. Any other package that understands that particular standard can then relay the message to
its correct destination; however, if an email package receives a mail message in a different format, it may
be unable to process it correctly. Many email packages send using one standard but can understand
messages sent in several different standards. The most commonly used standard is SMTP (Simple Mail
Transfer Protocol). Other common standards are X.400 and CMC (Common Messaging Calls). In this
book, we will discuss only SMTP, but CMC and X.400 both work essentially the same way. SMTP, X.400,
and CMC are different from one another (in the same way that English differs from French or Spanish),
but several software packages are available that translate between them, so that companies that use one
standard (e.g., CMC) can translate messages they receive that use a different standard (e.g., SMTP) into
their usual standard as they first enter the company and then treat them as “normal” email messages after
that.
2.4.1 How Email Works
The Simple Mail Transfer Protocol (SMTP) is the most commonly used email standard simply
because it is the email standard used on the Internet. Email works similarly to how the Web works, but it
is a bit more complex. SMTP email is usually implemented as a two-tier thick client–server application,
but not always. We first explain how the normal two-tier thick client architecture works and then quickly
contrast that with two alternate architectures.
Two-Tier Email Architecture
With a two-tier thick client–server architecture, each client computer runs an application layer software
package called a mail user agent, which is usually more commonly called an email client (Figure 2-12).


There are many common email client software packages such as Eudora and Outlook. The user creates the
email message using one of these email clients, which formats the message into an SMTP packet that
includes information such as the sender’s address and the destination address.
The user agent then sends the SMTP packet to a mail server that runs a special application layer software
package called a mail transfer agent, which is more commonly called mail server software (see Figure
2-13).
This email server reads the SMTP packet to find the destination address and then sends the packet on its
way through the network—often over the Internet—from mail server to mail server, until it reaches the
mail server specified in the destination address (see Figure 2-13). The mail transfer agent on the
destination server then stores the message in the receiver’s mailbox on that server. The message sits in the
mailbox assigned to the user who is to receive the message until he or she checks for new mail.
The SMTP standard covers message transmission between mail servers (i.e., mail server to mail server)
and between the originating email client and its mail server. A different standard is used to communicate
between the receiver’s email client and his or her mail server. Two commonly used standards for
communication between email client and mail server are Post Office Protocol (POP) and Internet
Message Access Protocol (IMAP). Although there are several important technical differences
between POP and IMAP, the most noticeable difference is that before a user can read a mail message with
a POP (version 3) email client, the email message must be copied to the client computer’s hard disk and
deleted from the mail server. With IMAP, email messages can remain stored on the mail server after they
are read. IMAP therefore offers considerable benefits to users who read their email from many different


are read. IMAP therefore offers considerable benefits to users who read their email from many different
computers (e.g., home, office, computer labs) because they no longer need to worry about having old
email messages scattered across several client computers; all email is stored on the server until it is
deleted.


FIGURE 2-13 How SMTP (Simple Mail Transfer Protocol) email works. IMAP = Internet Message Access
Protocol; LAN = Local Area Network; POP = Post Office Protocol
In our example in Figure 2-13, when the receiver next accesses his or her email, the email client on his or
her computer contacts the mail server by sending an IMAP or a POP packet that asks for the contents of
the user’s mailbox. In Figure 2-13, we show this as an IMAP packet, but it could just as easily be a POP
packet. When the mail server receives the IMAP or POP request, it converts the original SMTP packet
created by the message sender into a POP or an IMAP packet that is sent to the client computer, which the
user reads with the email client. Therefore, any email client using POP or IMAP must also understand
SMTP to create messages. POP and IMAP provide a host of functions that enable the user to manage his
or her email, such as creating mail folders, deleting mail, creating address books, and so on. If the user


sends a POP or an IMAP request for one of these functions, the mail server will perform the function and
send back a POP or an IMAP response packet that is much like an HTTP response packet.
Three-Tier Thin Client–Server Architecture
The three-tier thin client–server email architecture uses a Web server and Web browser to provide access
to your email. With this architecture, you do not need an email client on your client computer. Instead,
you use your Web browser. This type of email is sometimes called Web-based email and is provided by a
variety of companies such as Hotmail and Yahoo!.
You use your browser to connect to a page on a Web server that lets you write the email message by filling
in a form. When you click the send button, your Web browser sends the form information to the Web
server inside an HTTP request (Figure 2-14). The Web server runs a program (e.g., written in C or Perl)
that takes the information from the HTTP request and builds an SMTP packet that contains the email
message. Although not important to our example, it also sends an HTTP response back to the client. The
Web server then sends the SMTP packet to the mail server, which processes the SMTP packet as though it
came from a client computer. The SMTP packet flows through the network in the same manner as before.
When it arrives at the destination mail server, it is placed in the receiver’s mailbox.


FIGURE 2-14 Inside the Web. HTTP = Hypertext Transfer Protocol; IMAP = Internet Message Access
Protocol; LAN = Local Area Network; POP = Post Office Protocol; SMTP = Simple Mail Transfer Protocol
When the receiver wants to check his or her mail, he or she uses a Web browser to send an HTTP request
to a Web server (see Figure 2-14). A program on the Web server (e.g., in C or Perl) processes the request
and sends the appropriate POP request to the mail server. The mail server responds with a POP packet,
which is a program on the Web server converts into an HTTP response and sends to the client. The client
then displays the email message in the Web browser Web-based email.
TECHNICAL FOCUS 2-2
SMTP Transmission


SMTP (Simple Mail Transfer Protocol) is an older protocol, and transmission using it is rather
complicated. If we were going to design it again, we would likely find a simpler transmission method.
Conceptually, we think of an SMTP packet as one packet. However, SMTP mail transfer agents
transmit each element within the SMTP packet as a separate packet and wait for the receiver to
respond with an “OK” before sending the next element. For example, in Figure 2-15, the sending
mail transfer agent would send the from address and wait for an OK from the receiver. Then it would
send the to address and wait for an OK. Then it would send the date, and so on, with the last item
being the entire message sent as one element.
FIGURE 2-15 An example of an email message using the SMTP (Simple Mail Transfer Protocol) standard
A simple comparison of Figures 2-13 and 2-14 will quickly show that the three-tier approach using a Web
browser is much more complicated than the normal two-tier approach. So why do it? Well, it is simpler to
have just a Web browser on the client computer rather than to require the user to install a special email
client on his or her computer and then set up the special email client to connect to the correct mail server
using either POP or IMAP. It is simpler for the user to just type the URL of the Web server providing the
mail services into his or her browser and begin using mail. This also means that users can check their
email from a public computer anywhere on the Internet.
It is also important to note that the sender and receiver do not have to use the same architecture for their
email. The sender could use a two-tier client–server architecture, and the receiver, a host-based or three-
tier client–server architecture. Because all communication is standardized using SMTP between the


tier client–server architecture. Because all communication is standardized using SMTP between the
different mail servers, how the users interact with their mail servers is unimportant. Each organization
can use a different approach.
In fact, there is nothing to prevent one organization from using all three architectures simultaneously. At
Indiana University, email is usually accessed through an email client (e.g., Microsoft Outlook) but is also
accessed over the Web because many users travel internationally and find it easier to borrow a Web
browser with Internet access than to borrow an email client and set it up to use the Indiana University
mail server.
2.4.2 Inside an SMTP Packet
SMTP defines how message transfer agents operate and how they format messages sent to other message
transfer agents. An SMTP packet has two parts:
The header, which lists source and destination email addresses (possibly in text form [e.g., “Pat
Smith”]) as well as the address itself (e.g., psmith@somewhere.com), date, subject, and so on.
The body, which is the word DATA, followed by the message itself.


Figure 2-15 shows a simple email message formatted using SMTP. The header of an SMTP message has a
series of fields that provide specific information, such as the sender’s email address, the receiver’s
address, date, and so on. The information in quotes on the from and to lines is ignored by SMTP; only the
information in the angle brackets is used in email addresses. The message ID field is used to provide a
unique identification code so that the message can be tracked. The message body contains the actual text
of the message itself.
2.4.3 Attachments in Multipurpose Internet Mail Extension
As the name suggests, SMTP is a simple standard that permits only the transfer of text messages. It was
developed in the early days of computing, when no one had even thought about using email to transfer
nontext files such as graphics or word processing documents. Several standards for nontext files have
been developed that can operate together with SMTP, such as Multipurpose Internet Mail
Extension (MIME), uuencode, and binhex.
Each of the standards is different, but all work in the same general way. The MIME software, which exists
as part of the email client, takes the nontext file, such as a PowerPoint graphic file, and translates each
byte in the file into a special code that looks like regular text. This encoded section of “text” is then labeled
with a series of special fields understood by SMTP as identifying a MIME-encoded attachment and
specifying information about the attachment (e.g., name of file, type of file). When the receiver’s email
client receives the SMTP message with the MIME attachment, it recognizes the MIME “text” and uses its
MIME software (i.e., part of the email client) to translate the file from MIME “text” back into its original
format.
2.5 OTHER APPLICATIONS


format.
2.5 OTHER APPLICATIONS
There are literally thousands of applications that run on the Internet and on other networks. Most
application software that we develop today, whether for sale or for private internal use, runs on a network.
We could spend years talking about different network applications and still cover only a small number.
A Day in the Life: Network Manager
It was a typical day for a network manager. It began with the setup and troubleshooting for a
videoconference. Videoconferencing is fairly routine activity but this one was a little different; we
were trying to videoconference with a different company who used different standards than we did.
We attempted to use our usual Web-based videoconferencing but could not connect. We fell back to
videoconferencing over telephone lines, which required bringing in our videoconferencing services
group. It took 2 hours, but we finally had the technology working.
The next activity was building a Windows database server. This involved installing software, adding
a server into our ADS (Active Directory Services) domain, and setting up the user accounts. Once the
server was on the network, it was critical to install all the security patches for both the operating
system and database server. We receive so many security attacks that it is our policy to install all
security patches on the same day that new software or servers are placed on the network or the
patches are released.
After lunch, the next 2 hours was spent in a boring policy meeting. These meetings are a necessary
evil to ensure that the network is well-managed. It is critical that users understand what the network
can and can’t be used for, and our ability to respond to users’ demands. Managing users’
expectations about support and use rules helps ensure high user satisfaction.
The rest of the day was spent refining the tool we use to track network utilization. We have a simple


intrusion detection system to detect hackers, but we wanted to provide more detailed information on
network errors and network utilization to better assist us in network planning.
Source: With thanks to Jared Beard


Fortunately, most network application software works in much the same way as the Web or email. In this
section, we will briefly discuss only three commonly used applications: Telnet, instant messaging, and
videoconferencing.
2.5.1 Telnet
Telnet enables users to log in to servers (or other clients). It requires an application layer program on the
client computer and an application layer program on the server or host computer. Once Telnet makes the
connection from the client to the server, you must use the account name and password of an authorized
user to log in.
Although Telnet was developed in the very early days of the Internet (actually, the very first application
that tested the connectivity on ARPANET was Telnet), it is still widely used today. Because it was
developed so long ago, Telnet assumes a host-based architecture. Any key strokes that you type using
Telnet are sent to the server for processing, and then the server instructs the client what to display on the
screen.
One of the most frequently used Telnet software packages is PuTTY. PuTTY is open source and can be
downloaded for free (and in case you’re wondering, the name does not stand for anything, although TTY is
a commonly used abbreviation for “terminal” in UNIX-based systems).
The very first Telnet applications posed a great security threat because every key stroke was sent over the
network as plain text. PuTTY uses secure shell (SSH) encryption when communicating with the server so
that no one can read what is typed. An additional advantage of PuTTY is that it can run on multiple
platforms, such as Windows, Mac, or Linux. Today, PuTTY is routinely used by network administrators to
log in to servers and routers to make configuration changes.
MANAGEMENT FOCUS 2-3
Tagging People


MANAGEMENT FOCUS 2-3
Tagging People
Joseph Krull has a chip on his shoulder—well, in his shoulder to be specific. Krull is one of a small
but growing number of people who have a Radio Frequency Identification (RFID) chip implanted in
their bodies.
RFID technology has been used to identify pets, so that lost pets can be easily reunited with their
owners. Now, the technology is being used for humans.
Krull has a blown left pupil from a skiing accident. If he were injured in an accident and unable to
communicate, an emergency room doctor might misinterpret his blown pupil as a sign of a major
head injury and begin drilling holes to relieve pressure. Now doctors can use the RFID chip to
identify Krull and quickly locate his complete medical records on the Internet.
Critics say such RFID chips pose huge privacy risks because they enable any firms using RFID to
track users such as Krull. Retailers, for example, can track when he enters and leaves their stores.
Krull doesn’t care. He believes the advantages of having his complete medical records available to
any doctor greatly outweigh the privacy concerns.
Tagging people is no longer the novelty it once was; in fact, today it is a U.S. Food and Drug
Administration approved procedure. More than 10% of all RFID research projects worldwide involve
tagging people. There are even do-it-yourself RFID tagging kits available—not that we would
recommend them (www.youtube.com/watch?v= vsk6dJr4wps).
Besides the application to health records, RFID is also being used for security applications, even
something as simple as door locks. Imagine having an RFID-based door lock that opens
automatically when you walk up to it because it recognizes the RFID tag in your body.
Sources: Adapted from NetworkWorld, ZDNet, and GizMag.com.


Sources: Adapted from NetworkWorld, ZDNet, and GizMag.com.


2.5.2 Videoconferencing
Videoconferencing provides real-time transmission of video and audio signals to enable people in two
or more locations to have a meeting. In some cases, videoconferences are held in special-purpose meeting
rooms with one or more cameras and several video display monitors to capture and display the video
signals (Figure 2-16). Special audio microphones and speakers are used to capture and play audio signals.
The audio and video signals are combined into one signal that is transmitted through a WAN or the
Internet to people at the other location. Most of this type of videoconferencing involves two teams in two
separate meeting rooms, but some systems can support conferences of up to eight separate meeting
rooms. Some advanced systems provide telepresence, which is of such high quality that you feel you are
face-to-face with the other participants.
The fastest growing form of videoconferencing is desktop videoconferencing. Small cameras installed
on top of each computer permit meetings to take place from individual offices (Figure 2-17). Special
application software (e.g., WebEx, Zoom, and Skype) is installed on the client computer and transmits the
images across a network to application software on a videoconferencing server. The server then sends the
signals to the other client computers that want to participate in the videoconference. In some cases, the
clients can communicate with one another without using the server. The cost of desktop
videoconferencing ranges from less than $20 per computer for inexpensive systems to more than $1,000
for high-quality systems. Some systems have integrated conferencing software with desktop
videoconferencing, enabling participants to communicate verbally and, by using applications such as
white boards, to attend the same meeting while they are sitting at the computers in their offices. Among


today’s contenders of desktop videoconferencing are RingCentral Meetings, Skype for Business, Zoom,
Join.me, and GoToMeeting. These providers enable up to 500 participants to join a meeting, screen
sharing, and conference recording, and run on a wide variety of clients.
The transmission of video requires a lot of network capacity. Most videoconferencing uses data
compression to reduce the amount of data transmitted. Surprisingly, the most common complaint is not
the quality of the video image but the quality of the voice transmissions. Special care needs to be taken in
the design and placement of microphones and speakers to ensure quality sound and minimal feedback.
FIGURE 2-16 A Cisco telepresence system


FIGURE 2-17 Desktop videoconferencing
Most videoconferencing systems were originally developed by vendors using different formats, so many
products were incompatible. The best solution was to ensure that all hardware and software used within
an organization was supplied by the same vendor and to hope that any other organizations with whom you
wanted to communicate used the same equipment. Today, three standards are in common use: H.320,
H.323, and MPEG-2 (also called ISO 13818-2). Each of these standards was developed by different
organizations and is supported by different products. They are not compatible, although some application
software packages understand more than one standard. H.320 is designed for room-to-room
videoconferencing over high-speed telephone lines. H.323 is a family of standards designed for desktop
videoconferencing and just simple audio conferencing over the Internet. MPEG-2 is designed for faster
connections, such as a LAN or specially designed, privately operated WAN.
Webcasting is a special type of one-directional non-interactive videoconferencing in which content is
sent from the server to the user. The developer creates content that is downloaded as needed by the users
and played by a plug-in to a Web browser. At present, there are no standards for Webcast technologies,
but the products by RealNetworks.com are the de facto standards. There are many different products one
can choose from to do a webcast, for example, GoToWebinar, ClickMeeting, or Yondo.
2.6 IMPLICATIONS FOR CYBER SECURITY
The first implication for security from this chapter is that the primary purpose of a network is to provide a
worry-free and secure environment in which applications can run. However, a secure network is not
enough. All applications that are allowed on the network must be secure too. Application security must


enough. All applications that are allowed on the network must be secure too. Application security must
be implemented at the time when the application is coded and if any security holes are discovered,
updates (also called patches) must be issued by the vendor of the application. Users then must install the
update as soon as the patch is available; otherwise, they are not only compromising their application and
computer but also the whole network to which this computer is connected.
One of the most commonly used business application is an SQL database server, a common part of a


three- or four-tier client–server architecture. You might have heard of SQL injection—one of the top
three security risks on the Internet that is enabled by unsecured websites that allow you to enter text
information into a form, such as registering for an event. SQL injections area vulnerability where the
website allows an attacker to enter SQL commands through the textbox rather than just plain text.
Because the attacker can enter a command, he or she can then hijack the whole database and take all the
data that is stored in it. Here is a good video that explains it in more detail:
https://www.youtube.com/watch?v=FwIUkAwKzG8. Therefore, when designing any applications, one
must pay lot of attention to potential security holes and exploits.
Finally, another very frequently used hacking technique is email spoofing. Email spoofing is the creation
of email messages that have forged the sender address. It turns out that it is very easy to spoof an email
address, check it out for yourself: https://www.youtube.com/watch?v=rCnz6cfqnWc. So, before you reply
to any email that sounds suspicious, check the IP address where the email came from. We will learn about
IP addresses in Chapters 5 and 7.
MANAGEMENT FOCUS 2-4
Cloud-Hosted Virtual Desktops
While cloud computing started on the server side, it is quickly moving to the client side—the
desktop. Imagine that you work for a multinational organization and fly several times a year to
different parts of the world to do your job. Your organization doesn’t want you to travel with a laptop
because they fear that you can lose the laptop with the data on it but they want you to be able to log
in to any desktop in any office around the world and have your desktop appear on the screen. Well,


with the cloud technology, this is possible, and many companies are taking advantage of this new
service. Could you guess its name? Yes, Desktop-as-a-Service (DaaS). Several companies offer DaaS
without the infrastructure cost and with reduced complexity of deploying desktops. This service
works as a monthly subscription service and includes data center hardware and facilities and also
security. Dell DaaS on Demand and Amazon WorkSpaces are among the service providers of DaaS.
SUMMARY
Application Architectures There are four fundamental application architectures, plus a fifth
legacy architecture. In host-based networks, the server performs virtually all of the work. In client-
based networks, the client computer does most of the work; the server is used only for data storage.
In client–server networks, the work is shared between the servers and clients. The client performs all
presentation logic, the server handles all data storage and data access logic, and one or both perform
the application logic. With P2P networks, client computers also play the role of a server. Client–
server networks can be cheaper to install and often better balance the network loads but are more
complex to develop and manage. Cloud computing is a form of client–server architecture.
World Wide Web One of the fastest growing Internet applications is the Web, which was first
developed in 1990. The Web enables the display of rich graphical images, pictures, full-motion video,
and sound. The Web is the most common way for businesses to establish a presence on the Internet.
The Web has two application software packages: a Web browser on the client and a Web server on the
server. Web browsers and servers communicate with one another using a standard called HTTP. Most
Web pages are written in HTML, but many also use other formats. The Web contains information on
just about every topic under the sun, but finding it and making sure the information is reliable are


just about every topic under the sun, but finding it and making sure the information is reliable are
major problems.
Electronic Mail With email, users create and send messages using an application layer software
package on client computers called user agents. The user agent sends the mail to a server running an
application layer software package called a mail transfer agent, which then forward the message
through a series of mail transfer agents to the mail transfer agent on the receiver’s server. Email is
faster and cheaper than regular mail and can substitute for telephone conversations in some cases.


Several standards have been developed to ensure compatibility between different user agents and
mail transfer agents such as SMTP, POP, and IMAP. possible to send 2 bits on one wave or symbol by
defining four different amplitudes. Figure 3-17 shows the case where the highest-amplitude wave is
defined to be a symbol representing 2 bits, both 1s. The next highest amplitude is the symbol defined
to mean first a 1 and then a 0, and so on.
KEY TERMS
application architecture
application logic
Application security
body
client-based architecture
client–server architectures
cloud-based architecture
cloud computing
cloud providers
data access logic
data storage
desktop videoconferencing
distribution list
email
H.320
H.323
Hardware as a Service
header
host-based architectures
HTTP request
HTTP response
hybrid cloud strategy
Hypertext Markup Language (HTML)
Hypertext Transfer Protocol (HTTP)
Infrastructure as a Service (IaaS)
Internet Message Access Protocol (IMAP)
Internet
mail transfer agent
mail user agent
middleware
MPEG-2
Multipurpose Internet Mail Extension (MIME)
multitenancy


n-tier architecture
Platform as a Service (PaaS)
Post Office Protocol (POP)
presentation logic
protocol
pure strategy
request body
request header
request line
response body
response header
response status
scalability
server farm
services logic
Simple Mail Transfer Protocol (SMTP)
software as a service (SaaS)
SQL injection
storage area network
Telnet
thick-client
thin client
three-tier architecture
two-tier architecture
uniform resource locator (URL)
Videoconferencing
Web browser
Web server
Webcasting
QUESTIONS
1. What are the different types of application architectures?
2. Describe the five basic functions of an application software package.
3. What are the advantages and disadvantages of host-based networks versus client–server networks?
4. What is middleware, and what does it do?
5. Suppose your organization was contemplating switching from a host-based architecture to client–
server. What problems would you foresee?
6. Which is less expensive: host-based networks or client–server networks? Explain.
7. Compare and contrast two-tier, three-tier, and n-tier client–server architectures. What are the
technical differences, and what advantages and disadvantages does each offer?


8. How does a thin client differ from a thick client?
9. What are the benefits of cloud computing?
10. Compare and contrast the three cloud computing models.
11. For what is HTTP used? What are its major parts?
12. For what is HTML used?
13. Describe how a Web browser and Web server work together to send a Web page to a user.
14. Can a mail sender use a two-tier architecture to send mail to a receiver using a three-tier
architecture? Explain.
15. Describe how mail user agents and mail transfer agents work together to transfer mail messages.
16. What roles do SMTP, POP, and IMAP play in sending and receiving email on the Internet?
17. What are the major parts of an email message?
18. What is Telnet, and why is it useful?
19. What is cloud computing?
20. Explain how videoconferencing works.
21. Which of the common application architectures for email (two-tier client–server, Web-based) is
“best”? Explain.
22. Some experts argue that thin-client client–server architectures are really host-based architectures in
disguise and suffer from the same old problems. Do you agree? Explain.
EXERCISES
A. Investigate the use of the major architectures by a local organization (e.g., your university). Which
architecture(s) does it use most often and what does it see itself doing in the future? Why?
B. What are the costs of thin-client versus thick-client architectures? Search the Web for at least two
different studies and be sure to report your sources. What are the likely reasons for the differences
between the two?
C. Investigate which companies are the most reliable cloud computing providers for small business.
D. What application architecture does your university use for email? Explain.


D. What application architecture does your university use for email? Explain.
E. Investigate the options for having your private cloud as an individual. Hint: Try the Apple website.
MINICASES
I. Deals-R-Us Brokers (Part 1) Fred Jones, a distant relative of yours and president of Deals-R-Us
Brokers (DRUB), has come to you for advice. DRUB is a small brokerage house that enables its clients
to buy and sell stocks over the Internet, as well as place traditional orders by phone or fax. DRUB has
just decided to offer a set of stock analysis tools that will help its clients more easily pick winning
stocks, or so Fred tells you. Fred’s information systems department has presented him with two
alternatives for developing the new tools. The first alternative will have a special tool developed in
C++ that clients will download onto their computers to run. The tool will communicate with the
DRUB server to select data to analyze. The second alternative will have the C++ program running on
the server, the client will use his or her browser to interact with the server.
a. Classify the two alternatives in terms of what type of application architecture they use.
b. Outline the pros and cons of the two alternatives and make a recommendation to Fred about
which is better.
II. Deals-R-Us Brokers (Part 2) Fred Jones, a distant relative of yours and president of Deals-R-Us
Brokers (DRUB), has come to you for advice. DRUB is a small brokerage house that enables its clients


to buy and sell stocks over the Internet, as well as place traditional orders by phone or fax. DRUB has
just decided to install a new email package. The IT department offered Fred two solutions. First, it
could host the email in-house using Microsoft Exchange Server. The second solution would be to use
one of the cloud-based providers and completely outsource the company email. The IT department
also explained to Fred that both solutions would allow users to access email on their desktops and
laptops and also on their smart devices.
a. Briefly explain to Fred, in layperson’s terms, the differences between the two.
b. Outline the pros and cons of the two alternatives and make a recommendation to Fred about
which is better.
III. Accurate Accounting Diego Lopez is the managing partner of Accurate Accounting, a small
accounting firm that operates a dozen offices in California. Accurate Accounting provides audit and
consulting services to a growing number of small- and medium-sized firms, many of which are high
technology firms. Accurate Accounting staff typically spend many days on-site with clients during
their consulting and audit projects but has increasingly been using email to work with clients. Now,
many firms are pushing Accurate Accounting to adopt videoconferencing. Diego is concerned about
what videoconferencing software and hardware to install. “Why can’t we just use email as this works
so well. I am concerned that videoconferencing will make things much more complicated. Can you
offer something to ease my concerns?” he asks. “Will my new video-conferencing software and
hardware work as simply as email?” Prepare a response to his questions.
IV. Ling Galleries Howard Ling is a famous artist with two galleries in Hawaii. Many of his paintings
and prints are sold to tourists who visit Hawaii from Hong Kong and Japan. He paints 6 to 10 new


paintings a year, which sell for $50,000 each. The real money comes from the sales of prints; a
popular painting will sell 1,000 prints at a retail price of $1,500 each. Some prints sell very quickly,
while others do not. As an artist, Howard paints what he wants to paint. As a businessman, Howard
also wants to create art that sells well. Howard visits each gallery once a month to talk with clients,
but enjoys talking with the gallery staff on a weekly basis to learn what visitors say about his work and
to get ideas for future work. Howard has decided to open two new galleries, one in Hong Kong and
one in Tokyo. How can the Internet help Howard with the two new galleries?
TECH UPDATES
Pick one of these topics to investigate.
Topic A: Email Spoofing and Phishing Email
Email spoofing is the forgery of an email header so that the message appears to have originated from
someone or somewhere other than the actual source. Email spoofing is a tactic used in phishing and spam
campaigns because people are more likely to open an email when they think it has been sent by a
legitimate source. Look up videos on how to spoof email and after consulting with your instructor, spoof
and email that you send to your classmates. Phishing email is the fraudulent practice of sending emails
purporting to be from reputable companies in order to induce individuals to reveal personal information,
such as passwords and credit card numbers. While some phishing attacks are easy to spot, others are quite
sophisticated. What techniques can we apply to not fall for phishing. What to do if we accidentally fall for
phishing.
Topic B: SQL Injection
SQL Injection (SQLi) refers to an injection attack wherein an attacker can execute malicious SQL


SQL Injection (SQLi) refers to an injection attack wherein an attacker can execute malicious SQL
statements (also commonly referred to as a malicious payload) that control a web application’s database
server (also commonly referred to as a Relational Database Management System—RDBMS). Navigate to
http://hak.me (a great environment to safely try out hacking techniques). Sign up for an account, start a
hackme sandbox. Search for U-Hack-It basic exploits tutorial. Explore SQL Injecting and prepare to
explain it to your classmates.
Deliverables


Your job will be to prepare a presentation/video (7–10 minutes long) that addresses the topic and
provides information on the following items:
1. Title slide
2. Short description of topic
3. Main players—these could be people, processes, software, hardware, etc.
4. How it works—use lot of pictures and be as technical as possible; create this part as a tutorial so that
your audience can follow along
5. How does it relate to material covered in class so far (and in the future)
6. Additional material/books/links where to learn more about this topic
7. Credits
8. List of References
9. Memo addressed to your professor describing all of the above information
HANDS-ON ACTIVITY 2A
Tracing Your Email
Most email today is spam, unwanted commercial email, or phishing, fake email designed to separate you
from your money. Criminals routinely send fake emails that try to get you to tell them your log-in
information for your bank or your PayPal account, so they can steal the information, log-in as you, and
steal your money.
It is very easy to fake a return address on an email, so simply looking to make sure that an email has a
valid sender is not sufficient to ensure that the email was actually sent by the person or company that
claims to have sent it. However, every SMTP email packet contains information in its header about who
actually sent the email. You can read this information yourself, or you can use a tool designed to simplify
the process for you. The objective of this Activity is for you to trace an email you have received to see if the
sending address on the email is actually the organization that sent it.
There are many tools you can use to trace your email. We like a tool called eMail Tracker Pro, which has a
free version that lasts 15 days.


free version that lasts 15 days.
1. Go to www.emailtrackerpro.com and download and install eMail Tracker Pro.
2. Log-in to your email and find an email message you want to trace. I recently received an email
supposedly from Wachovia Bank; the sender’s email address was aw-login@wachovia.com.
3. After you open the email, find the option that enables you to view the Internet header or source of the
message (in Microsoft Outlook, click the Options tab and look at the bottom of the box that pops up).
Figure 2-18 shows the email I received and how to find the SMTP header (which Outlook calls the
Internet header). Copy the entire SMTP header to the clip-board.
4. Start eMail Tracker Pro. Select Trace an email, and paste the SMTP header into the box provided.
Click Trace to start the trace.
5. It may take up to 30 seconds to trace the email, so be patient. Figure 2-19 shows the results from the
email I received. The email supposedly from Wachovia Bank was actually from a company named
Musser and Kouri Law whose primary contact is Musser Ratliff, CPA, which uses SBC in Plano,
Texas, as its Internet service provider. We suspect that someone broke into this company’s network
and used their email server without permission, or fraudulently used this company’s name and
contact information on its domain registration.
Deliverables
Trace one email. Print the original email message and the trace results.


FIGURE 2-18 Viewing the SMTP packet header


FIGURE 2-19 Viewing the source of the SMTP packet
Source: http://www.visualware.com/contact.html
HANDS-ON ACTIVITY 2B
Seeing SMTP and POP PDUs
We’ve discussed about how messages are transferred using layers and the different protocol data units
(PDUs) used at each layer. The objective of this Activity is for you to see the different PDUs in the
messages that you send. To do this, we’ll use Wireshark, which is one of the world’s foremost network
protocol analyzers, and is the de facto standard that most professional and education institutions use
today. It is used for network troubleshooting, network analysis, software and communications protocol
development, and general education about how networks work. Wireshark enables you to see all messages
sent by your computer and may also let you see the messages sent by other users on your LAN (depending
on how your LAN is configured).
For this activity, you can capture your own SMTP and POP packets using Wireshark, or use two files that
we’ve created by capturing SMTP and POP packets. We’ll assume you’re going to use our files. If you’d like


to capture your own packets, read Hands-On Activity 1B in Chapter 1 and use your two-tier email client to
create and send an email message instead of your Web browser. If you’d like to use our files, go to the
website for this book and download the two files: SMTP Capture.pkt and POP3 Capture.pkt.
FIGURE 2-20 SMTP packets in Wireshark
Part 1: SMTP
1. Start Wireshark and either capture your SMTP packets or open the file called SMTP Capture.pkt.
2. We used the email software on our client computer to send an email message to our email server.
Figure 2-20 shows the packets we captured that were sent to and from the client computer (called
192.168.1.100) and the server (128.196.40.4) to send this message from the client to the server. The
first few packets are called the handshake, as the client connects to the server and the server
acknowledges it is ready to receive a new email message.


3. Packet 8 is the start of the email message that identifies the sender. The next packet from the client
(packet 10) provides the recipient address and then the email message starts with the DATA
command (packet 12) and is spread over several packets (14, 15, and 17) because it is too large to fit in
one Ethernet frame. (Remember that the sender’s transport layer breaks up large messages into
several smaller TCP segments for transmission and the receiver’s transport layer reassembles the
segments back into the one SMTP message.)
4. Packet 14 contains the first part of the message that the user wrote. It’s not that easy to read, but by
looking in the bottom window, you can see what the sender wrote.
Deliverables
1. List the information in the SMTP header (to, from, date, subject, message ID#).
2. Look through the packets to read the user’s message. List the user’s actual name (not his or her
email address), his or her birth date, and his or her SSN.
3. Some experts believe that sending an email message is like sending a postcard. Why? How secure
is SMTP email? How could security be improved?
Part 2: POP
1. Start Wireshark and either capture your SMTP packets or open the file called POP3 Capture.pkt.
(Note: Depending on the version of Wireshark you are using, the file extension may be pkt or pcap.)
2. We used the email software on our client computer to read an email message that was our email
server. Figure 2-21 shows the packets we captured that were sent to and from the client computer
(called 128.196.239.91) and the server (128.192.40.4) to send an email message from the server to the


client. The first few packets are called the handshake, as the client logs in to the server and the server
accepts the log-in.
3. Packet 12 is the POP STAT command (status) that asks the server to show the number of email
messages in the user’s mailbox. The server responds in packet 13 and tells the client there is one
message.
4. Packet 16 is the POP LIST command that asks the server to send the client a summary of email
messages, which it does in packet 17.
5. Packet 18 is the POP RETR command (retrieve) that asks the server to send message 1 to the client.
Packets 20, 22, and 23 contain the email message. It’s not that easy to read, but by looking in the
bottom window for packet 20, you can see what the sender wrote. You can also expand the POP
packet in the middle packet detail window (by clicking on the + box in front of it), which is easier to
read.
Deliverables
1. Packets 5 through 11 are the log-in process. Can you read the user id and passwords? Why or why
not?
2. Look through the packets to read the user’s message. List the user’s actual name (not his or her
email address), his or her birth date, and his or her SSN.


FIGURE 2-21 POP packets in Wireshark