The network layer moves packets from a sending host to a receiving host.
4.1.1 Forwarding and Routing: The Data and Control Planes
- network layer protocols in every host, router
- transport layer encapsulates into TCP segments
- on sending side encapsulates segments into IP datagrams
- routers examines header fields in all IP datagrams passing through it
- on receiving side, delivers segments to transport layer
Forwarding -> router-local action of transferring a packet from an input link interface to the appropriate output link interface. -> typically hardware -> takes nanoseconds
Routing -> network-wide process that determines the end-to-end paths that packets take from source to destination (through routing algorithms). -> typically software -> takes miliseconds
Data Plane: -> forwarding function ->local, per-routing function -> determines how a datagram arriving on the router input port is forwarded to router output port -> Forwarding table: - fast output interface lookup - A router examines the value of one or more fields in the arriving packet’s header and indexes it to the forwarding table. - The value stored in the forwarding table entry for those values indicates the outgoing link interface at that router to which that packet is to be forwarded
Control Plane: -> routing function -> network-wide logic -> determines how a datagram is routed among routers along end-end path from source host to destination host -> were routing algorithms are implemented -> two control-plane approaches
Control Plane: The tradicional approach
- A Routing Algorithm runs in each and every router and both forwarding and routing functions are contained within a router.
- Distributed solution
- Implemented in routers
- The computation (routing algorithm) is done directly on the routers
- Individual routing algorithm components in each and every router interact in the control plane

Control Plane: The SDN Approach
- A physically separate, remote controller computes and distributes the forwarding tables to be used by each and every router's control agent(CAs).
- software-defined networking (SDN) -> the controller that computes forwarding tables and interacts with routers is implemented in software. this code is opened like linux, is publically available.
- Centralized solution
- Implemented in remote servers
- We ask the far away servers from the routers to do the computation, after that they install the computation back into the routers
- The remote controller might be implemented in a remote data center with high reliability and redundancy, and might be managed by the ISP or some third party.

4.1.2 Network Service Model
- The network service model defines the characteristics of end-to-end delivery of packets between sending and receiving hosts.
Some Network Services: -> Guaranteed delivery -> packet sent by a source host will guaranteely arrive at the destination host -> Guaranteed delivery with bounded delay -> guarantees delivery within a specified host-to-host delay bound (for example, within 100 msec). -> In-order packet delivery -> packets arrive at the destination in the order that they were sent. -> Guaranteed minimal bandwidth -> emulates the behavior of a transmission link of a specified bit rate (for example, 1 Mbps) between sending and receiving hosts. As long as the rate is below the specified bit rate, then all packets are eventually delivered to the destination host -> Security -> The network layer could encrypt all datagrams at the source and decrypt them at the destination, thereby providing confidentiality to all transport-layer segments.
- The Internet’s network layer provides a single service, known as best-effort service -> has none of the guarantees above. Like a no service service.


- simplicity of mechanism has allowed Internet to be widely deployed and adopted
- sufficient provisioning of bandwidth allows performance of real-time applications (e.g., interactive voice, video) to be “good enough” for “most of the time”
- replicated, application-layer distributed services (datacenters, content distribution networks) connecting close to clients’ networks, allow services to be provided from multiple locations
- congestion control of “elastic” services helps