0% found this document useful (0 votes)
5 views190 pages

Computer Networks (Bcs502)

This document covers the Network Layer of the TCP/IP protocol suite, detailing its services, packet switching, and routing protocols such as RIP, OSPF, and BGP. It explains the processes of packetizing, routing, forwarding, and the differences between connectionless and connection-oriented services, including the datagram and virtual-circuit approaches. Additionally, it addresses issues like error control, flow control, congestion control, quality of service, and security in network communications.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views190 pages

Computer Networks (Bcs502)

This document covers the Network Layer of the TCP/IP protocol suite, detailing its services, packet switching, and routing protocols such as RIP, OSPF, and BGP. It explains the processes of packetizing, routing, forwarding, and the differences between connectionless and connection-oriented services, including the datagram and virtual-circuit approaches. Additionally, it addresses issues like error control, flow control, congestion control, quality of service, and security in network communications.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 190

Department of Computer Science & Engineering

COMPUTER NETWORKS[BCS502]

Dr. M S Sunitha Patel


Associate Professor
Dept. of Computer Science & Engineering
ATMECE, Mysuru
Department of Computer Science & Engineering

MODULE-3
Module-3

Network Layer: Network layer Services, Packet Switching,


IPv4 Address, IPv4 Datagram, IPv6 Datagram, Introduction
to Routing Algorithms, Unicast Routing Protocols: DVR, LSR,
PVR, Unicast Routing protocols: RIP, OSPF, BGP, Multicasting
Routing-MOSPF
Textbook: Ch. 18.1, 18.2, 18.4, 22.2,20.1-20.3, 21.3.2
Department of Computer Science & Engineering

Introduction to Network Layer

• The Network layer in the TCP/IP protocol suite is responsible for the host-to-
host delivery of datagrams.
• It provides services to the transport layer and receives services from the data-
link layer.
• In this chapter, we introduce the general concepts and issues in the network
layer
Department of Computer Science & Engineering

Network layer Services


 Figure shows the communication
between Alice and Bob at the network
layer.
 As shown in figure , the Internet is an
internetwork, a combination of LANs
and WANs
 The network layer is involved at the
source host, destination host, and all
routers in the path (R2, R4, R5, and
R7).
 At the source host (Alice), the
network layer accepts a datagram from
a transport layer, encapsulates the
datagram in a packet, and delivers the
packet to the data-link layer.
 At the destination host (Bob), the
packet is decapsulated, and the
datagram is extracted and delivered to
the corresponding transport layer.

Department of CSE- Data Science


Department of Computer Science & Engineering

 Although the source and destination hosts are involved in all five layers of the

TCP/IP suite, the routers use three layers if they are routing packets only;
 The transport and application layers are need for control purposes.
 A router in the path is normally shown with two data-link layers and two
physical layers, because it receives a packet from one network and delivers it to
another network.

Department of CSE- Data Science


Department of Computer Science & Engineering

Packetizing

 The first duty of the network layer is definitely packetizing: encapsulating the
payload (data received from upper layer) in a network-layer packet at the source
and decapsulating the payload from the network-layer packet at the destination.
 The network layer is doing the service of a carrier such as the postal office, which
is responsible for delivery of packages from a sender to a receiver without
changing or using the contents.
 The source host
‣ receives the payload from an upper-layer protocol, adds a header that contains
the source and destination addresses and some other information that is
required by the network-layer protocol and delivers the packet to the data-link
layer.
‣ is not allowed to change the content of the payload unless it is too large for
Department of CSE- Data Science
delivery and needs to be fragmented.
Department of Computer Science & Engineering

 The destination host


‣ receives the network-layer packet from its data-link layer, decapsulates the
packet, and delivers the payload to the corresponding upper-layer protocol.
‣ If the packet is fragmented at the source or at routers along the path, the
network layer is responsible for waiting until all fragments arrive, reassembling
them, and delivering them to the upper-layer protocol.
 The routers in the path are not allowed to decapsulate the packets they received
unless the packets need to be fragmented.
 The routers are not allowed to change source and destination addresses either.
 They just inspect the addresses for the purpose of forwarding the packet to the
next network on the path.

Department of CSE- Data Science


Department of Computer Science & Engineering

Routing and Forwarding

Routing
 The network layer is responsible for routing the packet from its source to the
destination.
 A physical network is a combination of networks (LANs and WANs) and routers
that connect them. This means that there is more than one route from the source to
the destination.
 The network layer is responsible for finding the best one among these possible
routes.
 The network layer needs to have some specific strategies for defining the best
route.
 This is done by running some routing protocols to help the routers coordinate their
knowledge about the neighborhood and to come up with consistent tables to be
Department of CSE- Data Science
used when a packet arrives.
Department of Computer Science & Engineering

Forwarding
 Forwarding can be defined as the action applied by each router when a packet
arrives at one of its interfaces.

 The decision-making table a router normally uses for applying this action is called
the forwarding table (or routing table)

 When a router receives a packet from one of its attached networks, it needs to
forward the packet to another attached network (in unicast routing) or to some
attached networks (in multicast routing).
 To make this decision, the router uses a

piece of information in the packet header,


which can be the destination address or a
label, to find the corresponding output
interface number in the forwarding table
Department of CSE- Data Science
Figure : Forwarding process
Department of Computer Science & Engineering

Other Services
Error Control

 Although error control also can be implemented in the network layer, the
designers of the network layer in the Internet ignored this issue for the data being
carried by the network layer. One reason for this decision is the fact that the packet
in the network layer may be fragmented at each router, which makes error
checking at this layer inefficient.

 The designers of the network layer, however, have added a checksum field to the
datagram to control any corruption in the header, but not in the whole packet. This
checksum may prevent any changes or corruptions in the header of the packet.

 Although the network layer in the Internet does not directly provide error control,
the Internet uses an auxiliary protocol, ICMP, that provides some kind of error
control if the packet is discarded or has some unknown information in the header.
Department of CSE- Data Science
Department of Computer Science & Engineering

Flow Control
 The network layer in the Internet does not directly provide any flow control.
 The packets are sent by the sender when they are ready, without any attention to
the readiness of the receiver.
 Reasons for the lack of flow control in the design of the network layer
1. Since there is no error control in this layer, the job of the network layer at the
receiver is so simple that it may rarely be overwhelmed.
2. The upper layers that use the service of the network layer can implement
buffers to receive data from the network layer as they are ready and do not have
to consume the data as fast as it is received.
3. Flow control is provided for most of the upper-layer protocols that use the
services of the network layer, so another level of flow control makes the
network layer more complicated and the whole system less efficient.

Department of CSE- Data Science


Department of Computer Science & Engineering

Congestion Control
 Congestion may occur if the number of packets sent by source computers is beyond the
capacity of the network or routers.

 In this situation, some routers may drop some of the packets.

 However, as more packets are dropped, the situation may become worse because, due to the
error control mechanism at the upper layers, the sender may send duplicates of the lost
packets.

 If the congestion continues, sometimes a situation may reach a point where the system
collapses and no packets are delivered.

Quality of Service

 As the Internet has allowed new applications such as multimedia communication (in
particular real-time communication of audio and video), the quality of service (QoS) of the
communication has become more and more important.

 To keep the network layer untouched, these provisions are mostly implemented in the upper
layer. Department of CSE- Data Science
Department of Computer Science & Engineering

Security

 Security was not a concern when the Internet was originally designed because it
was used by a small number of users at universities for research activities; other
people had no access to the Internet.

 The network layer was designed with no security provision.

 Today, however, security is a big concern. To provide security for a connectionless


network layer, we need to have another virtual level that changes the
connectionless service to a connection-oriented service.

 This virtual layer is called IPSec

Department of CSE- Data Science


Department of Computer Science & Engineering

Packet Switching

 At the network layer, a message from the upper layer is divided into manageable
packets and each packet is sent through the network.
 The source of the message sends the packets one by one; the destination of the
message receives the packets one by one.
 The destination waits for all packets belonging to the same message to arrive
before delivering the message to the upper layer.
 The connecting devices in a packet-switched network still need to decide how to
route the packets to the final destination
 Two different approaches to route the packets:
1. Datagram approach
2. Virtual circuit approach

Department of CSE- Data Science


Department of Computer Science & Engineering

Datagram Approach: Connectionless Service

 The network layer is only responsible for delivery of packets from the source to the
destination.

 The packets in a message may or may not travel the same path to their destination.

Fig: A connectionless packet-switched network


Department of CSE- Data Science
Department of Computer Science & Engineering

 When the network layer provides a connectionless service, each packet


traveling in the Internet is an independent entity; there is no relationship
between packets belonging to the same message.

 The switches in this type of network are called routers.

 A packet may be followed by a packet coming from the same or from a


different source.

Department of CSE- Data Science


Figure: Forwarding process in a router when used in a connectionless network
Department of Computer Science & Engineering

 Each packet is routed based on the information contained in its header: source
and destination addresses.

 The destination address defines where it should go; the source address defines
where it comes from.

 The router in this case routes the packet based only on the destination address.

 The source address may be used to send an error message to the source if the
packet is discarded.

 In the datagram approach, the forwarding decision is based on the destination


address of the packet.

Department of CSE- Data Science


Department of Computer Science & Engineering

Virtual-Circuit Approach: Connection-Oriented Service

 In virtual-circuit approach, there is a relationship between all packets belonging to


a message.
 Before all packets in a message can be sent, a virtual connection should be set up to
define the path for the packets.
 After connection setup, the packets can all follow the same path
 In this type of service, not only must the packet contain the source and destination
addresses, it must also contain a flow label, a virtual circuit identifier that defines
the virtual path the packet should follow.

Department of CSE- Data Science


Department of Computer Science & Engineering

Figure : A virtual-circuit packet-switched network


 In the virtual-circuit approach, the forwarding decision is based on the label
of the packet.

 To create a connection-oriented service, a three-phase process is used:


1.Setup
2.Data transfer
3.Teardown Department of CSE- Data Science
Department of Computer Science & Engineering

1. Setup Phase
 A router creates an entry for a
virtual circuit.
 For example, suppose source A
needs to create a virtual circuit
to destination B.
 Two auxiliary packets need to
be exchanged between the
sender and the receiver: the
request packet and the
acknowledgment packet.
Figure : Forwarding process in a router when
used in a virtual-circuit network
Request packet
 A request packet is sent from the source to the destination.
 This auxiliary packet carries the source and destination addresses.
Acknowledgment Packet
 A special packet, called the acknowledgment packet, completes the entries in the
switching tables Department of CSE- Data Science
Department of Computer Science & Engineering

Figure: Sending request packet in a virtual-circuit network


1. Source A sends a request packet to
router R1.
2. Router R1 receives the request packet.
It knows that a packet going from A to
B goes out through port 3. The router
creates an entry in its table for this
virtual circuit, but it is only able to fill
three of the four columns. The router
assigns the incoming port (1) and
chooses an available incoming label
(14) and the outgoing port (3). It does
not yet know the outgoing label, which
will be found during the
acknowledgment step. The router then
forwards the packet through port 3 to
router R3.

3. Router R3 receives the setup request packet. The same events happen here as at router R1;
three columns of the table are completed: in this case, incoming port (1), incoming label
(66), and outgoing port (3).
4. Router R4 receives the setup request packet. Again, three columns are completed:
incoming port (1), incoming label (22), and outgoing port (4).
5. Destination B receives the setup packet, and if it is ready to receive packets from A, it
assigns a label to the incoming packets
Department ofthat comeData
CSE- from Science
A, in this case 77. This label lets the
destination know that the packets come from A, and not from other sources.
Department of Computer Science & Engineering

Figure: Sending acknowledgments in a


1. The destination sends an acknowledgment to
virtual-circuit network
router R4. The acknowledgment carries the
global source and destination addresses so
the router knows which entry in the table is
to be completed. The packet also carries
label 77, chosen by the destination as the
incoming label for packets from A. Router
R4 uses this label to complete the outgoing
label column for this entry. Note that 77 is
the incoming label for destination B, but the
outgoing label for router R4.
2. Router R4 sends an acknowledgment to
router R3 that contains its incoming label in
the table, chosen in the setup phase. Router
R3 uses this as the outgoing label in the
table.

3. Router R3 sends an acknowledgment to router R1 that contains its incoming label in the
table, chosen in the setup phase. Router R1 uses this as the outgoing label in the table.
4. Finally router R1 sends an acknowledgment to source A that contains its incoming label in
the table, chosen in the setup phase.
5. The source uses this as the outgoing label for the data packets to be sent to destination B.
Department of Computer Science & Engineering

2. Data-Transfer Phase
 After all routers have created their forwarding table for a specific virtual circuit,
then the network-layer packets belonging to one message can be sent one after
another.  The source computer uses the
label 14, which it has received
from router R1 in the setup
phase.
 Router R1 forwards the packet
to router R3, but changes the
label to 66.
 Router R3 forwards the packet
to router R4, but changes the
label to 22.
 Finally, router R4 delivers the
packet to its final destination
with the label 77.
 All the packets in the message
follow the same sequence of
labels, and the packets arrive in
order at the destination.
Figure : Flow of one packet in an established
Department
virtual circuitof CSE- Data Science
Department of Computer Science & Engineering

3. Teardown Phase

 In the teardown phase, source A, after sending all packets to B, sends a special

packet called a teardown packet.

 Destination B responds with a confirmation packet.

 All routers delete the corresponding entries from their tables.

Department of CSE- Data Science


Department of Computer Science & Engineering

Ipv4 Addresses

 The identifier used in the IP layer of the TCP/IP protocol suite to identify the
connection of each device to the Internet is called the Internet address or IP address.
 An IPv4 address is a 32-bit address that uniquely and universally defines the
connection of a host or a router to the Internet.
 The IP address is the address of the connection, not the host or the router, because if
the device is moved to another network, the IP address may be changed.
 IPv4 addresses are unique in the sense that each address defines one, and only one,
connection to the Internet.
 If a device has two connections to the Internet, via two networks, it has two IPv4
addresses.
 IPv4 addresses are universal in the sense that the addressing system must be accepted
by any host that wants to be connected to the Internet.
Department of CSE- Data Science
Department of Computer Science & Engineering

Address Space
 An address space is the total number of addresses used by the protocol.
 If a protocol uses b bits to define an address, the address space is 2b because each
bit can have two different values (0 or 1).
 IPv4 uses 32-bit addresses, which means that the address space is 232 or
4,294,967,296 (more than four billion).
 If there were no restrictions, more than 4 billion devices could be connected to the
Internet.
Notation

 There are three common notations to show an IPv4 address:

1. Binary notation (base 2)

2. Dotted-decimal notation (base 256),

3. Hexadecimal notation (base 16).


Department of CSE- Data Science
Department of Computer Science & Engineering

Figure : Three different


notations in IPv4 addressing

 In binary notation, an IPv4 address is displayed as 32 bits.


 To make the address more readable, one or more spaces are usually inserted
between each octet (8 bits). Each octet is often referred to as a byte.
 To make the IPv4 address more compact and easier to read, it is usually written in
decimal form with a decimal point (dot) separating the bytes. This format is
referred to as dotted-decimal notation.
 Note that because each byte (octet) is only 8 bits, each number in the dotted-
decimal notation is between 0 and 255.
 In hexadecimal notation, each hexadecimal digit is equivalent to four bits. This
means that a 32-bit address has 8 hexadecimal digits. This notation is often used in
network programming.
Department of Computer Science & Engineering

Hierarchy in Addressing

 In any communication network that involves delivery, such as a telephone


network or a postal network, the addressing system is hierarchical.
‣ postal address (mailing address) includes the country, state, city, street, house
number, and the name of the mail recipient.
‣ a telephone number is divided into the country code, area code, local
exchange, and the connection.
 A 32-bit IPv4 address is also hierarchical, but divided only into two parts.
‣ The first part of the address, called the prefix, defines the network
‣ The second part of the address, called the suffix, defines the node (connection
of a device to the Internet).

Department of CSE- Data Science


Department of Computer Science & Engineering

 The prefix length is n bits and the suffix length is (32 − n) bits.

 A prefix can be fixed length or variable length.

 The network identifier in the IPv4 was first designed as a fixed-length prefix. This
scheme, which is now obsolete, is referred to as classful addressing.

 The new scheme, which is referred to as classless addressing, uses a variable-


length network prefix.

Figure 18.17 Hierarchy


Department of CSE- in addressing
Data Science
Department of Computer Science & Engineering

Classful Addressing

 When the Internet started, an IPv4 address was designed with a fixed-length
prefix, but to accommodate both small and large networks, three fixed-length
prefixes were designed instead of one (n = 8, n = 16, and n = 24).
 The whole address space was divided into five classes (class A, B, C, D, and E)

Figure :Occupation of the of


Department address
CSE-space
Datain Science
classful addressing
Department of Computer Science & Engineering

 In class A, the network length is 8 bits, but since the first bit, which is 0, defines
the class, we can have only seven bits as the network identifier. This means there
are only 27 = 128 networks in the world that can have a class A address.
 In class B, the network length is 16 bits, but since the first two bits, which are
(10)2, define the class, we can have only 14 bits as the network identifier. This
means there are only 214 = 16,384 networks in the world that can have a class B
address.
 All addresses that start with (110)2 belong to class C. In class C, the network
length is 24 bits, but since three bits define the class, we can have only 21 bits as
the network identifier. This means there are 221 = 2,097,152 networks in the world
that can have a class C address.
 Class D is not divided into prefix and suffix. It is used for multicast addresses.
 All addresses that start with 1111 in binary belong to class E. As in Class D,
Department of CSE- Data Science
Class E is not divided into prefix and suffix and is used as reserve.
Department of Computer Science & Engineering

Address Depletion
 The reason that classful addressing has become obsolete is address depletion.
Since the addresses were not distributed properly, the Internet was faced with
the problem of the addresses being rapidly used up, resulting in no more
addresses available for organizations and individuals that needed to be
connected to the Internet.
 Let us think about class A. This class can be assigned to only 128 organizations
in the world, but each organization needs to have a single network (seen by the
rest of the world) with 16,777,216 nodes (computers in this single network).
Since there may be only a few organizations that are this large, most of the
addresses in this class were wasted (unused)

Department of CSE- Data Science


Department of Computer Science & Engineering

 Class B addresses were designed for midsize organizations, but many of the
addresses in this class also remained unused.
 Class C addresses have a completely different flaw in design. The number of
addresses that can be used in each network (256) was so small that most
companies were not comfortable using a block in this address class.
 Class E addresses were almost never used, wasting the whole class.

Department of CSE- Data Science


Department of Computer Science & Engineering

Subnetting and Supernetting


 To alleviate address depletion, two strategies were proposed and, to some extent,
implemented: subnetting and supernetting.
 In subnetting, a class A or class B block is divided into several subnets.
 Each subnet has a larger prefix length than the original network.
 For example, if a network in class A is divided into four subnets, each subnet has a
prefix of nsub = 10.
 At the same time, if all of the addresses in a network are not used, subnetting
allows the addresses to be divided among several organizations.
 This idea did not work because most large organizations were not happy about
dividing the block and giving some of the unused addresses to smaller organizations.

Department of CSE- Data Science


Department of Computer Science & Engineering

 Supernetting was devised to combine several class C blocks into a larger


block to be attractive to organizations that need more than the 256 addresses
available in a class C block.
 This idea did not work either because it makes the routing of packets more
difficult.
Advantage of Classful Addressing
 Although classful addressing had several problems and became obsolete, it had
one advantage: Given an address, we can easily find the class of the address
and, since the prefix length for each class is fixed, we can find the prefix length
immediately.
 The prefix length in classful addressing is inherent in the address; no extra
information is needed to extract the prefix and the suffix.

Department of CSE- Data Science


Department of Computer Science & Engineering

Example
Find the class of each address.
a. 00000001 00001011 00001011 11101111
b. 11000001 10000011 00011011 11111111
c. 14.23.120.8
d. 252.5.15.111

Solution
a. The first bit is 0. This is a class A address.
b. The first 2 bits are 1; the third bit is 0. This is a class C address.
c. The first byte is 14; the class is A.
d. The first byte is 252; the class is E.

Department of CSE- Data Science


Department of Computer Science & Engineering

Classless Addressing
 In classless addressing, the whole address space is divided into variable length
blocks.
 The prefix in an address defines the block (network); the suffix defines the node
(device).
 Theoretically, we can have a block of 20, 21, 22, . . . , 232 addresses.
 One of the restrictions is that the number of addresses in a block needs to be a
power of 2.
 An organization can be granted one block of addresses.

Figure : Variable-length blocks in classless addressing

The prefix length in classless addressing is variable. We can have a prefix length
that ranges from 0 to 32.
The size of the network is inversely proportional to the length of the prefix. A
small prefix means a larger network; a large prefix means a smaller network.
Department of CSE- Data Science
Department of Computer Science & Engineering

Prefix Length: Slash Notation


 Since the prefix length is not inherent in the address, we need to separately give
the length of the prefix.
 In this case, the prefix length, n, is added to the address, separated by a slash. The
notation is informally referred to as slash notation and formally as classless
interdomain routing or CIDR (pronounced cider) strategy.

Department of CSE- Data Science


Department of Computer Science & Engineering

Extracting Information from an Address


 Given any address in the block, we like to know three pieces of information : the
number of addresses, the first address in the block, and the last address.
 Since the value of prefix length, n, is given, we can easily find these three pieces
of information

1. The number of addresses in the block is found as N = 232−n.


2. To find the first address, we keep the n leftmost bits and set the (32 − n)
rightmost bits all to 0s.
3. To find the last address, we keep the n leftmost bits and set the (32 − n)
rightmost bits all to 1s.
Department of CSE- Data Science
Department of Computer Science & Engineering

Example 1

A classless address is given as 167.199.170.82/27. We can find the three pieces of


information as follows.

1. The number of addresses in the network is 232 − n = 25 = 32 addresses.

2. The first address can be found by keeping the first 27 bits and changing the rest
of the bits to 0s.

Address: 167.199.170.82/27 10100111 11000111 1 0101010 01010010

First address: 167.199.170.64/27 10100111 11000111 10101010 01000000


3. The last address can be found by keeping the first 27 bits and changing the rest
of the bits to 1s.
Last address: 167.199.170.95/27 10100111 11000111 10101010 01011111

Department of CSE- Data Science


Department of Computer Science & Engineering

Address Mask

 Another way to find the first and last addresses in the block is to use the address
mask.

 The address mask is a 32-bit number in which the n leftmost bits are set to 1s and
the rest of the bits (32 − n) are set to 0s.

 A computer can easily find the address mask because it is the complement of (232 −
n− 1).

 The reason for defining a mask in this way is that it can be used by a computer
program to extract the information in a block, using the three bit-wise operations
NOT, AND, and OR.

1. The number of addresses in the block N = NOT (mask) + 1.

2. The first address in the block = (Any address in the block) AND (mask).

3. The last address in the block = (Any


Department address
of CSE- in the
Data block) OR [(NOT (mask)].
Science
Department of Computer Science & Engineering

Example 2

We repeat Example 1 using the mask. The mask in dotted-decimal notation is


256.256.256.224. The AND, OR, and NOT operations can be applied to individual
bytes

• Address: 167.199.170.82/27 10100111 11000111 10101010 01010010

• First address: 167.199.170.64/27 10100111 11000111 10101010 01000000

• Address: 167.199.170.82/27 10100111 11000111 10101010 01011111

• Last address: 167.199.170.95/27 10100111 11000111 10101010 01011111

• Number of addresses in the block: N = NOT (mask) + 1= 0.0.0.31+1 = 32 addresses

• First address: First = (address) AND (mask) = 167.199.170.82

• Last address: Last = (address) OR (NOT mask) = 167.199.170.255

Department of CSE- Data Science


Department of Computer Science & Engineering

Network Address
 Given any address, we can find all information about the block.
 The first address, the network address, is particularly important because it is used
in routing a packet to its destination network.
 For the moment, let us assume that an internet is made of m networks and a router
with m interfaces.
 When a packet arrives at the router from any source host, the router needs to know
to which network the packet should be sent: from which interface the packet should
be sent out.
 After the network address has been found, the router consults its forwarding table
to find the corresponding interface from which the packet should be sent out.

Department of CSE- Data Science


Department of Computer Science & Engineering

Figure : Network address


 The network address is actually the identifier of the network; each network is identified
by its network address
Department of CSE- Data Science
Department of Computer Science & Engineering

Block Allocation
 The next issue in classless addressing is block allocation. How are the blocks
allocated?
 The ultimate responsibility of block allocation is given to a global authority called
the Internet Corporation for Assigned Names and Numbers (ICANN).
 ICANN does not normally allocate addresses to individual Internet users. It
assigns a large block of addresses to an ISP.
 For the proper operation of the CIDR, two restrictions need to be applied to the
allocated block.
1. The number of requested addresses, N, needs to be a power of 2. The reason is
that N = 232 − n or n = 32 − log2N. If N is not a power of 2, we cannot have an
integer value for n.

Department of CSE- Data Science


Department of Computer Science & Engineering

2. The requested block needs to be allocated where there is an adequate number of


contiguous addresses available in the address space. However, there is a
restriction on choosing the first address in the block. The first address needs to
be divisible by the number of addresses in the block. The reason is that the first
address needs to be the prefix followed by (32 − n) number of 0s. The decimal
value of the first address is then

Example 3
An ISP has requested a block of 1000 addresses.
 Since 1000 is not a power of 2, 1024 addresses are granted. The prefix length is
calculated as n = 32 − log21024 = 22.
 An available block, 18.14.12.0/22, is granted to the ISP.
 It can be seen that the first address in decimal is 302,910,464, which is divisible
by 1024.

Department of CSE- Data Science


Department of Computer Science & Engineering

Subnetting
 More levels of hierarchy can be created using subnetting.
 An organization (or an ISP) that is granted a range of addresses may divide the range
into several subranges and assign each subrange to a subnetwork (or subnet).
 A subnetwork can be divided into several sub-subnetworks. A sub-subnetwork can be
divided into several sub-sub-subnetworks, and so on.

Designing Subnets
• The subnetworks in a network should be carefully designed to enable the routing
of packets.
• We assume the total number of addresses granted to the organization is N, the
prefix length is n, the assigned number of addresses to each subnetwork is Nsub,
and the prefix length for each subnetwork is nsub.
Department of Computer Science & Engineering

 The following steps need to be carefully followed to guarantee the proper


operation of the subnetworks.
1. The number of addresses in each subnetwork should be a power of 2.
2. The prefix length for each subnetwork should be found using the following
formula:
first address = (prefix in decimal) × 232 − n = (prefix in decimal) × N.
nsub = 32 − log2Nsub

3. The starting address in each subnetwork should be divisible by the number of


addresses in that subnetwork. This can be achieved if we first assign addresses to
larger subnetworks.
Department of Computer Science & Engineering

Example

Department of CSE- Data Science


Department of Computer Science & Engineering

 If we add all addresses in the previous subblocks, the result is 208 addresses,
which means 48 addresses are left in reserve.
 The first address in this range is 14.24.74.208. The last address is 14.24.74.255

Department of CSE- Data Science


Department of Computer Science & Engineering

Address Aggregation
 One of the advantages of the CIDR strategy is address aggregation (sometimes
called address summarization or route summarization).
 When blocks of addresses are combined to create a larger block, routing can be
done based on the prefix of the larger block.
 ICANN assigns a large block of addresses to an ISP. Each ISP in turn divides its
assigned block into smaller subblocks and grants the subblocks to its customers.

Department of CSE- Data Science


Department of Computer Science & Engineering

Figure :Example of address aggregation

 Figure shows how four small blocks of addresses are assigned to four
organizations by an ISP.
 The ISP combines these four blocks into one single block and advertises the larger
block to the rest of the world.
 Any packet destined for this larger block should be sent to this ISP. It is the
responsibility of the ISP to forward the packet to the appropriate organization.
 This is similar to routing we can find in a postal network. All packages coming
from outside a country are sent first to the capital and then distributed to the
Department of CSE- Data Science
corresponding destination.
Department of Computer Science & Engineering

Special Addresses
 Five special addresses that are used for special purposes:
1. This-host address
2. Limited-broadcast address
3. Loopback address
4. Private addresses
5. Multicast addresses
1. This-host Address
 The only address in the block 0.0.0.0/32 is called the this-host address.
 It is used whenever a host needs to send an IP datagram but it does not know its
own address to use as the source address.

Department of CSE- Data Science


Department of Computer Science & Engineering

2. Limited-broadcast Address
 The only address in the block 255.255.255.255/32 is called the limited-broadcast
address.
 It is used whenever a router or a host needs to send a datagram to all devices in a
network.
 The routers in the network, however, block the packet having this address as the
destination; the packet cannot travel outside the network.
3. Loopback Address
 The block 127.0.0.0/8 is called the loopback address.
 A packet with one of the addresses in this block as the destination address never
leaves the host; it will remain in the host.
 Any address in the block is used to test a piece of software in the machine. For
example, we can write a client and a server program in which one of the
addresses in the block is used as the server address.
 We can test the programs using the same host to see if they work before running
them on different computers.

Department of CSE- Data Science


Department of Computer Science & Engineering

4. Private Addresses
 Four blocks are assigned as private addresses: 10.0.0.0/8, 172.16.0.0/12,
192.168.0.0/16, and 169.254.0.0/16.
5. Multicast Addresses
 The block 224.0.0.0/4 is reserved for multicast addresses.
Department of Computer Science & Engineering

Dynamic Host Configuration Protocol (DHCP)


 Address assignment in an organization can be done automatically using the Dynamic
Host Configuration Protocol (DHCP).
 DHCP is an application-layer program, using the client-server paradigm, that actually
helps TCP/IP at the network layer.
 DHCP has found such widespread use in the Internet that it is often called a plug and-
play protocol. In can be used in many situations.

‣ A network manager can configure DHCP to assign permanent IP addresses to the


host and routers.
‣ DHCP can also be configured to provide temporary, on demand, IP addresses to
hosts. The second capability can provide a temporary IP address to a traveller to
connect her laptop to the Internet while she is staying in the hotel. It also allows an
ISP with 1000 granted addresses to provide services to 4000 households, assuming
not more than one-forth of customers use the Internet at the same time.
Department of Computer Science & Engineering

 Four pieces of information are normally needed for communication

1. The computer address

2. Prefix

3. Address of a router

4. IP address of a name server.

DHCP can be used to provide these pieces of information to the host.


Department of Computer Science & Engineering

DHCP Message Format


DHCP is a client-server protocol in which the client sends a request
message and the server returns a response message.

 The 64-byte option field has a dual purpose. It can carry either additional information or
some specific vendor information.
 The server uses a number, called a magic cookie, in the format of an IP address with the
value of 99.130.83.99.
 When the client finishes reading the message, it looks for this magic cookie.
 If present, the next 60 bytes are options.
Department of Computer Science & Engineering

 An option is composed of three fields: a 1-byte tag field, a 1-byte length field, and
a variable-length value field.

 There are several tag fields that are mostly used by vendors. If the tag field is 53,
the value field defines one of the 8 message types

Figure : Option format


Department of Computer Science & Engineering
DHCP Operation

 The joining host creates a DHCPDISCOVER message in which only the transaction- ID
field is set to a random number. No other field can be set because the host has no knowledge
with which to do so.
 This message is encapsulated in a UDP user datagram with the source port set to 68 and the
destination port set to 67.
 The user datagram is encapsulated in an IP datagram with the source address set to 0.0.0.0
(“this host”) and the destination address set to 255.255.255.255 (broadcast address).
 The reason is that the joining host knows neither its own address nor the server address.
Department of Computer Science & Engineering

DHCP Operation contd..


 The DHCP server or servers responds with
a DHCPOFFER message in which the
your address field defines the offered IP
address for the joining host and the server
address field includes the IP address of the
server.
 The message also includes the lease time
for which the host can keep the IP address.
 This message is encapsulated in a user
datagram with the same port numbers, but
in the reverse order.
 The user datagram in turn is encapsulated
in a datagram with the server address as
the source IP address, but the destination
address is a broadcast address, in which
the server allows other DHCP servers to
receive the offer and give a better offer if
they can.
Department of Computer Science & Engineering

DHCP Operation

 The joining host receives one or more


offers and selects the best of them.
 The joining host then sends a
DHCPREQUEST message to the server
that has given the best offer. The fields
with known value are set.
 The message is encapsulated in a user
datagram with port numbers as the first
message.
 The user datagram is encapsulated in an IP
datagram with the source address set to the
new client address, but the destination
address still is set to the broadcast address
to let the other servers know that their offer
was not accepted.
Department of Computer Science & Engineering

DHCP Operation
 Finally, the selected server responds with a
DHCPACK message to the client if the
offered IP address is valid.
 If the server cannot keep its offer (for
example, if the address is offered to another
host in between), the server sends a
DHCPNACK message and the client needs
to repeat the process.
 This message is also broadcast to let other
servers know that the request is accepted or
rejected.
Department of Computer Science & Engineering

Two Well-Known Ports


 The two well-known ports used by Dynamic Host Configuration Protocol (DHCP)
are port 67 for the server and port 68 for the client:
 Port 67: Used by the DHCP server to listen for incoming messages from the DHCP
client.
 Port 68: Used by the DHCP client to send messages to the DHCP server.
Using FTP
 The server does not send all of the information that a client may need for joining the
network.
 In the DHCPACK message, the server defines the pathname of a file in which the
client can find complete information such as the address of the DNS server.
 The client can then use a file transfer protocol to obtain the rest of the needed
information.
Department of Computer Science & Engineering

Error Control
 DHCP uses the service of UDP, which is not reliable. To provide error control,
DHCP uses two strategies.
 First, DHCP requires that UDP use the checksum
 Second, the DHCP client uses timers and a retransmission policy if it does not
receive the DHCP reply to a request.
 However, to prevent a traffic jam when several hosts need to retransmit a
request (for example, after a power failure), DHCP forces the client to use a
random number to set its timers.
Department of Computer Science & Engineering

Transition States
 To provide dynamic address allocation, the DHCP client acts as a state machine
that performs transitions from one state to another depending on the messages it
receives or sends.
Department of Computer Science & Engineering

 When the DHCP client first starts, it is in the INIT state (initializing state).
 The client broadcasts a discover message. When it receives an offer, the client
goes to the SELECTING state. While it is there, it may receive more offers.
 After it selects an offer, it sends a request message and goes to the REQUESTING
state.
 If an ACK arrives while the client is in this state, it goes to the BOUND state and
uses the IP address.
 When the lease is 50 percent expired, the client tries to renew it by moving to the
RENEWING state.
 If the server renews the lease, the client moves to the BOUND state again.
 If the lease is not renewed and the lease time is 75 percent expired, the client
moves to the REBINDING state.
Department of Computer Science & Engineering

 If the server agrees with the lease (ACK message arrives), the client moves to
the BOUND state and continues using the IP address; otherwise, the client
moves to the INIT state and requests another IP address.
 Note that the client can use the IP address only when it is in the BOUND,
RENEWING, or REBINDING state.
 The above procedure requires that the client uses three timers: renewal timer
(set to 50 percent of the lease time), rebinding timer (set to 75 percent of the
lease time), and expiration timer (set to the lease time).
Department of Computer Science & Engineering

Network Address Resolution


 Network Address Translation (NAT) is a process in which one or more local IP
addresses are translated into one or more Global IP addresses and vice versa to
provide Internet access to the local hosts.

 Network Address Translation (NAT) is a process that enables one, unique IP


address to represent an entire group of computers.

 NAT generally operates on a router or firewall.

 It’s a way to map multiple private addresses inside a local network to a public IP
address before transferring the information onto the internet.

 Organizations that want multiple devices to employ a single IP address use NAT,
as do most home routers.
Department of Computer Science & Engineering

 Network Address Translation (NAT) allows a site to use a set of private


addresses for internal communication and a set of global Internet addresses (at
least one) for communication with the rest of the world.
 The site must have only one connection to the global Internet through a NAT-
capable router that runs NAT software.

Fig: simple implementation of NAT

 The private network uses private addresses. The router that connects the network
to the global address uses one private address and one global address.
 The private network is invisible to the rest of the Internet; the rest of the Internet
sees only the NAT router with the address 200.24.5.8.
Department of Computer Science & Engineering

Address Translation

 All of the outgoing packets go through the NAT router, which replaces the source
address in the packet with the global NAT address.

 All incoming packets also pass through the NAT router, which replaces the
destination address in the packet (the NAT router global address) with the
appropriate private address.

Fig: Address translation


Department of Computer Science & Engineering

Translation Table
 how does the NAT router know the destination address for a packet coming from
the Internet?
 There may be tens or hundreds of private IP addresses, each belonging to one
specific host. The problem is solved if the NAT router has a translation table.
Using One IP Address
 In its simplest form, a translation table has only two columns: the private address
and the external address (destination address of the packet).
 When the router translates the source address of the outgoing packet, it also makes
note of the destination address— where the packet is going.
 When the response comes back from the destination, the router uses the source
address of the packet (as the external address) to find the private address of the
packet.
Department of Computer Science & Engineering

Figure : Translation
 In this strategy, communication must always be initiated by the private network.
 The NAT mechanism described requires that the private network start the
communication.
Department of Computer Science & Engineering

Using a Pool of IP Addresses

 The use of only one global address by the NAT router allows only one private-
network host to access a given external host.

 To remove this restriction, the NAT router can use a pool of global addresses.

 For example, instead of using only one global address (200.24.5.8), the NAT router
can use four addresses (200.24.5.8, 200.24.5.9, 200.24.5.10, and 200.24.5.11).

 In this case, four private-network hosts can communicate with the same external
host at the same time because each pair of addresses defines a separate connection.

 Drawbacks.

‣ No more than four connections can be made to the same destination.

‣ No private-network host can access two external server programs (e.g., HTTP and
TELNET) at the same time.

‣ Two private-network hosts cannot access the same external server program (e.g.,
Department of Computer Science & Engineering

Using Both IP Addresses and Port Addresses


 To allow a many-to-many relationship between private-network hosts and
external server programs, we need more information in the translation table.
 For example, suppose two hosts inside a private network with addresses
172.18.3.1 and 172.18.3.2 need to access the HTTP server on external host
25.8.3.2.
 If the translation table has five columns, instead of two, that include the source
and destination port addresses and the transport-layer protocol, the ambiguity is
eliminated.
Department of Computer Science & Engineering

Table Five-column translation table

 When the response from HTTP comes back, the combination of source address
(25.8.3.2) and destination port address (1401) defines the private network host to which
the response should be directed.
 Also that for this translation to work, the ephemeral port addresses (1400 and 1401) must
be unique.
Department of Computer Science & Engineering

IPv6 Datagram
 The main reason for migration from IPv4 to IPv6 is the small size of the address
space in IPv4
 The change of the IPv6 address size requires the change in the IPv4 packet format
 The following shows other changes implemented in the protocol in addition to
changing address size and format.
‣ Better header format. IPv6 uses a new header format in which options are
separated from the base header and inserted, when needed, between the base header
and the data. This simplifies and speeds up the routing process because most of the
options do not need to be checked by routers.
‣ New options. IPv6 has new options to allow for additional functionalities.
‣ Allowance for extension. IPv6 is designed to allow the extension of the protocol if
required by new technologies or applications.
Department of Computer Science & Engineering

‣ Support for resource allocation. In IPv6, the type-of-service field has been
removed, but two new fields, traffic class and flow label, have been added to
enable the source to request special handling of the packet. This mechanism can
be used to support traffic such as real-time audio and video.
‣ Support for more security. The encryption and authentication options in IPv6
provide confidentiality and integrity of the packet.
Packet Format
 Each packet is composed of a base header followed by the payload.
 The base header occupies 40 bytes, whereas payload can be up to 65,535 bytes
of information.
Department of Computer Science & Engineering

 Version. The 4-bit version field


defines the version number of
the IP. For IPv6, the value is 6.

 Traffic class. The 8-bit traffic class field is used to distinguish different payloads
with different delivery requirements. It replaces the type-of-service field in IPv4.
 Flow label. The flow label is a 20-bit field that is designed to provide special
handling for a particular flow of data. We will discuss this field later.
 Payload length. The 2-byte payload length field defines the length of the IP
datagram excluding the header. Note that IPv4 defines two fields related to the
length: header length and total length. In IPv6, the length of the base header is
fixed (40 bytes); only the length of the payload needs to be defined.
Department of Computer Science & Engineering

 Next header. The next header is an 8-bit field defining the type of the first
extension header (if present) or the type of the data that follows the base header in
the datagram.
 Hop limit. The 8-bit hop limit field serves the same purpose as the TTL field in
IPv4.
 Source and destination addresses. The source address field is a 16-byte (128-bit)
Internet address that identifies the original source of the datagram. The destination
address field is a 16-byte (128-bit) Internet address that identifies the destination
of the datagram.
Department of Computer Science & Engineering

 The payload in IPv6 means a


combination of zero or more extension
headers (options) followed by the data
from other protocols (UDP, TCP, and so
on).

 In IPv6, options, which are part of the header in IPv4, are designed as extension
headers.
 The payload can have as many extension headers as required by the situation.
 Each extension header has two mandatory fields, next header and the length,
followed by information related to the particular option.
 Each next header field value (code) defines the type of the next header (hop-by-
hop option, source routing option, . . .); the last next header field defines the
protocol (UDP, TCP, . . .) that is carried by the datagram.
Department of Computer Science & Engineering

Concept of Flow and Priority in IPv6


 In version 6, the flow label has been directly added to the format of the IPv6
datagram to allow us to use IPv6 as a connection-oriented protocol.
 To a router, a flow is a sequence of packets that share the same characteristics,
such as traveling the same path, using the same resources, having the same kind
of security, and so on.
 A router that supports the handling of flow labels has a flow label table.
 A flow label can be used to speed up the processing of a packet by a router.
 When a router receives a packet, instead of consulting the forwarding table and
going through a routing algorithm to define the address of the next hop, it can
easily look in a flow label table for the next hop.
Department of Computer Science & Engineering

Fragmentation and Reassembly

 IPv6 datagrams can be fragmented only by the source, not by the routers; the
reassembly takes place at the destination.

 The fragmentation of packets at routers is not allowed to speed up the processing


of packets in the router. The fragmentation of a packet in a router needs a lot of
processing.

 The packet needs to be fragmented, all fields related to the fragmentation need to
be recalculated
 In IPv6, the source can check the size of the packet and make the decision to
fragment the packet or not.
 When a router receives the packet, it can check the size of the packet and drop it
if the size is larger than allowed by the MTU of the network ahead.
 The router then sends a packet-too-big ICMPv6 error message to inform the
source.
Department of Computer Science & Engineering

Extension Header
 An IPv6 packet is made of a base header and some extension headers.
 The length of the base header is fixed at 40 bytes. However, to give more
functionality to the IP datagram, the base header can be followed by up to six
extension headers.

 Many of these headers are options in IPv4. Six types of extension headers have
been defined.
Department of Computer Science & Engineering

Hop-by-Hop Option
 The hop-by-hop option is used when the source needs to pass information to all routers
visited by the datagram.
 For example, perhaps routers must be informed about certain management, debugging, or
control functions. Or, if the length of the datagram is more than the usual 65,535 bytes,
routers must have this information.
 So far, only three hop by hop options have been defined:.
‣ Pad1. This option is 1 byte long and is designed for alignment purposes. Some options
need to start at a specific bit of the 32-bit word. If an option falls short of this requirement
by exactly one byte, Pad1 is added.
‣ PadN. PadN is similar in concept to Pad1. The difference is that PadN is used when 2 or
more bytes are needed for alignment.
‣ Jumbo payload. Recall that the length of the payload in the IP datagram can be a
maximum of 65,535 bytes. However, if for any reason a longer payload is required, we
can use the jumbo payload option to define this longer length.
Department of Computer Science & Engineering

Destination Option
 The destination option is used when the source needs to pass information to the
destination only.
 Intermediate routers are not permitted access to this information.
 The format of the destination option is the same as the hop-by-hop option. So
far, only the Pad1 and PadN options have been defined.
Source Routing
 The source routing extension header combines the concepts of the strict source
route and the loose source route options of IPv4.
Department of Computer Science & Engineering

Fragmentation
 In IPv4, the source or a router is required to fragment if the size of the datagram is
larger than the MTU of the network over which the datagram travels.
 In IPv6, only the original source can fragment. A source must use a Path MTU
Discovery technique to find the smallest MTU supported by any network on the
path.
 The source then fragments using this knowledge. If the source does not use a Path
MTU Discovery technique, it fragments the datagram to a size of 1280 bytes or
smaller.
 This is the minimum size of MTU required for each network connected to the
Internet.
Department of Computer Science & Engineering

Authentication

 The authentication extension header has a dual purpose: it validates the message

sender and ensures the integrity of data.

 The former is needed so the receiver can be sure that a message is from the
genuine sender and not from an imposter.

 The latter is needed to check that the data is not altered in transition by some
hacker.

Encrypted Security Payload

 The encrypted security payload (ESP) is an extension that provides


confidentiality and guards against eavesdropping.
Department of Computer Science & Engineering

Comparison of Options between IPv4 and IPv6


 The following shows a quick comparison between the options used in IPv4 and the
options used in IPv6 (as extension headers).
‣ The no-operation and end-of-option options in IPv4 are replaced by Pad1 and
PadN options in IPv6.
‣ The record route option is not implemented in IPv6 because it was not used.
‣ The timestamp option is not implemented because it was not used.
‣ The source route option is called the source route extension header in IPv6.
‣ The fragmentation fields in the base header section of IPv4 have moved to the
fragmentation extension header in IPv6.
‣ The authentication extension header is new in IPv6.
‣ The encrypted security payload extension header is new in IPv6.
Department of Computer Science & Engineering

Introduction to Routing Algorithms

 In an internet, the goal of the network layer is to deliver a datagram from its
source to its destination or destinations.
‣ If a datagram is destined for only one destination (one-to-one delivery), we have
unicast routing.

‣ If the datagram is destined for several destinations (one-to-many delivery), we


have multicast routing.
Department of Computer Science & Engineering

Unicast Routing
General Idea
 In unicast routing, a packet is routed, hop by hop, from its source to its
destination by the help of forwarding tables.
 The source host needs no forwarding table because it delivers its packet to the
default router in its local network.
 The destination host needs no forwarding table either because it receives the
packet from its default router in its local network.
 This means that only the routers that glue together the networks in the internet
need forwarding tables.
 There are several routes that a packet can travel from the source to the
destination; what must be determined is which route the packet should take.
Department of Computer Science & Engineering

An Internet as a Graph

 To find the best route, an internet can be


modeled as a graph. A graph in computer
science is a set of nodes and edges (lines) that
connect the nodes.
 To model an internet as a graph, we can think of
each router as a node and each network between
a pair of routers as an edge.
 An internet is, in fact, modeled as a weighted
graph, in which each edge is associated with a
cost.
Figure: An internet and its graphical
 If a weighted graph is used to represent a
representation
geographical area, the nodes can be cities and
the edges can be roads connecting the cities; the
weights, in this case, are distances between
cities.
 There is a cost associated with each edge. If
there is no edge between the nodes, the cost is
infinity.
Department of Computer Science & Engineering

Least-Cost Routing
 When an internet is modeled as a weighted graph, one of the ways to interpret the
best route from the source router to the destination router is to find the least cost
between the two.
 The source router chooses a route to the destination router in such a way that the
total cost for the route is the least cost among all possible routes.

 In Figure the best route between A and E is A-B-E, with the cost of 6.
 This means that each router needs to find the least-cost route between itself and
all the other routers to be able to route a packet using this criteria.
Department of Computer Science & Engineering

Least-Cost Trees
 If there are N routers in an internet, there are (N − 1) least-cost paths from each router to
any other router.
 This means we need N × (N − 1) least-cost paths for the whole internet.
 If we have only 10 routers in an internet, we need 90 least-cost paths.
 A better way to see all of these paths is to combine them in a least-cost tree.
 A least-cost tree is a tree with the source router as the root that spans the whole graph
(visits all other nodes) and in which the path between the root and any other node is the
shortest.
 In this way, we can have only one shortest-path tree for each node; we have N least-cost
trees for the whole internet.
Department of Computer Science & Engineering

 The least-cost trees for a weighted graph can have several properties if they are created
using consistent criteria.
1. The least-cost route from X to Y in X’s tree is the inverse of the least-cost route from Y to
X in Y’s tree; the cost in both directions is the same. For example, in Figure, the route
from A to F in A’s tree is (A → B → E → F), but the route from F to A in F’s tree is (F →
E → B → A), which is the inverse of the first route. The cost is 8 in each case.
2. Instead of travelling from X to Z using X’s tree, we can travel from X to Y using X’s tree
and continue from Y to Z using Y’s tree. For example, in Figure , we can go from A to G
in A’s tree using the route (A → B → E → F → G). We can also go from A to E in A’s tree
(A → B → E) and then continue in E’s tree using the route (E → F → G). The
combination of the two routes in the second case is the same route as in the first case. The
cost in the first case is 9; the cost in the second case is also 9 (6 + 3).
Department of Computer Science & Engineering

Routing Algorithms

1. Distance-Vector Routing
2. Link-State Routing
3. Path-Vector Routing

Department of CSE- Data Science


Department of Computer Science & Engineering

Distance-Vector Routing
 In distance-vector routing, the first thing each node creates is its own least-cost tree with
the rudimentary information it has about its immediate neighbors.
 The incomplete trees are exchanged between immediate neighbors to make the trees more
and more complete and to represent the whole internet.
 In distance-vector routing, a router continuously tells all of its neighbors what it knows
about the whole internet (although the knowledge can be incomplete).
Bellman-Ford Equation
 The heart of distance-vector routing is the famous Bellman-Ford equation.
 This equation is used to find the least cost (shortest distance) between a source node, x,
and a destination node, y, through some intermediary nodes (a, b, c, . . .) when the costs
between the source and the intermediary nodes and the least costs between the
intermediary nodes and the destination are given.
Department of Computer Science & Engineering

 The general case in which Dij is the shortest distance and cij is the cost between nodes i
and j.

 In distance-vector routing, normally we want to update an existing least cost with a least
cost through an intermediary node, such as z, if the latter is shorter. In this case, the
equation becomes simpler, as shown below:

Figure : Graphical idea behind Bellman-Ford equation


Department of Computer Science & Engineering

Distance Vectors
 The concept of a distance vector is the rationale for the name distance-vector
routing.
 A least-cost tree is a combination of least-cost paths from the root of the tree to
all destinations. These paths are graphically glued together to form the tree.
 Distance-vector routing unglues these paths and creates a distance vector, a one-
dimensional array to represent the tree

Figure : The distance vector


corresponding to a tree

 The name of the distance vector defines the root, the indexes define the
destinations, and the value of each cell defines the least cost from the root to the
destination. Department of CSE- Data Science
Department of Computer Science & Engineering

 A distance vector does not give the path to the destinations as the least-cost tree
does; it gives only the least costs to the destinations.
 Each node in an internet, when it is booted, creates a very rudimentary distance
vector with the minimum information the node can obtain from its neighborhood.
 The node sends some greeting messages out of its interfaces and discovers the
identity of the immediate neighbors and the distance between itself and each
neighbor.
 It then makes a simple distance vector by inserting the discovered distances in
the corresponding cells and leaves the value of other cells as infinity.

Department of CSE- Data Science


Department of Computer Science & Engineering

 These rudimentary vectors cannot help the internet


to effectively forward a packet.
 For example, node A thinks that it is not connected
to node G because the corresponding cell shows
the least cost of infinity.
 To improve these vectors, the nodes in the internet
need to help each other by exchanging information.
 After each node has created its vector, it sends a
copy of the vector to all its immediate neighbors.
 After a node receives a distance vector from a
Figure : The first distance vector
for an internet neighbor, it updates its distance vector using the
Bellman-Ford equation

Department of CSE- Data Science


Department of Computer Science & Engineering

 Figure shows two


asynchronous events,
happening one after
another with some
time in between.

Figure : Updating distance vectors

 In the first event, node A has sent its vector to node B. Node B updates its vector using the
cost cBA = 2.
 In the second event, node E has sent its vector to node B. Node B updates its vector using the
cost cEA = 4.
 After the first event, node B has one improvement in its vector: its least cost to node D has
changed from infinity to 5 (via node A).
 After the second event, node B has one more improvement in its vector; its least cost to node
Department
F has changed from infinity of CSE-
to 6 (via node E). Data Science
Department of Computer Science & Engineering

Distance-Vector Routing Algorithm : Distance-Vector Routing Algorithm for a Node


1 Distance_Vector_Routing ( )
2{
3 // Initialize (create initial vectors for the node)
4 D[myself ] = 0

 Lines 4 to 11 initialize the vector for the node.

Department of CSE- Data Science


Department of Computer Science & Engineering

 Lines 14 to 23 show how the vector can be updated after receiving a vector from the
immediate neighbor.
 The for loop in lines 17 to 20 allows all entries (cells) in the vector to be updated
after receiving a new vector.
 Note that the node sends its vector in line 12, after being initialized, and in line 22,
after it is updated.
Department of Computer Science & Engineering

Count to Infinity
 A problem with distance-vector routing is that any decrease in cost (good news)
propagates quickly, but any increase in cost (bad news) will propagate slowly.
 For a routing protocol to work properly, if a link is broken (cost becomes
infinity), every other router should be aware of it immediately, but in distance-
vector routing, this takes some time.
 The problem is referred to as count to infinity.
 It sometimes takes several updates before the cost for a broken link is recorded as
infinity by all routers.

Department of CSE- Data Science


Department of Computer Science & Engineering

Two-Node Loop
 One example of count to infinity is the two-node loop problem. To understand
the problem, let us look at the scenario depicted in Figure below

 The figure shows a system with three nodes.


 At the beginning, both nodes A and B know how to reach node X.
 But suddenly, the link between A and X fails. Node A changes its table.
 If A can send its tableDepartment of CSE-
to B immediately, Data Science
everything is fine.
Department of Computer Science & Engineering

 The system becomes unstable if B sends its forwarding table to A before


receiving A’s forwarding table.
 Node A receives the update and, assuming that B has found a way to reach X,
immediately updates its forwarding table.
 Now A sends its new update to B. Now B thinks that something has been
changed around A and updates its forwarding table.
 The cost of reaching X increases gradually until it reaches infinity. At this
moment, both A and B know that X cannot be reached.
 However, during this time the system is not stable. Node A thinks that the route
to X is via B; node B thinks that the route to X is via A.
 If A receives a packet destined for X, the packet goes to B and then comes back
to A.
 Similarly, if B receives a packet destined for X, it goes to A and comes back to B.
 Packets bounce between A and B, creating a two-node loop problem.

Department of CSE- Data Science


Department of Computer Science & Engineering

Split Horizon

 One solution to instability is called split horizon.

 In this strategy, instead of flooding the table through each interface, each node
sends only part of its table through each interface.

 If, according to its table, node B thinks that the optimum route to reach X is via
A, it does not need to advertise this piece of information to A; the information
has come from A (A already knows).

 Taking information from node A, modifying it, and sending it back to node A is
what creates the confusion.

 In our scenario, node B eliminates the last line of its forwarding table before it
sends it to A. In this case, node A keeps the value of infinity as the distance to X.

 Later, when node A sends its forwarding table to B, node B also corrects its
forwarding table. Department of CSE- Data Science
Department of Computer Science & Engineering
Poison Reverse
 Using the split-horizon strategy has one drawback.

 Normally, the corresponding protocol uses a timer, and if there is no news about a
route, the node deletes the route from its table.

 When node B in the previous scenario eliminates the route to X from its
advertisement to A, node A cannot guess whether this is due to the split-horizon
strategy (the source of information was A) or because B has not received any news
about X recently.

 In the poison reverse strategy B can still advertise the value for X, but if the source
of information is A, it can replace the distance with infinity as a warning: “Do not
use this value; what I know about this route comes from you.”

Three-Node Instability
 The two-node instability can be avoided using split horizon combined with poison
reverse. However, ifDepartment
the instability is between
of CSE- three nodes, stability cannot be
Data Science
Department of Computer Science & Engineering

Link-State Routing

 In this algorithm the cost associated with an edge defines the state of the link.

 Links with lower costs are preferred to links with higher costs; if the cost of a
link is infinity, it means that the link does not exist or has been broken.

Link-State Database (LSDB)

 To create a least-cost tree with this method, each node needs to have a complete
map of the network, which means it needs to know the state of each link.

 The collection of states for all links is called the link-state database (LSDB).
 There is only one LSDB for the whole internet; each node needs to have a
duplicate of it to be able to create the least-cost tree.

Department of CSE- Data Science


Department of Computer Science & Engineering

Example of a link-state database

 The LSDB can be represented as a two-dimensional array(matrix) in which the value of


each cell defines the cost of the corresponding link.
 Now the question is how each node can create this LSDB that contains information about
the whole internet. This can be done by a process called flooding.
 Each node can send some greeting messages to all its immediate neighbors (those nodes to
which it is connected directly) to collect two pieces of information for each neighboring
node: the identity of the node and the cost of the link.
Department of CSE- Data Science
Department of Computer Science & Engineering

 The combination of these two pieces of information is called the LS packet (LSP); the
LSP is sent out of each interface, as shown in Figure

Figure: LSPs created and sent out by each node to build LSDB

 When a node receives an LSP from one of its interfaces, it compares the LSP with the
copy it may already have.

 If the newly arrived LSP is older than the one it has (found by checking the sequence
Department
number), it discards the LSP of CSE- Data Science
Department of Computer Science & Engineering

 If it is newer or the first one received, the node discards the old LSP (if there is
one) and keeps the received one. It then sends a copy of it out of each interface
except the one from which the packet arrived.
 This guarantees that flooding stops somewhere in the network (where a node has
only one interface).
 A node can make the whole map if it needs to, using this LSDB.
Comparison of link-state routing algorithm with the distance-vector routing
 In the distance-vector routing algorithm, each router tells its neighbors what it
knows about the whole internet;
 in the link-state routing algorithm, each router tells the whole internet what it
knows about its neighbors.

Department of CSE- Data Science


Department of Computer Science & Engineering

Formation of Least-Cost Trees


 To create a least-cost tree for itself, using the shared LSDB, each node needs to
run the famous Dijkstra Algorithm. This iterative algorithm uses the following
steps:
1. The node chooses itself as the root of the tree, creating a tree with a single node,
and sets the total cost of each node based on the information in the LSDB.
2. The node selects one node, among all nodes not in the tree, which is closest to
the root, and adds this to the tree. After this node is added to the tree, the cost of
all other nodes not in the tree needs to be updated because the paths may have
been changed.
3. The node repeats step 2 until all nodes are added to the tree.

Department of CSE- Data Science


Department of Computer Science & Engineering

Dijkstra’s Algorithm

 Lines 4 to 13 implement step 1 in the algorithm.

Department of CSE- Data Science


Department of Computer Science & Engineering

 Lines 16 to 23 implement step 2 in the algorithm. Step 2 is repeated until all


nodes are added to the tree.

Department of CSE- Data Science


Department of Computer Science & Engineering

Figure : Least-cost tree

Department of CSE- Data Science


Department of Computer Science & Engineering

Path-Vector Routing
 Both link-state and distance-vector routing are based on the least-cost goal.
 There are instances where this goal is not the priority.
 For example, assume that there are some routers in the internet that a sender wants
to prevent its packets from going through.

 For example, a router may belong to an organization that does not provide enough
security or it may belong to a commercial rival of the sender which might inspect
the packets for obtaining information.

 Least-cost routing does not prevent a packet from passing through an area when
that area is in the least-cost path.

Department of CSE- Data Science


Department of Computer Science & Engineering

 In path-vector (PV) routing, the best route is determined by the source using the
policy it imposes on the route.

 In other words, the source can control the path.

 Although path-vector routing is not actually used in an internet, and is mostly


designed to route a packet between ISPs
Spanning Trees
 In path-vector routing, the path from a source to all destinations is also
determined by the best spanning tree.
 The best spanning tree, however, is not the least-cost tree; it is the tree determined
by the source when it imposes its own policy.
 If there is more than one route to a destination, the source can choose the route
that meets its policy best.
 A source may apply several policies at the same time.
Department of Computer Science & Engineering

 One of the common policies uses the minimum number of nodes to be visited
(something similar to least-cost).

 Another common policy is to avoid some nodes as the middle node in a route.

Figure : Spanning trees in path-vector routing


Department of Computer Science & Engineering

 Each source has created its own spanning tree that meets its policy.
 The policy imposed by all sources is to use the minimum number of nodes to
reach a destination.
 The spanning tree selected by A and E is such that the communication does not
pass through D as a middle node.
 Similarly, the spanning tree selected by B is such that the communication does
not pass through C as a middle node.
Creation of Spanning Trees
 Path-vector routing, like distance-vector routing, is an asynchronous and
distributed routing algorithm.
 The spanning trees are made, gradually and asynchronously, by each node.
Department of Computer Science & Engineering

 When a node is booted, it creates a path vector based on the information it can
obtain about its immediate neighbor.
 A node sends greeting messages to its immediate neighbors to collect these
pieces of information

 Each node, after the creation of the initial path vector, sends it to all its
immediate neighbors.
 Each node, when it receives a path vector from a neighbor, updates its path
vector using an equation similar to the Bellman-Ford, but applying its own policy
instead of looking for the least cost.
Department of Computer Science & Engineering

 We can define this equation as

 In this equation, the operator (+) means to add x to the beginning of the path.

 We also need to be cautious to avoid adding a node to an empty path because an


empty path means one that does not exist.

 The policy is defined by selecting the best of multiple paths. Path-vector routing
also imposes one more condition on this equation: If Path (v, y) includes x, that
path is discarded to avoid a loop in the path.

 In other words, x does not want to visit itself when it selects a path to y.
Department of Computer Science & Engineering

 Figure shows the path vector of node C after two events.


 In the first event, node C receives a copy of B’s vector, which improves its vector:
now it knows how to reach node A.
 In the second event, node C receives a copy of D’s vector, which does not change
its vector.
 As a matter of fact the vector for node C after the first event is stabilized and
serves as its forwarding table.
Department of Computer Science & Engineering

Path-Vector Algorithm

Lines 4 to 12 show the initialization for the node.

Department of CSE- Data Science


Department of Computer Science & Engineering

 Lines 17 to 24 show how the node updates its vector after receiving a vector from
the neighbor.
 The update process is repeated forever.
Department of Computer Science & Engineering

Unicast Routing Protocols

 A protocol is more than an algorithm.


 A protocol needs to define its domain of operation, the messages
exchanged, communication between routers, and interaction with
protocols in other domains

 Three common protocols used in the Internet:

1. Routing Information Protocol (RIP), based on the distance-vector


algorithm,

2. Open Shortest Path First (OSPF), based on the link-state algorithm,

3. Border Gateway Protocol (BGP), based on the path-vector


algorithm. Department of CSE- Data Science
Department of Computer Science & Engineering

Internet Structure
 The Internet has changed from a tree-like structure, with a single backbone, to a
multi-backbone structure run by different private corporations today.
 Although it is difficult to give a general view of the Internet today, we can say that
the Internet has a structure similar to what is shown in Figure

Figure 1: Internet structure


Department of Computer Science & Engineering

 There are several backbones run by private communication companies that


provide global connectivity.
 These backbones are connected by some peering points that allow connectivity
between backbones.
 At a lower level, there are some provider networks that use the backbones for
global connectivity but provide services to Internet customers.
 Finally, there are some customer networks that use the services provided by the
provider networks.
 Any of these three entities (backbone, provider network, or customer network)
can be called an Internet Service Provider or ISP. They provide services, but at
different levels.
Department of Computer Science & Engineering

Hierarchical Routing
 The Internet today is made of a huge number of networks and routers that
connect them.
 It is obvious that routing in the Internet cannot be done using a single protocol
for two reasons: a scalability problem and an administrative issue.
 Scalability problem means that the size of the forwarding tables becomes huge,
searching for a destination in a forwarding table becomes time-consuming, and
updating creates a huge amount of traffic.
 The administrative issue is related to the Internet structure described in Figure 1.
Each ISP is run by an administrative authority. The administrator needs to have
control in its system.
Department of Computer Science & Engineering

 Hierarchical routing means considering each ISP as an autonomous system


(AS).
 Each AS can run a routing protocol that meets its needs, but the global Internet
runs a global protocol to glue all ASs together.
 The routing protocol run in each AS is referred to as intra-AS routing protocol,
intradomain routing protocol, or interior gateway protocol (IGP)
 The global routing protocol is referred to as inter-AS routing protocol,
interdomain routing protocol, or exterior gateway protocol (EGP).
 We can have several intradomain routing protocols, and each AS is free to choose
one, but it should be clear that we should have only one interdomain protocol that
handles routing between these entities.
 Presently, the two common intradomain routing protocols are RIP and OSPF;
 the only interdomain routing protocol is BGP.
Department of Computer Science & Engineering

Autonomous Systems
 Each ISP is an autonomous system when it comes to managing networks and
routers under its control.
 Each AS is given an autonomous number (ASN) by the ICANN.
 Each ASN is a 16-bit unsigned integer that uniquely defines an AS.
 The autonomous systems are categorized according to the way they are
connected to other ASs.
Department of Computer Science & Engineering

 We have stub ASs, multihomed ASs, and transient ASs.


1. Stub AS. A stub AS has only one connection to another AS. The data traffic can
be either initiated or terminated in a stub AS; the data cannot pass through it. A
good example of a stub AS is the customer network, which is either the source or
the sink of data.
2. Multihomed AS. A multihomed AS can have more than one connection to other
ASs, but it does not allow data traffic to pass through it. A good example of such
an AS is some of the customer ASs that may use the services of more than one
provider network, but their policy does not allow data to be passed through them.
3. Transient AS. A transient AS is connected to more than one other AS and also
allows the traffic to pass through. The provider networks and the backbone are
good examples of transient ASs.
Department of Computer Science & Engineering

Routing Information Protocol (RIP)


 one of the most widely used intradomain routing protocols based on the distance-
vector routing algorithm
Hop Count
 A router in this protocol basically implements the distance-vector routing
algorithm
 The cost is defined between a router and the network in which the destination
host is located.
 To make the implementation of the cost simpler (independent from performance
factors of the routers and links, such as delay, bandwidth, and so on), the cost is
defined as the number of hops, which means the number of networks (subnets) a
packet needs to travel through from the source router to the final destination host.
Department of Computer Science & Engineering

 Note that the network in which the source host is connected is not counted in this
calculation because the source host does not use a forwarding table; the packet is
delivered to the default router.

Figure-2 : Hop counts in RIP


 Figure shows the concept of hop count advertised by three routers from a source
host to a destination host.
 In RIP, the maximum cost of a path can be 15, which means 16 is considered as
infinity (no connection).
 For this reason, RIP can be used only in autonomous systems in which the
diameter of the AS is not more than 15 hops.
Department of Computer Science & Engineering

Forwarding Tables
 The routers in an autonomous system need to keep forwarding tables to forward
packets to their destination networks.
 A forwarding table in RIP is a three-column table in which the first column is the
address of the destination network, the second column is the address of the next
router to which the packet should be forwarded, and the third column is the cost
(the number of hops) to reach the destination network.

 Figure shows the three forwarding tables for the routers in Figure-2.
 The first and the third columns together convey the same information as does a
distance vector, but the cost shows the number of hops to the destination networks.
Department of Computer Science & Engineering

 Although a forwarding table in RIP defines only the next router in the second
column, it gives the information about the whole least-cost tree based on the
second property of these trees.
 For example, R1 defines that the next router for the path to N4 is R2; R2 defines
that the next router to N4 is R3; R3 defines that there is no next router for this path.
The tree is then R1 → R2 → R3 → N4.
RIP Implementation
 RIP is implemented as a process that uses the service of UDP on the well-known
port number 520.
 RIP runs at the application layer, but creates forwarding tables for IP at the network
layer.
Department of Computer Science & Engineering

 RIP has gone through two versions: RIP-1 and RIP-2.


 The second version is backward compatible with the first section; it allows the
use of more information in the RIP messages that were set to 0 in the first version
RIP Messages
 Two RIP processes, a client and a server, like any other processes, need to
exchange messages.
 RIP-2 defines the format of the message

 Part of the message, which we call entry, can be repeated as needed in a message.
 Each entry carries the information related to one line in the forwarding table of
the router that sends the message.
Department of Computer Science & Engineering

 RIP has two types of messages: request and response.

 A request message is sent by a router that has just come up or by a router that has

some time-out entries.

 A request message can ask about specific entries or all entries.

 A response (or update) message can be either solicited or unsolicited.

 A solicited response message is sent only in answer to a request message. It

contains information about the destination specified in the corresponding request

message.

 An unsolicited response message, on the other hand, is sent periodically, every 30

seconds or when there is a change in the forwarding table.


Department of Computer Science & Engineering

RIP Algorithm

 RIP implements the same algorithm as the distance-vector routing algorithm


However, some changes need to be made to the algorithm to enable a router to
update its forwarding table:

‣ Instead of sending only distance vectors, a router needs to send the whole
contents of its forwarding table in a response message.

‣ The receiver adds one hop to each cost and changes the next router field to the
address of the sending router. We call each route in the modified forwarding
table the received route and each route in the old forwarding table the old
route. The received router selects the old routes as the new ones except in the
following three cases:

1. If the received route does not exist in the old forwarding table, it should be
added to the route.
Department of Computer Science & Engineering

2.If the cost of the received route is lower than the cost of the old one, the received route
should be selected as the new one.
3.If the cost of the received route is higher than the cost of the old one, but the value of the
next router is the same in both routes, the received route should be selected as the new one.
This is the case where the route was actually advertised by the same router in the past, but
now the situation has been changed. For example, suppose a neighbor has previously
advertised a route to a destination with cost 3, but now there is no path between this
neighbor and that destination. The neighbor advertises this destination with cost value
infinity (16 in RIP). The receiving router must not ignore this value even though its old
route has a lower cost to the same destination.
‣ The new forwarding table needs to be sorted according to the destination route (mostly
using the longest prefix first).
Department of Computer Science & Engineering

Example of an
autonomous
system using RIP
Department of Computer Science & Engineering

Timers in RIP
 RIP uses three timers to support its operation.
 The periodic timer controls the advertising of regular update messages.
‣ Each router has one periodic timer that is randomly set to a number between 25
and 35 seconds (to prevent all routers sending their messages at the same time
and creating excess traffic).
‣ The timer counts down; when zero is reached, the update message is sent, and
the timer is randomly set once again.
 The expiration timer governs the validity of a route.
‣ When a router receives update information for a route, the expiration timer is
set to 180 seconds for that particular route.
‣ Every time a new update for the route is received, the timer is reset. If there is a
problem on an internet and no update is received within the allotted 180
seconds, the route is considered expired and the hop count of the route is set to
16, which means the destination is unreachable. Every route has its own
expiration timer.
Department of Computer Science & Engineering

 The garbage collection timer is used to purge a route from the forwarding table.
‣ When the information about a route becomes invalid, the router does not
immediately purge that route from its table.
‣ Instead, it continues to advertise the route with a metric value of 16. At the
same time, a garbage collection timer is set to 120 seconds for that route.
‣ When the count reaches zero, the route is purged from the table.
‣ This timer allows neighbors to become aware of the invalidity of a route prior
to purging.
Department of Computer Science & Engineering

Performance
 Before ending this section, let us briefly discuss the performance of RIP:
1. Update Messages. The update messages in RIP have a very simple format and
are sent only to neighbors; they are local. They do not normally create traffic
because the routers try to avoid sending them at the same time.
2. Convergence of Forwarding Tables. RIP uses the distance-vector algorithm,
which can converge slowly if the domain is large, but, since RIP allows only 15
hops in a domain (16 is considered as infinity), there is normally no problem in
convergence.
• The only problems that may slow down convergence are count-to-infinity and
loops created in the domain; use of poison-reverse and split-horizon strategies
added to the RIP extension may alleviate the situation.
Department of Computer Science & Engineering

3. Robustness.
 As we said before, distance-vector routing is based on the concept that each
router sends what it knows about the whole domain to its neighbors.
 This means that the calculation of the forwarding table depends on information
received from immediate neighbors, which in turn receive their information from
their own neighbors.
 If there is a failure or corruption in one router, the problem will be propagated to
all routers and the forwarding in each router will be affected.
Department of Computer Science & Engineering

Open Shortest Path First (OSPF)

 Open Shortest Path First (OSPF) is an intradomain routing protocol based


on the link-state routing protocol
Metric
 In OSPF, like RIP, the cost of reaching a destination from the host is
calculated from the source router to the destination network.
 However, each link (network) can be assigned a weight based on the
throughput, round-trip time, reliability, and so on.
 An administration can also decide to use the hop count as the cost.
 An interesting point about the cost in OSPF is that different service types
(TOSs) can have different weights as the cost.
Department of Computer Science & Engineering

Figure
:Metric in
OSPF

Forwarding Tables
 Each OSPF router can create a forwarding table after finding the shortest-path tree
between itself and the destination using Dijkstra’s algorithm
Department of Computer Science & Engineering

Areas
 OSPF was designed to be able to handle routing in a small or large autonomous
system.

 The formation of shortest-path trees in OSPF requires that all routers flood the
whole AS with their LSPs to create the global LSDB.

 OSPF uses another level of hierarchy in routing: the first level is the autonomous
system, the second is the area.

 Each router in an area needs to know the information about the link states not only
in its area but also in other areas.

 For this reason, one of the areas in the AS is designated as the backbone area,
responsible for gluing the areas together.

 The routers in the backbone area are responsible for passing the information
collected by each area to all other areas.
Department of Computer Science & Engineering

Figure : Areas in an autonomous system

Link-State Advertisement
 OSPF is based on the link-state routing algorithm, which requires that a router
advertise the state of each link to all neighbors for the formation of the LSDB.
 We can have five types of link-state advertisements:
router link, network link, summary link to network, summary link to AS
border router, and external link
Department of Computer Science & Engineering

 A router link advertises the existence of a router


1. Router link as a node.
 In addition to giving the address of the
announcing router, this type of advertisement can
define one or more types of links that connect the
advertising router to other entities.
 A transient link announces a link to a transient
network, a network that is connected to the rest of
the networks by one or more routers. This type of
advertisement should define the address of the
transient network and the cost of the link.
 A stub link advertises a link to a stub network, a
network that is not a through network. Again, the
advertisement should define the address of the
network and the cost.
 A point-to-point link should define the address of
the router at the end of the point-to-point line and
the cost to get there.
Department of Computer Science & Engineering

2. Network link

 A network link advertises the network as a


node.
 However, since a network cannot do
announcements itself (it is a passive entity),
one of the routers is assigned as the
designated router and does the advertising.
 In addition to the address of the designated
router, this type of LSP announces the IP
address of all routers , but no cost is
advertised because each router announces the
cost to the network when it sends a router
link advertisement.
Department of Computer Science & Engineering

3. Summary link to network


 This is done by an area border router; it advertises the
summary of links collected by the backbone to an area
or the summary of links collected by the area to the
backbone.
 This type of information exchange is needed to glue
the areas together.

 This is done by an AS router that advertises the 4. Summary link to AS.

summary links from other ASs to the backbone


area of the current AS, information which later
can be disseminated to the areas so that they will
know about the networks in other ASs.
Department of Computer Science & Engineering

5. External Link

 This is also done by an AS router to announce the existence of a single


network outside the AS to the backbone area to be disseminated into the areas.
Department of Computer Science & Engineering

OSPF Implementation
 OSPF is implemented as a program in the network layer, using the service of the
IP for propagation.
 An IP datagram that carries a message from OSPF sets the value of the protocol
field to 89.
 This means that, although OSPF is a routing protocol to help IP to route its
datagrams inside an AS, the OSPF messages are encapsulated inside datagrams.
 OSPF has gone through two versions: version 1 and version 2. Most
implementations use version 2.
Department of Computer Science & Engineering

OSPF Messages
 OSPF is a very complex protocol; it uses five different types of messages.
 The hello message (type 1) is used by a router to introduce itself to the neighbors
and announce all neighbors that it already knows.

 The database description message (type 2) is normally sent in response to the hello
message to allow a newly joined router to acquire the full LSDB.
Department of Computer Science & Engineering

 The link state request message (type 3) is sent by a router that needs information
about a specific LS.
 The link-state update message (type 4) is the main OSPF message used for
building the LSDB. This message, in fact, has five different versions (router link,
network link, summary link to network, summary link to AS border router, and
external link).
 The link-state acknowledgment message (type 5) is used to create reliability in
OSPF; each router that receives a link-state update message needs to
acknowledge it.
Department of Computer Science & Engineering

Authentication
 The OSPF common header has the provision for authentication of the message
sender.
 This prevents a malicious entity from sending OSPF messages to a router and
causing the router to become part of the routing system to which it actually does
not belong.
OSPF Algorithm
 OSPF implements the link-state routing algorithm. However, some changes and
augmentations need to be added to the algorithm:
‣ After each router has created the shortest-path tree, the algorithm needs to use
it to create the corresponding routing algorithm. The algorithm needs to be
augmented to handle sending and receiving all five types of messages
Department of Computer Science & Engineering

Performance
 Update Messages. The link-state messages in OSPF have a somewhat complex
format. They also are flooded to the whole area. If the area is large, these
messages may create heavy traffic and use a lot of bandwidth.
 Convergence of Forwarding Tables. When the flooding of LSPs is completed,
each router can create its own shortest-path tree and forwarding table;
convergence is fairly quick. However, each router needs to run Dijkstra’s
algorithm, which may take some time.
 Robustness. The OSPF protocol is more robust than RIP because, after receiving
the completed LSDB, each router is independent and does not depend on other
routers in the area. Corruption or failure in one router does not affect other routers
as seriously as in RIP.
Department of Computer Science & Engineering

Border Gateway Protocol Version 4 (BGP4)


 The Border Gateway Protocol version 4 (BGP4) is the only interdomain routing
protocol used in the Internet today.
 BGP4 is based on the path-vector algorithm
Introduction
 BGP, and in particular BGP4, is a complex protocol.
 Figure shows an
example of an internet
with four autonomous
systems. AS2, AS3, and
AS4 are stub
autonomous systems;
 AS1 is a transient one.
 Data exchange between
AS2, AS3, and AS4
should pass through
Figure 3 : A sample internet with four ASs AS1.
Department of Computer Science & Engineering

 Each autonomous system in this figure uses one of the two common intradomain
protocols, RIP or OSPF.
 Each router in each AS knows how to reach a network that is in its own AS, but it
does not know how to reach a network in another AS.
 To enable each router to route a packet to any network in the internet, first a
variation of BGP4, called external BGP (eBGP) is installed on each border router
(the one at the edge of each AS which is connected to a router at another AS).
 Then the second variation of BGP, called internal BGP (iBGP) is installed on all
routers.
 This means that the border routers will be running three routing protocols
(intradomain, eBGP, and iBGP), but other routers are running two protocols
(intradomain and iBGP).
Department of Computer Science & Engineering

Operation of External BGP (eBGP)


 BGP is a kind of point-to-point protocol. When the software is installed on two
routers, they try to create a TCP connection using the well-known port 179.
 A pair of client and server processes continuously communicate with each other to
exchange messages.
 The two routers that run the BGP processes are called BGP peers or BGP speakers.
 The eBGP variation of BGP allows two physically connected border routers in two
different ASs to form pairs of eBGP speakers and exchange messages.
 The routers that are eligible in our example in Figure 3 form three pairs: R1-R5,
R2-R6, and R4- R9.
 The connection between these pairs is established over three physical WANs (N5
N6, and N7).
 There is a need for a logical TCP
connection to be created over the
physical connection to make the
exchange of information possible.
 Each logical connection in BGP is
referred to as a session
Department of Computer Science & Engineering

 The figure shows the


simplified update
messages sent by
routers involved in the
eBGP sessions.
 The circled number
defines the sending
router in each case.

Figure : eBGP operation


 For example, message number 1 is sent by router R1 and tells router R5 that N1,
N2, N3, and N4 can be reached through router R1 (R1 gets this information from
the corresponding intradomain forwarding table)
 Router R5 can now add these pieces of information at the end of its forwarding
table.
 When R5 receives any packet destined for these four networks, it can use its
forwarding table and find that the next router is R1.
Department of Computer Science & Engineering

 The messages exchanged during three eBGP sessions help some routers know how
to route packets to some networks in the internet, but the reachability information
is not complete.
 There are two problems that need to be addressed:
1. Some border routers do not know how to route a packet destined for nonneighbor
ASs. For example, R5 does not know how to route packets destined for networks
in AS3 and AS4. Routers R6 and R9 are in the same situation as R5: R6 does not
know about networks in AS2 and AS4; R9 does not know about networks in AS2
and AS3.
2. None of the nonborder routers know how to route a packet destined for any
networks in other ASs. To address the above two problems, we need to allow all
pairs of routers (border or nonborder) to run the second variation of the BGP
protocol, iBGP.
Department of Computer Science & Engineering

Operation of Internal BGP (iBGP)


 The iBGP protocol is similar to the eBGP protocol in that it uses the service of
TCP on the well-known port 179, but it creates a session between any possible
pair of routers inside an autonomous system.
 If an AS has only one router, there cannot be an iBGP session. For example, we
cannot create an iBGP session inside AS2 or AS4 in our internet.
 If there are n routers in an autonomous system, there should be [n × (n − 1) / 2]
iBGP sessions in that autonomous system (a fully connected mesh) to prevent
loops in the system.
 In other words, each router needs to advertise its own reachability to the peer in
the session instead of flooding what it receives from another peer in another
session.
Department of Computer Science & Engineering

 The physical networks inside ASs is


not shown because a session is made
on an overlay network (TCP
connection), possibly spanning more
than one physical network as
determined by the route dictated by
intradomain routing protocol.
 Also note that in this stage only four
Figure : Combination of eBGP and messages are exchanged.
iBGP sessions in our internet

 The first message (numbered 1) is sent by R1 announcing that networks N8 and N9


are reachable through the path AS1-AS2, but the next router is R1.
 This message is sent, through separate sessions, to R2, R3, and R4. Routers R2, R4,
and R6 do the same thing but send different messages to different destinations.
 The interesting point is that, at this stage, R3, R7, and R8 create sessions with their
peers, but they actually have no message to send.
Department of Computer Science & Engineering

 The updating process does not stop here. For example, after R1 receives the
update message from R2, it combines the reachability information about AS3
with the reachability information it already knows about AS1 and sends a new
update message to R5.
 Now R5 knows how to reach networks in AS1 and AS3. The process continues
when R1 receives the update message from R4.
 At a point in time there are no changes in the previous updates and that all
information is propagated through all ASs.
 At this time, each router combines the information received from eBGP and
iBGP and creates what we may call a path table after applying the criteria for
finding the best path, including routing policies
Department of Computer Science & Engineering

Figure 3:
Finalized
BGP path
tables

 Router R1 now knows that any packet destined for networks N8 or N9 should go
through AS1 and AS2 and the next router to deliver the packet to is router R5.
 Similarly, router R4 knows that any packet destined for networks N10, N11, or
N12 should go through AS1 and AS3 and the next router to deliver this packet to is
router R1, and so on.

Department of CSE- Data Science


Department of Computer Science & Engineering

Injection of Information into Intradomain Routing


 The role of an interdomain routing protocol such as BGP is to help the routers
inside the AS to augment their routing information.
 The path tables collected and organized by BPG are not used for routing packets;
they are injected into intradomain forwarding tables (RIP or OSPF) for routing
packets.
 This can be done in several ways depending on the type of AS.

 In the case of a stub AS, the only area border router adds a default entry at the
end of its forwarding table and defines the next router to be the speaker router at
the end of the eBGP connection.
Department of Computer Science & Engineering

 In Figure , R5 in AS2 defines R1 as the default router for all networks other than N8 and
N9. The situation is the same for router R9 in AS4 with the default router to be R4. In AS3,
R6 set its default router to be R2, but R7 and R8 set their default router to be R6
 In the case of a transient AS, the situation is more complicated. R1 in AS1 needs to inject
the whole contents of the path table for R1 in Figure 3 into its intradomain forwarding
table. The situation is the same for R2, R3, and R4.
Department of Computer Science & Engineering

Figure Forwarding tables after injection from BGP


 Figure shows the interdomain forwarding tables.
 For simplicity, we assume that all ASs are using RIP as the intradomain routing
protocol.
 The shaded areas are the augmentation injected by the BGP protocol; the default
destinations are indicated as zero.
Department of Computer Science & Engineering

Address Aggregation
 Intradomain forwarding tables obtained with the help of the BGP4 protocols may
become huge in the case of the global Internet because many destination
networks may be included in a forwarding table.
 Fortunately, BGP4 uses the prefixes as destination identifiers and allows the
aggregation of these prefixes, For example, prefixes 14.18.20.0/26,
14.18.20.64/26, 14.18.20.128/26, and 14.18.20.192/26, can be combined into
14.18.20.0/24 if all four subnets can be reached through one path.
 Even if one or two of the aggregated prefixes need a separate path, the longest
prefix principle allows us to do so.
Department of Computer Science & Engineering

Path Attributes
 In both intradomain routing protocols (RIP or OSPF), a destination is normally
associated with two pieces of information: next hop and cost.
 The first one shows the address of the next router to deliver the packet; the second
defines the cost to the final destination.
 Interdomain routing is more involved and naturally needs more information about
how to reach the final destination.
 In BGP these pieces are called path attributes. BGP allows a destination to be
associated with up to seven path attributes.
 Path attributes are divided into two broad categories: well-known and optional.
Department of Computer Science & Engineering

 A well-known attribute must be recognized by all routers; an optional attribute


need not be.
 A well-known attribute can be mandatory, which means that it must be present in
any BGP update message, or discretionary, which means it does not have to be.
 An optional attribute can be either transitive, which means it can pass to the next
AS, or intransitive, which means it cannot.
 All attributes are inserted after the corresponding destination prefix in an update
message

Figure: Format of path


attribute
Department of Computer Science & Engineering

 The first byte in each attribute defines the four attribute flag.
 The next byte defines the type of attributes assigned by ICANN (only seven
types have been assigned).
 The attribute value length defines the length of the attribute value field (not the
length of the whole attributes section)
ORIGIN (type 1)
‣ This is a well-known mandatory attribute, which defines the source of the routing
information.
‣ This attribute can be defined by one of the three values: 1, 2, and 3.
‣ Value 1 means that the information about the path has been taken from an
intradomain protocol (RIP or OSPF).
‣ Value 2 means that the information comes from BGP. Value 3 means that it
comes from an unknown source.
Department of Computer Science & Engineering

AS-PATH (type 2)
‣ This is a well-known mandatory attribute, which defines the list of autonomous
systems through which the destination can be reached.
‣ The AS-PATH attribute helps prevent a loop. Whenever an update message
arrives at a router that lists the current AS as the path, the router drops that path.
The AS-PATH can also be used in route selection.
NEXT-HOP (type 3)
‣ This is a well-known mandatory attribute, which defines the next router to which
the data packet should be forwarded.
‣ This attribute helps to inject path information collected through the operations of
eBGP and iBGP into the intradomain routing protocols such as RIP or OSPF.
Department of Computer Science & Engineering

MULT-EXIT-DISC (type 4).


‣ The multiple-exit discriminator is an optional intransitive attribute, which
discriminates among multiple exit paths to a destination.
‣ The value of this attribute is normally defined by the metric in the
corresponding intradomain protocol (an attribute value of 4-byte unsigned
integer).
‣ For example, if a router has multiple paths to the destination with different
values related to these attributes, the one with the lowest value is selected.
‣ Note that this attribute is intransitive, which means that it is not propagated
from one AS to another.
Department of Computer Science & Engineering

LOCAL-PREF (type 5).


 The local preference attribute is a well-known discretionary attribute. It is normally set by
the administrator, based on the organization policy.
 The routes the administrator prefers are given a higher local preference value (an attribute
value of 4-byte unsigned integer).
 For example, in an internet with five ASs, the administrator of AS1 can set the local
preference value of 400 to the path AS1 → AS2 → AS5, the value of 300 to AS1 → AS3
→ AS5, and the value of 50 to AS1 → AS4 → AS5.
 This means that the administrator prefers the first path to the second one and prefers the
second one to the third one.
 This may be a case where AS2 is the most secured and AS4 is the least secured AS for the
administration of AS1.
 The last route should be selected if the other two are not available.
Department of Computer Science & Engineering

ATOMIC-AGGREGATE (type 6)
‣ This is a well-known discretionary attribute, which defines the destination prefix
as not aggregate; it only defines a single destination network.
‣ This attribute has no value field, which means the value of the length field is
zero.
AGGREGATOR (type 7)
 This is an optional transitive attribute, which emphasizes that the destination
prefix is an aggregate.
 The attribute value gives the number of the last AS that did the aggregation
followed by the IP address of the router that did so.
Department of Computer Science & Engineering

Route Selection
‣ In the case where multiple
routes are received to a
destination, BGP needs to
select one among them.
‣ The route selection process
in BGP is not as easy as the
ones in the intradomain
routing protocol that is
based on the shortest-path
tree.
‣ A route in BGP has some
attributes attached to it and
it may come from an eBGP
Figure : Flow diagram for route selection
session or an iBGP session.
Department of Computer Science & Engineering

 The router extracts the routes which meet the criteria in each step.
 If only one route is extracted, it is selected and the process stops; otherwise, the
process continues with the next step.
 Note that the first choice is related to the LOCAL-PREF attribute, which reflects
the policy imposed by the administration on the route.

Messages

 BGP uses four types of messages for communication between the BGP speakers
across the ASs and inside an AS: open, update, keepalive, and notification

 All BGP packets share the same common header.


Department of Computer Science & Engineering

Open Message. To create a neighborhood relationship, a


router running BGP opens a TCP connection with a neighbor
and sends an open message.

Update Message. The update message is the heart of the BGP


protocol.
‣ It is used by a router to withdraw destinations that have been
advertised previously, to announce a route to a new
destination, or both.
‣ BGP can withdraw several destinations that were advertised
before, but it can only advertise one new destination (or
multiple destinations with the same path attributes) in a
single update message.
Department of Computer Science & Engineering

Keepalive Message. The BGP peers that are running


exchange keepalive messages regularly (before their hold
time expires) to tell each other that they are alive.

Notification. A notification message is sent by a router


whenever an error condition is detected or a router
wants to close the session.
Department of Computer Science & Engineering

Performance
 BGP performance can be compared with RIP. BGP speakers exchange a lot of
messages to create forwarding tables, but BGP is free from loops and count-to-
infinity.
 The same weakness we mention for RIP about propagation of failure and
corruption also exists in BGP.
Department of Computer Science & Engineering

Multicasting Routing
 In multicasting, there is one source and a group of destinations. The relationship
is one to many.
 In this type of communication, the source address is a unicast address, but the
destination address is a group address, a group of one or more destination
networks in which there is at least one member of the group that is interested in
receiving the multicast datagram
Department of Computer Science & Engineering

Multicast Link State (MOSPF)

 Multicast Open Shortest Path First (MOSPF) is the extension of the Open
Shortest Path First (OSPF) protocol, which is used in unicast routing.

 It also uses the sourcebased tree approach to multicasting.

 In unicast link-state routing, each router in the internet has a link-state database
(LSDB) that can be used to create a shortest-path tree.

 To extend unicasting to multicasting, each router needs to have another database,


as with the case of unicast distance-vector routing, to show which interface has an
active member in a particular group.
Department of Computer Science & Engineering

 A router goes through the following steps to forward a multicast packet received
from source S and to be sent to destination G (a group of recipients):
1. The router uses the Dijkstra algorithm to create a shortest-path tree with S as the
root and all destinations in the internet as the leaves.
- This shortest-path tree is different from the one the router normally uses for
unicast forwarding, in which the root of the tree is the router itself.
- In this case, the root of the tree is the source of the packet defined in the
source address of the packet.
- The router is capable of creating this tree because it has the LSDB, the
whole topology of the internet; the Dijkstra algorithm can be used to create
a tree with any root, no matter which router is using it.
- The point we need to remember is that the shortest-path tree created this
way depends on the specific source. For each source we need to create a
different tree.
Department of Computer Science & Engineering

2. The router finds itself in the shortest-path tree created in the first step. In other
words, the router creates a shortest-path subtree with itself as the root of the
subtree.
3. The shortest-path subtree is actually a broadcast subtree with the router as the
root and all networks as the leaves.
- The router now uses a strategy similar to the one in the case of DVMRP to
prune the broadcast tree and to change it to a multicast tree.
- The IGMP protocol is used to find the information at the leaf level.
- MOSPF has added a new type of link state update packet that floods the
membership to all routers.
- The router can use the information it receives in this way and prune the
broadcast tree to make the multicast tree.
Department of Computer Science & Engineering

4. The router can now forward the received packet out of only those interfaces that
correspond to the branches of the multicast tree. We need to make certain that a
copy of the multicast packet reaches all networks that have active members of the
group and that it does not reach those networks that do not.

 Figure shows an example of


using the steps to change a
graph to a multicast tree.
 For simplicity, we added the
groups to each router.
 The figure shows how a
source-based tree is made
with the source as the root and
changed to a multicast subtree
with the root at the current
router.
Department of Computer Science & Engineering

You might also like