考纲内容
- 网络层的功能
- 异构网络互联
- 路由与转发
- 拥塞控制
- 路由算法
- 静态路由与动态路由
- 距离-向量路由算法
- 链路状态路由算法
- 层次路由
- IPv4
- IPv4分组
- IPv4地址与NAT
- 子网划分与子网掩码
- CIDR
- 路由聚合
- ARP
- DHCP与ICMP
- IPv6
- IPv6的主要特点
- IPv6地址
- 路由协议
- 自治系统
- 域内路由与域间路由
- RIP路由协议
- OSPF路由协议
- BFGP路由协议
- IP组播
- 组播的概念
- IP组播地址
- 移动IP
- 移动IP的概念
- 移动IP通信过程
- 网络层设备
- 路由器的组成和功能
- 路由表与路由转发
1. 网络层的功能
1. 异构网络互联
- 异构网络:不同的寻址方案、不同的网络接入机制、不同的差错处理方法、不同的路由选择机制等
- 网络互联:将两个以上的计算机网络,通过一定的方法,用一种或多种通信处理设备(即中间设备)相互连接起来,以构成更大的网络系统
- 中继系统
- 物理层:中继器、集线器(hub)
- 数据链路层:网桥、交换机
- 网络层:路由器
- 网络层以上:网关
- 虚拟互联网络
- 定义:逻辑互联网络,即互联起来的各种物理网络的异构性是客观存在的,但是通过IP就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络
- 优点:主机通信时,就好像在一个网络上通信一样,看不见互联的具体的网络异构细节
2. 路由与转发(路由器完成)
- 路由选择(确定哪条路径):根据路由选择协议构造出路由表,并经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表
- 分组转发(当一个分组到达所采取的动作):路由器根据转发表将用户的IP数据报从合适的端口转发出去,关键操作是转发表查询、转发及相关的队列管理和任务调度等
3. 拥塞控制
- 拥塞:在通信子网中,因出现过量的分组而引起网络性能下降的现象
- 判断拥塞状态的方法
- 轻度拥塞:随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量
- 拥塞状态:网络的吞吐量随着网络负载的增大而下降
- 死锁状态:网络的负载继续增大,而网络的吞吐量下降到零
- 避免拥塞:获取网络中发生拥塞的信息,利用这些信息进行控制
- 作用:确保子网能够承载所达到的流量
- 实现:合理优化主机、路由器及路由器内部的转发处理过程(单一地增加资源并不能解决拥塞)
- 流量控制和拥塞控制的区别
- 流量控制:抑制发送端发送数据的速率,以便接收端来得及接收
- 拥塞控制:全局性的问题,确保通信子网能够传送待传送的数据,涉及网络中所有主机、路由器及导致网络传输能力下降的因素
- 拥塞控制的方法
- 开环控制
- 定义:涉及网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞
- 优点:一种静态的预防方法,一旦整个系统启动并运行,中途就不再需要修改
- 闭环控制
- 定义:事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检查哪里发生了拥塞,然后将拥塞信息传送到合适的地方
- 优点:基于反馈环路的概念,是一种动态的方法
- 开环控制
2. 路由算法
1. 静态路由与动态路由
2. 动态路由算法
1. 距离-向量路由算法
- 原理:所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点(提供从自己到网络中其他结点的最低费用估计)
- 路由选择表内容
- 每条路径的目的地(另一结点)
- 路径的代价(距离)
- 更新路由表的条件
- 新路由
- 代价更小的路由
- 特点:所有结点都必须参与距离向量交换
- 缺点: 容易出现路由环路问题
- 实例:RIP算法,采用“跳数”作为距离的度量
2. 链路状态路由算法
- 原理:链路状态路由算法要求每个结点都具有完全的网络拓扑信息(提供自己到与自己直接相连的结点的费用)
- 实现
- 主动测试所有邻接结点的状态
- 定期地将链路状态传播给所有其他结点
- 特点
- 使用泛洪法向所有相邻的路由器发送信息,然后相邻路由器又向其他相邻路由器发送信息
- 发送的信息是与路由器相邻的所有路由器的链路状态
- 只有当链路状态发生变化时,路由器才向所有路由器发送此消息
- 使用场景
- 大型的或路由器信息变化聚敛的互联网环境
- OSPF算法
- 优点
- 每个路由结点都使用同样的原始状态数据独立地计算路径,而不依赖中间结点的计算
- 链路状态报文不加改变地传播,易于查找故障
- 当一个结点从所有其他结点接收到报文时,它可以在本地立即计算正确的通路(Dijsktra算法)
- 链路状态算法比距离-向量算法有更好的规模可伸展性
3. 层次路由
- 由来:当网络规模扩大时,会消耗更多的路由器缓冲区空间、CPU时间、带宽
- 自治系统:一个自治系统包含多个局域网,可以自主选择使用何种路由选择协议
- 路由选择协议
- 内部网关协议(IGP):自治系统内部所使用的路由选择协议(RIP、OSPF)
- 外部网关协议(EGP):在不同自治系统的路由器之间交换路由信息,为分组选择最优的路径(BGP)
- OSPF——将自治系统分为若干区域
- 每个路由器都知道在本区域内如何把分组路由到目的地的细节,但不知道其他区域的内部结构
- 使交换信息的种类增多,使OSPF协议更加复杂
- 使每个区域内部交换路由信息的通信量大大减小
- 能用于规模很大的自治系统中
3. IPV4
1. IPV4分组
-
IPV4分组格式(“一总”“八片”“首四”)
- 版本:指IP版本,目前广泛使用的版本号是4
- 首部长度:占4位。基本单位为4B,最大值为60B(15*4B),最常用的首部长度是20B
- 总长度:占16位。基本单位为1B,指首部与数据之和的长度最大为65535B
- 标识:占16位。是一个计数器,用于保证数据报片能正确组装为原来的数据报
- 标志:占3位。最低位MF=1代表分片,中间位DF=0代表可以分片
- 片偏移:占13位。基本单位为8B,指出分片后,某片在原分组中的相对位置(除最后一个分片,每个分片长度一定是8B的整数倍)
- 首部校验和:占16位。IP数据报的首部校验和只校验分组的首部,而不校验数据部分
- 生存时间TTL:占8位。保证分组不会在网路中循环,每次路由转发TTL-1,当TTL为0时丢弃该分组
- 协议:占8位。指出该分组使用的协议(6为TCP协议,17为UDP协议)
- 源地址字段:占4B。标识发送方的IP地址
- 目的地址字段:占4B。标识接收方的IP地址
-
IP数据报分片
- 最大传送单元(MTU):一个链路层数据报能承载的最大数据量
- MTU
- 以太网:1500B
- 广域网:一般不超过576B
- 分片:当数据报长度大于链路MTU时,就要对其进行分片传输
- 注意:分片会在目的地进行组装,不会中间路由处进行组装
- 标志位含义
- 中间为DF = 1:禁止分片;DF = 0:允许分片
- 最低位MF = 1:后面“还有分片” ;MF = 0:最后一片
- 例题
2. IPV4地址与NAT
1. IPV4地址
- IP地址:连接到因特网上的的每台主机(或路由器)都分配一个32比特的全球唯一标识符
- 分类
- 分类IP地址
- A类地址“减2”:
- 网络号全0:特定网络
- 网络号全1:环回测试地址
- B类地址“减1”:128.0不可指派
- C类地址“减1”:192.0.0不可指派
- A类地址“减2”:
- 特殊IP地址
- 私有IP地址——只用于LAN
- 分类IP地址
- 特点
- 路由器仅根据目的主机所连接的网络号来转发分组
- IP地址是标志一台主机(或路由器)和一条链路的接口
- 每个IP地址的网络号必须与所在网络的网络号相同
- 路由器每个端口必须至少分配一个IP地址
2. 网络地址转换(NAT)
- 定义:通过将专用网络地址转换为公用地址,对外隐藏内部管理的IP地址
- NAT路由器:安装了NAT软件的路由器,至少有一个全球IP
- 优点
- 只需要一个全球IP地址就可以与因特网连通,专用网本地IP地址是可重用的,大大节省了IP地址的消耗
- 隐藏了内部网络结构,降低了内部网络受到攻击的风险
- 具体实现:本地地址的主机和外界通信时,NAT路由器使用NAT转换表将本地地址转换成全球地址,或将全球地址转换为本地地址
- 普通路由器 vs NAT路由器
3. 子网划分与子网掩码、CIDR
1. 子网划分
-
两级IP地址的缺点
- 地址空间的利用率很低
- 不够灵活
- 会使路由表变得太大而使网络性能变坏
-
子网划分:两级IP地址变成了三级IP地址
-
划分思路
- 子网划分属于一个单位内部的事情,单位对外仍然表现为没有划分子网的网络
- 从主机号借用若干比特作为子网号,当然主机号也就相应减少了相同的比特
- IP地址={{网络号},{子网号},{主机号}}
-
工作流程
- 找到连接到本单位网络上的路由器
- 该路由器在收到IP数据报后,按目的网络号和子网号找到目的子网
- 把IP数据报直接交付给目的主机
-
注意:子网中主机号全0为子网的网络号;主机号全1为子网的广播地址
2. 子网掩码
- 定义:子网掩码与IP地址逐位相与,就得到子网网络地址
- 分类
- A类:255.0.0.0
- B类:255.255.0.0
- C类:255.255.255.0
- 注意
- 一台主机在设置IP地址的同时必须设置子网掩码
- 同属于一个子网的所有主机及路由器的相应端口,必须设置相同的子网掩码
- 路由表中必须包含有目的网络地址、子网掩码、下一跳地址
- 分组转发
- 从收到的分组的首部提取目的IP地址
- 判断是否为直接交付。用各网络的子网掩码和目的IP相与,若与网络地址匹配,则直接交付;否则间接交付
- 若路由表中有目的IP的主机路由,则将分组传送给下一跳
- 对路由表中的每一行的子网掩码与目的IP相与,若与网络地址匹配,则将分组转发给下一跳
- 若路由表中有默认路由(0.0.0.0),则将分组转发给默认路由器
- 否则报告转发分组出错
3. 无分类域间路由选择(CIDR)
- 定义:在变长子网掩码的基础上,可以在软件的支持下实现构造超网的一种IP地址的划分方法
- 特点
- 消除了传统A、B、C类地址及划分子网的概念,可以更有效地分配IPV4的地址空间
- IP={<网络前缀>,<主机号>}(IP地址/网络前缀所占比特数)
- 网络前缀越长,其地址块就越小,路由就越具体
- 全0和全1的主机号地址一般不使用
- 路由聚合(构成超网):将网络前缀都相同的连续IP地址组成CIDR地址块
- 最佳前缀匹配:若匹配到不止一个结果,则选择具有最长网络前缀的路由
- 优点
- 有利于减少路由器之间的路由选择信息的交换,提高网络性能
- 网络前缀长度具有灵活性
- 查找路由表使用的数据结构方法:二叉线索树
4. IP地址与硬件地址
5. 地址解析协议(ARP)
- 作用:实现IP地址到MAC地址的映射(同一个局域网内)
- ARP表:每台主机都设有一个ARP高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射表(ARP动态维护)
- 工作原理——主机A向主机B发送IP数据报
- 在其ARP高速缓存查看有无B的IP地址
- 有:查出MAC地址,将MAC地址写入MAC帧,将MAC帧发往此MAC地址
- 没有
- 使用目的MAC地址为FF-FF-FF-FF-FF-FF的帧来封装并广播ARP请求分组,使同一个局域网里的所有主机收到ARP请求
- B收到该ARP请求后,向A发出响应ARP分组(单播,包含B的IP与MAC地址的映射关系)
- A收到后将此映射写入ARP缓存,按查询到的MAC地址发送MAC帧
- 可能出现的情况
- 发送方是主机,要把IP数据报发送到本网络上的另一台:用ARP找到目的主机的硬件地址
- 发送方是主机,要把IP数据报发送到另一个网络上的一台主机:用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成
- 发送方是路由器,要把IP数据报转发到本网络上的一台主机:用ARP找到目的主机的硬件地址
- 发送方是路由器,要把IP数据报转发到另一个网络的一台主机:用ARP找到本网络的一个路由器的硬件地址,剩下的工作由这个路由器完成
6. 动态主机配置协议(DHCP)
- 特点
- 用于给主机动态地分配IP地址
- 提供了即插即用联网的机制,允许一台计算机加入新的网络和获取IP地址而不用手工参与
- DHCP是应用层协议,基于UDP
- 实现过程
- DHCP客户机广播“DHCP发现”消息,试图找到网络中的DHCP服务器
- DHCP服务器收到“DHCP发现”消息后,向网络中广播“DHCP提供”消息,其中包括提供DHCP客户机的IP地址和相关配置信息
- DHCP客户机收到“DHCP提供”消息,如果接受DHCP服务器所提供的相关参数,那么通过广播“DHCP请求”消息向DHCP服务器请求提供IP地址
- DHCP服务器广播“DHCP确认”消息,将IP地址分配给DHCP客户机
* 注意 - DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配的IP地址
- DHCP的客户端和服务器端需要通过广播方式来进行交互
- 采用UDP(客户端和服务端无IP地址和端口号)
7. 网际控制报文协议(ICMP)
- 目的:让主机或路由器报告差错和异常情况
- 种类
- ICMP差错报告报文
- 终点不可达:当路由器或主机不能交付数据时,就向源点发送终点不可达报文
- 时间超过:当路由器收到生存时间(TTL)为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文
- 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文
- 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)
- ICMP询问报文
- 回送请求和回答报文:测试目的站是否可达及了解其相关状态
- 时间戳请求和回答报文
- 掩码地址请求和回答报文
- 路由器询问和通告报文
- 不应发送ICMP差错报告报文
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
- 对具有组播地址的数据报都不发送ICMP差错报告报文
- 对具有特殊地址的数据报不发送ICMP差错报告报文
- ICMP差错报告报文
- ICMP的应用
- 分组网间探测PING:(工作在应用层)测试两台主机之间的连通性,使用了ICMP回送请求和回答报文
- Traceroute:(工作在网络层)用来跟踪分组经过的路由,使用了ICMP时间超过报文
4. IPv6
1. 主要特点
- 解决IP地址耗尽问题
- 采用无类别编址CIDR,使IP地址的分配更加合理(延长了IPv4地址分配完的时间)
- 采用网络地址转换NAT,节省全球IP地址(延长了IPv4地址分配完的时间)
- 采用具有更大地址空间的新版本的IPv6(根本上解决问题)
- IPv6特点
- 更大的地址空间(16B)
- 扩展的地址层次结构(将可选字段移出首部,变成扩展首部)
- 灵活的首部格式
- 改进的选项(检验和字段彻底移除)
- 允许协议继续扩充
- 支持即插即用(即自动配置)
- 支持资源的预分配
- 只能在目的主机处分片
- 首部长度必须是8B的整数倍
- 增大了安全性(身份验证和保密功能)
2. IPv6地址
- 三种目的地址
- 单播:点对点
- 多播:一对多
- 任播:目的站是一组计算机,数据报交付时只交付其中的一台计算机(距离最近)
- 格式规范
- 地址中的每4位用一个十六进制数表示,并用冒号分隔每16位。如:4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
- 有多个0可缩写,但域中至少有一个数字。如:4BF5:0000:0000:0000:BA5F:039A:000A:2176 → \rightarrow → 4BF5:0:0:0:BA5F:39A:A:2176
- 有相继的0值域时,可用双冒号缩写(一个地址仅能出现一次)。如:4BF5::BA5F:39A:A:2176
- 三级体系——使路由器能更快地查找路由
- 第一级(顶级):指明全球都知道的公共拓扑
- 第二级(场点级):指明单个场点
- 第三级:指明单个网络接口
- IPv4 –> IPv6
- 双协议栈:一台设备上同时装有IPv4和IPv6协议栈(能同时处理这两个协议地址)
- 隧道技术:将IPv6数据报封装到IPv4数据报的数据部分,使得IPv6数据报可以在IPv4网络的隧道中传输
5. 路由协议
- 自治系统(AS):一个自治系统的所有路由器在本自治系统内都必须是连通的
1. 路由信息协议(RIP)
- 定义:一种分布式的基于距离向量的路由选择协议
- RIP报文
- 规定
- 每个路由器都要维护从它自身到其他每个目的网络的距离记录
- 从一个路由器到直接连接网络的距离为1,经过一个路由器,距离加1
- 优先选择距离短的路径
- 距离等于16时,表示网络不可达(只适用于小型互联网)
- 任意两个使用RIP的路由器之间每30s广播一次RIP路由更新信息
- RIP中每个网络的子网掩码必须相同
- 特点
- 应用层协议,使用UDP传送数据(端口520)
- RIP选择的路径不一定是时间最短的,但一定是具有最少路由器的路径
- 仅和相邻路由器交换信息
- 路由器交换的信息是当前路由器所知道的全部信息
- 按固定的时间间隔交换路由信息
- 所有路由器都知道整个网络的路由表
- 优点:实现简单、开销小、收敛过程快
- 缺点
- 限制了网络的规模
- 路由器间交换的是路由器中的完整路由表,网络规模越大,开销也越大
- 坏消息传得慢
2. 开放最短路径优先(OSPF)协议
- 定义:一种分布式的基于链路状态的路由算法
- OSPF分组
- 特点
- 网络层协议,直接用IP数据报传输(IP首部协议字段为89)
- 对不同的链路可根据IP分组的不同服务类型而设置成不同的代价
- 如果到同一个目的网络有多条相同代价的路径,则可将通信量分配给这几条路径(负载均衡)
- 交换的分组都具有鉴别功能(保证可靠性)
- 支持可变长度的子网划分和无分类编址CIDR
- 所有路由器都知道全网的拓扑结构图
- 每个链路状态都带上一个32位的序号,序号越大,状态就越新
- 工作原理:每个路由器根据全网拓扑结构图,使用Dijkstra算法计算从自己到各目的网络的最优路径,以此来构造自己的路由表。当链路状态发生变化时,每个路由器重新计算最优路径,构造新的路由表(路由表只存储”下一跳“)
- 划分区域
- 目的:使OSPF能用于规模很大的网络
- 定义:将一个自治系统划分为若干区域
- 好处
- 利用洪泛法交换链路状态信息的范围局限于每个区域,减少了网络上的通信量
- 在一个区域内的路由器只知道本区域的完整网络拓扑
- 五种分组类型
- 问候分组:发现和维持邻站的可达性
- 数据库描述分组:向邻站发送自己的所有链路状态项目的摘要信息
- 链路状态请求分组:向对方请求发送某些链路状态项目的详细信息
- 链路状态更新分组:更新链路状态(洪泛法)
- 链路状态确认分组:对更新分组的确认
3. 边界网关协议(BGP)
- 定义:采用路径向量路由选择协议
- 目的:寻找一条能够到达目的网络且比较好的路由(不兜圈子)
- 工作原理
- 每个自治系统的管理员要选择至少一个路由器(可以有多个)作为该自治系统的“BGP发言人”
- BGP发言人建立TCP连接
- 在此连接上交换BGP报文以建立BGP会话,利用BGP会话交换路由信息
- 当所有BGP发言人都相互交换网络可达性的信息后,各BGP发言人就可找出到达各个自治系统的较好路由
- 每个BGP发言人除必须运行BGP外,还必须运行该AS的内部网关协议
- 特点
- 应用层协议,基于TCP传输
- BGP支持CIDR,BGP路由表包括:目的网络前缀、下一跳路由器、到达该目的网络所要经过的各个自治系统序列
- BGP刚运行时,BGP的邻站交换整个BGP路由表,以后只需在发生变化时更新有变化的部分
- 4种报文
- 打开报文(Open):与相邻的BGP发言人建立关系
- 更新报文(Update):发送某一路由的信息以及列出要撤销的多条路由
- 保活报文(Keepalive):确认打开报文并周期性地证实邻站关系
- 通知报文(Notification):发送检测到的差错
- 总结
6. IP组播
-
单播
-
组播:让源计算机一次发送的单个分组可以抵达用一个组地址标识的若干目标主机,并被它们正确接收
- 特点
- 仅应用于UDP,需要路由器的支持
- 主机可以选择加入或离开一个组,因此一台主机可以同时属于多个组
- 主机组播时仅发送一份数据,只有数据在传送路径出现分岔时才将分组复制后继续转发
- 特点
-
组播地址
- 特点
- 使用D类地址:224.0.0.0 ~ 239.255.255.255;每个D类IP标志一个组播组
- 组播数据报使用D类IP地址作为目的地址,首部中协议值为2(代表使用IGMP)
- 组播数据报是不可靠交付
- 只能用于目的地址
- 不产生ICMP差错报文
- 并非所有的D类地址都可作为组播地址(1110后的前五位固定)
- 组播IP地址与MAC地址的映射关系不是唯一的,需要在IP层利用软件进行过滤
- 分类
- 只在本局域网上进行硬件组播
- 在因特网的范围内进行组播
- 特点
-
IGMP与组播路由算法
- IGMP:让连接到本地局域网上的组播路由器知道本局域网上是否有主机参加或退出了某个组播组
- 路由算法
- 基于链路状态的路由选择
- 基于距离-向量的路由选择
- 协议无关的组播(可建立在任何路由器协议之上)
7. 移动IP
- 概念
- 移动IP:支持移动性的因特网体系结构与协议
- 移动结点:具有永久IP地址的移动结点
- 本地代理:归属网络中代表移动结点执行移动管理功能的实体(根据移动用户的转交地址,采用隧道技术转交移动结点的数据包)
- 外部代理:外部网络中帮助移动结点完成移动管理功能的实体
- 通信流程
![移动IP通信过程
8. 网络层设备
1. 路由器的组成和功能
- 任务:连接不同的网络并完成路由转发
- 分组丢失原因:路由器中的输入或输出队列溢出
- 注意
- 若一个存储转发设备实现了某层次的功能,那么它就可互联两个在该层次上使用不同协议的网络
- 中继器为直通式设备
- 构成
![输入输出端口![](https://img-blog.csdnimg.cn/1b923fdac6b1424197078619b24f1875.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MDY5NDk2,size_16,color_FFFFFF,t_70)- 交换结构
- 通过存储器进行交换
- 通过总线进行交换
- 通过互联网络进行交换
- 交换结构
2. 路由表和路由转发
- 路由表:目的网络IP地址、子网掩码、下一跳IP地址、接口
- 路由表 vs 转发表
- 路由表由软件实现;转发表可用软件实现,也可用特殊硬件实现
- “转发”是路由器根据转发表把收到的IP数据报从合适的端口转发出去,仅涉及一个路由器
- “路由选择“涉及多个路由器
- 分组的实际转发是靠直接查找转发表,而不是直接查找路由表