Monday 9 July 2012

Internet Protocol Details (RFC 791)

The RFC 791 tells about Internet Protocol. This is one of the basic RFC which should be read by everyone.


Important points about this RFC :


1) IP designed for packet switch networks.

2) IP provides transmission of blocks of data knows as datagrams.

3) It provides fragmentation and reassembly of long datagrams if required.

4) It is host to host protocol and does not have mechanism for end-to-end data reliability, flow control and sequencing

5) It implements two basic functions addressing and fragmentation.

6)  Internet module ( IP module) use the addresses from internet header to transmit datagram. The selection of a path for transmission is called routing.

7) The internet modules use fields in the internet header to fragment and reassemble internet datagrams when necessary.

8) The Internet module resides in each host and gateway that interconnects networks. These modules share common rules for interpreting address fields and for fragmenting and assembling internet datagrams.

9) These internet modules have procedures for making routing decisions and other functions.


10) The IP treats each internet datagram as an independent entity.

11) IP uses four key mechanisms in providing its service:

        Type of Service : uses to indicate quality of service, used by gateways to select actual path for transmission when routing an internet datagram.

         Time to Live  : Maximum lifetime of an internet datagram. It is set by sender. Reduced by intermediate routers and if reaches zero it is dropped by receiving router.
     
         Options   :  control functions includes provisions for timestamps, security and special routing.

         Header Checksum : Provides a verification method that datagram transmitted is correct.

12)  The internet protocol does not provide a reliable communication facility.

13) There are no acknowledgments either end-to-end or hop-by-hop.

14) There is no error control for data, only a header checksum.

15) There are no retransmissions.

16) There is no flow control.

17) Errors detected may be reported via the Internet Control Message Protocol (ICMP) which is implemented in the internet protocol module.

18) The datagrams are routed from one internet module to another based on interpretation of internet address. ( Addressing mechanism)

19) Datagram may traverse a network whose mx packet size is smaller than the size of datagram. ( Fragmentation mechanism )

20)  Addresses are fixed length of 4 octets ( 32 bits). An address begins with a network number, followed by local address (called the "rest" field). There are three formats or classes of internet addresses: in class a, the high order bit is zero, the next 7 bits are the network, and the last 24 bits are the local address; in class b, the high order two bits are one-zero, the next 14 bits are the network and the last 16 bits are the local address; in class c, the high order three bits are one-one-zero, the next 21 bits are the network and the last 8 bits are the local address.

21) Fragmentation :  An internet datagram can be marked "don't fragment." Any internet datagram so marked is not  fragmented.  It should be discarded if it cannot reach the destination without fragmenting.

22) Fragmentation, transmission and reassembly across a local network which is invisible to the internet protocol module is called intranet fragmentation.

23) The receiver of the fragments uses the identification field to ensure that fragments of different datagrams are not mixed.

24)  The fragment offset field tells the receiver the position of a fragment in the original datagram.

25) The fragment offset and length determine the portion of the original datagram covered by this fragment.

26)  The more-fragments flag indicates (by being reset) the last fragment.

27)  These fields provide sufficient information to reassemble datagrams.

28)  The identification field is used to distinguish the fragments of one datagram from those of another. The originating protocol module of an internet datagram sets the identification field to a value that must be unique for that source-destination pair and protocol for the time the datagram will be active in the internet system.

29) The originating protocol module of a complete datagram sets the more-fragments flag to zero and the fragment offset to zero.

30) To fragment a long internet datagram, an internet protocol module (for example, in a gateway), creates two new internet datagrams and copies the contents of the internet header fields from the long datagram into both new internet headers. The data of the long datagram is divided into two portions on a 8 octet (64 bit) boundary (the second portion might not be an integral multiple of 8 octets, but the first must be). Call the number of 8 octet blocks in the first portion NFB (for Number of Fragment Blocks). The first portion of the data is placed in the first new internet datagram, and the total length field is set to the length of the first. The more-fragments flag is set to one.

31) The second portion of the data is placed in the second new internet datagram, and the total length field is set to the length of the second datagram. The more-fragments flag carries the same value as the long datagram. The fragment offset field of the second new internet datagram is set to the value of that field in the long datagram plus NFB. This procedure can be generalized for an n-way split, rather than the two-way split described.

32) To assemble the fragments of an internet datagram, an internet protocol module (for example at a destination host) combines internet datagrams that all have the same value for the four fields: identification, source, destination, and protocol. The combination is done by placing the data portion of each fragment in the relative position indicated by the fragment offset in that fragment's internet header. The first fragment will have the fragment offset zero, and the last fragment will have the more-fragments flag reset to zero.

33) Gateways implement internet protocol to forward datagrams between networks.