CIS307: Network Protocol Architectures
[
Standards, Protocols, Layered Architectures,
OSI Architecture,
TCP/IP Architecture]
Standards and Protocols are used to define representation
and interaction modes within a network and to make certain functions generally
available. Standards and protocols usually come in groups that work well
together and constitute protocol suites or protocol stacks.
New standards and protocols
are continuously being introduced. They fit within general frameworks called
Architectures. Conceptually dominant among such
architectures is one established
by the International Standards Organization (ISO), which is called
the Open Systems Interconnect (OSI). The OSI architecture is not
a specific fixed set of protocols and standards, it is the definition of
the functional layers of networks and of the protocols and standards that
may be used. Of course, in practice, people tend to associate a network
architecture with its most popular standards and protocols. Another network
architecture that is not as general as the OSI architecture, but
that introduced the most used protocols (and it is overwhelmingly
the most used), is the TCP/IP Architecture.
Both the the OSI and the TCP/IP architectures are layered
architectures, that is the functionality of the network is decomposed
into layers, where a higher level layer uses the services provided by the
layer immediately below it and where across a network communicating entities
communicate exclusively at the same layer (i.e. if a sender entity at
layer i sends a packet P, the receiver entity at layer i
will receive P; these two are called peer entities).
Stallings in his operating systems book [Prentice-Hall 1998] has the following
brief characterization for the OSI Layers:
-
Physical (Layer 1):
-
Concerned with transmission of unstructured bit stream over physical medium;
deals with mechanical, electrical, functional, and procedural characteristics
to access the physical medium.
-
For example, RS-232, SONET [Synchronous Optical NETwork]
-
Data Link (Layer 2):
-
Provides for the reliable transfer of information across the physical link;
sends blocks (frames) with the necessary synchronization, error control,
and flow control. It uses physical addresses.
-
For example, HDLC [High Level Data Link Control].
-
Network (Layer 3):
-
Provides upper layers with independence from the data transmission and
switching technologies used to connect systems; responsible for establishing,
maintaining, and terminating connections. Routing is carried out in
this layer, selecting routes, and enforcing them. Addressing is at the
logical level, with translation to the physical level.
-
For example, IP [Internet Protocol]
(connectionless), X.25 (connection oriented).
-
Transport (Layer 4):
-
Provides reliable, transparent transfer of data between end points; provides
end-to-end error recovery and congestions and flow control.
-
For example, TCP [Transmission Control Protocol] (connection oriented),
UDP [User Datagram Protocol] (connectionless).
-
Session (Layer 5):
-
Provides the control structure for communication between applications;
establishes, manages, and terminates sessions (consisting of one or more
connections) between cooperating applications. It may deal with
class-of-service (i.e. different quality of service - for example,
data expedition, reduced jitter, ..)
-
For example, RPC [Remote Procedure Call].
-
Presentation (Layer 6):
-
Provides independence to the application process from differences in data
representation (syntax).
-
For example, XDR [eXternal Data Representation],
ASN.1 [Abstract Syntax Notation One].
.
-
Application (Layer 7):
-
Provides access to the OSI environment for users and also provides distributed
information services.
-
For example, telnet, ftp, finger.
Professor Stafford has used the following diagram to
represent the position of various well known protocols
in the OSI architecture:
application --> DNS SMTP FTP TELNET HTTP
| | | | |
| | | | |
| | | | |
| +--------------------------+
| |
| |
transport ----> UDP TCP
| |
| ICMP |
| | |
+------------------------------+
|
|
network ------> IP<--------------+
| |
ARP | |
| | |
+--------------+ |
| |
link ------> Ethernet PPP
| |
| |
physical ----> Ethernet modem
where:
SMTP = Simple Mail Transfer Protocol
ICMP = Internet Control Message Protocol
ARP = Address Resolution Protocol
PPP = Point to Point Protocol
As you can see from the diagram, there tend to be multiple protocols
at each layer, except at the network layer. For this reason
people talk of the hourglass structure of the internet protocols
and see IP as the king of internet protocols.
There is a fundamental difference between the lowest three levels (the
communication subnet) and the top four levels of the OS architecture.
The bottom layers are between directly connected hosts thus they
involve all the
hosts in a path from sender to receiver. The top four layers are end-to-end
protocols, that is, the communication is stated in terms of only the original
sender and the final destination, independent of how many intermediate
hosts are traversed. Intermediate nodes do not participate at all in the
processing of the higher level protocols, to them it is data. [Think in
terms of overhead: In the source and target node protocols at all layers
are processed. In the intermediate nodes only protocols in the bottom three
layers are processed.] This has a direct impact on efficiency: for example,
error checking in protocols at the higher level is only done at the sender
and receiver, not at each intermediate hosts.
Three related concepts in discussing layers are Services,
Interfaces, and Protocols.
Services are what a layer
provides to the layer above it (the former is the Service Provider
and the latter is the Service User).
A layer may provide more than one service. For
example the transport layer provides a connection-oriented service and a
connectionless service. A service will have a "service model"
expressed as a set of
primitives used to access that service. There are four basic
kinds of primitives:
- Request: A requesting entity asks for a service.
- Indication: A responding entity receives a request for service.
- Response: A responding entity responds to a request.
- Confirm: A requesting entity receives a response to a prior request.
A Service Data Unit (SDU) is what an entity at layer i+1 in a sender
node wants to send to an entity at layer i+1 in a receiver node.
Interfaces are the set of rules that govern the interactions of entities
at layer i+1 and i in a node. When an entity at layer i+1 in a node
wants to send an SDU to an entity at layer i+1 in another node it creates
an Interface Data Unit(IDU) that will be passed to the layer i in
the origin node. The IDU will consist of the SDU plus some control
information, for example the length of the SDU.
Finally a protocol is a specification of how information is actually
transfered at a layer from a sender to a receiver. A protocol will pack
the data into Protocol Data Units (PDU). It is possible that a SDU
passed from layer i+1 to layer i will be sent to receiver fragmented into
a number of PDUs.
Each message (message is the preferred name for the PDU at the
session layer and above; at the transport layer, in particular TCP,
segment is
preferred; at the network layer datagram is used, but
packet used to refer to the IDU exchanged at the Network
to data link layer boundary (a packet is a datagram or a fraction thereof);
at the data link,
frame is used; and at the physical layer packet is common)
consists of data being transmitted
plus information required by the protocol for addressing, error detection,
etc. This extra information appears as a header before that data and (may
be) a trailer after the data, i.e. the data is encapsulated in the
message. [Not all messages have both a header and a trailer. Usually the
trailer is not present.] The message sent at layer i will be transmitted
as data by the layer below it. Assuming that the layer below can transmit
this data as a single message we will have the situation
Note that the headers and tails constitute transmission overhead, reducing
the utilization of the bandwidth of the communication channel. Of course
this is only part of the communication overhead: retransmissions and acknowledgements
further reduce bandwidth.
A concept often used in communication is session. It consists
of one or more connections. For example, a program on machine A may be
involved in communication with a program on machine B, the connection drops
due to communication problems. When communication is reestablished the
programs continue from where they were in the session using a new connection.
An example of a session is the interactions during a remote procedure call.
The requestor has to send the request, possibly in multiple messages, the
receiver collects them, processes the request, then sends back the results.
All in one session.
The transmission units at different layers may be of different maximum
sizes. We have here the same distinction that exists between "logical"
and "physical" records in file systems.
TCP/IP Architecture
The TCP/IP architecture was developed mainly in the US. It is the one that
has the largest number of users. It represents pragmatic solutions to problems
as they arose. It involves only five layers: The application layer (same
as in OSI), the end-to-end layer[also called transport layer] (TCP or UDP
or ...), the internet layer (IP, or ICMP, or ..), the net access layer
[also called the network interface layer] (Ethernet, or ATM, or PPP, or
SLIP, or ....), and the physical layer.
ingargio@joda.cis.temple.edu