IP Introduction

The Internet Protocol (IP) is intended to allow communication between interconnected systems in a packet switched computer communications network. It allows the transmissions of datagrams from sources to destinations, which are system in the network, identified by unique, fixed length IP addresses. A full description of the protocol in RFC number 0791, at www.ietf.org/rfc

The protocol is deliberately limited in its range of operations. It is designed to simply datagrams between hosts on interconnected computer networks, and makes no provision for end-to-end data reliability, flow control, sequencing, or other services commonly found in host-to-host protocols. Instead it relies on the protocols in the other layers of a communications stack to provide these services (for exaple, TCP). It fits into the protocol hierarchy as follows:

The main reason for the existence of IP is to provide routing capabilities. That is, the ability to use the addresses contained in the header of an IP packet to transmit the contained datagram to the correct remote host on the network. An implementation of the IP protocol is resident on each of the communicating hosts, and on every machine which lies on the path between these hosts on the network (i.e. the various 'gateway' machines which are used to connect individual networks together). When used as part of a Bluetooth Stack, the only service which IP can expect from a lower layer in the stack is a basic point-to-point connection between the two communicating devices, which in the case of this project is provided by the PPP layer

IP uses the following mechanisms to provide its service. For a complete description of how these services were implemented, and for an overview of the structure of an IP packet please see the Implementation section

Type of Service

Indicates the quality of service required. The type of services available is determined by the various networks which make up the internet, and are mainly used by 'gateway' machines to select the transmission parameters for its particular network, or the next gateway in the routing path of the IP packet.

Time To Live

This is used to indicate the 'lifetime' of an IP packet. Rather than being an absolute time, it is a value which is set by the sender of the packet, and is reduced by every host through which the packet passes on its route. If this value ever falls to zero, then the packet 'self destructs' and will not reach its destination. This is designed to stop packets being infinitely looped through the same set of points in a communication due to a routing error.

Options

The Options are a set of control information which can be useful during certain types of communications, but are not used under most circumstances, for example, timestamps, security and special routing requirements.

Header Checksum

This is a mechanism through which any damage which occured to an IP packet during transit can be detected. If at any point on the communication path, the checksum is found to fail, then the packet is discarded at this point.