Tag: IPv4 Header Format

IP Header | IP Fragmentation | Problems

IP Fragmentation-

 

Before you go through this article, make sure that you have gone through the previous article on IP Fragmentation.

 

We have discussed-

  • IP Fragmentation is a process of dividing the datagram into fragments during its transmission.
  • It is performed by intermediary devices at destination side at network layer.

 

Also Read- IP Header

 

In this article, we will discuss practice problems based on IP Header and IP Fragmentation.

 

PRACTICE PROBLEMS BASED ON IP HEADER AND IP FRAGMENTATION-

 

Problem-01:

 

The intermediate routers between source and destination need the following information in IP header-

  1. Version
  2. Protocol
  3. Identification Number
  4. Source IP Address

 

Solution-

 

Option-A:

 

  • Version field indicates the version of IP used.
  • This information is required to process the packet appropriately based on its version.

 

Option-B:

 

  • Protocol field indicates the next level protocol.
  • This information is required by the router to accept or discard the packet if its buffer is full.
  • Based on the priority, router takes its decision.

 

Option-C:

 

  • Identification number field identifies the fragments of the same datagram.
  • This information is required while re-assembling the datagram fragments.

 

Option-D:

 

  • Source IP Address field indicates the IP Address of the source.
  • This information is required by the router to send ICMP packet to the source.
  • ICMP packet informs the source that its packet has been discarded.

 

Thus, All these fields are required in the IP Header.

 

Problem-02:

 

Fragmentation of a datagram is needed in-

  1. Datagram circuit only
  2. Virtual circuit only
  3. Both (A) and (B)
  4. None

 

Solution-

 

  • Each network has its Maximum Transmission Unit (MTU).
  • If the size of data packet is greater than MTU, then it will have divided into fragments to transmit it through the network.
  • So, fragmentation may be required in datagram circuits as well as virtual circuits.
  • Thus, Option (C) is correct.

 

Problem-03:

 

What are all the fields required from IP header to allow the destination to perform reassembly of fragments?

  1. Identification, MF, Offset, Header length and Total length
  2. MF, Offset and Destination IP
  3. MF, Datagram length, Source IP
  4. MF, Options and Offset

 

Solution-

 

Clearly, Option (A) is correct.

 

Problem-04:

 

The checksum in IP must be recomputed at every router because of change in ____ fields.

  1. TTL, Options, Identification Number, Offset
  2. TTL, Options, Datagram Length, Offset
  3. TTL, Options, Data, Offset
  4. TTL, Header Length, Offset, ToS

 

Solution-

 

Clearly, Option (B) is correct.

 

Problem-05:

 

If the value available in “fragment offset” field of IP header is 100, then the number of bytes ahead of this fragment is ___ ?

  1. 100 B
  2. 400 B
  3. 800 B
  4. 200 B

 

Solution-

 

  • Fragment offset field use a scaling factor of 8.
  • If Fragment offset field value = 100, then fragment offset = 8 x 100 = 800.
  • It suggests 800 bytes of data is ahead of this fragment.
  • Thus, Option (C) is correct.

 

Problem-06:

 

When the source does not trust the routers to route properly or source wishes to make sure that the packet does not stray from specified path, what options can be used?

  1. Loose source routing
  2. Trace route
  3. Strict source routing
  4. Internet Time Stamp

 

Solution-

 

Clearly, Option (C) is correct.

 

Problem-07:

 

The checksum computation in IP header includes-

  1. IP header only
  2. IP header and data
  3. IP header and Pseudo header
  4. None

 

Solution-

 

  • Checksum computation in IP header includes IP header only.
  • Errors in the data field are handled by the encapsulated protocol.
  • Thus, Option (A) is correct.

 

Problem-08:

 

Suppose a router receives an IP packet containing 600 data bytes and has to forward the packet to a network with maximum transmission unit of 200 bytes. Assume that IP header is 20 bytes long. What are fragment offset values for divided packets?

  1. 22, 44, 66, 88
  2. 0, 22, 44
  3. 0, 22, 44, 66
  4. 22, 44, 66

 

Solution-

 

Given-

  • MTU size of the destination network = 200 bytes
  • IP header length = 20

 

Now,

  • Maximum amount of data that can be sent in one fragment = 200 – 20 = 180 bytes.
  • Amount of data sent in a fragment must be a multiple of 8.
  • So, maximum data sent that can be in one fragment = 176 bytes.

 

Thus, 4 fragments are created-

  • 1st fragment contains 176 bytes of data.
  • 2nd fragment contains 176 bytes of data.
  • 3rd fragment contains 176 bytes of data.
  • 4th fragment contains 72 bytes of data

 

So,

  • Fragment offset value for 1st fragment = 0
  • Fragment offset value for 2nd fragment = 176 / 8 = 22
  • Fragment offset value for 3rd fragment = (176+176) / 8 = 44
  • Fragment offset value for 4th fragment = (176 + 176 + 176) / 8 = 66

 

Thus, Option (C) is correct.

 

To watch video solution and practice other problems,

Watch this Video Lecture

 

Next Article- Transmission Control Protocol | TCP

 

Get more notes and other study material of Computer Networks.

Watch video lectures by visiting our YouTube channel LearnVidFun.

IPv4 | IPv4 Header | IPv4 Header Format

Internet Protocol Version 4-

 

  • IPv4 short for Internet Protocol Version 4 is the fourth version of the Internet Protocol (IP).
  • IP is responsible to deliver data packets from the source host to the destination host.
  • This delivery is solely based on the IP Addresses in the packet headers.
  • IPv4 is the first major version of IP.
  • IPv4 is a connectionless protocol for use on packet-switched networks.

 

In this article, we will discuss about IPv4 Header.

 

IPv4 Header-

 

The following diagram represents the IPv4 header-

 

 

Let us discuss each field of IPv4 header one by one.

 

1. Version-

 

  • Version is a 4 bit field that indicates the IP version used.
  • The most popularly used IP versions are version-4 (IPv4) and version-6 (IPv6).
  • Only IPv4 uses the above header.
  • So, this field always contains the decimal value 4.

 

NOTES

It is important to note-

  • Datagrams belonging to different versions have different structures.
  • So, they are parsed differently.
  • IPv4 datagrams are parsed by version-4 parsers.
  • IPv6 datagrams are parsed by version-6 parsers.

 

2. Header Length-

 

  • Header length is a 4 bit field that contains the length of the IP header.
  • It helps in knowing from where the actual data begins.

 

Minimum And Maximum Header Length-

 

The length of IP header always lies in the range-

[20 bytes , 60 bytes]

 

  • The initial 5 rows of the IP header are always used.
  • So, minimum length of IP header = 5 x 4 bytes = 20 bytes.
  • The size of the 6th row representing the Options field vary.
  • The size of Options field can go up to 40 bytes.
  • So, maximum length of IP header = 20 bytes + 40 bytes = 60 bytes.

 

Concept of Scaling Factor-

 

  • Header length is a 4 bit field.
  • So, the range of decimal values that can be represented is [0, 15].
  • But the range of header length is [20, 60].
  • So, to represent the header length, we use a scaling factor of 4.

 

In general,

 

Header length = Header length field value x 4 bytes

 

Examples-

 

  • If header length field contains decimal value 5 (represented as 0101), then-

Header length = 5 x 4 = 20 bytes

  • If header length field contains decimal value 10 (represented as 1010), then-

Header length = 10 x 4 = 40 bytes

  • If header length field contains decimal value 15 (represented as 1111), then-

Header length = 15 x 4 = 60 bytes

 

NOTES

It is important to note-

  • Header length and Header length field value are two different things.
  • The range of header length field value is always [5, 15].
  • The range of header length is always [20, 60].

 

While solving questions-

  • If the given value lies in the range [5, 15] then it must be the header length field value.
  • This is because the range of header length is always [20, 60].

 

3. Type Of Service-

 

  • Type of service is a 8 bit field that is used for Quality of Service (QoS).
  • The datagram is marked for giving a certain treatment using this field.

 

4. Total Length-

 

  • Total length is a 16 bit field that contains the total length of the datagram (in bytes).

 

Total length = Header length + Payload length

 

  • Minimum total length of datagram = 20 bytes (20 bytes header + 0 bytes data)
  • Maximum total length of datagram = Maximum value of 16 bit word = 65535 bytes

 

5. Identification-

 

  • Identification is a 16 bit field.
  • It is used for the identification of the fragments of an original IP datagram.

 

When an IP datagram is fragmented,

  • Each fragmented datagram is assigned the same identification number.
  • This number is useful during the re assembly of fragmented datagrams.
  • It helps to identify to which IP datagram, the fragmented datagram belongs to.

 

6. DF Bit-

 

  • DF bit stands for Do Not Fragment bit.
  • Its value may be 0 or 1.

 

When DF bit is set to 0,

  • It grants the permission to the intermediate devices to fragment the datagram if required.

 

When DF bit is set to 1,

  • It indicates the intermediate devices not to fragment the IP datagram at any cost.
  • If network requires the datagram to be fragmented to travel further but settings does not allow its fragmentation, then it is discarded.
  • An error message is sent to the sender saying that the datagram has been discarded due to its settings.

 

7. MF Bit-

 

  • MF bit stands for More Fragments bit.
  • Its value may be 0 or 1.

 

When MF bit is set to 0,

  • It indicates to the receiver that the current datagram is either the last fragment in the set or that it is the only fragment.

 

When MF bit is set to 1,

  • It indicates to the receiver that the current datagram is a fragment of some larger datagram.
  • More fragments are following.
  • MF bit is set to 1 on all the fragments except the last one.

 

8. Fragment Offset-

 

  • Fragment Offset is a 13 bit field.
  • It indicates the position of a fragmented datagram in the original unfragmented IP datagram.
  • The first fragmented datagram has a fragment offset of zero.

 

Fragment offset for a given fragmented datagram

= Number of data bytes ahead of it in the original unfragmented datagram

 

Concept Of Scaling Factor-

 

  • We use a scaling factor of 8 for the fragment offset.
  • Fragment offset field value = Fragment Offset / 8

 

Need Of Scaling Factor For Fragment Offset

 

  • In IPv4 header, the total length field comprises of 16 bits.
  • Total length = Header length + Payload length.
  • Minimum header length = 20 bytes.
  • So, maximum amount of data that can be sent in the payload field = 216 – 20 bytes.
  • In worst case, a datagram containing 216 – 20 bytes of data might be fragmented in such a way that the last fragmented datagram contains only 1 byte of data.
  • Then, fragment offset for the last fragmented datagram will be (216 – 20) – 1 = 216 -21 ≅ 216

(if no scaling factor is used)

  • Now, this fragment offset value of 216 can not be represented.
  • This is because the fragment offset field consists of only 13 bits.
  • Using 13 bits, a maximum number of 213 can be represented.
  • So, to represent 216 we use the concept of scaling factor.
  • Scaling factor = 216 / 213 = 23 = 8.

 

9. Time To Live-

 

  • Time to live (TTL) is a 8 bit field.
  • It indicates the maximum number of hops a datagram can take to reach the destination.
  • The main purpose of TTL is to prevent the IP datagrams from looping around forever in a routing loop.

 

The value of TTL is decremented by 1 when-

  • Datagram takes a hop to any intermediate device having network layer.
  • Datagram takes a hop to the destination.

 

If the value of TTL becomes zero before reaching the destination, then datagram is discarded.

 

NOTES

It is important to note-

  • Both intermediate devices having network layer and destination decrements the TTL value by 1.
  • If the value of TTL is found to be zero at any intermediate device, then the datagram is discarded.
  • So, at any intermediate device, the value of TTL must be greater than zero to proceed further.
  • If the value of TTL becomes zero at the destination, then the datagram is accepted.
  • So, at the destination, the value of TTL may be greater than or equal to zero.

 

10. Protocol-

 

  • Protocol is a 8 bit field.
  • It tells the network layer at the destination host to which protocol the IP datagram belongs to.
  • In other words, it tells the next level protocol to the network layer at the destination side.
  • Protocol number of ICMP is 1, IGMP is 2, TCP is 6 and UDP is 17.

 

Why Protocol Number Is A Part Of IP Header?

 

Consider-

  • An IP datagram is sent by the sender to the receiver.
  • When datagram reaches at the router, it’s buffer is already full.

 

In such a case,

  • Router does not discard the datagram directly.
  • Before discarding, router checks the next level protocol number mentioned in its IP header.
  • If the datagram belongs to TCP, then it tries to make room for the datagram in its buffer.
  • It creates a room by eliminating one of the datagrams having lower priority.
  • This is because it knows that TCP is a reliable protocol and if it discards the datagram, then it will be sent again by the sender.
  • The order in which router eliminate the datagrams from its buffer is-

ICMP > IGMP > UDP > TCP

 

If protocol number would have been inside the datagram, then-

  • Router could not look into it.
  • This is because router has only three layers- physical layer, data link layer and network layer.

 

That is why, protocol number is made a part of IP header.

 

11. Header Checksum-

 

  • Header checksum is a 16 bit field.
  • It contains the checksum value of the entire header.
  • The checksum value is used for error checking of the header.

 

At each hop,

  • The header checksum is compared with the value contained in this field.
  • If header checksum is found to be mismatched, then the datagram is discarded.
  • Router updates the checksum field whenever it modifies the datagram header.

 

The fields that may be modified are-

  1. TTL
  2. Options
  3. Datagram Length
  4. Header Length
  5. Fragment Offset

 

NOTE

It is important to note-

  • Computation of header checksum includes IP header only.
  • Errors in the data field are handled by the encapsulated protocol.

 

Also Read- Checksum

 

12. Source IP Address-

 

  • Source IP Address is a 32 bit field.
  • It contains the logical address of the sender of the datagram.

 

13. Destination IP Address-

 

  • Destination IP Address is a 32 bit field.
  • It contains the logical address of the receiver of the datagram.

 

14. Options-

 

  • Options is a field whose size vary from 0 bytes to 40 bytes.
  • This field is used for several purposes such as-
  1. Record route
  2. Source routing
  3. Padding

 

1. Record Route-

 

  • A record route option is used to record the IP Address of the routers through which the datagram passes on its way.
  • When record route option is set in the options field, IP Address of the router gets recorded in the Options field.

 

NOTE

 

The maximum number of IPv4 router addresses that can be recorded in the Record Route option field of an IPv4 header is 9.

 

Explanation-

 

  • In IPv4, size of IP Addresses = 32 bits = 4 bytes.
  • Maximum size of Options field = 40 bytes.
  • So, it seems maximum number of IP Addresses that can be recorded = 40 / 4 = 10.
  • But some space is required to indicate the type of option being used.
  • Also, some space is to be left between the IP Addresses.
  • So, the space of 4 bytes is left for this purpose.
  • Therefore, the maximum number of IP addresses that can be recorded = 9.

 

2. Source Routing-

 

  • A source routing option is used to specify the route that the datagram must take to reach the destination.
  • This option is generally used to check whether a certain path is working fine or not.
  • Source routing may be loose or strict.

 

3. Padding-

 

  • Addition of dummy data to fill up unused space in the transmission unit and make it conform to the standard size is called as padding.
  • Options field is used for padding.

 

Example-

 

  • When header length is not a multiple of 4, extra zeroes are padded in the Options field.
  • By doing so, header length becomes a multiple of 4.
  • If header length = 30 bytes, 2 bytes of dummy data is added to the header.
  • This makes header length = 32 bytes.
  • Then, the value 32 / 4 = 8 is put in the header length field.
  • In worst case, 3 bytes of dummy data might have to be padded to make the header length a multiple of 4.

 

Also Read- TCP Header | UDP Header

 

To gain better understanding about IPv4 Header,

Watch this Video Lecture

 

Next Article- IP Fragmentation | Examples

 

Get more notes and other study material of Computer Networks.

Watch video lectures by visiting our YouTube channel LearnVidFun.