Title: The 7Layer OSI Model
1The 7-Layer OSI Model
2Network Software
- An important component of any network is the
software that controls communication. - This software can be very complicated. Breaking
the software into distinct modules helps simplify
its design and enables reusability. - Suppose we want to write software to allow us to
transfer a file from one computer to another. - One way is to write a single program that
includes a windows interface, the file transfer
protocols and the software for interacting with
the network hardware - This is a lot of work and chances are that it
will take a long time to debug this program. - A more sensible approach is to use an existing
(and well tested) network access module.
3Network Software Modules
- The file transfer program can call upon the
services of the Network Access Module. - The Network Access Module performs all the tricky
network communications stuff, thus simplifying
the implementation of the file transfer program. - Furthermore, if the Network Access Module on a
different network has the same interface, then
your file transfer program will work on that
network too.
4Network Software Modules
- The Network Access Module will only provide a raw
data transmission service. If some data is
corrupted, it is still left to the file transfer
program to send a request for the data to be
retransmitted. - There is no reason why we couldnt have a module
that did this for us. Let us call this the
Transport Module. - Now the file transfer program calls upon the
services of the Transport Module, which in turn
calls upon the services of the Network Access
Module.
5Peers
- Each module has a counterpart in the other
computer. These counterparts are sometimes
called peers. - In a logical sense, each module effectively talks
to its peer using the same type of protocol data
units (PDUs). - The file transfer programs talk to each other by
sending each other Application Protocol Data
Units. - Similarly, the Transport Modules talk to each
other by sending each other Transport Protocol
Data Units that encapsulate the APDUs.
6The Open Systems Interconnection Model
- Further modularization brings helps to simplify
the design of network software more. The OSI
model has 7-layers. - Each layer has a different level of abstraction.
- Each layer performs a well defined function.
- Layers require minimum data flow across the
boundaries. - Designed to encourage international protocol
standards.
7The Open Systems Interconnection Model
- Modern networks offer end-to-end connectivity
however the offered services may not fulfil the
requirements of distributed applications and must
therefore be enriched by an end-to-end
communication support. This leads to a
communication system consisting of 3 layers. End
systems inter-communicate through layer T, the
transport infrastructure. The service of layer T
is a generic service corresponding to layer 2, 3
or 4 services in the OSI Reference Model. In
layer C the end-to-end communication support adds
functionality to the services in layer T. This
allows the provision of services at the layer A
for distributed applications (A-C Interface). - Layer C is decomposed into protocol functions,
which encapsulate typical protocol tasks such as
error and flow control, encryption and
decryption, presentation coding and decoding
among others. A protocol graph is an abstract
protocol specification, where independence
between protocol functions is expressed in the
protocol graph. If multiple T services can be
used, there is one protocol graph for each T
service to realise a layer C service. Protocol
functions (modules) can be accomplished in
multiple ways, by different protocol mechanisms,
as software or hardware solutions with each
protocol configuration in a protocol graph being
instantiated by one of its modules.
8The Open Systems Interconnection Model
3 layer model
9The Open Systems Interconnection Model
Layering is a form of information hiding where a
lower layer presents only a service interface to
an upper layer, hiding the details of how it
provides the service. Information hiding has
numerous benefits however it can sometimes lead
to poor performance especially in cases where
optimisations are possible given knowledge of
what the lower layers are doing. A flow control
protocol that is responsible for throttling a
source when it thinks that the network is
overloaded may assume that overloads are
correlated with packet loss thus that protocol
could throttle the source-sending rate when it
detects a packet loss (TCP). However, a flow
control protocol might not know how packets are
transferred across the network if the flow
control protocol were layered above a protocol
that is actually responsible for data transfer.
The end system may be connected to a network over
a lossy wireless link so that packet losses are
mostly due to link errors rather than network
overload. Unfortunately, even in this situation,
the flow control protocol thinks that the network
is congested and throttles a source even when
there is no need to do so
10The Open Systems Interconnection Model
- The information that a packet is lost on the
link, which is available to the lower layer, is
hidden from the higher (flow control) layer,
which results in inefficient flow control. - A solution would be for the lower layers to
inform the upper layer concerning packet loss so
that the flow control layer could distinguish
between the link and congestive losses and
perform a better job. - However this violates layering, as the flow
control layer now knows about the details of data
transfer over its local link so if the data
transfer layer changes because the end system is
using a different link technology (e.g. Wireless
link versus Wired link), the flow control layer,
which ought to be independent of the link
technology, must also change. - This illustrates the tension between information
hiding on one hand and performance on the other
hand. Intelligent protocol stack designs should
leak enough information between layers to allow
efficient performance, but not so much that it is
difficult to change the implementation of a
layer.
11The Open Systems Interconnection Model
As layers are self-contained small pieces of
functionality, independent from other layers and
relatively small they can be verified for
correctness more easily than large chunks of
interdependent code. Layering forces better
structuring as code for a certain type of
functionality is localised in one place and
layers can be easily replaced/upgraded with new
versions. A protocol layer typically either
modifies a message (e.g. by adding a header), or
it may delay its delivery, (e.g. to preserve
ordering in a FIFO layer). Each message has a
layer type tag, describing the layer from which
it originated. Layers also generate messages
stamped with its unique type. Each layer checks
whether a message's layer type matches its own
and if so, the layer processes the message
otherwise it will be passed on to the next layer.
The protocol layer interface has methods to
process messages from layers above or below (Down
or Up) which are called when a message passes
through the layer.
12The Open Systems Interconnection Model
- Most protocols allow for some variation in
packet sizes, timeouts, among others however the
defaults provided may not be optimal for all
situations. TCP uses window sizes from 1 to 7,
and packet sizes in powers of 2 ranging from 64
through 4096 however if over a noisy link it
drops more than 10 percent of all packets, losses
may be reduced by lowering the packet size and
shrinking the window. - On non-lossy links however, the overhead of
sending ACKs for every 128 bytes may prove
wasteful, therefore the packet size could be
increased to 512 or whatever is closer to the
maximum packet size. Interchanging ACK and NAK
schemes may also lead to improved performance as
in large scale multicast reliable communications.
- When the ACK-based scheme is used, an
ACK-implosion problem can occur, as the number of
participating receivers is large. In the
NAK-based approach, a NAK-suppression mechanism
can be applied to improve its scalability. - The NAK-based approach with the NAK-suppression
mechanism is suitable for scalable multicast
communications.
13The Open Systems Interconnection Model
A flexible protocol system allows the dynamic
selection, configuration and reconfiguration of
protocol modules to dynamically shape the
functionality of a protocol in order to satisfy
application requirements or adapt to changing
service properties of the underlying network.
Flexible end-to-end protocols are configured to
include only the necessary functionality required
to satisfy an application QoS requirements for
the particular connection. Some uses that
dynamic stacks may be used for include increasing
throughput where environmental conditions are
analysed heuristics are applied to decide if
change would bring about optimal performance
interoperability in that dynamic stacks can
simplify the interoperability process, by
allowing code for protocol stacks to be written
once and placed on repositories where they can be
downloaded onto end systems so they can adopt the
same stack. Security can be increased at
run-time, for example, when an intrusion
detection system dynamically responds to unusual
behaviour and robustness, where faulty components
can be detected and replaced to improve
robustness (e.g. a mobile computer connected to
an Ethernet LAN may automatically detect that its
wired connection is broken forcing a switch to a
Wireless LAN or GSM connection. Here it is
profitable to dynamically load a new stack module
optimised for the different characteristics of
wireless connections).
14Dynamic Reconfigurable Middleware
This diagram represents the protocol graph of a
steaming video application in a dynamically
reconfigurable middleware framework. When a
network device is switched from a low speed
cellular network to a high speed wireless LAN, a
session manager will detect that the underlying
network has changed. The protocol stack control
mechanism could install a new stack module, which
contains an algorithm for conversion of a colour
video stream to a monochrome video stream.
151. The Physical Layer
- The Physical Layer performs bit by bit
transmission of the frames given to it by the
Data Link Layer. - The specifications of the Physical Layer include
- Mechanical and electrical interfaces
- Sockets and wires used to connect the host to the
network - Voltage levels uses (e.g. -5V and 5V)
- Encoding techniques (e.g. Manchester encoding)
- Modulation techniques used (e.g. square wave)
- The bit rate and the baud rate.
162. The Data Link Layer
Network Layer
Data Link Layer
- The Data Link Layer tries to make the unreliable
transmission of frames appear to be reliable. - The Data Link Layer deals with
- Inserting and extracting Network Packets
into/from frames - Adding error checking information to frames.
Also checking received frames for errors - Sending requests for frames to be retransmitted
if they are found to contain errors. Also
responding to such requests - Ensuring the Network Layer receives data in the
order in which it was sent over the link - Frame synchronisation
- Flow Control over the link
Physical Layer
173. The Network Layer
Transport Layer
Network Layer
- The Network Layer controls the operation of the
local part of the network. - The Network Layer
- Examines packets given to it by the Data Link
Layer to see if they are destined for this host
or should be forwarded to another host - Decides on the best way to route packets destined
for other hosts - Performs accounting tasks (such as counting the
number of packets to determine congestion levels) - Performs protocol conversions when packets are
routed over different types of networks
Data Link Layer
184. The Transport Layer
Session Layer
Transport Layer
- The Transport Layer controls the delivery of data
between two hosts. - The Transport Layer
- Fragments data streams from multiple sessions
into packet sized portions and passes them to the
Network Layer - Reassembles data streams from data in packets
given to it by the Network Layer - Ensures delivery of data streams to appropriate
sessions - Performs host-to-host flow control to ensure data
does not arrive faster than the host can cope with
Network Layer
195. The Session Layer
Presentation Layer
Session Layer
- The Session Layer maintains a logical connection
between two processes. - The Session Layer
- Performs dialogue control functions and token
management to keep track of who is to transmit
data next - Synchronisation functions (e.g. inserting
checkpoints into data stream so that
communication can be resumed from the last
checkpoint after a failure) - There may be multiple sessions (i.e. one for each
communicating process). Each session is
identified by a SAP (Service Access Point) number.
Transport Layer
206. The Presentation Layer
Application Layer
Presentation Layer
- The Presentation Layer performs data
representation and syntax conversions. - The Presentation Layer
- Enables cross-platform communication by
converting data representations (strings,
integers, floating-point numbers etc.) to and
from network standard formats - Example the sending host uses the EBDIC
character set and the receiving host uses ASCII.
The Presentation Layer in the sending host takes
the EBDIC code and coverts it to Unicode. The
Presentation Layer in the receiving host gets the
Unicode and coverts it to ASCII.
Session Layer
217. The Application Layer
Process
Application Layer
- The Application Layer provides an interface to a
range high-level network services used by the
communicating process. - Access to application services is through a set
of calls to routines in a communications library. - There are routines for identifying a host,
determining if that host is available for
communication and establishing a connection - Data is typically sent and received in the same
way as writing or reading to and from a file - There may also be routines for handling e-mail
and file transfers
Presentation Layer
22The Communicating Process
- The process provides the user interface and makes
use of the routines provided by the Application
Layer to perform communication. - The communicating process is not considered to be
part of the OSI 7-layer model. - The process can just use the services provided by
the Application Layer or it can implement its own
high-level protocols that it can send and receive
using the routines provided by the Application
Layer. - Of course, if a process does implement its own
high-level protocol then the process with which
it is communicating must be able to understand
that protocol too.
23The Network Dependent Layers
- The lowest three layers of the OSI7-layer model
are network dependentmeaning that they will be
different for different typesof network. - The layers above the network layer are network
independent meaning that the software from the
transport layer upwards can be moved from one
network to another and still work. - In the case of IEEE 802 networks, even the
Network Layers can be the same since the Data
Link Layers in these networks use a common
interface called Logical Link Control (LLC).