The Network Layer: Control Plane

Sections 5.1, 5.2 and 5.6 are part of the curriculum for TTM4100.

Introduction

the control-plane component of the network layer—the network-wide logic that controls not only how a datagram is routed along an end-to-end path from the source host to the destination host, but also how network-layer components and services are configured and managed.

In this chapter, we’ll study how those forwarding and flow tables are computed, maintained and installed. there are two possible approaches for doing so.

Routing Algorithms

routing algorithms, whose goal is to determine good paths (equivalently, routes), from senders to receivers, through the network of routers.

an edge’s cost may reflect the physical length of the corresponding link, the link speed, or the monetary cost associated with a link.

Broadly, one way in which we can classify routing algorithms is according to whether they are centralized or decentralized.

A second broad way to classify routing algorithms is according to whether they are static or dynamic. In static routing algorithms, routes change very slowly over time, often as a result of human intervention. Dynamic routing algorithms change the routing paths as the network traffic loads or topology change.

A third way to classify routing algorithms is according to whether they are load-sensitive or load-insensitive. In a load-sensitive algorithm, link costs vary dynamically to reflect the current level of congestion in the underlying link.

in a link-state algorithm, the network topology and all link costs are known

In practice, this is accomplished by having each node broadcast link-state packets to all other nodes in the network, containing the identities and costs of its attached links.

oscillations can occur in any algorithm, not just an LS algorithm, that uses a congestion or delay-based link metric. Solutions are

The Distance-Vector (DV) Routing Algorithm (Ikke pensum!)

the distance-vector (DV) algorithm is iterative, asynchronous, and distributed.

the least costs are related by the celebrated Bellman-Ford equation, namely, dx(y) = minv{(x, v) + dv(y)} where the minv in the equation is taken over all of x’s neighbors.

as long as all the nodes continue to exchange their distance vectors in an asynchronous fashion, each cost estimate Dx(y) converges to dx(y), the actual cost of the least-cost path from node x to node y

The algorithm remains in the quiescent state until a link cost changes

ICMP: The Internet Control Message Protocol

used by hosts and routers to communicate network-layer information to each other. The most typical use of ICMP is for error reporting.

ICMP is often considered part of IP, but architecturally it lies just above IP, as ICMP messages are carried inside IP datagrams, as IP payload,

CMP messages have a type and a code field, and contain the header and the first 8 bytes of the IP datagram that caused the ICMP message to be generated in the first place (so that the sender can determine the datagram that caused the error).

Traceroute program, which allows us to trace a route from a host to any other host in the world. implemented with ICMP messages. Each of these datagrams carries a UDP segment with an unlikely UDP port number. The first of these datagrams has a TTL of 1, the second of 2, the third of 3, and so on.

A new version of ICMP has been defined for IPv6 added new types and codes required by the new IPv6 functionality. These include the “Packet Too Big” type and an “unrecognized IPv6 options” error code.