一、概述
1.转发表和流表的两种控制方式
1.1 每路由器控制
- 每台路由器中都包含转发和路由器选择功能。
1.2 逻辑集中式控制
- 逻辑集中式控制计算并分发转发表以供每台路由器使用。
- 控制器与每台路由器中的一个控制代理(CA)进行交互。
- CA不能直接相互交互也不能主动参与计算转发表,这是每路由器控制和逻辑集中式控制之间的关键差异。
二、路由选择算法
1.路由选择算法分类
1.1 根据算法是集中式还是分布式
- 集中式路由选择算法:用完整的、全局性的网络知识计算出从源到目的地之间的最低开销路径。具有全局状态信息的算法常被称为链路状态(Link State,LS)算法。
- 分散式路由选择算法:路由器以迭代、分布式的方式计算出最低开销路径。如距离向量(Distance- Vector,DV)算法。
1.2 根据算法是静态的还是动态
- 静态路由选择算法:路由随着时间的变化非常缓慢,通常是人工进行调整。
- 动态路由选择算法:随着网络流量负载或拓扑发生变化而改变路由选择路径。
1.3 根据算法是负载敏感还是负载迟钝
- 负载敏感算法:链路开销会动态地变化以反映出底层链路的当前拥塞水平。
- 负载迟钝算法:链路开销不明确地反映其当前的拥塞水平。
2.链路状态路由选择算法
2.1 概述
- 通过让每个节点向网络中所有其他节点广播链路状态分组(包含它所连接的链路标识和开销)来完成,一般由链路状态广播算法实现。
2.2 Dijkstra算法
- 由一个初始化的步骤和其后的循环组成。
- 循环执行的次数与网络中节点个数相同。
- 算法结束后计算出从源节点到网络中每个其他节点的最短路径。
- 最差情况下的时间复杂度为
3.距离向量路由选择算法
3.1 原理
- 距离向量算法是一种迭代的、异步的和分布式的算法。
- Bellman- Ford方程:
。
3.2 缺点
- 链路开销改变导致链路故障。
- 增加毒性逆转解决两个直接相连的邻居节点问题。
3.3 LS与DV的比较
- 报文复杂性。
- 收敛速度。
- 健壮性。
三、OSPF
1.概述
1.1 存在的问题
- 规模:随着路由器数目变得很大,涉及路由选择信息的通信、计算和存储的开销将高的不可实现。
- 管理自治:一个组织应当能够按自己的意愿运行和管理网络,还要能将其网络与其他外部网络连接起来。
1.2 解决方案
- 通过将路由器组织进自治系统(Autonomous System,AS)来解决,其中每个AS由一组通常处在相同管理控制下的路由器组成。
- 在一个AS内运行的路由选择算法叫作自治系统内部路由选择协议。
1.3 OSPF
- 开放最短路径(Open Shortest Path First,OSPF)。
- OSPF是一种链路状态协议,使用泛洪链路状态信息和Dijkstra最低开销路径算法。
- 各条链路开销都是由网络管理员配置的。
- 路由器向自治系统内的所有其他路由器广播路由选择信息。
2.优点
2.1 安全
- 能够鉴别OSPF路由器之间的交换(如链路状态更新)。能够配置两种鉴别:简单的、MD5的。
2.2 多条相同开销的路径
- 当到达某目的地的多条路径有相同的开销时,OSPF允许使用多条路径。
2.3 对单播与多播路由选择的综合支持
- 多播OSPF(MOSPF)提供对OSPF的简单扩展,以便提供多播路由选择。
2.4 支持在单个AS中的层次结构
- 一个OSFP自治系统能够层次化地配置多个区域。
四、BGP
1.概述
1.1 概念
- BGP是一种自治系统间路由选择协议。
- 所有的AS运行相同的AS间路由选择协议,称为边界网关协议(Broder Gateway Protocol,BGP)。
1.2 作用
- 从邻居AS获得前缀的可达性信息。
- 确定到该前缀的“最好的”路由。
2.通告BGP路由信息
- 对于每个AS,每台路由器要么是一台网关路由器,要么是一台内部路由器。
- 跨越两个AS的BGP连接称为外部BGP(eBGP)连接,在相同AS中的两台路由器之间的BGP会话称为内部BGP(iBGP)连接。
- 通过iBGP会话和eBGP会话传播可达性信息。
3.确定最好的路由
3.1 相关概念
- 当路由器通过BGP连接通告前缀时,它在前缀中包括一些BGP属性。用BGP术语来说,前缀及其属性称为路由。
- AS-PATH属性包含了通告已经通过的AS列表,还可以用于检测和防止通告环路(拒绝通告包含了一台路由器自己的AS的路径)。
- NEXT-HOP是AS-PATH起始的路由器接口的IP地址。
- 每条BGP路由包含3个组件:NEXT-HOP、AS-PATH、目的前缀。
3.2 热土豆路由选择
- 从AS间协议学到经过多个网关可达子网x。
- 使用来自AS内部的路由选择信息,以决定到达每个网关的最低开销路径的开销。
- 选择具有最小最低开销的网关。
- 从转发表确定通往最低开销网关的借口I。在转发表中加入表项(x,I)。
- 热土豆路由器选择思想:对于路由器1b,尽可能快地将分组送出其AS,而不担心其AS外部到目的地的余下部分的开销。
3.3 路由选择算法
- 路由被指派一个本地偏好值作为其属性之一,本地偏好属性的值是一种策略决定,它完全取决于该AS的网络管理员。具有最高本地偏好值的路由将被选择。
- 从余下的路由中(所有具有相同的本地偏好值)选择具有最短AS-PATH的路由。
- 从余下的路由中(所有具有相同的本地偏好值和相同的AS-PATH长度)使用热土豆路由选择。
- 如果仍然留下多条路由,该路由使用BGP标识符来选择路由。
4.IP任播
- 常用于DNS中。
- DNS系统能够在遍及全世界的DNS服务器上复制DNS记录。当一个用户要访问该复制的内容,可以将用户指向具有该复制内容的“最近的”服务器。
5.路由选择策略
- 任何穿越某ISP主干网的流量必须是其源或目的(或两者)位于该ISP的某个客户网络中;不然的话这些流量将会免费搭车通过该ISP的网络。
五、SDN控制平面
1.SDN体系结构特征
1.1 基于流的转发
- 分组转发规则被精确规定在交换机的流表中,SDN控制平面的工作是计算、管理和安装所有网络交换机中的流表项。
1.2 数据平面与控制平面分离
- 数据平面由网络交换机组成,该设备在它们的流表中执行“匹配加动作”的规则。
- 控制平面由服务器以及决定和管理交换机流表的软件组成。
1.3 网络控制功能:位于数据平面交换机外部
- 控制平面自身由两个组件组成:一个SDN控制器(或网络操作系统)、若个网络控制应用程序。
1.4 可编程的网络
- 通过运行在控制平面中的网络控制应用程序,该网络是可编程的。
2.SDN控制平面:SDN控制器和SDN网络控制应用程序
2.1 控制器层次
- 通信层:SDN控制器和受控网络设备之间的通信。
- 网络范围状态管理层。
- 对于网络控制应用程序层的接口。
3.OpenFlow协议
3.1 位置
- 运行在SDN控制器和SDN控制的交换机或其他实现Openflow API的设备之间。
- 运行在TCP之上,使用6653端口号。
3.2 控制器到受控交换机的报文
- 配置:该报文允许控制器查询并设置交换机配置参数。
- 修改状态:该报文由控制器使用,以增加/删除或修改交换机流表中的表项,并且设置交换机端口特性。
- 读状态:该报文被控制器用于从交换机的流表和端口收集统计数据和计数器值。
- 发送分组:该报文被控制器用于在受控交换机从特定端口发送出一个特定的报文。
3.3 受控交换机到控制器的报文
- 流删除:该报文通知控制器已删除一个流表项。
- 端口状态:交换机用该报文向控制器通知端口状态的变化。
- 分组入:用于将分组发送给控制器。
六、ICMP
1.概述
- 英特网控制报文协议(Internet Control Message Protocol,ICMP)被主机和路由器用来彼此沟通网络层的信息。
- ICMP最典型的用途是差错报告。
- ICMP通常被认为是IP的一部分,但从体系结构上讲它位于IP之上。
- ICMP报文有一个类型字段和一个编码字段,并且包含引起该ICMP报文首次生成的IP数据报的首部和前8个字节。
2.报文类型
七、网络管理和SNMP
1.网络管理框架
1.1 管理服务器
- 是一个应用程序,运行在网络运营中心(NOC)的集中式网络管理工作站上。
- 是执行网络管理活动的地方,它控制网络管理信息的收集、处理、分析和显示。
1.2 被管设备
- 是网络装备的一部分,位于被管理的网络中。
- 在一个被管设备中,有几个所谓被管对象,这些被管对象是被管设备中硬件的实际部分和用于这些硬件及软件组件的配置参数。
1.3 管理信息库(Management Information Base,MIB)
- 用于收集被管设备中每个被管对象的关联信息。
- MIP对象由称为SMI(Structure of Management Information)的数据描述语言所定义。
1.4 网络管理代理
- 是运行在被管设备中一个进程,该进程宇管理服务器通信,在管理服务器的命令和控制下在被管设备中采取本地动作。
1.5 网络管理协议
- 运行在管理服务器和被管设备之间。
- 允许管理服务器查询被管设备的状态,并经过其代理间接地在这些设备上采取行动。
- 代理能呕使用网络管理协议向管理服务器通知异常事件。
2.简单网络管理协议
2.1 概述
- 简单网络管理协议(Simple Network Management Protocol,SNMP)是一个应用层协议。
- 用于在管理服务器和代表管理服务器执行的代理之间传递网络管理控制和信息报文。
- 这些报文一般称为协议数据单元(Protocol Data Unit,PDU)。
- SNMP PDU通常是作为UDP数据报的载荷进行传输的。
2.2 PDU类型
2.3 PDU格式