Overview
首先Network Layer负责的是host to host的传输, 然后可以分为两个平面, 控制平面以及数据平面.
数据平面: 负责forward datagrams from input to output links
决定路由器从input到output
转发功能:
基于目标地址 + 转发表
SDN方式基于多个字段+流表
控制平面: 调控local, router的forwarding actions, 这个平面涉及很多路由选择的算法
传统的控制平面: pre-router控制平面, 每一个路由都有单独路由器算法元件, 在控制平面上进行交互
SDN: 远程控制器与本地代理(CA)交互
总的来说, Network layer负责转发和路由
转发就像trip中的中转站, 就是知道下一站怎么走就行了. 网络中是将分组从路由器的输入接口转发到合适的输出接口
路由就像trip中的路径规划, 在一个更加宏观的层面上规划trip. 使用路由算法决定分组从主机到目标接收主机的路径
网络服务模型
在网络这个服务之下提供的是best effort的模型 - 也就是没有保证数据的正确性
路由的组成
简单的路由体系就是
- 路由: 运行路由选择算法(RIP, OSPF, BGP) - 生成路由表
- 转发: 从输入到输出链路交换数据报 - 根据路由表进行分组的转发 (input - switch - output)
输入端口
在物理层通过bit的接收 → 在链路层解封装 → 在网络层根据头部信息找地址找到合适的输出, 包括了基于目标的转发和通用转发
基于目标的转发
通过最长前缀匹配, 然后决定了output端口, 然后就会交给switching
Switching
Switching核心功能就是转发
其中switching交换有三个典型的结构