The network layer controls the operation of the subnet. The layer is to determine how packets are routed from source to destination. The routing may be static or dynamic depending on traffic load and availability of channel.
Too many packets may cause congestion and control of such congestion is also a duty of network layer.
The subnet operation require cost, hence some accounting function is also there built into the network layer. When a packet crosses national boundary some other aspects of accounting has to be dealt with by network layer.
Packets have to travel in between heterogeneous network running on different platforms using different network protocol and network layer is also responsible to resolve all the problems arises out of such situations.