-
4.1网络层概述
- 1.转发与路由选择
- 网络层的两种重要功能
- 转发
- 路由器把分组移动到适当的输出链路
- 数据平面的唯一功能
- 选路/路由
- 决定分组需要经过的路径
- 路由选择算法:计算这些路径的算法
- 转发
- 转发与路由:
- 转发:将分组转移到输出端口的动作
- 时长:数纳秒
- 路由选择:确定分组从源到目的地的路径的处理过程
- 时长:数秒
- 转发:将分组转移到输出端口的动作
- 转发表
- 路由器通过检查分组首部目的地址,使用转发表查询转发分组
- 路由器通过选路协议配置转发表
- 选路算法有集中式和分布式两种
- SDN方法
- 传统方法:每台路由器有路由选择组件,可通过这个组件与别的路由器通信
- SDN方法:远程控制器计算和分发转发表给路由器
- 远程控制器可实现在远程数据中心中,通过转发路由表及其他路由选择报文控制路由器的路由表
- 网络层的两种重要功能
- 2.网络服务模型
- 概念:定义了分组在发送与接收端系统之间的端到端运输特性
- 网络层能提供的服务
- 确保交付
- 具有时延上限的确保交付
- 有序分组交付
- 确保最小带宽
- 确保最大时延抖动
- 安全性
- 各种网络能提供的网络层服务
- Internet的网络层提供的服务:尽力而为服务
- 网络层能提供的服务,Internet总是尽力而为的
- ATM
- 确保按序时延
- 有界时延
- 确保最小带宽
- 集成服务体系结构
- 端到端时延保证
- 无拥塞通信
- Internet的网络层提供的服务:尽力而为服务
- 1.转发与路由选择
-
4.2路由器工作原理
- 路由器的转发功能
- 路由器的组成部分
- 输入端口
- 交换结构
- 输出端口
- 选路/路由处理器
- 路由器各部分的作用
- 输入端口
- 将输入链路接入路由器的物理层功能
- 与接口交互的链路层功能
- 完成转发表查找与转发的网络层功能
- 交换 结构
- 将输入端口连接到输出端口
- 是一个网络路由器中的网络
- 输出端口
- 执行与输入端口相反的链路层和物理层功能
- 当一条链路是双向链路时,输出端口与输入端口在同一线路卡上成对出现
- 路由选择处理器
- 执行选路协议
- 维护选路信息与转发表
- 执行网络管理功能
- 输入端口
- 转发的类型
- 基于目的地转发:根据分组的目的地选择转发接口
- 通用转发:根据分组本身的情况,如差错等选择转发接口
- 路由器的组成部分
- 1.出入端口处理与基于目的地转发
- 转发表由路由选择处理器经独立总线复制到线路卡
- 转发决策在每个输入端口做出,而不是调用集中式路由选择处理器
- 最长匹配原则:当有多个匹配时,在表中寻找最长的匹配项,向最长匹配项相关联的链路接口转发分组
- 出入端口的动作
- 查找(最重要的动作)
- 被物理层、链路层处理
- 检查分组的版本号、检验和、寿命字段,并更新后两个字段
- 更新网络管理的计数器,如接受到的IP数据报的数目
- 2.交换
- 三种交换方式
- 经内存交换
- 早期
- 最简单、最早的路由器是传统的计算机
- 交换是在CPU的控制下完成的
- 输入输出端口就像操作系统中的I/O设备一样
- 用内存交换的现代路由器
- 许多现代路由器其也通过内存交换
- 与早期路由器间的差别:输入线路卡
- 处理目的地址的查找
- 决定分组放入内存的位置
- 吞吐量
- 若内存带宽为每秒B个分组,则吞吐量小于每秒B/2
- 早期
- 经总线交换
- 属于端口经共享总线到输出端口,无需路由选择处理器干预
- 吞吐量:一次只有一个分组跨过总线,因此交换带宽收总线速率限制
- 可用于小型网络、企业网
- 经互联网络交换
- 使用了一个比单一总线更复杂的网络
- 纵横式网络可以并行转发多个分组,因此是非阻塞的
- 经内存交换
- 三种交换方式
- 3.输出端口处理
- 取出内存中的分组并将其发送到输出链路上
- 4.何处出现排队
-
输入和输出端口都可能有排队现象
-
排队的主要原因:交换结构不能及时转发数据报
-
丢包:路由器缓存空间被耗尽,无内存处理分组
-
线路前部HOL阻塞
- Head-Of-the-Line
- 因前一个分组阻塞,虽然本分组的输出端口无竞争却依然要等待
- 分组到达速率变高→队列长度变大→丢包
-
主动队列管理
概念:为了防止拥塞而对队列进行的主动管理
-
丢弃分组
- 弃尾:丢弃到达的分组
- 删除数个已排队的分组
-
通常缓存满之前丢弃分组
-
在首部加上标记,给发送方提供拥塞信号
-
随机早期检测RED算法
Random Early Detection算法
- 最广泛研究和运用的算法
-
-
- 5.分组调度
- 含义:在排队分组中选择一个分组来传输
- 1.先进先出FIFO
- 2.优先权排队
- 3.循环加权公平排队
- 路由器的转发功能
-
4.3IP协议
- 1.IPv4数据报格式
- 结构(每排4byte)
- 版本号(4比特)、首部长度(4比特)、服务类型(1字节)、数据报长度(2字节)
- 标识(2字节)、标志(3比特)、片偏移(13比特)
- 寿命(1字节)、上层协议(1字节)、首部校验和(2字节)
- 源IP地址
- 目的IP地址
- 选项
- 数据
- 各字段含义
- 版本号
- 规定了数据报的IP协议版本
- 首部长度
- 确定IP数据报中荷载实际开始的位置
- 大多数IP数据报不包含选项,故IP数据报首部一般为20字节
- 服务类型(TOS)
- 区分不同类型的IP数据报
- 例如要求低时延、高吞吐量或可靠性的数据报
- 数据报长度
- IP数据报的总长度(首部+数据)
- 单位:字节
- 因为该字段为16比特,而数据报很少超过1500字节
- 标识、标志、片偏移
- 与IP分片有关
- 上层协议/协议号
- 指明数据部分应交给那个运输层协议
- 6表示为交给TCP,17表示为交给UDP
- 协议号类似于端口号
- 协议号是网络层与运输层的粘合剂
- 端口号是运输层与应用层的粘合剂
- 首部校验和
- TCP/IP在网络层与运输层重复计算校验和的原因
- IP层只对首部进行了差错校验,而运输层对整个报文段进行了校验
- TCP/UDP与IP不一定属于同一个协议栈
- IP可能把数据传递给不同的协议,如ATM上
- TCP/IP在网络层与运输层重复计算校验和的原因
- 选项
- 作用:允许IP首部被扩展
- 很少被使用的原因:路由器处理IP数据报所需的时间变化很大
- IPv6去掉了选项字段
- 版本号
- 结构(每排4byte)
- 2.IPv4数据报分片
- 最大传输传送单元:一个链路层帧能承载的最大数据量
- 以太网:1500字节
- 某些广域网:576字节
- 分片:将IP数据报分为两个或多个较小的IP数据报
- 片fragment:每个较小的数据报
- 数据报的分片和组装是在端系统中进行而不是在路由器,因为要保证网络内核的简单原则,防止影响路由器性能
- 标识:用来标识多个分片属于同一个大的数据报
- 标志:
- 第一位保留
- DF(Don’t Fragment):不分片时置为1
- MF(More Fragment):若发生分片则,最后一个片设为0,其他片为1
- 片偏移:指明该片最初在数据报的哪个位置,单位为8字节
- 分片可能引起DoS攻击
- 如Jolt攻击:攻击者向目标主机发送偏移标志都不是0的片,使主机崩溃
- 最大传输传送单元:一个链路层帧能承载的最大数据量
- 3.IPv4编址
- 接口:主机或路由器与物理链路的边界
- IPv4地址与与接口相关联的,而不是与拥有该接口的主机或路由器相关联
- IP 地址长度为32 比特,共有2^32 个可能的IP 地址。
- 4.网络地址转换
- NAT对于外界行为如一个具有单一IP地址的单一设备
- NAT违反了分层结构
- 5.IPv6
- IPv6数据报格式
- 结构(每排4字节)
- 版本(4比特)、流量类型(1字节)、流标签(20比特)
- 有效荷载长度(2字节)、下一个首部、跳限制
- 源地址
- 目的地址
- 数据
- 版本
- 表示IP版本号
- 即使置为4也无法得到合法的IPv4数据报
- 流量类型
- 与IPv4服务类型相似
- 流标签
- IPv6的特色
- 给特殊流的分组加上标签,给部分数据优先权
- 有效荷载长度
- 给出首部后面的字节数量
- 因为IPv4报头是定长的,所以不同于IPv4,IPv6给出的不是整个数据报长度
- 下一个首部
- 标识数据字段需要交给哪个协议,与IPv4首部中协议字段相同的值
- 跳限制
- 类似于IPv4中的寿命
- 结构(每排4字节)
- 新增内容
- 扩大的地址容量
- 地址长度:从地址长度由32比特扩充到了128比特
- 任播地址:可将数据报交付给一组主机中的任意一个
- 首部变化
- 首部是定长的40字节,使得路由器能更快处理数据报
- 流标签
- 给特殊的分组加上标签,区分其优先权
- 扩大的地址容量
- 舍弃内容
- 在中间路由器分片或组装
- 不允许在中间路由器上分片和重组
- 若IPv6数据报太大则路由器应丢弃该数据报,并向发送方发送ICMP差错报文
- 首部校验和
- 因为以太网和运输层中都有校验操作
- 选项字段
- 在中间路由器分片或组装
- 从IPv4 向IPv6 迁移
- 广泛使用的方法:建立隧道
- IPv6数据报格式
- 1.IPv4数据报格式
-
4.4通用转发和SDN
- 基于目的转发的两个步骤
- 查找目的IP地址(匹配)
- 将分组发送到特定的输出端口(动作)
- 通用转发同样是匹配+动作
- OpenFlow:一个被高度认可的标准,是SDN概念的先驱
- 流表项:OpenFlow中的匹配加动作转发表
- 首部字段值的集合:进入的分组会与之匹配
- 计数器集合:流表匹配时更新计数器
- 动作集合:丢弃、转发、重写等
- 流表的匹配
- 违反了分层原则,分配字段集合了链路层、网络层和运输层
- 流表项可以有通配符,也就是可以匹配部分地址的部分比特位
- 并非所有首部字段都能被匹配,如一些TTL字段或数据报长度字段无法被匹配
- OpenFlow可以实现的一些例子
- 简单转发
- 负载均衡
- 充当防火墙
- 基于目的转发的两个步骤
-
5.1网络层控制平面概述
- 链接数据平面与控制平面
- 转发表:基于目的地转发
- 流表:基于通用转发
- 控制代理CA
- 功能:被集中式路由控制器控制,用于配置和管理转发表
- 简化功能
- 不能相互间直接交互
- 不能主动参与计算转发表
- 链接数据平面与控制平面
-
5.2路由选择算法
- 路由选择算法的分类
- 按集中/分散分
- 集中式路由选择算法
- 概念:拥有整个网络全部路由信息
- 举例:链路状态算法/LS算法/Link State算法
- 分布式路由选择算法
- 概念:没有节点有整个网络的完整信息
- 举例:距离向量算法/DV算法/Distance-Vector算法
- 集中式路由选择算法
- 按静态/动态分
- 静态路由选择算法
- 路由变化缓慢,通常由人工手工配置
- 动态路由选择算法
- 周期性自动做出调整
- 静态路由选择算法
- 按负载是否敏感分
- 负载敏感算法
- 路由会根据负载动态变化以避免拥塞
- 如早期ARPAnet的路由选择算法
- 负载迟钝算法
- 路由不会根据负载变化以避免拥塞
- 当今因特网路由选择算法都是负载迟钝的
- 负载敏感算法
- 按集中/分散分
- 1.链路状态路由选择算法/LS算法
- (理解内容)
- 特点:使用全局信息
- 2.距离向量路由选择算法/DV算法
- 特点:
- 迭代的:交换过程要持续到邻居信息相同为止,但此算法无计算终止的信号
- 异步的:不要求所有节点都步伐一致
- 分布式的
- 好消息传得快,坏消息传的慢
- 使用的方程:Bellman-Ford方程(动态规划)
- 避免坏消息传的慢的方法:增加毒性逆转
- 特点:
- 3.LS与DV算法的比较
- 报文复杂性
- LS算法:发送O( |N| |E| )个报文
- LS报文比DV报文更复杂
- 收敛速度
- LS算法:O(|N| |E|)个报文的O(|N|^2)的算法
- DV算法收敛慢,收敛时会遇到选择环路和无穷计数的问题
- 健壮性:LS健壮性强于DV,DV不正确节点的计算会扩散到整个网络
- 报文复杂性
- 路由选择算法的分类
-
5.3自治系统内部的路由选择:OSPF
- 划分自治系统的原因
- 规模大
- 管理自治:ISP希望按照自己意愿管理网络
- 特点:
- 使用洪泛链路状态信息
- Dijkstra路径算法
- 是一种链路状态协议
- 链路发生变化或周期性至少30分钟广播一次链路状态
- OSPF报文由IP承载,对OSPF其上层协议的值为89
- 要实现可靠报文传输、链路广播等功能
- 通过使用HELLO报文,检查链路正在运行
- 优点
- 安全
- 能够鉴别路由器之间的交换,用简单的MD5鉴别
- 无需选择单一路径
- 当多条路径有相同开销时,可以使用多条路径
- 支持单播、多播路由选择
- 支持在单个AS中的层次结构,能层次化配置多个区域
- 安全
- 划分自治系统的原因
-
5.4 ISP之间的路由选择:BGP
BGP:Broder Gateway Protocol/边界网关协议
- 1.BGP的作用
- 分组并不是到达特定目的地址,而是路由到CIDR化的前缀,即子网或子网集合
- 2.通告BGP路由信息
- 每台路由器要么是一台网关路由器,要么是一台内部路由器
- 网关路由器:位于AS边缘的路由器
- 内部路由器:仅连接自己AS中的主机和路由器
- BGP连接
- 使用179端口的半永久TCP连接
- 外部BGP连接/eBGP连接
- 跨越两个AS的BGP连接
- 内部BGP连接/iBGP连接
- 在相同AS中的两台路由器的连接
- 3.确定最好的路由
- BGP属性
- AS-PATH
- 包含了通告已经通过的AS的列表
- NEXT-HOP
- AS-PATH起始的不属于此AS的路由器接口的IP地址
- AS-PATH
- 热土豆路由选择:尽可能把分组送出AS,而不担心余下部分开销
- 实际路由算法:优先级从高到低
- 根据管理员设置的本地偏好
- 选择最短AS-PATH路由,其中的跳数是AS的跳数而不是路由器的跳数
- 使用热土豆路由,即选择最靠近NEXT-HOP路由器的路由
- 使用BGP标识来选择
- BGP属性
- 4.IP任播
- 作用:使具有相同内容的分布式服务器系统,接受响应时是离用户最近的服务器提供服务
- IP任播被DNS广泛运用
- 5.路由选择策略
- 多宿接入ISP:一个同时接入多个提供商网络的客户网络
- 为了防止ISP间的消息通过客户网络传递,客户AS的做法是不通告给提供商AS
- 经验法则:只有源或目的地址在该ISP中的流量才被运行穿过这个ISP主干网,不然就会被认为是搭便车。
- 6.总结
- 1.BGP的作用
-
5.5 SDN控制平面
- SDN体系的4个关键特征
- 基于流的转发
- 不同于传统转发只依赖于目的IP地址,SDN控制的转发工作能基于三层首部任意数量的首部字段进行
- 分组转发规则被规定在交换机的流表中
- SDN控制平面的任务是计算、管理、安装所有网络交换机中的流表项
- 数据平面与控制平面分离
- 数据平面
- 由网络交换机组成
- 交换机简单且快速
- 执行“匹配+动作”
- 控制平面
- 服务器
- 决定和管理流表的软件
- 数据平面
- 网络控制功能
- 软件在服务器上执行
- 服务器与网络交换机远离
- 控制平面有两个组成部分
- 一个SDN控制器/网络操作系统
- 维护网络状态信息
- 为应用程序提供这些信息
- 数个网络控制应用程序
- 作用:提供可以控制数据平面网络设备的方法,使其能监视、编程和控制下面的网络设备
- 一个SDN控制器/网络操作系统
- 可编程的网络
- 基于流的转发
- SDN导致的网络层再分层
- 数据平面交换机
- 控制平面SDN控制器
- 与数据平面交互的接口层
- 网络范围状态管理层
- 与应用程序交互的接口层
- 控制平面网络控制应用程序
- 1.概述
- SDN控制器的分层
- 通信层/与数据平面的交互的接口
- 传送控制器与数据平面设备的信息
- 网络范围状态管理层
- 做出最终的控制决定
- 与网络控制应用程序的接口
- 通信层/与数据平面的交互的接口
- SDN是由分布式服务器实现的
- SDN控制器的分层
- 2.OpenFlow协议
- 运行在TCP上使用6653端口号
- 控制器→交换机的重要报文
- 配置:查询并修改交换机参数
- 修改状态
- 增删、修改流表项
- 设置交换机端口特性
- 读状态:收集交换机数据
- 发送分组:控制器给交换机发报文(这不废话)
- 交换机→控制器的重要报文
- 流删除:通知控制器删除流表项
- 端口状态:通知控制器端口状态的变化
- 分组入:一个分组不能由任何流表项匹配时便交给控制器
- 3.数据平面与控制平面的交互
-
- SDN的过去与未来
- SDN体系的4个关键特征
-
5.6 ICMP:因特网控制报文协议
Internet Control Message Protocol
- 作用:主机和路由器间沟通网络层信息
- 最典型用途:差错报告
- 层次结构
- 通常被认为是IP的一部分,因此属于网络层
- 但从体系结构上来讲处于IP之上
- 因为ICMP报文承载于IP分组中
- 类似于TCP、UDP报文
- IP报文中协议号:1
- 报文结构
- 一个类型字段
- 一个编码字段
- 包含IP数据报首部和前8个字节
- 源抑制报文
- 在实践中很少使用
- 最初是为了拥塞控制
- 但TCP有自己的拥塞控制机制
- (ICMP报文类型)
- Traceroute的实现
- 是由ICMP报文实现的
- 源主机向目的主机发送一系列IP数据报,各个数据报的TTL依次递增,由此可以知道传输路径
- 作用:主机和路由器间沟通网络层信息
-
5.7 网络管理与SNMP
- 网络管理的定义
- 网络管理包括了硬件、软件和人类元素的设置、综合和协调,以监视、测试、轮询、配置、分析、评价和控制网络及网元资源用合理的成本满足实时性、运营性能和服务质量的要求(原文)
- 硬件、软件和人类元素的设置、综合和协调
- 以监视、测试、轮询、配置、分析、评价
- 控制网络及网元资源
- 用合理的成本满足实时性、运营性能和服务质量的要求
- 1.网络管理框架
- 关键组件
- 管理服务器
- 被管设备
- 管理信息库
- 网络管理代理
- 网络管理协议
- 管理服务器managing server
- 是一个程序
- 通常有人的参与,人与网络设备打交道
- 运行在网络运营中心/NOC/Network Operation Center
- NOC是一个集中式网络管理工作站
- 作用
- 执行网络管理
- 控制网络管理信息的收集、处理、分析、显示
- 被管设备managed device
- 位于被管网络中
- 范围:主机、路由器、交换机、中间盒、调制解调器、温度计等其他联网设备
- 一个被管设备有几个被管对象
- 被管对象
- 范围
- 硬件中的实际部分(如网卡)
- 软硬件中的配置参数(如OSPF协议)
- 范围
- 管理信息库/MIB
- Management Information Base
- 存储被管对象的信息
- MIB对象
- 被管对象的关联信息
- 范围举例
- 计数器(如数据报数量)
- 软件上的版本描述信息
- 设备功能是否正常的描述信息
- 由描述语言SMI语言(StrucLure of Management Information)定义
- 网络管理代理network management agent
- 本质:是运行在被管设备上的一个进程
- 作用:与管理服务器通信并被其控制
- 网络管理协议network management protocol
- 运行在管理服务器与被管设备间
- 此协议不能自己管理网络
- 而是提供了网络管理员管理网络的能力
- 关键组件
- 2.简单网络管理协议SNMP
- Simple Network Management Protocol
- 是应用层协议
- 作用:在管理服务器与代理之间传递控制信息与报文
- 两种模式
- 请求响应模式
- SNMP最常使用的模式
- 过程:管理服务器向代理发送请求让代理执行动作,然后代理对管理服务器发送回答
- 作用:查询、修改MIB对象的值
- 发送陷阱报文
- 这是一种非请求报文
- 作用:用于通知管理服务器异常情况
- 请求响应模式
- 协议数据单元PDU
- Protocol Data Unit
- SNMPv2有7种类型的报文
- 管理者到代理的获取数据请求
- GetRequest
- GetNextRequest
- GetBulkRequest
- InformRequest
- SetRequest
- Response
- SNMPv2-Trap
- 管理者到代理的获取数据请求
- 三种管理者到代理获取数据请求 的报文
- 发送方向:管理→代理
- 作用:管理服务器请求被管设备的一个或多个MIB对象值
- 三者区别
- GetRequest:请求MIB值的任意集合
- GetNextRequest:使用多个能顺序读取MIB对象的列表或表格
- GetBulkRequest:允许读取大块数据
- 避免多个GetRequest或GetNextRequest导致的额外开销
- InformRequest
- 发送方向:管理→管理
- 作用:通知一个远程的管理服务器,这个远程的管理服务器不能直接管理被管设备
- SetRequest
- 发送方向:管理→代理
- 作用:设置被管设备中一个或多个MIB对象的值
- 代理回复:noError
- Response
- 发送方向
- 代理→管理(通常)
- 管理→管理
- 作用:对七种报文中除了自身和陷阱报文外所有报文进行响应
- 发送方向
- 陷阱报文/(SNMPv2-)Trap
- 举例:
- 找不到相邻设备
- 鉴别失效
- 链路故障
- 举例:
- SNMP PDU在UDP数据报中传输
- SNMP可以进行重传,但不是强制的
- SNMPv3比v2增添了安全性功能
- 网络管理的定义
【计网】《计算机网络:自顶向下(第7版)》知识点汇总-第四、五章(网络层)-markdown版
最新推荐文章于 2023-03-23 09:25:42 发布