计算机网络 - 网络层
第四章 - 网络层
来源Bilibili湖科大教书匠计算机网络教程:计算机网络微课堂(有字幕无背景音乐版)
网络层概述
网络层的主要任务是 实现网络之间的互联
,进而实现数据包在各个网络之间的传输
主要需要解决以下问题:
- 网络层向运输层提供怎样的服务(可靠,不可靠)
- 网络寻址问题
- 路由选择问题
网络层提供的两种服务
面向连接的虚电路服务
无连接的数据包服务
- 可靠通信应当由用户主机来保证
- 不需要建立网络层连接
- 每个分组可走不同的路径
- 每个分组的首部必须携带目的主机的完整地址
- 可能会发生误码,失序,重复
- 由于网络本身不提供端到端得到可靠服务,使得网络中的路由器可以做的比较简单,而且价格低廉
- 将复杂的网络处理功能置于因特网的边缘(用户主机和其内部的运输层)
IPv4地址及其应用
IPv4地址概述
分类编址的IPv4地址
A类地址
- 最小网络号为 0 ,保留不指派
- 第一个可指派的网络号 为 1,网络地址为 1.0.0.0
- 最大网络号 127,作为本地环回地址,不指派
- 最小的本地环回地址 127.0.0.1
- 最大的是 127.255.255.254
- 最后一个可指派的网络号为 126 ,网络地址为 126.0.0.0
- 可指派得到网络号数量 2^(8-1) - 2 = 126 (减去 0 和 127)
- 每个网路中可分配的 IP 地址数量 2^24-2 = 16777214 (减去 全0的网路地址 和 全1的广播地址)
B类地址
C类地址
划分子网的IPv4地址
划分子网是从主机号中借用几位用来表示子网号
子网掩码用 连续的1 来表示网络号和子网号所占的位数
无分类编址的IPv4地址
问题:
CIDR (无分类域间路由选择)使用
斜线记法
或 CIDR 记法,在斜线后边 写上网络前缀所占比特数量CIDR 实际上是将网络前缀都相同的 IP 地址组成一个
CIDR
地址块
路由聚合(构造超网)
将多条路由记录进行分析,找到相同的前缀,得出聚合地址块:172.1.4.0/22
- 网络前缀越长,地址块越小,路由越具体
- 若在分组转发时,发现有多条路由可选,则选择网络前缀最长的那条,称为
最长前缀匹配
IPv4地址的应用规划
定长的子网掩码,变长子网掩码
IP数据报的发送和转发过程
- IP数据报的发送和转发过程包含以下两个部分
- 主机发送IP数据报
- 路由器转发IP数据报
举例:这是两个由路由器相连的网络
直接交付 :源主机与目的主机在同一个网络中
间接交付 :源主机与目的主机不在同一个网络中
当主机发送数据报时,如何知道目的主机是否与自己在同一个网络中?
当 C 向 F 发送数据时,先将C的 源地址与子网掩码相与后的结果
与 目的F的地址与C的子网掩码相与的结果
相比较,若不相等则证明不在同一个网络
主机C 如何知道路由器 R的存在?
默认情况下每台主机都有 默认网关地址 即所连路由器的地址 ,当知道 主机 目的地址与源地址不在同一个网络时
,便会将数据报发送至 网关路由 ,由其帮忙转发
路由器收到数据报如何转发?
检查IP数据包首部是否出错:
- 若出错,则直接丢弃并通告源主机
- 若没有,则进行转发:根据目的地址在路由表中查找相匹配的条目,若找到,则转发给条目中所指示的下一跳,若找不到通告源主机
A —> D
- 查表
- 比较
将目的主机与路由表中条目的子网掩码相与,得到目的网络后比较,相同则根据下一条所指示转发
路由器具有隔离广播域的效果
静态路由配置及其可能产生的路由环路问题
路由选择协议
路由选择协议概述
静态路由选择
- 由人工配置的网络路由、默认路由、特定主机路由、黑洞路由等都属于静态路由
- 这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑)的变化。
- 一般只在小规模网络中采用
动态路由选择
- 路由器通过路由选择协议自动获取路由信息
- 比较复杂、开销也比较大,能较好的适应网络状态的变化。
- 适用于大规模网络。
因特网所采用的路由选择协议的主要特点
- 自适应:动态路由选择,能较好的适应网络变化
- 分布式:路由器之间交换路由信息
- 分层次:将整个因特网划分为许多个小的自治系统AS
路由器的基本结构
路由信息协议RIP的基本工作原理
- RIP要求自治系统AS 内的每一个路由器都要维护从他自己到AS内其他每一个路由器的距离记录。称为
距离向量
- RIP 使用跳数作为度量来衡量到达目的网络的距离
- 路由器到直连网络的距离定义为 1
- 路由器到非直连网络的距离定义为所经过的路由器数+ 1
- 允许一条路径最多只能包含 15 个路由器。即 距离 等于 16相当于不可达,因此 RIP 只适合小型互联网。
- RIP 存在 “坏消息传得慢“ 的问题
开放最短路径优先OSPF的基本工作原理
OSPF 是基于
链路状态
的,而不像RIP那样是基于距离向量
的OSPF采用SPF 算法计算路由,从算法上保证了
不会产生路由环路
OSPF不限制网络规模,更新效率高,收敛速度快,RIP 规定一条路径不能超过 16个路由器
链路状态
是指 本路由器和哪些路由器相连
,以及相应链路的代价
代价
用来表示费用,距离,时延,带宽,等等。
OSPF 相邻路由器之间通过交换 问候(Hello)分组,建立和维护邻居关系。
Hello 分组封装在 IP数据报中
发送周期为10 s
40 s 未收到来自相邻路由器的 Hello 分组 ,则认为该邻路由器不可达。
使用 OSPF 的每个路由器都会产生
链路状态通告LSA
包含以下内容:- 直连网络的链路状态信息
- 邻居路由器的链路状态信息
LSA被封装在链路状态分组LSU中,采用 “洪泛法”发送
- 洪泛法:就是路由器通过所有输出端口向所有相邻路由器发送信息,而相邻路由器向其所有的路由器发送此信息
使用 OSPF 的每个路由器 都有一个链路状态数据库LSDB,用于存储 LSA 。
- 使用 OSPF 的各路由器 基于LSDB 进行最短路径优先SPF 计算,构建出各自到达其他路由器的最短路径,即路由表。
边界网关协议BGP的基本工作原理
IPv4数据报的首部格式
版本:占 4 比特,表示协议的版本,通信双方使用的IP协议版本必须一致。目前广泛使用的还是IPv4。
首部长度:占 4 比特,表示IP数据报首部的长度。该字段的取值以4 字节 为单位。十进制值 最小值为 5 ,最大值为 15
可选字段:长度从 1字节 到 40 字节不等。用来支持排错,测量即安全等措施。
填充字段:确保首部长度为 4字节 的整数倍,使用 全零 填充。
区分服务:占 8 比特,用来获得更好的服务。
总长度:占 16比特 ,表示 整个IP数据报 的长度。最大值为 65535,以字节为单位。
标识、标志、片偏移:这三个字段共同用于
IP数据报
分片- 当 IPv4 数据报长度 超过 MTU时,无法封装,需要进行分片。以太网规定 MTU为1500字节
- 标识:占16位,属于同一个数据报的各分片数据报应具有相同的标识
- 标志:占 3 比特,DF 位:1表示允许分片 MF位:1表示 后边还有分片,0表示这是最后一个分片,保留位:必须为0
- 片偏移:占 13 比特,指出分片数据报的数据载荷部分偏移其原数据的位置有多少个单位,片偏移以8字节为单位。
生存时间:占 8 比特,最初以秒为单位,最大生存周期为 255 秒,现在以
跳数
为单位,路由器转发 IP数据报时,将IP数据报首部中的该字段减1,若不为0就转发,若为0就丢弃。协议:占 8比特 ,指明 当前数据报 的数据部分 使用的是 何种协议数据单元。
常用的一些协议和相应的协议字段值如下。
首部检验和:占 16 比特,用来检验首部在传输过程中是否出现差错。
源 IP 地址 :32 比特
目的 IP 地址:32 比特
网际控制报文协议ICMP
- 为了更有效地转发 IP数据报和提高交付成功地机会,在网际层使用了网际控制报文协议 ICMP
- 主机或路由器使用 ICMP 来发送
差错报告报文
和询问报文
- ICMP 报文被封装在IP数据报中发送
ICMP 差错报告报文共有以下 五种:
终点不可达
源点抑制
时间超过
参数问题
改变路由