Network Layer: 考虑怎样在网络主机间转发数据包
路由
Routing 是指确定网络流量(数据包)从源头到目的地的路径的过程。
在这个过程,数据包可能需要跨越多个网络和多个 Router (路由器)。
分组交换
路由结构
路由器内部如何组织来处理和转发数据包
控制平面
Control plane → Routing: determine route taken by packets from source to destination
根据控制平面逻辑将数据包或帧从一个接口转发到另一个接口的过程
Two control-plane approaches
- Traditional routing algorithms: implemented in routers
- Software-defined networking (SDN): implemented in (remote) servers
数据平面
Data plane → Forwarding: move packets from router’s input to appropriate router output
决定使用哪条路径来发送数据包的过程
核心:Switching fabrics(交换结构)
路由算法
Lecture 4
Dijkstra 算法
(维护一个距离表)
- 初始化, 的估计值设为 0,其他所有顶点的估计值设为无限大
- 从 开始,更新 的所有邻居的估计值
- 取最小距离的邻居 作为新起点
- 在每次迭代中,只处理那些尚未被确定为最短路径的顶点。一旦一个顶点的最短路径被确定,在后续迭代中就不再考虑这个顶点
- 如果 ,照抄 上一行对应的数值(原先更短)
- …以此类推
Step | u | v | w | x | y | z |
1 | 0, u | ∞ | ∞ | ∞ | ∞ | ∞ |
2 | ㅤ | 7, u | 3, u | 5, u | ∞ | ∞ |
3 | ㅤ | 6, w | ㅤ | 5, u | 11, w | ∞ |
4 | ㅤ | 6, u | ㅤ | ㅤ | 11, w | 14, x |
5 | ㅤ | ㅤ | ㅤ | ㅤ | 10, v | 14, x |
6 | ㅤ | ㅤ | ㅤ | ㅤ | ㅤ | 12, y |
- u 到 z 的最短路径 u→w→x→v→y→z,最短距离 12
Distance vector 算法
沿用 Bellman Ford 等式的基本思想(动态规划)
IP
Internet Protocol
IP 版本
IP 分类
子网掩码
Subnets
CIDR (Classless Inter Domain Routing) 表示法:使用斜线后跟数字的格式,来指示 IP 地址中(二进制)网络标识前缀的长度
1. 确定网络类别
- A 类地址:默认子网掩码是 255.0.0.0 → /8
- B 类地址:默认子网掩码是 255.255.0.0 → /16
- C 类地址:默认子网掩码是 255.255.255.0 → /24
- D 类地址:用于多播,即一次向多个目的地同时发送数据,不是常规网络通信,不用于传统的点对点通信
2. 计算所需的子网位数
从默认子网掩码借用主机位来得到所需的子网数量
3. 更新子网掩码
将默认子网掩码中的主机位部分的相应数量的 0 改为 1,以增加子网位数。
4. 计算主机位数
- 每个子网的第一个地址是网络地址(192.168.1.0 )
- 最后一个地址是广播地址(192.168.1.0 )
- 可用主机地址:192.168.1.1 到 192.168.1.30
5. 计算子网和主机范围
每个子网的范围由子网掩码定义
ICMP
Internet Control Message Protocol,作为 IP 数据包的一部分发送的
提供网络层的诊断功能,报告路由器或主机无法处理的 IP 数据包的问题
- 如
Ping
命令进行网络连通性测试
- 如 Traceroute工具使用 ICMP 消息来确定数据包到达目标主机所经过的路径