Introduction to the network layer (data plane)
The network layer provides host-to-host communication across a network.
Unlike the application and transport layers, the network layer is implemented in both hosts and routers. As a result, it is the most complex layer in the protocol stack.
To make it easier to understand, the network layer is divided into two interacting parts:
- data plane (or forwarding plane)
- control plane (or routing plane)
Forwarding and routing
The network layer is responsible for moving packets from a source host to a destination host.
To accomplish this, it performs two key functions:
-
forwarding or switching (a router-local action):
- transfer a packet from a router's input link interface to the appropriate output link interface
- takes place at very short timescales (a few nanoseconds)
- often implemented in hardware
- part of the data plane
-
routing (a network-wide action):
- determine the path taken by packets
- takes place on longer timescales (seconds)
- often implemented in software
- part of the control plane
Driving analogy:
- routing is planning the trip:
- before leaving, the driver consults a map and choses one of many paths possible
- each path consisting of a series of road segments connected at interchanges
- forwarding is navigating each intersection or interchange along that route
The traditional approach
Every router maintains a forwarding table, which tells it which outgoing link interface to use for each packet.
In the traditional approach:
- each router contains both:
- a data plane, which forwards packets
- a control plane, which determines forwarding decisions
- a routing algorithm running in the control plane computes the forwarding table
- to do this, routers exchange routing information with one another using a routing protocol
- based on this information, each router updates its own forwarding table
Without a routing protocol:
- network administrators would have to configure forwarding tables manually
- manual configuration would be:
- slower to respond to changes in the network topology
- more likely to contain errors
The SDN approach
In Software-Defined Networking (SDN), the routing function is separated from the physical router:
- routers implement only the data plane and only perform forwarding
- a remote controller implements the control plane
- the remote controller computes forwarding tables and distributes them to routers
- the remote controller may run in a data center and can be managed by an ISP or another organization
This separation of the control plane from the data plane is the key idea behind SDN.
The controller that computes forwarding tables and interacts with routers is implemented in software:
Network service model
The network service model describes the service that the network layer provides for delivering packets between hosts.
Examples of services a network layer could provide:
- guaranteed delivery
- guaranteed delivery within a maximum delay
- guaranteed in-order packet delivery
- guaranteed minimal bandwidth
- guaranteed security
The Internet's network layer provides a much simpler service called best-effort service.
With best-effort service, the network does not guarantee:
- packet delivery
- packet order
- end-to-end delay
- minimum bandwidth
At first glance, this may seem like no guarantees at all.
However, best-effort service has proven to be highly effective in practice. Combined with:
- sufficient network bandwidth
- bandwidth-adaptive application protocols that adjust to network conditions
It supports a wide range of applications, including video streaming, voice calls, and video conferencing.