INTRODUCTION
o The Internet Protocol (IP) is the
transmission mechanism used by the
TCP/IP protocols at the network layer.
Figure 1 Position of IP in TCP/IP protocol suite
DATAGRAMS
Packets in the network (internet) layer
are called datagrams.
A datagram is a variable-length
packet consisting of two parts: header
and 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.
A brief description of each field is in
order.
Figure 2 IP datagram
Figure 3 Service type or differentiated services
Table 1 Types of service
Datagram Example :
“This example helps students relate datagrams to daily life. Apps like Zoom or YouTube
rely on fast delivery where skipping a few packets is acceptable.”
• A video streaming app (like YouTube) sends data using UDP datagrams.
• Each datagram carries a chunk of video data (e.g., 1,200 bytes).
• No prior connection setup → faster but unreliable.
• If a datagram is lost, the video frame may skip, but streaming continues.
• Routers forward each datagram independently, possibly over different paths.
Diagram:
• Laptop (Client) → Cloud (Network with routers) → Server.
• Show 3 small boxes labeled Datagram 1, Datagram 2, Datagram 3 flowing through the
network.
• One datagram shown taking a different route before reaching the server.
Note
The total length field defines the total
length of the datagram including the
header.
Figure 4 Encapsulation of a small datagram in an Ethernet frame
Figure 7.5 Multiplexing
10
11
Example 7.1
An IP packet has arrived with the first 8 bits as
shown:
The receiver discards the packet. Why?
12
Example 7.1
An IP packet has arrived with the first 8 bits as
shown:
The receiver discards the packet. Why?
Solution
There is an error in this packet. The 4 left-most
bits (0100) show the version, which is correct.
The next 4 bits (0010) show the wrong header
length (2 × 4 = 8). The minimum number of bytes
in the header must be 20. The packet has been
corrupted in transmission.
13
Example 7.2
In an IP packet, the value of HLEN is 1000 in
binary. How many bytes of options are being
carried by this packet?
14
Example 7.2
In an IP packet, the value of HLEN is 1000 in
binary. How many bytes of options are being
carried by this packet?
Solution
The HLEN value is 8, which means the total
number of bytes in the header is 8 × 4 or 32
bytes. The first 20 bytes are the base header, the
next 12 bytes are the options.
15
Example 7.3
In an IP packet, the value of HLEN is 516 and the
value of the total length field is 002816. How
many bytes of data are being carried by this
packet?
Solution
The HLEN value is 5, which means the total
number of bytes in the header is 5 × 4 or 20
bytes (no options). The total length is 40 bytes,
which means the packet is carrying 20 bytes of
data (40 − 20).
16
Example 7.4
An IP packet has arrived with the first few
hexadecimal digits as shown below:
How many hops can this packet travel before
being dropped? The data belong to what upper
layer protocol?
Solution
To find the time-to-live field, we skip 8 bytes (16
hexadecimal digits). The time-to-live field is the
ninth byte, which is 01. This means the packet
can travel only one hop. The protocol field is the
next byte (02), which means that the upper layer
protocol is IGMP (see Table 7.2)
17
7-3 FRAGMENTATION
o A datagram can travel through different
networks.
o Each router decapsulates the IP
datagram from the frame it receives,
processes it, and then encapsulates it in
another frame.
o The format and size of the received
frame depend on the protocol used by
the physical network through which the
frame has just traveled.
o The format and size of the sent frame
depend on the protocol used by the 18
Topics Discussed in the Section
Maximum Transfer Unit (MTU)
Fields Related to Fragmentation
19
Figure 7.6 MTU
IP datagram
Header MTU Trailer
Maximum length of data that can be encapsulated in a frame
Frame
20
Table 20.5 MTUs for some networks
Note
Only data in a datagram is fragmented.
22
Figure 7.7 Flags field
23
Figure 7.8 Fragmentation example
Offset = 0000/8 = 0
0000 1399
Offset = 1400/8 = 175
1400 2799
Offset = 2800/8 = 350
2800 3999
24
Figure 7.9 Detailed fragmentation example
1420
14,567 1 000
Bytes 0000–1399 820
14,567 1 175
Fragment 1
4020
14,567 0 000
1420 Bytes 1400–2199
14,567 1 175
Fragment 2.1
Bytes 0000–3999
Bytes 1400–2799
Original datagram Fragment 2
1220
14,567 0 350
Bytes 2800–3999
Fragment 3
25
Example 7.5
A packet has arrived with an M bit value of 0. Is
this the first fragment, the last fragment, or a
middle fragment? Do we know if the packet was
fragmented?
Solution
If the M bit is 0, it means that there are no more
fragments; the fragment is the last one.
However, we cannot say if the original packet
was fragmented or not. A nonfragmented packet
is considered the last fragment.
26
Example 7.6
A packet has arrived with an M bit value of 1. Is
this the first fragment, the last fragment, or a
middle fragment? Do we know if the packet was
fragmented?
Solution
If the M bit is 1, it means that there is at least
one more fragment. This fragment can be the
first one or a middle one, but not the last one. We
don’t know if it is the first one or a middle one;
we need more information (the value of the
fragmentation offset). See also the next example.
27
Example 7.7
A packet has arrived with an M bit value of 1 and
a fragmentation offset value of zero. Is this the
first fragment, the last fragment, or a middle
fragment?
Solution
Because the M bit is 1, it is either the first
fragment or a middle one. Because the offset
value is 0, it is the first fragment.
28
Example 7.8
A packet has arrived in which the offset value is
100. What is the number of the first byte? Do we
know the number of the last byte?
Solution
To find the number of the first byte, we multiply
the offset value by 8. This means that the first
byte number is 800. We cannot determine the
number of the last byte unless we know the
length of the data.
29
Example 7.9
A packet has arrived in which the offset value is
100, the value of HLEN is 5 and the value of the
total length field is 100. What is the number of
the first byte and the last byte?
Solution
The first byte number is 100 × 8 = 800. The total
length is 100 bytes and the header length is 20
bytes (5 × 4), which means that there are 80
bytes in this datagram. If the first byte number is
800, the last byte number must be 879.
30
Figure 20.13 Example of checksum calculation in IPv4
7-4 OPTIONS
• The header of the IP datagram is
made of two parts: a fixed part and a
variable part.
• The fixed part is 20 bytes long and
was discussed in the previous section.
• The variable part comprises the
options, which can be a maximum of
40 bytes.
• Options, as the name implies, are not
required for a datagram.
• They can be used for network testing
and debugging. 32
Figure 7.11 Categories of options
27-2 PACKET FORMAT
o The IPv6 packet is shown in Figure
27.1.
o Each packet is composed of a
mandatory base header followed by
the payload.
o The payload consists of two parts:
optional extension headers and data
from an upper layer.
o The base header occupies 40 bytes,
whereas the extension headers and
data from the upper layer contain up
to 65,535 bytes of information.
Figure 20.15 IPv6 datagram header and
payload
Figure 27.1 IPv6 datagram
Figure 27.2 Format of the base header
Figure 27.3 Extension header format
Table 20.9 Comparison between IPv4 and IPv6 packet headers
Figure 20.17 Extension header types
Table 20.10 Comparison between IPv4 options and IPv6 extension
headers
20.42
Transition from IPv4 to
IPv6
Figure 20.19 Dual stack
Figure 20.20 Tunneling strategy