The purpose of the network layer is to help route messages between different local networks. Central to this layer is the concept of exclusive network addresses, where every terminal connected to the network has its own uniquely assigned address.
One of the most common protocols in this layer is the Internet protocol (IP), used worldwide throughout the Internet. Every node connected to the Internet must have a different IP address, which can be allocated on a permanent basis, or on a per-session basis, that is, for the duration of a telephone call to an ISP.
This chapter is not a treatise on IP, it only covers those aspects most relevant to embedded systems designs and applications. More information can be found in the relevant literature, and more specifically in RFC 791, which is the main document describing IP in full detail.
The IP protocol is so adaptable that it has become a common denominator in many communication environments. Physical layer interfaces pass their messages to upper layers that end up generating IP formatted packets. Application layers above use the IP protocol as their basic underpinning building block. By making IP the common standard, systems can work transparently with each other, and afford a clean degree of interoperability (Figure 7-1).
Figure 7-1: IP as the common standard
On its own, IP is a simple, effective, and well-tested protocol for carrying blocks of data. It is perfectly feasible for systems designers to develop simple communication systems based purely on IP. Custom designed IP packets will travel around LANs, WANs and the Internet just like any other message. By itself, the IP protocol provides a connectionless datagram delivery system. Within this basic definition, there are no connections, no circuits, no logical paths, just open-ended transmissions.
To use the correct terminology, IP provides a connection between services rather than nodes. Services are the general term used to denote the facilities provided by the next layer above the network layer, whereas nodes are the terms used to denote physical units. IP blocks of data are usually referred to as packets when talked about in general terms, or as datagrams, when mentioned in the context of connectionless unacknowledged data, the two terms are interchangeable.