Lecture 2: A Network Architecture Example
Revision: The World Wide Web (WWW)
- Technology
- a "browser" (eg Netscape, IE) is used to
fetch and display HTML "Web Pages" from a remote Web server... etc.
- Terminology[1]
-
- "looking up servername"
- "Contacting server"
- "10% of 20K...", etc.
- What is happening here?
-
- Simple answer
- lots!
- Slightly less simple answer
- the browser somehow communicates with
the remote server "over" the Internet. How this is achieved is very
complex. In order to understand this complexity, we break the system
into smaller, more tractable and understandable parts, introducing...
[1]These status notifiers (or their
equivalent) are usually displayed on the browser status line.
Network Architecture
- Architecture
- "...structure or design of something."
- Network Architecture
- a framework for understanding
the way in which the various parts of the entire network system work
together.
Two aspects:
- Physical (or hardware)
- the wires, fibre optic cables, hubs,
routers, etc. We cover some of this stuff later.
- Logical (or abstract)
- the protocols (or rules)
which govern how data is exchanged using the network. As
we shall see, the fundamental idea here is the use of
layering various protocols on top of one
another to form a stack.
Uniform Resource Locators - URLs
The URL or "hyperlink" is the basis of the WWW. A URL defines the
location of a Web page in the following way:
When a user clicks on a highlighted hyperlink within a WWW page,
her browser uses the information in the associated URL to obtain
and display the desired page.
* Note that we are, for the moment, ignoring the process of "looking up"
the remote host -- discovering the network address associated with its
domain name.
Connection Establishment
To fetch a WWW page, the browser application program (or more correctly,
process--see later) running on your local computer first establishes a
connection to the remote host.
What this means is that the browser process uses the facilities of the
network connecting the two computers to send a "connection request"
message to a server program (process) running on the computer
whose name was given in the URL.
If the remote server process is prepared to accept the connection, it
responds with a "connection accepted" message.
The two process now have an open "communications channel" between them.
The HTTP Protocol
Once the two application processes have an established connection
between them, they can communicate reliably.
The browser then sends a request, in ordinary old plain ASCII text, to
the server process thus:
GET /home.html
The string "GET something
" is one of many commands defined in
the Hypertext Transfer Protocol, HTTP[2].
The server responds by returning
the contents of the file /home.html
, also in ordinary plain
(ASCII) text.
Finally, the browser process interprets the HTML markup in the returned
file, and displays it to the user.
[2] for the pedantic: this
request syntax is from HTTP 0.9, the original version of the protocol,
which is no longer in common use.
Connections Revisited: Transport Service
The "connection" used in transferring data is normally implemented in a
software module in the operating system of each of the computers
involved in the transfer.
This module provides a (so-called) transport service to processes. The
transport service module is responsible for breaking an incoming stream
of data into chunks (or, more correctly, Transport Protocol Data Units
or segments) for transfer across the network Each segment is prefixed
with a transport header, to indicate to the remote transport service
module what data it contains, and to carry other communications-related
information.
As each segment is received from the network, an acknowledgement is
sent back, so that damaged or lost segments can be resent, ensuring
reliable communications. The transport protocol defines the rules by
which this is achieved.
Note that the need for reliable interprocess communications is
independent of the nature of the application (in our example, the WWW),
hence this service can be shared by many different applications which
need reliable data transfer across the network.
In the Internet, the reliable transport service module implements the
TCP protocol.
Packet Delivery: The Network Service
Once the transport module has built a segment of data, it passes it to a
network service module, also normally residing within the operating
system.
The network service module builds a packet containing the
entire TPDU as its data part, and prefixes a network header containing,
among other information, the network address of the destination computer.
It then passes the packet to the actual network for delivery.
In the Internet, the network service module implements the IP protocol,
and NPDUs are normally called IP packets.
Note that the network service need not guarantee reliable delivery of
packets -- why not?
A Communications Layered Architecture
A conceptual, or abstract, representation of this system looks like:
Notes:
- The flow of actual data is from one WWW application (eg, the
server), down the "stack", across the network and back up to the other
WWW application - see later
- The apparent flow of data in the upper layers is
peer to peer across the network
- The operation of the application processes is independent of the
underlying communications and network module technologies -- hence a
communications architecture.
This lecture is also available in
PostScript format.
The tutorial for this lecture is
Tutorial #01.
[Previous Lecture]
[Lecture Index]
[Next Lecture]
Copyright © 2000 by
Philip Scott,
La Trobe University.