Unit Iii Network Layer
Unit Iii Network Layer
NETWORK LAYER
Network Layer Services – Packet switching – Performance – IPV4 Addresses – Forwarding of IP
Packets - Network Layer Protocols: IP, ICMP v4 – Unicast Routing Algorithms – Protocols –
Multicasting Basics – IPV6 Addressing – IPV6 Protocol.
NETWORK-LAYER SERVICES
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 and delivers
the packet to the data-link layer.
The source is not allowed to change the content of the payload unless it is too large for
delivery and needs to be fragmented.
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 and cannot change source and destination addresses also.
They just inspect the addresses for the purpose of forwarding the packet to the next
network on the path.
Routing
The network layer is responsible for routing the packet from its source to the destination.
Router has more than one route from the source to the destination.
The network layer is responsible for finding the best one among these possible routes by
applying some specific strategies.
Forwarding
If routing is applying strategies and running some routing protocols to create the
decision-making tables ( Forwarding or routing table) for each router, forwarding can be
defined as the action applied by each router when a packet arrives at one of its interfaces.
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.
Error Control
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 datagram.
This checksum may prevent any changes or corruptions in the header of the datagram.
Flow Control
Flow control regulates the amount of data a source can send without overwhelming the
receiver.
The network layer in the Internet, does not directly provide any flow control.
Three 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 less efficient.
Congestion Control
Congestion may occur if the number of datagrams sent by source computers is beyond
the capacity of the network or routers.
In this situation, some routers may drop some of the datagrams which may become worse
because, due to the error control mechanism at the upper layers, the sender may send
duplicates of the lost packets.
Quality of Service
The Internet has thrived by providing better quality of service to support new applications
such as multimedia communication
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.
Today to provide security for a connectionless network layer, there is a virtual level that
changes the connectionless service to a connection-oriented service called IPSec.
PACKET SWITCHING
In this packet switching network, the sending message 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 connecting devices in a packet-switched network to decide how to route the packets
through any one of the two different approaches
o The datagram approach
o The virtual circuit approach
In this approach network-layer protocol treats each packet independently with each
packet having no relationship to any other packet.
Here, the packets in a message may or may not travel the same path to their destination.
A packet may be followed by a packet coming from the same or from a different source.
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 and used to send an error message to the source if the packet is discarded.
Virtual-Circuit Approach: Connection-Oriented Service
Setup Phase
In the setup phase, a router creates an entry for a virtual circuit.
For example, If source A needs to create a virtual circuit to destination B.
Two auxiliary packets need to be exchanged between the sender and the receiver:
1. Request packet
2. Acknowledgment packet.
Request packet
A request packet is sent from the source to the destination which carries the source and
destination addresses.
Steps:
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. For this moment, assume that it knows the output port.
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
Acknowledgment Packet
A special packet, called the acknowledgment packet, completes the entries in the
switching tables.
1. The destination sends an acknowledgment to 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 i
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.
Data-Transfer Phase
The second phase is called the 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
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.
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.
NETWORK-LAYER PERFORMANCE
Delay
Throughput
Packet loss
Congestion control
Delay
The delays in a network can be divided into four types:
o transmission delay
o propagation delay
o processing delay
o queuing delay
Transmission Delay:
o A sender needs to put the bits in a packet on the line one by one for transmission.
o If the first bit of the packet is put on the line at time t1 and the last bit is put on the
line at time t2, transmission delay of the packet is (t2 - t1).
o Delaytr = (Packet length) / (Transmission rate)
Propagation Delay:
o Propagation delay is the time it takes for a bit to travel from point A to point B in
the transmission media.
o The propagation delay depends on the propagation speed of the media, which is 3
× 108 meters/second in a vacuum and normally much less in a wired medium; it
also depends on the distance of the link.
o Delaypg = (Distance) / (Propagation speed)
Packet Loss
When a router receives a packet while processing another packet, the received packet
needs to be stored in the input buffer waiting for its turn.
The input buffer is with a limited size so the time may come when the buffer is full and
the next packet needs to be dropped.
The effect of packet loss on the Internet network layer is that the packet needs to be
resent, which in turn may create overflow and cause more packet loss.
Congestion Control
Congestion at the network layer is related to two issues, throughput and delay.
When the load is much less than the capacity of the network, the delay is at a minimum.
When the load reaches the network capacity, the delay increases sharply because we now
need to add the queuing delay to the total delay.
When the load is below the capacity of the network, the throughput increases
proportionally with the load.
The throughput remains constant after the load reaches the capacity, but instead the
throughput declines sharply. The reason is the discarding of packets by the routers.
Congestion Control Definition:
Congestion control refers to techniques and mechanisms that can either prevent
congestion before it happens or remove congestion after it has happened.
Two types:
o Open-loop congestion control (prevention)
o Closed-loop congestion control (removal).
Node III in the figure has more input data than it can handle.
It drops some packets in its input buffer and informs node II to slow down.
Node II, in turn, may be congested so, it informs node I to slow down,
which in turn may create congestion.
If so, node I informs the source of data to slow down. This, in time,
alleviates the congestion.
o Choke Packet
A choke packet is a packet sent by a node to the source to inform it of
congestion.
In the choke-packet method, the warning is from the router, which has
encountered congestion, directly to the source station.
The intermediate nodes through which the packet has traveled are not
warned.
o Implicit Signaling
In implicit signaling, there is no communication between the congested
node or nodes and the source.
The source guesses that there is congestion somewhere in the network
from other symptoms.
Example for congestion
When a source sends several packets and there is no
acknowledgment for a while.
The delay in receiving an acknowledgment in the network; the
source should slow down.
o Explicit Signaling
The node that experiences congestion can explicitly send a signal to the
source or destination.
Explicit signaling can occur in either the forward or the backward
direction, where the signal is included in the packets that carry data.
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.
The IP address are unique, if a device has two connections to the Internet, via two
networks, it has two IPv4 addresses.
Address Space
Notation
Three notations:
o binary notation (base 2)
IPv4 address is displayed as 32 bits, with one or more spaces are usually
inserted between each octet (8 bits) which is referred to as a byte.
o dotted-decimal notation (base 256)
It is usually written in decimal form with a decimal point (dot) separating
the bytes. The notation is between 0 and 255
o hexadecimal notation (base 16)
Hierarchy in Addressing
An IPv4 address was designed with a fixed-length prefix 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),
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 (27 = 128) as the network identifier.
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 (214 = 16,384) as the network identifier.
In class C, the network length is 24 bits, but since three bits, which are (110)2, define the
class, we can have only 21 bits (221 = 2,097,152) as the network identifier.
In class D is not divided into prefix and suffix. It is used for multicast addresses and as
reserve.
All addresses that start with 1111 in binary belong to class E.
Address Depletion
When 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.
For Example
1. Class A was assigned to only (few) 128 organizations in the world, but each
organization needs to have a single network with 16,777,216 nodes.
2. Class B addresses was designed for midsize organizations, but many of the
addresses in this class also remained unused.
3. 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.
4. Class E addresses were almost never used, wasting the whole class.
It is easy to find the class address, since the prefix length for each class is fixed, and the
length can be found immediately (i.e) Since no extra information is needed to extract the
prefix and the suffix.
Classless Addressing
With the growth of the Internet, Subnetting and supernetting in classful addressing did
not really solve the address depletion problem since there is a need for a larger address
space.
The solution is obtained using called classless addressing.
In classless addressing, the whole address space is divided into variable length blocks
belong to no classes.
There is a block of 1 address, 2 addresses, 4 addresses, 128 addresses, and so on as
shown in below figure.
The prefix in an address defines the block (network); the suffix defines the node (device).
An organization can be granted one block of addresses.
Here the prefix length in classless addressing is variable 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.
Given any address in the block, three pieces of information about the block are known,
1. number of addresses
2. first address in the block
3. last address.
From the above figure three pieces of information about the block are obtained as
follows,
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.
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 address in the block) OR [(NOT (mask)].
Network Address
Block Allocation
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.
Special 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.
1. 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.
2. 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.
3. 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.
4. Multicast addresses
The block 224.0.0.0/4 is reserved for multicast addresses.
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.
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 shown in Figure below.
DHCP Operation
1. The joining host creates a DHCPDISCOVER message in which only the transaction- ID field
is set to a random number. 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).
2. The DHCP server or servers (if more than one) responds with a DHCPOFFER message in
which the 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 includes the lease time and
the 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.
3. 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.
4. 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.
DHCP uses two well-known ports (68 and 67) instead of one well-known and one
ephemeral (temporary).
The reason for choosing the well-known port 68 instead of an ephemeral port for the
client is that the response from the server to the client is broadcast.
Example:
1. Assume a DHCP client and a DAYTIME client, both are waiting to receive a
response from their corresponding server and both have accidentally used the
same temporary port number (56017, for example).
2. Both hosts receive the response message from the DHCP server and deliver the
message to their clients.
3. The DHCP client processes the message; the DAYTIME client is totally confused
with a strange message received.
4. Using a well-known port number prevents this problem from happening.
Using FTP
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.
Error Control
To provide error control, DHCP uses two strategies.
1. DHCP requires that UDP use the checksum.
2. 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, DHCP forces the client to use a random number to
set its timers.
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.
Below Figure shows the transition diagram with the main states.
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.
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).
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.
FORWARDING OF IP PACKETS
Forwarding means to place the packet in its route to its destination.
Internet today is made of a combination of links (networks), When IP is used as a
connectionless protocol, forwarding is based on the destination address of the IP
datagram; when the IP is used as a connection-oriented protocol and forwarding is based
on the label attached to an IP datagram.
Forwarding Based on Destination Address
Forwarding requires a host or a router to have a forwarding table.
When a host has a packet to send or when a router has received a packet to be forwarded,
it looks at this table to find the next hop to deliver the packet to.
Below Figure shows a simple forwarding module and forwarding table for a router with
only three interfaces.
The job of the forwarding module is to search the table, row by row.
In each row, the n leftmost bits of the destination address (prefix) are kept and the rest of
the bits (suffix) are set to 0s.
If the resulting address, matches with the address in the first column, the information in
the next two columns is extracted; otherwise the search continues.
Normally, the last row has a default value in the first column, which indicates all
destination addresses that did not match the previous rows.
For example, instead of giving the address-mask combination of 180.70.65.192/26, we
can give the value of the 26 leftmost bits as shown below.
10110100 01000110 01000001 11
Address Aggregation
In classful addressing, there is only one entry in the forwarding table for each site outside
the organization. The entry defines the site even if that site is subnetted.
When a packet arrives at the router, the router checks the corresponding entry and
forwards the packet accordingly.
In classless addressing, the number of forwarding table entries will increase.
This is because of dividing up the whole address space into manageable blocks which
increases the amount of time needed to search the table.
To overcome this problem, the idea of address aggregation was designed with two routers
as shown below.
o R1 is connected to networks of four organizations that each use 64 addresses and
has a longer forwarding table because each packet must be correctly routed to the
appropriate organization
o R2 is a small forwarding table. For R2, any packet with destination 140.24.7.0 to
140.24.7.255 is sent out from interface m0 regardless of the organization number.
o This is called address aggregation because the blocks of addresses for four
organizations are aggregated into one larger block. R2 would have a longer
forwarding table if each organization had addresses that could not be aggregated
into one block.
It states that the forwarding table is sorted from the longest mask to the shortest mask.
For example, if there are three masks, /27, /26, and /24, the mask /27 must be the first
entry and /24 must be the last.
Below Figure shows the situation.
o Suppose a packet arrives at router R2 for organization 4 with destination address
140.24.7.200.
o The first mask at router R2 is applied, which gives the network address
140.24.7.192.
o The packet is routed correctly from interface m1 and reaches organization 4.
o If, however, the forwarding table was not stored with the longest prefix first,
applying the /24 mask would result in the incorrect routing of the packet to router
R1.
Hierarchical Routing
The sense of hierarchy is necessary in order to solve the problem of gigantic routing
tables or to decrease the size of the routing table.
Generally Internet is divided into backbone and national ISPs. National ISPs are divided
into regional ISPs, and regional ISPs are divided into local ISPs.
Let us take the case of a local ISP. The local ISP can divide this block into smaller blocks
of different sizes, and assign these to individual users and organizations, both large and
small.
All customers of the local ISP are defined as a.b.c.d/n to the rest of the Internet. Every
packet destined for one of the addresses in this large block is routed to the local ISP.
In the local ISP, the router must recognize the subblocks and route the packet to the
destined customer.
If one of the customers is a large organization, it also can create another level of
hierarchy by subnetting and dividing its subblock into smaller subblocks.
In classless routing, the levels of hierarchy are unlimited as long as we follow the rules of
classless addressing.
Geographical Routing
To decrease the size of the forwarding table even further, we need to extend hierarchical
routing to include geographical routing.
For that we must divide the entire address space into a few large blocks.
For example, we assign a block to America, a block to Europe, a block to Asia, a block to
Africa, and so on. The routers of ISPs outside of Europe will have only one entry for
packets to Europe in their forwarding tables, and so on.
The MPLS header is actually a stack of subheaders that is used for multilevel hierarchical
switching.
Below Figure shows the format of an MPLS header in which each subheader is 32 bits (4
bytes) long.
Label.
o This 20-bit field defines the label that is used to index the forwarding table in the
router.
Exp.
o This 3-bit field is reserved for experimental purposes.
S.
o The one-bit stack field defines the situation of the subheader in the stack. When
the bit is 1, it means that the header is the last one in the stack.
TTL.
o This 8-bit field is similar to the TTL field in the IP datagram. Each visited router
decrements the value of this field. When it reaches zero, the packet is discarded to
prevent looping.
Hierarchical Switching
A stack of labels in MPLS allows hierarchical switching.
For example, a packet with two labels can use the top label to forward the packet through
switches outside an organization; the bottom label can be used to route the packet inside
the organization to reach the destination subnet.
Routers as Packet Switches
The packet switches that are used in the network layer are called routers.
Routers can be configured to act as either a datagram switch or a virtual-circuit switch.
Network-Layer Protocols
INTERNET PROTOCOL (IP)
The Internet Protocol version 4 (IPv4), is responsible for packetizing, forwarding, and
delivery of a packet at the network layer.
The Internet Control Message Protocol version 4 (ICMPv4) helps IPv4 to handle some
errors that may occur in the network-layer delivery.
The Internet Group Management Protocol (IGMP) is used to help IPv4 in multicasting.
The Address Resolution Protocol (ARP) is used to join the network and data-link layers
in mapping network-layer addresses to link-layer addresses.
IPv4 is an unreliable datagram protocol—a best-effort delivery service.
Best-effort delivery:- It means IPv4 packets can be corrupted, be lost, arrive out of order,
or be delayed, and may create congestion for the network.
IPv4 is also a connectionless protocol that uses the datagram approach, where the
datagram is handled independently, and each datagram can follow a different route to the
destination.
Datagram Format
A datagram is a variable-length packet consisting of two parts: header and payload (data).
The header is 20 to 60 bytes in length and contains information essential to routing and
delivery. It is customary in TCP/IP to show the header in 4-byte sections.
Version Number.
o The 4-bit version number (VER) field defines the version of the IPv4 protocol,
which, obviously, has the value of 4.
Header Length.
o The IPv4 datagram has a variable-length header. The 4-bit header length (HLEN)
field defines the total length of the datagram header in 4-byte words.
o The total length is divided by 4 and the value is inserted in the field. The receiver
needs to multiply the value of this field by 4 to find the total length.
Service Type.
o It is referred as type of service (TOS), which defined how the datagram should be
handled.
Total Length.
o This 16-bit field defines the total length of the IP datagram in bytes of up to
65,535 (when all bits are 1s).
o If the size of an IPv4 datagram is less than 46 bytes, some padding will be added
to meet this requirement.
o This field helps the receiving device to know when the packet has completely
arrived.
Length of data = total length − (HLEN) × 4
Identification, Flags, and Fragmentation Offset.
o These three fields are related to the fragmentation of the IP datagram when the
size of the datagram is larger than the underlying network can carry.
Time-to-live.
o It is used to control the maximum number of hops (routers) visited by the
datagram.
o It maintains a counter that gradually decrements down to zero, at which point the
datagram is discarded. This keeps packets from looping endlessly.
Protocol.
o Indicates which upper-layer protocol receives incoming packets after IP
processing is complete.
Header checksum.
o For example, if the destination IP address is corrupted, the packet can be
delivered to the wrong host.
o If the protocol field is corrupted, the payload may be delivered to the wrong
protocol.
o If the fields related to the fragmentation are corrupted, the datagram cannot be
reassembled correctly at the destination, and so on.
o For these reasons, IP adds a header checksum field to check the header, but not
the payload.
Source and Destination Addresses.
o These 32-bit fields define the IP address of the source and destination
respectively.
o The source host should know its IP address.
o The destination IP address is either known by the protocol that uses the service of
IP or DNS
Options.
o A datagram header can have up to 40 bytes of options. Options can be used for
network testing and debugging.
Payload.
o Payload is the packet coming from other protocols that use the service of IP.
FRAGMENTATION
Each router decapsulates the IP datagram from the frame it receives, processes it, and
then encapsulates it in another frame.
The format and size of the received/sent frame depend on the protocol used by the
physical network through which the frame has just traveled/going to travel.
The value of the MTU differs from one physical network protocol to another, where each
fragment has its own header with most of the fields repeated, but some have been
changed.
The fragmented datagram can travel through different routes, and we can never control or
guarantee which route a fragmented datagram may take, all of the fragments belonging to
the same datagram should finally arrive at the destination host. So reassembly is done at
the final destination.
Fields Related to Fragmentation
Three fields in an IP datagram are related to fragmentation:
o identification
o flags
o fragmentation offset
Identification field
o This 16 bit identifies a datagram originating from the source host.
o To guarantee uniqueness, the IP protocol uses a counter starting with positive
number to label the datagrams.
o When the IP protocol sends a datagram, it copies the current value of the counter
to the identification field and increments the counter by one.
o The identification number helps the destination in reassembling the datagram.
o It knows that all fragments having the same identification value should be
assembled into one datagram.
Flag:
o The 3-bit flags field defines three flags.
The leftmost bit is reserved (not used).
The second bit (D bit) is called the do not fragment bit. If its value is 1, the
machine must not fragment the datagram. If its value is 0, the datagram
can be fragmented if necessary.
The third bit (M bit) is called the more fragment bit. If its value is 1, it
means the datagram is not the last fragment; there are more fragments
after this one. If its value is 0, it means this is the last or only fragment.
Fragmentation offset:
o The 13-bit fragmentation offset of the data in the original datagram measured in
units of 8 bytes.
o Below Figure shows an example for fragmentation offset as datagram with a data
size of 4000 bytes fragmented into three fragments.
o The offset is measured in units of 8 bytes. This is done because the length of the
offset field is only 13 bits long and cannot represent a sequence of bytes greater
than 8191.
Expanded view of the fragments for the above figure
The figure also shows what happens if a fragment itself is fragmented.
Steps to reassemble at destination uses the following strategy:
o The first fragment has an offset field value of zero.
o Divide the length of the first fragment by 8. The second fragment has an offset
value equal to that result.
o Divide the total length of the first and second fragment by 8. The third fragment
has an offset value equal to that result.
o Continue the process. The last fragment has its M bit set to 0.
Options
The header of the IPv4 datagram is made of two parts: a fixed part and a variable part.
o The fixed part is 20 bytes long.
o The variable part is of 40 bytes to preserve the boundary of the header.
Options can be used for network testing and debugging.
Options are divided into two broad categories:
o single-byte options
o multiple-byte options
Single-Byte Options
o There are two single-byte options.
No Operation
A no-operation option is a 1-byte option used as filler between
options.
End of Option
An end-of-option option is a 1-byte option used for padding at the
end of the option field.
Multliple-Byte Options
o There are four multiple-byte options.
Record Route
It is used to record the Internet routers that handle the datagram
and also be used for debugging and management
Strict Source Route
It is used by the source to predetermine a route for the datagram as
it travels through the Internet.
The sender can choose a route with a specific type of service, such
as minimum delay or maximum throughput.
If a datagram specifies a strict source route, all the routers defined
in the option must be visited by the datagram.
If the datagram visits a router that is not on the list, the datagram is
discarded and an error message is issued.
Loose Source Route
It is similar to the strict source route, but it is less rigid.
Each router in the list must be visited, but the datagram can visit
other routers as well.
Timestamp
It is used to record the time of datagram processing by a router.
The time is expressed in milliseconds from midnight, Universal
time or Greenwich Mean Time.
Knowing the time a datagram is processed can help users and
managers track the behavior of the routers in the Internet.
Security of IPv4 Datagrams
Three security issues that are applicable to the IP protocol
o Packet sniffing
o Packet modification
o IP spoofing
Packet Sniffing
o Packet sniffing is a passive attack, in which the attacker does not change the
contents of the packet.
o An intruder may intercept an IP packet and make a copy of it.
o This type of attack is very difficult to detect because the sender and the receiver
may never know that the packet has been copied.
o Although packet sniffing cannot be stopped, encryption of the packet can make
the attacker’s effort useless.
Packet Modification
o The second type of attack is to modify the packet.
o The attacker intercepts the packet, changes its contents, and sends the new packet
to the receiver.
o The receiver believes that the packet is coming from the original sender.
o This type of attack can be detected using a data integrity mechanism.
o The receiver, before opening and using the contents of the message, can use this
mechanism to make sure that the packet has not been changed during the
transmission.
IP Spoofing
o An attacker can masquerade as somebody else and create an IP packet that carries
the source address of another computer.
o An attacker can send an IP packet to a bank pretending that it is coming from one
of the customers.
o This type of attack can be prevented using an origin authentication mechanism.
IPSec
o The IP packets today can be protected from the previously mentioned attacks
using a protocol called IPSec (IP Security).
o IPSec provides the following four services:
Defining Algorithms and Keys.
The two entities that want to create a secure channel between
themselves can agree on some available algorithms and keys to be
used for security purposes.
Packet Encryption.
The packets exchanged between two parties can be encrypted for
privacy using one of the encryption algorithms and a shared key
agreed upon in the first step.
Data Integrity.
Data integrity guarantees that the packet is not modified during the
transmission.
Origin Authentication.
IPSec can authenticate the origin of the packet to be sure that the
packet is not created by an imposter.
ICMPv4
Introduction:
The IPv4 has no error-reporting or error-correcting mechanism.
What happens if something goes wrong?
What happens if a router must discard a datagram because it cannot find a route to the
final destination, or because the time-to-live field has a zero value?
What happens if the final destination host must discard the received fragments of a
datagram because it has not received all fragments within a predetermined time limit?
The IP protocol also lacks a mechanism for host and management queries.
A host sometimes needs to determine if a router or another host is alive.
The Internet Control Message Protocol version 4 (ICMPv4) has been designed to
compensate for the above two deficiencies.
ICMP itself is a network-layer protocol.
MESSAGES
ICMP messages are divided into two broad categories:
Error-reporting messages
o It report problems that a router or a host (destination) may encounter when it
processes an IP packet.
Query messages
o It helps a host or a network manager get specific information from a router or
another host.
An ICMP message has an 8-byte header and a variable-size data section.
The type, defines the type of the message.
The code field specifies the reason for the particular message type.
The last common field is the checksum field.
The rest of the header is specific for each message type.
The data section
o In error reporting messages it carries information for finding the original packet
that had the error.
o In query messages, it carries extra information based on the type of query.
All error messages contain a data section that includes the IP header of the original
datagram plus the first 8 bytes of data in that datagram which provides information about
the port numbers (UDP and TCP) and sequence number (TCP).
This information is needed so the source can inform the protocols about the error.
ICMP forms an error packet, which is then encapsulated in an IP datagram.
Destination Unreachable(type 3)
This is the most widely used error message which uses different codes (0 to 15) to define
the type of error message and the reason why a datagram has not reached its final
destination.
For example, code 0 tells the source that a host is unreachable.
For example, when we use the HTTP protocol to access a web page, but the server is
down. The message “destination host is not reachable” is created and sent back to the
source.
Source Quench (type 4)
This informs the sender that the network has encountered congestion and the datagram
has been dropped; the source needs to slow down sending more datagrams.
Redirection Message (type 5)
It is used when the source uses a wrong router to send out its message.
The router redirects the message to the appropriate router, but informs the source that it
needs to change its default router in the future.
This uses Time to Live (TTL) concept for this purpose.
Parameter Problem (type 12)
It can be sent when either there is a problem in the header of a datagram (code 0) or some
options are missing or cannot be interpreted (code 1).
Query Messages
It can be used independently without relation to an IP datagram.
It are used to probe or test the liveliness of hosts or routers in the Internet, find the one-
way or the round-trip time for an IP datagram between two devices, or even find out
whether the clocks in two devices are synchronized.
Usually query messages come in pairs:
o The echo request (type 8) and the echo reply (type 0) pair of messages are used by
a host or a router to test the liveliness of another host or router.
o The timestamp request (type 13) and the timestamp reply (type 14) pair of
messages are used to find the round-trip time between two devices or to check
whether the clocks in two devices are synchronized. The timestamp request and
reply uses 32 bit number for communication.
Deprecated Messages
Three pairs of messages are declared obsolete by IETF:
o Information request and replay messages are not used today because their duties
are done by the ARP.
o Address mask request and reply messages are not used today because their duties
are done by the DHCP.
o Router solicitation and advertisement messages are not used today because their
duties are done by the DHCP.
Debugging Tools
Two tools that use ICMP for debugging: ping and traceroute.
Ping
It is used to find if a host is alive and responding.
How ping is used in ICMP packets?
o The source host sends ICMP echo-request messages; the destination, if alive,
responds with ICMP echo-reply messages.
o The ping program sets the identifier field in the echo-request and echo-reply
message and starts the sequence number from 0; this number is incremented by 1
each time a new message is sent.
o When the packet arrives, it subtracts the arrival time from the departure time to
get the round-trip time (RTT).
Traceroute or Tracert
The traceroute program in UNIX or tracert in Windows can be used to trace the path of a
packet from a source to the destination.
The program is usually set to check for the maximum of 30 hops (routers) to be visited.
The number of hops in the Internet is normally less than this. Since these two programs
behave differently in Unix and Windows.
Traceroute
The traceroute program gets help from two error-reporting messages:
o Time-exceeded
o Destination-unreachable.
The traceroute is an application layer program, but only the client program is needed,
because, the client program never reaches the application layer in the destination host.
The traceroute application program is encapsulated in a UDP user datagram, but
traceroute intentionally uses a port number that is not available at the destination.
If there are n routers in the path, the traceroute program sends (n + 1) messages.
The first n messages are discarded by the n routers, one by each router; the last message
is discarded by the destination host.
In the below Figure, the value of n is 3.
o The first traceroute message is sent with time-to-live (TTL) value set to 1; the
message is discarded at the first router and a time-exceeded ICMP error message
is sent, from which the traceroute program can find the IP address of the first
router and the router name.
o The second traceroute message is sent with TTL set to 2, which can find the IP
address and the name of the second router.
o The third message can find the information about router 3.
o The fourth message reaches the destination host. This host is also dropped, since
it cannot find the port number specified in the UDP user datagram.
o This time ICMP sends a different message, the destination-unreachable message
with code 3 to show the port number is not found.
o After receiving this different ICMP message, the traceroute program knows that
the final destination is reached.
The traceroute program also sets a timer to find the round-trip time for each router and
the destination.
Example:
Tracert
The tracert messages are encapsulated directly in IP datagrams.
The tracert, like traceroute, sends echo-request messages.
However, when the last echo request reaches the destination host, an echoreplay message
is issued.
ICMP Checksum
In ICMP the checksum is calculated over the entire message (header and data).
Example
We randomly chose the identifier to be 1 and the sequence number to be 9. The message is
divided into 16-bit (2-byte) words.
The words are added and the sum is complemented. Now the sender can put this value in the
checksum field.
ROUTING ALGORITHMS:
1. DISTANCE VECTOR ROUTING:
• The goal of distance-vector (DV) routing algorithm is tofind the best route.
• Each node first creates its own least-cost tree with the basic information it has about its
immediate neighbors.
• The incomplete trees are exchanged between immediate neighbors to complete the trees.
• In DV routing, routers continuously share information about their neighbors with each
other.
Bellman – Ford Equation:
• This equation is used to find the least cost (shortest distance) between a source node, x,
and a destinationnode, y, through some intermediary nodes.
• The Bellman – Ford equation is given by:
• Here Dijis the shortestdistance between two nodes i and j and cij is the cost between the
nodes i and j.
• The existing least cost is updated with aleast cost through an intermediary node, such as
z. The equation can be rewritten as:
• Here, 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.
• Distance vector only gives the least costs to the destinations.
• Each node creates a Distance vector by the following steps:
1. When the node is booted, it creates a very basic distancevector with the minimum
information it have about the neighbor nodes.
2. Thenode sends some greeting messages and discovers the identity ofthe immediate
neighbors and the distance between itself and each neighbor.
3. The node fills the discovered distance in the correspondingcells and leaves the value
of other cells as infinity.
4. After each node has created its vector,it sends a copy of the vector to all its immediate
neighbors.
5. After a node receives a distance vector from a neighbor, it updates its distance vector
using the Bellman-Fordequation.
Distance Vector Routing Algorithm:
• This algorithm is run by each node independently and asynchronously.
• Distance-vector routing creates a one-dimensional array to represent the tree. Example:
PROBLEMS INDV ROUTING ALGORITHM:
Count to Infinity:
• A problem with distance-vector routing is that decrease in cost propagatesquickly, but
increase in cost propagates slowly.
• Information of broken link is propagated slowly to other nodes. Only after several
updates the cost of broken link is recorded as infinity by all nodes / routers.
• The problem is referred to as count to infinity.
Two-Node Loop:
• Two node loop is an example of count to infinity problem in which the nodes fail to
update / share the forwarding table due to system instability.
Split Horizon:
• One solution to instability is split horizon. In this, instead of flooding the table with all
values through each interface, each node sends only part of theupdated table through
eachinterface.
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
itstable.
Three-Node Instability:
• The two-node instability can be avoided using split horizon combined with
poisonreverse. However, if the instability is between three nodes, stability cannot be
guaranteed.
2. LINK - STATE ROUTING:
• Link state (LS) routing algorithm directly creates least-cost trees and forwarding tables.
The term link-state defines the characteristic of a link (an edge).The cost associated with
an edge defines the state of the link.
• Links withlower costs are preferred to links with higher costs; if the cost of a link is
infinity, itmeans that the link does not exist or has been broken.
Link-State Database (LSDB):
• To create a least-cost tree, each node needs to know the state of each link.
• The collection of statesfor all links is called the Link-State Database(LSDB) that is
represented as a two – dimensional array and each cell gives the cost of the link.
• There is only one LSDB for the whole network and each node needs to have a duplicate
LSDB to create the least-costtree.
INTERNET STRUCTURE:
• Today’s Internet has several backbones connected by peering points and are run by
private communication companies that provideglobal connectivity.
• In the next level, there are provider networksthat provide services to Internet customers
using the backbone networks.
• In the lowest level, there are customer networks that use the services provided by the
providernetworks.
• Three entities - backbone, provider network, customer network can be called an Internet
Service Provider or ISP.
Hierarchical Routing:
• Routing in the Internet cannot be done using a single protocol because of Scalability
problem and an administrative issue.
• 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
aglobal protocol to glue all ASs together.
• The routing protocol run in each AS is referred to as Intra-AS Routing Protocol,
IntradomainRouting Protocol, or Interior Gateway Protocol (IGP). Example: RIP and
OSPF.
• The global routing protocol is referred to as Inter-AS Routing
Protocol,InterdomainRouting Protocol or Exterior Gateway Protocol (EGP). Example:
BGP.
Autonomous Systems:
• Each ISP is considered to be an autonomous system that can manage networksand routers
under its control.
• Each AS is given an autonomous number (ASN) by the ICANN. ASNis a 16-bit unsigned
integer that uniquely defines an AS.
• ASs are categorized according tothe way they are connected to other ASs. Types of AS
are:
o Stub AS – It has only one connection to another AS. The data traffic can be either
initiated or terminated in a stub AS but data cannot pass through it. Example -
Customer network, which is either the source or thesink of data.
o Multihomed AS - It can have more than one connection to other ASs, but it does
not allow data traffic to pass through it. Example - Customer ASs that may use the
services of more than one providernetwork, but does not allow data to be passed
through them.
o Transient AS - It is connected to more than one other AS and also allows the
traffic to pass through. Examples - Provider networks and Backbone networks.
RIP IMPLEMENTATION:
• RIP is implemented over UDP on the well-known port number 520.
• RIP messages are encapsulated inside UDP user datagrams, which in turn
areencapsulated inside IP datagrams.
• RIP has two versions: RIP-1 and RIP-2. RIP-2 isbackward compatible with RIP-1.
RIP MESSAGES:
• Client and Server RIP processes exchangemessages between them. RIP-2 defines the
format of the message.
• Part ofthe message, calledEntry, can be repeated as needed in a message.
• Each entry carries the information related to one line in the forwarding table of the router
thatsends the message.
RIP ALGORITHM:
Some changes are made to the DV algorithm to enable a router to update its forwarding table.
They are:
• Instead of sending only distance vectors, a router needs to send the whole contentsof its
forwarding table in a response message.
• The receiver adds one hop to each cost and changes the next router field to theaddress of
the sending router. Route in the modified forwardingtable is the received route and route
in the old forwarding table is the old route. The received route is updated based on the
followingthree cases:
1. If the received route does not exist in the old forwarding table, it should be addedto
the route.
2. If the cost of the received route is lower than the cost of the old one, the receivedroute
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 thevalue of
the next router is the same in both routes, the received route should be selected as the
new one.
• The new forwarding table needs to be sorted according to the destination route.
TIMERS IN RIP:
RIP uses three timers to support its operation.
• Periodic timer controls the advertising of regular update messages. Each router sets the
periodic timer between 25 and 35 seconds. The timer counts down and when zero
isreached, the update message is sent, and the timer is randomly set once again.
• 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 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.
• Garbage collection timer isused to purge a route from the forwarding table. When the
information about a routebecomes 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 reacheszero, the route is purged from the table. This timer allows neighbors to
become awareof the invalidity of a route prior to purging.
PERFROMANCE:
• Update Messages - Have a very simple format and are sent only to neighbors. They do
not normally create traffic becausethe routers try to avoid sending them at the same time.
• Convergence of Forwarding Tables – RIP allows only 15 hops in a domain, so there is
no problem in convergence. The problems that may slow down convergence in RIP are
count-to-infinity and loops created in the domain.
• Robustness–Entries in 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 beaffected.
FORWARDING TABLES:
• Each OSPF router creates a forwarding table using Dijkstra’s algorithm with the shortest-
path to the destination.
• OSPF’s forwarding table is similar to RIP with the difference that RIP considers the cost
in terms of hops while OSPF consider the cost in terms of weight.
AREAS:
• RIP is normally used in small ASs while OSPF can be used for routing in small or large
autonomous system.
• The formationof shortest-path trees in OSPF requires all routers to flood theirLSPs to
create the global LSDB. This flooding may create huge traffic in a large AS.
• To prevent this, the ASs are divided into small sections called areas.
• Hence, OSPF uses two level of hierarchy inrouting:
o First level - Autonomous system
o Second level - Area
• Each router in an area needs to know the link state information about other areas. So, one
of the areas in the AS isdesignated as the backbone area which is responsible for gluing
the areas together.
• The routersin the backbone area collect information about an area and pass it on to other
areas.
• For the purpose of communication, each area has area identification. The
areaidentification of the backbone is zero.
LINK-STATE ADVERTISEMENT:
OSPF uses five types of link-state advertisements in order to perform routing: Router Link,
Network Link, Summary Link to Network, Summary Link to AS Border Router and External
Link.
• Router link - A router link advertises the existence of a router as a node and the types of
links that connect the advertising router to otherentities. A transient link announces a link
to a transient network. A stub link advertises a link to a stub network. A point-to-point
link advertises a point to point connection. Each advertisement should define the address
of the network and the cost.
• Network link - A network link advertises the network as a node. Since a network is a
passive entity, one of the routers isassigned as the designated router and does the
advertising. In addition to theaddress of the designated router, this type of LSP announces
the IP address of allrouters.
• Summary link to network - This is done by an area border router; it advertises
thesummary of links collected by the backbone to an area or the summary of
linkscollected by the area to the backbone.
• Summary link to AS - This is done by an AS router that advertises the summarylinks
from other ASs to the backbone area of the current AS.
• External link - This is also done by an AS router to announce the existence of a
singlenetwork outside the AS to the backbone area to be disseminated into the areas.
OSPF IMPLEMENTATION:
• OSPF is implemented in the network layer, using the IP.
• An IP datagram that carries a OSPF message sets the value of theprotocol field to 89.
• OSPF has two versions: version 1 and version 2. Most implementationsuse version 2.
OSPF Messages:
• OSPF is a very complex protocol; it uses five different types of messages.
• OSPF common header is used in allmessages and the link-state general header is used in
some messages.
• Type 1 - Hello message is used by a router to introduce itself to the neighbors and
announce all neighbors that italready knows.
• Type 2 - Database description message is normally sent in responseto the hello
message to allow a newly joined router to acquire the full LSDB.
• Type 3 – Link State request message is sent by a router that needs information about a
specificLS.
• Type 4 - Link-state update message is the main OSPF message used for buildingthe
LSDB. This message, in fact, has five different versions (router link, networklink,
summary link to network, summary link to AS border router, and external link).
• Type 5 - Link-state acknowledgment message is used to createreliability in OSPF; each
router that receives a link-state update message needs toacknowledge it.
Authentication:
• OSPF common header has the provision for authentication to prevent a maliciousentity
from sending OSPF messages to a router and causing the router to becomepart of the
routing system to which it actually does not belong.
OSPF Algorithm:
• OSPF implements the link-state routing algorithmsome changes and augmentations to the
algorithm:
o After each router has created the shortest-path tree, the algorithm needs to use it
tocreate the corresponding routing algorithm.
o The algorithm needs to be augmented to handle sending and receiving all
fivetypes of messages.
PERFORMANCE:
• Update Messages - The link-state messages in OSPF have a complex format. Flooding
of these messages may create heavy traffic and use a lot of bandwidth.
• Convergence of Forwarding Tables - When the LSPs are flooded, each router create its
own shortest-path tree and forwarding table; convergence is fairly quick. However, each
router needs to run Dijkstra’s algorithm, which maytake 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 routersas seriously as in
RIP.
IPv6 ADDRESSING
The main reason for migration from IPv4 to IPv6 is the small size of the address space in
IPv4.
An IPv6 address is 128 bits or 16 bytes (octets) long, four times the address length in
IPv4.
This address space is 296 times the IPv4 address—definitely no address depletion—as
shown, the size of the space is 340, 282, 366, 920, 938, 463, 374, 607, 431, 768, 211,
456.
Representation
Two notations
Binary notation is used when the addresses are stored in a computer.
The colon hexadecimal notation divides the address into eight sections, each made of four
hexadecimal digits separated by colons.
Abbreviation
CIDR Notation
IPv6 uses hierarchical addressing. For this reason, IPv6 allows slash or CIDR notation.
IPv6 address is divided into a prefix and a suffix.
Example:- FDEC::BBFF:0:FFFF/60
Unicast Address
A unicast address defines a single interface. The packet sent to a unicast address will be
routed to the intended recipient.
Anycast Address
An anycast address defines a group of computers that all share a single address.
A packet with an anycast address is delivered to only one member of the group, the most
reachable one.
The hardware and software generate only one copy of the request; the copy reaches only
one of the servers.
Multicast Address
The address space of IPv6 is divided into several blocks of varying size and each block is
allocated for a special purpose.
Global Unicast Addresses
The block in the address space that is used for unicast communication between two hosts
in the Internet is called the global unicast address block.
CIDR for the block is 2000::/3, which means that the three leftmost bits are the same for
all addresses in this block (001).
The size of this block is 2125 bits.
An address in this block is divided into three parts: global routing prefix (n bits), subnet
identifier (m bits), and interface identifier (q bits)
The global routing prefix is used to route the packet through the Internet to the
organization site, such as the ISP that owns the block.
Subnet Identifier defines a subnet in an organization which can have up to 216 = 65,536
subnets, which is more than enough.
The interface identifier defines the interface, not the host. If the host is moved from one
interface to another, its IP address needs to be changed.
Special Addresses
Addresses that use the prefix (0000::/8) are reserved, but part of this block is used to
define some special addresses.
Unspecified address
o It is a subblock containing only one address, which is used during bootstrap when
a host does not know its own address and wants to send an inquiry to find it.
Loopback address
o A packet with one of the addresses in this block as the destination address never
leaves the host; it will remain in the host.
o Two formats under this:
A compatible address is an address of 96 bits of zero followed by 32 bits
of IPv4 address. It is used when a computer using IPv6 wants to send a
message to another computer using IPv6.
A mapped address is used when a computer already migrated to version 6
wants to send an address to a computer still using version 4.
Autoconfiguration
In IPv6, DHCP protocol is used to allocate an IPv6 address to a host.
When a host in IPv6 joins a network, it can configure itself using the following process:
o The host first creates a link local address for itself. This is done by taking the 10-
bit link local prefix (1111 1110 10), adding 54 zeros, and adding the 64-bit
interface identifier, which results in a 128-bit link local address.
o The host then tests to see if this link local address is unique and not used by other
hosts. To check it, the host sends a neighbor solicitation message and waits for a
neighbor advertisement message. If any host in the subnet is using this link local
address, the process fails and the host cannot autoconfigure itself using DHCP.
o If the uniqueness of the link local address is passed, the host stores this address as
its link local address. The host then sends a router solicitation message to a local
router. If there is a router running on the network, the host receives a router
advertisement message that includes the global unicast prefix and the subnet
prefix that the host needs to add to its interface identifier to generate its global
unicast address.
Renumbering
To allow sites to change the service provider, renumbering of the address prefix (n) is
necessary.
A router to which the site is connected can advertise a new prefix and let the site use the
old prefix for a short time before disabling it.
Packet Format
Version. The 4-bit version field defines the version number of the IPv6.
Traffic class. It is used to distinguish different payloads with different delivery
requirements.
Flow label. It is designed to provide special handling for a particular flow of data.
Payload length. The 2-byte payload length field defines the length of the IP datagram
excluding the header.
Next header. The next header is an 8-bit field defining the type of the first extension
header 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 identifies the original source
of the datagram. The destination address field identifies the destination of the datagram.
Payload. It is a combination of zero or more extension headers followed by the data from
other protocols such as TCP etc.,
The payload can have as many extension headers which have two mandatory fields, next
header (defines the type of the next header) and the length, followed by information
related to the particular option.
Extension Header
An IPv6 packet is made of a base header with 40 bytes and 6 extension headers which
gives more functionality to the IP datagram.
Hop-by-Hop Option
o It is used when the source needs to pass information to all router visited by the
datagram. Three hop by- hop options are : Pad1, PadN, and jumbo payload.
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. It is used when 2 or more bytes are needed for alignment.
Jumbo payload. Used to define longer length of 65,535 bytes
Destination Option
o It is used when the source needs to pass information to the destination only.
Source Routing
o It combines the concepts of the strict source route and the loose source route
options of IPv4.
Fragmentation
o Here the original source can fragment.
o A source must use a Path MTU Discovery technique to find the smallest MTU
supported by any network on the path.
o The source then fragments using this knowledge.
o If the source does not use a Path MTU Discovery technique, it fragments the
datagram to a size of 1280 bytes or smaller.
o This is the minimum size of MTU required for each network connected to the
Internet.
Authentication
o The authentication extension header has a dual purpose: it validates the message
sender and ensures the integrity of data.
Encrypted Security Payload
o It is an extension that provides confidentiality and guards against eavesdropping.
Comparison of Options between IPv4 and IPv6
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.