0% found this document useful (0 votes)
20 views

IT_210_Week07_Forouzan

Uploaded by

monawar mashaal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

IT_210_Week07_Forouzan

Uploaded by

monawar mashaal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 82

Chapter 18

Introduction
to
Network
Layer
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Chapter 18: Outline

18.1 NETWORK-LAYER SERVICES

18.2 PACKET SWITCHING

18.3 NETWORK-LAYER PERFORMANCE

18.4 IPv4 ADDRESSES

18.5 FORWARDING OF IP PACKETS


Chapter 18: Objective

The first section introduces the network layer by defining the services provided by this
layer. It first discusses packetizing. It then describes forwarding and routing and
compares the two. The section then briefly explains the other services such as flow,
error, and congestion control.

The second section discusses packet switching, which occurs at the network layer. The
datagram approach and the virtual-circuit approach of packet switching are described in
some detail in this section.

The third section discusses network-layer performance. It describes different delays that
occur in network-layer communication. It also mentions the issue of packet loss.
Finally, it discusses the issue of congestion control at the network layer.

The fourth section discusses IPv4 addressing, probably the most important issue in the
network layer. It first describes the address space. It then briefly discusses classful
addressing, which belongs to the past but is useful in understanding classless
addressing. The section then moves to classless addressing and explains several issues
related to this topic. It then discusses DHCP, which can be used to dynamically assign
addresses in an organization. Finally, the section discusses NAT, which can be used to
relieve the shortage of addresses to some extent.

The fifth section discusses forwarding of network-layer packets. It first shows how
forwarding can be done based on the destination address in a packet. It then discusses
how forwarding can be done using a label.
18-1 NETWORK-LAYER SERVICES

Before discussing the network layer in the


Internet today, let’s briefly discuss the network-
layer services that, in general, are expected
from a network-layer protocol. Figure 18.1
shows the communication between Alice and
Bob at the network layer. This is the same
scenario we used in Chapters 3 and 9 to show
the communication at the physical and the data-
link layers, respectively.
18.4
Figure 18.1: Communication at the network layer

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 packet
from a transport layer,
encapsulates the packet in a
datagram, and delivers the packet
to the data-link layer.
At the destination host (Bob), the
datagram is decapsulated, and the
packet is extracted and delivered
to the corresponding transport
layer.
The routers use three layers if they are
routing packets only; however, they may
need the transport and application layers
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.

18.5
18.18.1 Packetizing
The first duty of the network layer is definitely packetizing:
encapsulating the payload in a network-layer packet at the
source and decapsulating the payload from the network-layer
packet at the destination.
In other words, one duty of the network layer is to carry a
payload from the source to the destination without changing
it or using it.
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.

18.6
18.18.2 Routing and Forwarding
Other duties of the network layer, which are as important as the first,
are routing and forwarding, which are directly related to each other.

Routing
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. 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 used when a packet arrives.
Forwarding
The action applied by each router when a packet arrives at one of its
interfaces. A router normally use a decision-making table for applying this
action. It is called (the forwarding table) or (the routing table).

18.7
Figure 18.2: Forwarding process

Forwarding Send the packet


value out of interface 2
B Data B Data

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.

18.8
18.18.3 Other Services

Let us briefly discuss other services expected from the network layer.
Error ControlL: a checksum field to the datagram to control any change or corruption in the
header, but not in the whole 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. The datagrams are sent by the sender when they are ready.(Why flow control is
not provided?)
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.
Quality of Service: quality of service has become more important in the Internet especially
with multimedia communication. However, to keep the network layer untouched, these
provisions are mostly implemented in the upper layer.
Security: To provide security for a connectionless network layer, we need to have another
virtual level ( IPSec) that changes the connectionless service to a connection-oriented service.

18.9
18-2 PACKET SWITCHING

From the discussion of routing and forwarding, we infer that a kind of


switching occurs at the network layer. A router, in fact, is a switch that creates a
connection between an input port and an output port (or a set of output ports),
just as an electrical switch connects the input to the output to let electricity
flow.
At the network layer, a message from the upper layer is divided into packets.
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 need to decide how to
route the packets to the final destination using two different approaches:
1. The datagram approach.
2. The virtual circuit approach.

18.10
18.2.1 Datagram Approach
Connectionless Service
When the Internet started, to make it simple, the
network layer was designed to provide a
connectionless service in which the network-layer
protocol treats each packet independently, with each
packet having no relationship to any other packet. The
idea was that the network layer is only responsible for
delivery of packets from the source to the destination.
In this approach, the packets in a message may or may
not travel the same path to their destination. Figure
18.3 shows the idea..

18.11
Figure 18.3: A connectionless packet-switched network

A packet belonging to a message may be followed by a packet


belonging to the same message or to a different message. A
packet may be followed by a packet coming from the same or from
a different source.
The switches in this type of network are called routers.

18.12
Figure 18.4: Forwarding process in a router when used in a connectionless
network
In the datagram
approach, the
forwarding decision is
based on the
destination address of
the packet: The
packet header
has a source
and destination
addresses. The
destination
address defines SA DA Data
where it should SA DA Data
go and The router
routes the packet
based only on the
destination
address.
The source address defines where the packet comes from. It may be used to
send an error message to the source if the packet is discarded.

18.13
18.2.2 Virtual-Circuit Approach
Connection-Oriented Service
In a connection-oriented service (also called virtual-circuit
approach), there is a relationship between all packets
belonging to a message.
Before all datagrams in a message can be sent, a virtual
connection should be set up to define the path for the
datagrams
After connection setup, the datagrams 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.
18.14
Figure 18.5: A virtual-circuit packet-switched network

18.15
Figure 18.6: Forwarding process in a router when used in a virtual circuit
network

Incoming Outgoing
label label

The forwarding decision is based on the value of


the label.

18.16
Create a connection-oriented service

A three-phase process is used:



Setup: the source and destination addresses of the sender and
receiver are used to make table entries for the connection-oriented
service. if A needs to create a virtual circuit to B. Two auxiliary
packets need to be exchanged between the sender and the receiver:
the request packet and the acknowledgment packet.

Data transfer: 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.
• Teardown: 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.
18.17
Figure 18.7: Sending request packet in a virtual-circuit
network
A request packet is sent from the
source to the destination. This
auxiliary packet carries the source
and destination addresses.
1. Source A sends a request packet
to router R1.
2. Router R1 receives the request A to B
packet. It knows that a packet going
from A to B goes out through port 3 A to B
(How?). The router creates an entry
in its table for this virtual circuit , but it
is only able to fill three of the four A to B A to B
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..
4. Router R4 receives the setup request packet. Again, three columns are completed.
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 that come from A, in this case 77, as shown in Figure 18.8. This label lets the destination know
that the packets come from A, and not from other sources.

18.18
Figure 18.8: Sending acknowledgments in a virtual-circuit network

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
complete the outgoing label
column.
2. Router R4 sends an acknowledgment to router R3 that contains its incoming label in the table,
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,
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.
18.19
Figure 18.9: Flow of one packet in an established virtual circuit

The Figure show


the flow of a single
packet, but the
process is the
same for 1, 2, or
100 packets.
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.
18.20
18-3 NETWORK-LAYER PERFORMANCE

The upper-layer protocols that use the service of


the network layer expect to receive an ideal
service, but the network layer is not perfect.
The performance of a network can be measured
in terms of delay, throughput, and packet loss.
Congestion control is an issue that can improve
the performance.

18.21
18.3.1 Delay

All of us expect instantaneous response from a


network, but a packet, from its source to its
destination, encounters delays. The delays in a
network can be divided into four types:

Transmission delay.

Propagation delay.

Processing delay.

Queuing delay.
Let us first discuss each of these delay types and then
show how to calculate a packet delay from the source
to the destination.

18.22
18.3.2 Throughput

Throughput at any point in a network is defined as the


number of bits passing through the point in a second,
which is actually the transmission rate of data at that
point. In a path from source to destination, a packet
may pass through several links (networks), each with
a different transmission rate. How, then, can we
determine the throughput of the whole path? To see
the situation, assume that we have three links, each
with a different transmission rate, as shown in Figure
18.10.

18.23
Figure 18.10: Throughput in a path with three links in a
series

In this figure, the data can flow at the rate of 200 kbps in Link1.
When the data arrives at router R1 Data needs to be queued at the router
and sent at 100 kbps.
When data arrives at router R2, it could be sent at the rate of 150 kbps, but
there is not enough data to be sent.
So, the average rate of the data flow in Link3 is also 100 kbps.

The average throughput is determined by the bottleneck, the pipe with the smallest diameter.
In general, in a path with n links in series:
Throughput minimum {TR1, TR2, TRn}.

18.24
Figure 18.11: A path through the Internet backbone

The Internet backbone has a very high transmission rate, in the range of gigabits
per second.

The throughput is normally defined as the minimum transmission rate of the two
access links that connect the source and destination to the backbone. So, the
throughput is the minimum of TR1 and TR2.

For example, if a server connects to the Internet via a Fast Ethernet LAN with the
data rate of 100 Mbps, but a user who wants to download a file connects to the
Internet via a dial-up telephone line with the data rate of 40 kbps, the throughput
is 40 kbps. The bottleneck is definitely the dial-up line.

18.25
Figure 18.12: Effect of throughput in shared links

The transmission rate of the main link in the calculation of the


throughput is only 200 kbps because the link is shared
between three paths.

18.26
18.3.3 Packet Loss

Another issue that severely affects the performance of


communication is the number of packets lost during
transmission. 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. A
router, however, has an input buffer with a limited
size. A 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.

18.27
18.3.4 Congestion Control

Congestion control is a mechanism for improving


performance. In Chapter 23, we will discuss congestion at
the transport layer. Although congestion at the network
layer is not explicitly addressed in the Internet model, the
study of congestion at this layer may help us to better
understand the cause of congestion at the transport layer
and find possible remedies to be used at the network
layer.
Congestion at the network layer is related to two issues,
throughput and delay.

18.28
Figure 18.13. Packet delay and throughput as functions of
load

When the load is much less than the When the load is below the capacity
capacity of the network, the delay is of the network, the throughput
at a minimum (propagation delay increases proportionally with the
and processing delay--> both load.
negligible).
After the load reaches the capacity,
When the load reaches the network the throughput declines sharply--
capacity, the delay increases sharply >because routers are discarding
because we now need to add the packets.
queuing delay to the total delay.
When the load exceeds the
The delay becomes infinite when the capacity, the queues become full
load is greater than the capacity. and the routers have to discard
18.29 some packets. The sources
Congestion Control

We can divide congestion control mechanisms into


two broad categories:
Open-loop congestion control (prevention): Retransmission Policy,
Window Policy, Acknowledgment Policy, Discarding Policy and
Admission Policy.
Closed-loop congestion control (removal): Backpressure protocol,
Choke Packet, Implicit Signaling and Explicit Signaling.

18.30
Figure 18.14: Backpressure method for alleviating
congestion

Backpressure is a node- to-node congestion control that starts


with a node and propagates, in the opposite direction of data
flow, to the source.
It can be applied only to virtual circuit networks, in which each
node knows the upstream node from which a flow of data is
coming. It cannot be implemented in a datagram network, in
which a node (router) does not have the slightest knowledge of
the upstream router.

18.31
Figure 4.15: Choke packet

A choke packet is a packet sent by a node to the source to inform


it of congestion.

18.32
18-4 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.

18.33
18.4.1 Address Space

A protocol like IPv4 that defines addresses has an 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.

18.34
Figure 18.16: Three different notations in IPv4 addressing

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

in the dotted-decimal notation an IPv4


address is written in decimal form with
a (dot) separating the bytes.
because each byte (octet) is only 8
bits, each number is between 0 and
255.

in hexadecimal notation, each


hexadecimal digit is equivalent to
four bits.

18.35
Figure 18.17: Hierarchy in addressing

A 32-bit IPv4 address is hierarchical --> divided into two parts:


1. Prefix: defines the network -->(length = n bits)
2. Suffix: defines the node (connection of a device to the
Internet)--> lenght= (32 − n) bits.

18.36
18.4.2 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), as
shown in Figure 18.18. This scheme is referred to as
classful addressing. Although classful addressing
belongs to the past, it helps us to understand classless
addressing, discussed later.

18.37
Figure 18.18: Occupation of the address space in classful
addressing

18.38
18.4.3 Classless Addressing

With the growth of the Internet, it was clear that a


larger address space was needed as a long-term
solution. The larger address space, however, requires
that the length of IP addresses also be increased,
which means the format of the IP packets needs to be
changed. Although the long-range solution has
already been devised and is called IPv6, a short-term
solution was also devised to use the same address
space but to change the distribution of addresses to
provide a fair share to each organization. The short-
term solution still uses IPv4 addresses, but it is called
classless addressing.
18.39
Figure 18.19: Variable-length blocks in 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 2 0, 21, 22, . . . , 232 addresses. The
number of addresses in a block needs to be a power of 2.

18.40
Figure 18.20: Slash notation
classless interdomain routing (CIDR)

18.41
Figure 18.21: Information extraction in classless addressing

18.42
Example 18.1
A classless address is given as 167.199.170.82/27. We can find the
above three pieces of information as follows. The number of addresses
in the network is 232− n = 25 = 32 addresses. The first address can be
found by keeping the first 27 bits and changing the rest of the bits to
0s. 1 167 1 19
1 83 1 9
1 41 1 99
0 20 0 49
0 10 0 24
1 5 0 12
0 2 1 6
1 1 1 3
The last address can be found by keeping the first 27 1

bits and changing the rest of the bits to 1s. 0


1
170
85
0 42
1 21
0 10
1 5
0 2
1 1

18.43
Example 18.2 S
We repeat Example 18.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
using calculators and applets at the book website.

18.44
Example 18.3 S
In classless addressing, an address cannot per se define the
block the address belongs to. For example, the address
230.8.24.56 can belong to many blocks. Some of them are
shown below with the value of the prefix associated with
that block.

18.45
Figure 18.22: Network address

The network address is the identifier of the network. 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
18.46 out.
Example 18.4 S
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.

The prefix length N 2332− n − log2 1024


First address (prefix in decimal) 232 − n
(prefix in decimal) N.

18.47
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.
The following steps need to be carefully followed to guarantee the
proper operation of the subnetworks:
❑ The number of addresses in each subnetwork should be a power
of 2.
❑ The prefix length for each subnetwork should be found using the
following formula: nsub = 32 − log2Nsub
❑ 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.
Example 18.5
An organization is granted a block of addresses with the
beginning address 14.24.74.0/24. The organization needs to
have 3 subblocks of addresses to use in its three subnets:
one subblock of 10 addresses, one subblock of 60 addresses,
and one subblock of 120 addresses. Design the subblocks.
Solution
14.24.74.0/24 = 00001110. 00011000. 01001010.00000000
There are 232– 24 = 256 addresses in this block.
The first address is 14.24.74.0/24. = 00001110. 00011000.
01001010.00000000
the last address is 14.24.74.255/24. = 00001110. 00011000.
01001010.11111111
To satisfy the third requirement, we assign addresses to subblocks,
starting with the largest and ending with the smallest one.
18.49
Example 18.5 (continued)
a. The number of addresses in the largest subblock, which requires
120 addresses, is not a power of 2. We allocate 128 addresses.
The subnet mask for this subnet can be found as n1 = 32 − log2
128 = 25. The first address in this block is 14.24.74.0/25; the last
address is 14.24.74.127/25.
14.24.74.0/25 = 00001110. 00011000. 01001010.00000000
First address = 00001110. 00011000. 01001010.00000000 =14.24.74.0/25
Las address = 00001110. 00011000. 01001010.01111111=14.24.74.127/25

b. The number of addresses in the second largest subblock, which


requires 60 addresses, is not a power of 2 either. We allocate 64
addresses.
The subnet mask for this subnet can be found as n2 = 32−log2 64 = 26.
14.24.74.0/26 = 00001110. 00011000. 01001010.00000000
The first address in this block is 14.24.74.128/26; the last address is
14.24.74.191/26.
18.50
Example 18.5 (continued)
c. The number of addresses in the smallest subblock,
which requires 10 addresses, is not a power of 2 either.
We allocate 16 addresses.
The subnet mask for this subnet can be found as
n3 = 32 − log216 = 28.
The first address in this block is 14.24.74.192/28;
the last address is 14.24.74.207/28.

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. We don’t know about the
prefix length yet. Figure 18.23 shows the configuration of
blocks. We have shown the first address in each block.

18.51
Figure 18.23: Solution to Example 4.5

18.52
Example 18.6
Address Aggregation
When blocks of addresses are combined to create a larger block, routing
can be done based on the prefix of the larger block.

Figure 18.24 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 corresponding destination.

18.53
Figure 18.24: Example of address aggregation

18.54
18.4.4 DHCP
Dynamic Host Configuration Protocol
After a block of addresses are assigned to an
organization, the network administration can
manually assign addresses to the individual hosts or
routers.
However, 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.

18.55
Figure 18.25: DHCP message format

18.56
Figure 18.26: Option format

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

18.57
Figure 18.27: Operation of DHCP

18.58
Figure 18.28: FSM for the DHCP client

Note that the client can use the IP address only whenit is in the BOUND,
RENEWING, or REBINDING state.

18.59
18.4.5 NAT

In most situations, only a portion of computers in a


small network need access to the Internet
simultaneously. A technology that can provide the
mapping between the private and universal addresses,
and at the same time support virtual private networks,
which we discuss in Chapter 32, is Network Address
Translation (NAT).
The technology 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.

18.60
Figure 18.29: 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.
18.61
Figure 18.30: 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.
18.62
Figure 18.31: Translation

Translation table, In its simplest form, has only two columns: the private address and the
destination address of the packet.
(1+2) When the router translates the source address of the outgoing packet, it also makes note
of the destination address.
(3+4) When the response comes back from the destination, the router uses the source address of
the packet to find the private address of the packet.
18.63
Table 18.1: Five-column translation table
Using a Pool of IP Addresses
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.
However, there are still some 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., HTTP) at the
same time.

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.
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.

Must be
unique

18.64
18-5 FORWARDING OF IP PACKETS

We discussed the concept of forwarding at the


network layer earlier in this chapter. In this
section, we extend the concept to include the
role of IP addresses in forwarding. As we
discussed before, forwarding means to place the
packet in its route to its destination.

18.65
18.5.1 Destination Address Forwarding

We first discuss forwarding based on the destination


address. This is a traditional approach, which is
prevalent today. In this case, 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.

18.66
Figure 18.32: Simplified forwarding module in classless
address

A classless forwarding table needs to include four pieces of information:


1. The network address
2. The mask.
3. The interface number
4. The IP address of the next router (needed to find the link-layer address of the next
hop).
Often, The first two pieces are combined.

The job of the forwarding module is to search the table, row by row.
In each row, the destination address prefix are kept and suffix are set to 0s.
If the resulting address (which we call the network address), match the address in
the first column, the information in the next two columns is extracted; otherwise the
search continues.
18.67
Example 18.7
Make a forwarding table for router R1 using the
configuration in Figure 18.33.

Solution:
Figure 18.33: Configuration for Example 4.7
Table 18.2 shows the corresponding table.

Table 18.2:
Forwarding table for router R1 in Figure
4.46
Example 18.8
Instead of Table 18.2, we can use Table 18.3, in which the
network address/mask is given in bits.
Table 18.3: Forwarding table for router R1 using prefix
bits

When a packet arrives whose leftmost 26 bits in the


destination address match the bits in the first row, the packet
is sent out from interface m2. And so on.
18.69
Example 18.9
Show the forwarding process if a packet arrives at R1 in
Figure 18.33 with the destination address 180.70.65.140.

Solution
The router performs the following steps:
1. The first mask (/26) is applied to the
destination address. The result is
180.70.65.128, which does not match the
corresponding network address.
2. The second mask (/25) is applied to the
destination address. The result is 180.70.65.140= 10110100. 01000110. 01000001. 10001100
180.70.65.128, which matches the 1. After applying mask (/26):
corresponding network address. The next-hop 10110100. 01000110. 01000001. 10000000= 180.70.65.128
address and the interface number m0 are
Which does not match 180.70.65.192= 10110100. 01000110.
extracted for forwarding the packet (see 01000001.11000000
Chapter 5). 2. After applying mask (/25):
10110100. 01000110. 01000001. 10000000= 180.70.65.128
which matches:
180.70.65.128= 10110100. 01000110. 01000001. 10000000
18.70
Figure 18.34: Address aggregation
we have two
routers.
R1 is connected to
networks of four
organizations that
each use 64
addresses.
R2 is somewhere far
from R1.
R1 has a longer
forwarding table
because each
packet must be
correctly routed to
the appropriate
organization.
R2 can have a very
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
This of the aggregation because the blocks of addresses for four organizations are
is called address
organizationinto one larger block. R2 would have a longer forwarding table if each organization
aggregated
number.
had addresses that could not be aggregated into one block.

18.71
Figure 18.35: Longest mask matching

The forwarding table is sorted from the longest mask to the shortest
mask. so, if there are three masks, /27, /26, and /24, the mask /27
must be the first entry and /24 must be the last.

Suppose a packet arrives at


router R2 for organization 4
with destination address
140.24.7.200.
= 10001100. 00011000.
00000111.11001000
The first mask at router R2
is applied(/26):
= 10001100.00011000.
00000111.11000000
which gives the network
address 140.24.7.192.
The packet is routed
correctly from interface m1
and reaches organization 4.
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
Example 18.10 S
As an example of hierarchical routing, let us consider Figure
18.36. A regional ISP is granted 16,384 addresses starting
from 120.14.64.0. The regional ISP has decided to divide
this block into 4 subblocks, each with 4096 addresses. Three
of these subblocks are assigned to three local ISPs, the
second subblock is reserved for future use. Note that the
mask for each block is /20 because the original block with
mask /18 is divided into 4 blocks.

The figure also shows how local and small ISPs have
assigned addresses.

18.73
Figure 18.35: Hierarchical routing with ISPs S

18.74
18.5.2 Forwarding Based on Label

In the 1980s, an effort started to somehow change IP to


behave like a connection-oriented protocol in which the
routing is replaced by switching.
As we discussed earlier In a connection-oriented
network (virtual-circuit approach), a switch forwards a
packet based on the label attached to the packet.
Routing is normally based on searching the contents of
a table;
Switching can be done by accessing a table using an
index.
In other words, routing involves searching; switching
involves accessing..
18.75
Example 18.11 S
Figure 18.37 shows a simple example of searching in a
forwarding table using the longest mask algorithm.
Although there are some more efficient algorithms today,
the principle is the same.

When the forwarding algorithm gets the destination address


of the packet, it needs to delve into the mask column. For
each entry, it needs to apply the mask to find the destination
network address. It then needs to check the network
addresses in the table until it finds the match. The router
then extracts the next-hop address and the interface number
to be delivered to the data-link layer.

18.76
Figure 18.37: Example 18.11: Forwarding based on destination
address

18.77
Example 18.12 S
Figure 18.38 shows a simple example of using a label to
access a switching table. Since the labels are used as the
index to the table, finding the information in the table is
immediate.

18.78
Figure 18.38: Example 18.12: Forwarding based on label

18.79
Figure 18.39: MPLS header added to an IP packet

some conventional routers in the Internet can be replaced by MPLS


routers, which can behave like a router and a switch.
like a router: it can forward the packet based on the destination
address.
like a switch: it can forward a packet based on the label.

To simulate connection-oriented switching using a protocol like IP,


the IPv4 packet is encapsulated in an MPLS packet and an MPLS
header is added.

18.80
Figure 18.40: MPLS header made of a stack of labels

The MPLS header is actually a stack of subheaders that is used for


multilevel hierarchical switching. Each subheader is 32 bits (4 bytes) long.
❑ Label. defines the label that is used to index the forwarding table in the router.
❑ Exp. reserved for experimental purposes.
❑ S. 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. 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.

18.81
18.5.3 Routers as Packet Switches

As we may have guessed by now, 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.

We have discussed the structure of a packet-switch in


Chapter 8. The discussion in that chapter can be
applied to any router used in the Internet.

18.82

You might also like