1. OSI Reference Model via TCP/IP Reference Model
1.1 OSI (Open System Interconnection) Reference Model.
The OSI model is shown is figure below:
7 Application Application protocol Application
6 Presentation Presentation protocol Presentation
5 Session Session protocol Session
4 Transport Transport protocol Transport
Communication subnet boundary
3 Network Network Network Network
Internal subnet protocol
2 Data Link Data Link Data Link Data Link
1 Physical Physical Physical Physical
Host A Router Router Host B
Network layer host-router protocol
Data link layer host-router protocol
Physical layer host-router protocol
This model deals with connecting open systems – that is, systems that are open
for communication with other systems. Note that the OSI model itself is not a network
architecture because it does not specify the exact services & protocols to be used in
each layer. However, common standards were produced by ISO (International
Standards Organization) for each layer:
1.1.1 Physical Layer
The physical layer is concerned with transmitting raw bits over communication
channel under assumption , that it is 100% reliable.
1.1.2 Data Link Layer
The data link layer takes a raw transmission facility and transforms it into a
line that appears free of undetected transmission errors to the network layer. This
task is accomplished by using data & acknowledgment frames and error detection
algorithms (like code Humming).
1.1.3 Network Layer
The network layer is concerned with controlling the operation of the subnet.
That is routing the packets from the source to destination. Routes can be based on
static or dynamic routing tables as will be reviewed later. *(This layer is the one
that we are actually interested in)*.
1.1.4 Transport Layer
The transport layer basic function is to accept data from the session layer
derive it into packet (if necessary) , pass these to the network layer and restore the
data on the other end.
The session , presentation & application layers are less interesting for us,
however you can find their reviews in “Computer Network” of Andrew Tanenbaum (3-d
1.2 TCP/IP Reference Model
This model was developed on the base of first computer networks (like
ARPANET) and has only 4 layers:
1.2.1 Internet Layer
The internet layer is the linchpin that holds the whole architecture together. It
allows hosts to inject their packets into any network and have them travel
independently to their destination. This layer defines official protocol called IP.
1.2.2 Transport Layer
The transport layer lies above the internet layer and it’s functionality is much
alike to the same layer in OSI model – it allows peer entities on the source &
destination hosts to carry on a conversation (2 end-to-end protocols were defined
here: TCP & UDP).
There are tow more layers application & host-to-network that less interest us
(the host-to-network layer plays minor part in TCP/IP protocol, steel being
significant enough by itself) , you can find further information at the same
reference as before.
1.3 OSI via TCP/IP
Our major interest is in deference’s at the network layer, them we will focus on:
~ The OSI model supports both connectionless & connection-oriented
communication in the network layer , but only connection-oriented communication in
the transport layer.
~ The TCP\IP model has only one mode in the network layer – connectionless, but
supports both modes in transport layer, giving the user a choice. This choice is
especially important for simple request-response protocols.
Generally the OSI model has proven to be exceptionally useful for discussing
computer networks, but OSI protocols did not become popular .The reverse is true of
TCP/IP: the model is practically nonexistent , but the protocols are widely used.
2.1 Field of interest.
So far we have had a surface glance on two major reference models in network:
OSI & TCP/IP. In this course we are mainly interested in one particular layer – the
network layer, which is also divided into two approaches:
2.1.1 connectionless type
2.1.2 connection – oriented type
The connection – oriented type refers to such protocols as ATM, telephony and so
on. This type of connection doesn’t fit the hardware described below (CISCO Router
2600/11), thus it will not be discussed here.
2.2 Connectionless Routing (general).
(any detailed information available at “Computer Networks” Andrew Tanenbaum, chap. 5).
The independent packets of connectionless organization are called datagrams (in
analogy with telegrams). In that kind of organization the routing table telling which
outgoing line to use for each possible destination router is build in every router. Each
datagram must contain the full destination address. When the packet comes, the router
looks up the outgoing line to use in the routing table and sends the packet on its way.
Also , the establishment and release of network or transport layer connections do not
require any special work on the part of the routers.
2.2.1 Routing Algorithms.
The main function of the network layer is routing packets from source to
destination. The algorithms that chouse the routes and the data structures that
they use area major area of network layer design.
The routing algorithm is that part of the network layer software
responsible for deciding which output line an incoming packet should be
transmitted on. If the subnet uses datagrams internally , this decision must be
made anew for every arriving data packet since the best route may have
changed since last time. In the subnet using virtual circuits such decision is
made ones per session.
Routing algorithms can be grouped into two major classes: nonadaptive
1) Nonadaptive algorithms do not base their
routing decisions on measurements or estimates of the current
traffic and topology. Instead , the choice of the route to use to get
from I to J is computed in advance , of-line, and downloaded to the
routers when the network is booted. This procedure is sometimes
called static routing.
2) Adaptive algorithms ,in contrast, change their
routing decisions to reflect changes in the topology , and usually
the traffic as well. Adaptive algorithms differ in where the get their
information ,when they change the routes , and what metric is used
for optimization . They are also called dynamic.
2.2.2 The Optimality Principle
To start with algorithm’s overview we should see some helpful theoretical
explanations. The optimality principle states that if router J is on the optimal
path from router I to router K, then the optimal path from J to K also falls
along the same route. As a consequence of that principle, we can see that the
set of optimal routes from all sources to a given destination form a tree rooted
at the destination. Such tree is called a sink tree.
In the next three sections, we will look at three static routing algorithms,
subsequently we will move to dynamic ones.
2.2.3 Shortest Path Routing
The following technique is widely used in many forms, because it is
simple and easy to understand. The idea is to build a graph of the subnet, with
each node of the graph representing a router and each arc representing a
communication line (link).To choose a rout between a given pair of routers ,
the algorithm just finds the shortest path between them on the graph. The
shortest path concept includes definition of the way of measuring path length.
Deferent metrics like number of hops, geographical distance, the mean
queuing and transmission delay of router can be used. In the most general
case, the labels on the arcs could be computed as a function of the distance,
bandwidth, average traffic, communication cost, mean queue length, measured
delay, and other factors.
There are several algorithms for computing shortest path between two
nodes of a graph. One of them due to Dijkstra.
That is another static algorithm, in witch every incoming packet is sent
out on every outgoing line except the one it arrived on. Flooding generates
infinite number of duplicate packets unless some measures are taken to damp
One such measure is to have a hop counter in the header of each packet,
which is decremented at each hop, with the packet being discarded when the
counter reaches zero. Ideally, the hop counter is initialized to the length of the
path from source to destination. If the sender does not no the path length, it
can initialize the counter to the worst case, the full diameter of the subnet.
An alternative technique is to keep track of which packets have been
flooded, to avoid sending then out a second time. To achieve this goal the
source router put a sequence number in each packet it receives from its hosts.
Then each router needs a list per source router telling which sequence numbers
originating at that source have already been seen. Any incoming packet that is
on the list is not flooded. To prevent list form growing, each list should be
augmented by a counter, k, meaning that all sequence numbers through k have
A variation of flooding named selective flooding is slightly more
practical. In this algorithm the routers do not send every incoming packet out
on every line, but only on those going approximately in the right
direction.(there is usually little point in sending a westbound packet on an
eastbound line unless the topology is extremely peculiar).
Flooding algorithms are rarely used, mostly with distributed systems or
systems with tremendous robustness requirements at any instance.
2.2.5 Flow-Based Routing
The algorithms seen above took only topology into account and did not
consider the load. The following algorithm considers both and is called flow-
In some networks, the mean data flow between each pair of nodes is
relatively stable and predictable. Under conditions in which the average traffic
from i to j is known in advance and to a reasonable approximation ,constant in
time, it is possible to analyze the flows mathematically to optimize the routing.
The idea behind the analysis is that for a given line, if the capacity and
average flow are known, it is possible to compute the mean packet delay on
that line from queuing theory. From the mean delays on all the lines , it is
straightforward to calculate a flow-weighted average to get the mean packet
delay for the whole subnet. The routing problem then reduces to finding the
routing algorithm that produces the minimum average delay for the subnet.
This technology demands certain information in advance. First the subnet
topology, second the traffic matrix, third the capacity matrix and finally a
routing algorithm (further explanation look at the same reference as above).
2.2.6 Distance Vector Routing
Modern computer networks generally use dynamic routing algorithms
rather then static ones described above. Two dynamic algorithms in particular,
distance vector & link state routing are the most popular. In this section we
will look at the former algorithm. In the following one we will study the later
Distance vector routing algorithms operate by having each router
maintain a table giving he best known distance to each destination and which
line to use to get there. These table are updated by exchanging information
with the neighbors.
The distance vector routing algorithm is sometimes called by other names
including Bellman-Ford or Ford-Fulkerson. It was the original ARPANET
routing algorithm and was also used in the Internet under the name RIP and in
early versions of DECnet and Novell’s IPX. AppleTalk & CISCO routers use
improved distance vector protocols.
In that algorithm each router maintains a routing table indexed by and
containing one entry for each router in the subnet. This entry contains two
parts: the preferred outgoing line to use for that destination and an estimate of
the time or distance to that destination. The metric used might be number of
hops, time delay in milliseconds, total number of packets queued along the
path or something similar.
The router is assumed to know the “distance” to each of its neighbors. In
the hops metric the distance is one hop, for queue length metrics the router
examines each queue, for the delay metric the route can measure it directly
with special ECHO packets that the receiver just timestamps and sends back as
fast as it can.
Distance vector routing works in theory, but has a serious drawback in
practice: although it converges to the correct answer, it may be done slowly.
Good news propagates at linear time through the subnet, while bad ones have
the count-to-infinity problem: no router ever has a value more then one
higher than the minimum of all its neighbors. Gradually, all the routers work
their way up to infinity, but the number of exchanges required depends on the
numerical value used for infinity. One of the solutions to this problem is split
horizon algorithm that defines the distance to the X router is reported as
infinity on the line that packets for X are sent on. Under that behavior bad
news propagate also at linear speed through the subnet.
2.2.7 Link State Routing
The idea behind link state routing is simple and can be stated as five parts.
Each router must:
1) Discover its neighbors and learn their network
2) Measure the delay or cost to each of its neighbors.
3) Construct a packet telling to all it has just learned.
4) Send the packet to all other routers.
5) Compute the shortest path to every other router.
In effect, the complete topology and all delays re experimentally measured
and distributed to every router. Then Dijkstra’s algorithm can be used to find
the shortest path to every other router.
2.2.8 Hierarchical Routing
As the network grows larger the amount of resources necessary to take
care or routing table becomes enormous and makes routing impossible. Here
appears the idea of hierarchical routing that suggests that routers should be
divided into regions, with each router knowing all the details about how to
route packets within its own region, but knowing nothing about the internal
structure of other regions.
Unfortunately the gains in routing table size & CPU time are not free, the
penalty of increasing path length has to be paid.
It has been discovered that the optimal number of nested levels for an N
router subnet is ln N, requiring a total of eln N entries per router.
2.2.9 Routing for Mobile Hosts
Through the last years more and more people purchase portable computer
under natural assumption that they can be used all over the world. These
mobile hosts introduce new complication: to route a packet to a mobile host
the network first has to find it. Generally that requirement is implemented
through creation of two new issues in LAN foreign agent and home agent.
Each time any mobile host connects to the network it collects a foreign
agent packet or generates a request for foreign agent, as a result they establish
connection between them and the mobile host supplies the foreign agent with
it’s home & some security information.
After that the foreign agent contacts the mobile host’s home agent and
delivers the information about the mobile host.
Subsequently the home agent examines the received information and if it
authorizes the security information of mobile host it allows the foreign agent
to proceed. As the result the foreign agent enters the mobile host into it’s
When the packet for the mobile host arrive its home agent it encapsulates
it and redirects to the foreign agent where the mobile host is hosting. Then it
returns encapsulation data to the router that sent the packet so that all next
packet would be directly sent to correspondent router (foreign agent).
2.2.10 Broadcast Routing
For some applications ,hosts need to send messages to many or all other
hosts. Broadcast routing is used for that purpose. Some deferent methods
where proposed for doing that.
1) The source should send the packet to all the necessary
destinations. One of the problems of this method is that the source has
to have the complete list of destinations.
2) Flooding routing. As it was discussed before the
problem of that method is generating duplicate packets.
3) Multidestination routing. In that method each packet
includes list or a bitmap indicating desired destinations. When a
packet arrives router checks all the destinations to determine the set of
output lines that will be needed, generates a new copy of the packet
for each output line to be used and includes in each packet only those
destinations that are to use the line. In effect, the destination set is
partitioned between the lines. After a sufficient number of hops, each
packet will carry only one destination and can be treated as a normal
4) This routing method makes use of spanning tree of
the subnet. If each router knows which of its lines belong to the
panning tree, it can copy an incoming broadcast packet onto all the
spanning tree lines except the one it arrived on. Problem: each router
has to know the spanning tree.
5) Reverse path-forwarding algorithm at the arrival of
the packet checks if the line that packet arrived on is the same one
through which the packets are send to the source, if yes it sends it
through all other lines, otherwise discards it.
2.2.11 Multicast Routing
Sending messages to well-defined groups that are numerically large in
size, but small compared to the network as a whole is called multicasting. To
do multicasting, group management is required, but that is not concern of
routers. What is of concern is that when a process joins a group, it informs its
host of this fact. It is important that routers know which of their hosts belong
to which group. Either hosts must inform their routers about changes in group
membership, or routers must query their hosts periodically.
To do multicast routing, each router computes a spanning tree covering all
other routers in the subnet. When a process sends a multicast packet to a
group, the first router examines its spanning tree ad prunes it, removing all
lines that do not lead to hosts that are members of the group.
The simplest way of pruning the panning tree is under Link State routing
when each router is aware of the complete subnet topology, including which
hosts belong to which groups. Then the spanning tree can be pruned by staring
at the end to each path and working toward the root, removing all routers that
do not belong the group in question.
A different pruning strategy is followed with distance vector routing,
reverse path forwarding algorithm. Whenever a router with no hosts interested
in a particular group and no connections to other routers receives a multicast
message for that group, it responds with a PRUNE message, telling the sender
not to send it any more multicasts for that group. When a router with no group
members among its own hosts has received such messages on all its lines, it,
too, can respond with a PRUINE message. In this way, the subnet is
One potential disadvantage of this algorithm is that it scales poorly to
An alternative design uses core-base trees. Here a single spanning tree
per group is computed, with the root (the core) near the middle of the group.
To send a multicast message, a host sends it to the core, which then does the
multicast along the spanning tree. Although this tree will not be optimal for all
sources, the reduction in storage costs from m trees to one tree per group is a