# 1. 网络层功能 - 单个路由控制平面:每个路由器中的单个路由算法组件在控制平面中相互交互以计算转发表 - 逻辑集中式控制平面:一个独特的远程控制器与路由器中的本地控制代理(CA)交互,以计算转发表 # 2. 路由算法 - 链路状态路由算法:迪杰斯特拉 每次找未加入vis且最近的节点,将其加入vis,更新其相邻节点的最短距离 迪杰斯特拉problem 迪杰斯特拉ans - 距离向量算法:$d_x(y)=\min_{v}\{c(x, v)+d_v(y)\}$,v为x的所有邻居,c是x到v的成本,$d_v(y)$是邻居 v 到目的地 y 的开销 - 当本地链路开销更改或收到邻居的消息,计算自己的向量表,如果向量表变化,告知每个邻居 - 坏消息传的慢,解决:毒性逆转: 如果y问z是否有到x的更好路径,但实际z是经过y才到x的(需要记录距离的数据来源)。所以z告诉y:z到x的距离为无穷大,y就相信z没有到x的路径,所以不会试图由z到x。之后,y到x的距离为60,z到x的距离更新为50(来源于x),y再由z更新到x的距离为51。 毒性逆转案例 # 3. 因特网中自治系统内部的路由选择:OSPF - OSPF(最短路径优先)属于应用层,适用于规模较大的网络环境,使用链路状态算法,基于IP协议。路由器将 OSPF 链路状态通过IP协议泛洪到整个 AS 中的所有其他路由器 - RIP计算路径的成本以跳数作为唯一的度量值,网络规模小。基于UDP协议。 # 4. ISP 之间的路由:BGP - BGP边界网关协议(使用TCP协议,应用层) - eBGP:从相邻的 AS 获取子网可访问性信息(红线) - iBGP:将可访问性信息传播到所有 AS 内部路由器(蓝色虚线) eBGP和iBGP - BGP 路径通告: - 3a通过eBGP(半永久性 TCP 连接)连接2c,AS3 向 AS2 承诺,它将向 X 转发数据报; - 2c通过iBGP通告AS2内的所有路由器该路径(AS3、X) - 2a通过eBGP连接1c,告知这条路径(AS2、AS3、X) - 如果1c能直接通过eBGP连接3a,1c可以学习路径(AS3,X) - 1c 根据策略选择路径,并通过 iBGP在 AS1 中通告路径 - 1a、1b、1d 通过 iBGP 从 1c 了解 目的地 X:"通往 X 的路径经过 1c" - 热土豆路由Hot Potato Routing:选择域内成本最低的本地网关,不用担心域间开销 # 5. SDN 控制平面 - SDN 控制器(网络操作系统):维护网络状态信息;通过北向 API 与“上层"的网络控制应用程序交互;通过南向 API 与“下层"网络交换机交互 - **SDN 控制器的组件:网络控制应用程序的接口层(抽象API);全网状态管理层(网络链路、交换机、服务的状态:分布式数据库);通信层(SDN控制器与受控交换机之间的通信)** - **实例:ODL控制器、ONOS控制器** - **Openflow:在控制器、交换机之间操作;用TCP交换信息(可加密);三类 OpenFlow 消息(控制器到交换机,异步(切换到控制器),同步(杂项))** # 6. ICMP:因特网控制消息协议 - 由主机和路由器用于传达网络级信息 - ICMP 消息包括路由器名称和 IP 地址 # 7. 网络管理和 SNMP - 受管设备包含受管对象,其数据被收集到管理信息库 (MIB) 中 - 传达 MIB 信息、命令的两种方式:request和response;trap msg