Internet Protocol version 4 (IPv4) is the delivery mechanism used by the TCP/IP
an unreliable and connectionless datagram protocol-a best-effort delivery
service. The term best-effort means
that IPv4 provides no error control or flow control (except for error detection
on the header). IPv4 assumes the unreliability of the underlying layers and
does its best to get a transmission through to its destination, but with no
in the IPv4 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.
· Version (VER): This
4-bit field defines the version of the IPv4 protocol. Currently theversion is
4. However, version 6 (or IPv6) may totally replace version 4 in the future.
This field tells the IPv4 software running in the processing machine that the
datagram has the format of version 4. All fields must be interpreted as
specified in the fourth version of the protocol. If the machine is using some
other version of IPv4, the datagram is discarded rather than interpreted
· Header length (HLEN): This
4-bit field defines the total length of the datagram headerin 4-byte words.
This field is needed because the length of the header is variable (between 20
and 60 bytes). When there are no options, the header length is 20 bytes, and
the value of this field is 5 (5 x 4 = 20). When the option field is at its
maximum size, the value of this field is 15 (15 x 4 = 60)
· Services: IETF has
changed the interpretation and name of this 8-bit field. This field,previously
called service type, is now called differentiated services.
1. Service Type
interpretation, the first 3 bits are called precedence bits. The next 4 bits
are called type of service (TOS) bits, and the last bit is not used.
3-bit subfield ranging from 0 (000 in binary) to 7 (111 in binary).The
precedence defines the priority of the datagram in issues such as congestion.
TOS bits are a
4-bit subfield with each bit having a special meaning. Although abit can be
either 0 or 1, one and only one of the bits can have the value of 1 in each
datagram. The bit patterns and their interpretations are given in Table 3.4.
With only 1 bit set at a time, we can have five different types of services.
2. Differentiated Services
interpretation, the first 6 bits make up the code point subfield, and the last
2 bits are not used. The code point subfield can be used in two different ways.
When the 3 rightmost bits are 0s, the 3 leftmost
bits are interpreted the same as the precedence bits in the service type
interpretation. In other words, it is compatible with the old interpretation.
When the 3 rightmost bits are not all 0s, the 6
bits define 64 services based on the priority assignment by the Internet or
local authorities. The first category contains 32 service types; the second and
the third each contain 16. The first category (numbers 0, 2, 4, ... ,62) is
assigned by the Internet authorities (IETF). The second category (3, 7, 11, 15,
, 63) can be used by local authorities (organizations). The third category (1,
5, 9, .., 61) is temporary and can be used for experimental purposes
· Total length. This is
a In-bit field that defines the total length (header plus data) of theIPv4
datagram in bytes. To find the length of the data coming from the upper layer,
subtract the header length from the total length. The header length can be
found by multiplying the value in the HLEN field by 4.
size of an IPv4 datagram is less than 46 bytes, some padding will be added to
meet this requirement. In this case, when a machine decapsulates the datagram,
it needs to check the total length field to determine how much is really data
and how much is padding.
field is used in fragmentation.
field is used in fragmentation.
offset. This field is used in fragmentation.
datagram has a limited lifetime in its travel through an internet.This field
was originally designed to hold a timestamp, which was decremented by each
visited router. The datagram was discarded when the value became zero.
8-bit field defines the higher-level protocol that uses the servicesof the IPv4
layer. An IPv4 datagram can encapsulate data from several higher-level
protocols such as TCP, UDP, ICMP, and IGMP. This field specifies the final
destination protocol to which the IPv4 datagram is delivered. In other words,
since the IPv4 protocol carries data from different other protocols.
checksum concept and its calculation.
address: This 32-bit field defines the IPv4 address of the source. Thisfield must
remain unchanged during the time the IPv4 datagram travels from the source host
to the destination host.
address: This 32-bit field defines the IPv4 address of the destination
packet has arrived with the first 8 bits as shown: 01000010
receiver discards the packet. Why?
an error in this packet. The 4 leftmost bits (0100) show the version, which is
correct. The next 4 bits (0010) show an invalid header length (2 x 4 =8). The
minimum number of bytes in the header must be 20. The packet has been corrupted
IPv4 packet, the value of HLEN is 1000 in binary. How many bytes of options are
being carried by this packet?
value is 8, which means the total number of bytes in the header is 8 x 4, or 32
bytes. The first 20 bytes are the base header; the next 12 bytes are the
IPv4 packet, the value of HLEN is 5, and the value of the total length field is
0x0028. How many bytes of data are being carried by this packet?
value is 5, which means the total number of bytes in the header is 5 x 4, or 20
bytes (no options). The total length is 40 bytes, which means the packet is
carrying 20 bytes of data (40- 20).
packet has arrived with the first few hexadecimal digits as shown.
hops can this packet travel before being dropped? The data belong to what
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..
datagram can travel through different networks. Each router decapsulates the
IPv4 datagram from the frame it receives, processes it, and then encapsulates
it in another frame. The format and size of the received frame depend on the
protocol used by the physical network through which the frame has just
traveled. The format and size of the sent frame depend on the protocol used by
the physical network through which the frame is going to travel. For example,
if a router connects a LAN to a WAN, it receives a frame in the LAN format and
sends a frame in the WAN format.
implementation of the checksum in the IPv4 packet follows the same principles.
First, the value of the checksum field is set to O. Then the entire header is
divided into 16-bit sections and added together. The result (sum) is
complemented and inserted into the checksum field.
3.23 shows an example of a checksum calculation for an IPv4 header without
options. The header is divided into 16-bit sections. All the sections are added
and the sum is complemented.
result is inserted in the checksum field.
header of the IPv4 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 that can be a maximum of 40
bytes. Options, as the name implies, are not required
datagram. They can be used for network testing and debugging. Although options
are not a required part of the IPv4 header, option processing is required of
the IPv4 software. This means that all implementations must be able to handle
options if they are present in the header.
A no-operation option is a 1-byte option
used as filler between options.
End of Option
end-of-option option is a 1-byte option used for padding at the end of the
option field. It, however, can only be used as the last option.
route option is used to record the Internet routers that handle the datagram.
It can list up to nine router addresses. It can be used for debugging and
Strict Source Route
source route option is used by the source to predetermine a route for the
datagram as it travels through the Internet. Dictation of a route by the source
can be useful for several purposes. The sender can choose a route with a
specific type of service, such as minimum delay or maximum throughput. Alternatively,
it may choose a route that is safer or more reliable for the sender's purpose.
Loose Source Route
source route option 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 option 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.