The network layer is level three of the seven level OSI model. It responds to service requests from the transport layer and issues service requests to the data link layer.
The network layer addresses messages and translates logical addresses and names into physical addresses. It also determines the route from the source to the destination computer and manages traffic problems, such as switching, routing, and controlling the congestion of data packets.
The network layer provides the functional and procedural means of transferring variable length data sequences from a source to a destination via one or more networks while maintaining the quality of service requested by the Transport layer. The Network layer performs network routing, flow control, segmentation/desegmentation, and error control functions.
The network layer deals with transmitting information all the way from its source to its destination - and transmitting things from anywhere you like, to anywhere you like. If you can't contact a place at the network layer, then you can't contact that place at all. However, it does it in a very basic way, without error detection or flow control, or anything else. Here are some things that the network layer needs to address:
- Is the network connection orientated or connectionless? For sample, snail mail is connectionless, because you can send a letter to someone completely out of the blue. On the other hand, the telephone system is connection orientated, because you have to close to one half and make a connection before you can talk to them.
- What are the Global Addresses? Everybody in the network needs to have a unique address which determines who they are. This address will normally be hierarchical, so you can be "Fred Bloggs" to Londoners, or "Fred Bloggs, London" to people in the UK, or "Fred Bloggs, London, UK" to people anywhere in the world. On the internet, these addresses are known as IP Numbers.
- How do you forward a message? This is of particular interest to mobile applications, where a user may rapidly move from place to place, and it must be arranged that his messages follow him. IPv4 doesn't really allow for this, though it has been hacked on somewhat at a later date. Fortunately, the forthcoming IPv6 has a much better designed solution, which should make these kinds of applications much smoother.