The Internet Protocol version 4 or IPv4 is the first version of to be largely deployed IP, and still forms the base (in 2007) of Internet. It is described in RFC number 791 (RFC 791).

IPv4 uses a Adresse IP on 32 bits, which is a factor limiting to the expansion of Internet since " seulement" 4.294.967 296 addresses are possible. This limitation leads to the transition from IPv4 towards IPv6, currently in the course of deployment, which should gradually replace it. This limitation for the moment is circumvented thanks to the use of techniques of translation of addresses NAT like by the adoption of the system CIDR.

Representation of a IPv4 address

Generally, a Adresse IP is represented in the form of four decimal numbers separated by points such as for example 193.43.55.67 . Each number represents a Octet. As a byte is composed of 8 bits, that made 32 bits.

IPv4 heading

Out of bits

The field Service type called TOS is declined with the wire of the RFC. At beginning (RFC 791) we have:

Bits 0-2:  Precedence.
Bit 3:  0 = Normal Delay, 1 = Low Delay.
Bits 4:0 = Normal Throughput, 1 = High Throughput.
Bits 5:0 = Normal Reliability, 1 = High Reliability.
Bit 6-7:  Reserved for Future Uses.

As of December 1998 (RFC 2474) we have the introduction of the field DSCP which is a globalisation of field TOS:

Bits 0-5:   DSCP (Differenciated Services Does not code)
Bits 6-7:   CU (Currently Unused)

In September 2001 (RFC 3168) the field CU is used for the management of the congestions:

Bits 0-5:   DSCP (Differenciated Services Does not code)
Bits 6-7:   ECN (Explicit Congestion Notification)
cf registers DSCP by the IANA

The field protocol makes it possible to identify the protocol used by the higher level:

Fragmentation

A screen has a maximum size, called Maximum Transmission Unit or MTU. When the length of the package (datagram) is higher, information will be fragmented. The maximum size supported by IPv4 (because coded on 16 bits) is of 64ko but the networks do not deal with screens such lengths, typically, one has MTU about 1ko (ARPANet), 1,5ko (Ethernet) etc…

To reconstitute information, one uses the following fields in the IPv4 heading:

  • Version (4 bits): Version of IP used. Here, 4.
  • Length of the heading (4 bits): Number of words of 32 bits, is 4 bytes. (Or many lines of the diagram.) The value lies between 5 and 15, because there are 20 bytes minimum and one cannot exceed 40 bytes of option. (Either in all, 60 bytes.)
  • Service type (8 bits): Seldom used. This field makes it possible to distinguish different quality of service differentiating the way in which the packages are treated. Composed of 3 bits of priority (thus 8 levels) and three indicators allowing to differentiate the flow, the time or reliability.
  • Overall length in bytes (16 bits): Full number of bytes of the datagram, heading IP included/understood. Therefore, the maximum value (is 2^16) - 1 bytes.
  • Identification (16 bits): Number allowing to identify the fragments of the same package.
  • Flag (3 bits):
(First bit) currently Unutilised.
  • (Second bit) DF (Don' T Fragment): When this bit is positioned to 1, it indicates that the package cannot be fragmented. If the router cannot convey this package (size of the package higher than the MTU), it is then rejected.
  • (Third bit) MF (More Fragments): When this bit is positioned to 1, it is known that this package is a fragment of data and that others must follow. When it is to 0, either the fragment is the last, or the package was not fragmented.
    • Fragment offset (13 bits): Position of the fragment compared to the starting package, of number of words of 8 bytes.
    • Lifespan or TTL Time to Live (8 bits): initialized by the transmitter, this field is décrémenté of a unit generally to each jump of router. When TTL = 0, the package is given up and a message ICMP is sent to the transmitter for information.
    • Protocol (8 bits): Number of the protocol above the network layer: TCP = 6, UDP = 17, ICMP = 1.
    • Checksum of the heading or Checksum or CRC for Cyclic Redundancy Check (16 bits): Checking of the integrity of the heading only. If the CRC is invalid, the package is abandoned without error message.
    • Address source (32 bits): Addresses IP of the transmitter on 4 bytes or 32 bits.
    • Address destination (32 bits): Addresses IP of the receiver on 4 bytes or 32 bits.
    • Options (0 to 40 bytes or 0 to 320 bits by words of 32 bits or 4 bytes): optional.
    • Stuffing: of variable size ranging between 0 and 7 bits. It makes it possible to fill the field option in order to obtain a multiple heading IP of 32 bits. The value of the bits of stuffing is 0.

    See too

    Related articles

    • Address compatible IPv4
    • Address IPv4

    Random links:Céphalanthère | Manonviller | Group Emeraude | Filmfare Awards 1967 | Guillaume Boichot