The network layer
is concerned with controlling the operation of the subnet. A key design
issue is determining how packets are routed from source to destination.
Routes could be based on static tables that are "wired into" the network
and rarely changed. They could also be determined at the start of each
conversation, for example a terminal session. Finally, they could be highly
dynamic, being determined anew for each packet, to reflect the current
network load. If too many packets are present in the subnet at the same
time, they will get in each other's way, forming bottlenecks. The control
of such congestion also belongs to the network layer.
Since the operators of the subnet may well
expect remuneration for their efforts, there is often some accounting function
built into the network layer. At the very least, the software must count
how many packets or characters or bits are sent by each customer, to produce
billing information. When a packet crosses a national border, with different
rates on each side, the accounting can become complicated.
When a packet has to travel from one network
to another to get to its destination, many problems can arise. The addressing
used by the second network may be different from the first one. The second
one may not accept the packet at all because it is too large. The protocols
may differ, and so on. It is up to the network layer to overcome all these
problems to allow heterogeneous networks to be interconnected.
In broadcast networks, the routing problem
is simple, so the network layer is often thin or even nonexistent. |