第四章 - 网络层

来源Bilibili湖科大教书匠计算机网络教程:计算机网络微课堂(有字幕无背景音乐版)

网络层概述

网络层的主要任务是 实现网络之间的互联 ,进而实现数据包在各个网络之间的传输

主要需要解决以下问题:

  • 网络层向运输层提供怎样的服务(可靠,不可靠)
  • 网络寻址问题
  • 路由选择问题

网络层提供的两种服务

面向连接的虚电路服务

1653383497498

无连接的数据包服务

  • 可靠通信应当由用户主机来保证
  • 不需要建立网络层连接
  • 每个分组可走不同的路径
  • 每个分组的首部必须携带目的主机的完整地址
  • 可能会发生误码,失序,重复
  • 由于网络本身不提供端到端得到可靠服务,使得网络中的路由器可以做的比较简单,而且价格低廉
  • 将复杂的网络处理功能置于因特网的边缘(用户主机和其内部的运输层)

1653383795663

IPv4地址及其应用

IPv4地址概述

1653383837301

分类编址的IPv4地址

1653383864728

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的广播地址)

1653384177589

B类地址

1653384210130

C类地址

1653384229740

划分子网的IPv4地址

划分子网是从主机号中借用几位用来表示子网号

1653384447550

子网掩码用 连续的1 来表示网络号和子网号所占的位数

无分类编址的IPv4地址

问题:

1653384611629

  • CIDR (无分类域间路由选择)使用 斜线记法 或 CIDR 记法,在斜线后边 写上网络前缀所占比特数量

    1653384753370

  • CIDR 实际上是将网络前缀都相同的 IP 地址组成一个 CIDR 地址块

路由聚合(构造超网)

1653384958339

将多条路由记录进行分析,找到相同的前缀,得出聚合地址块:172.1.4.0/22

  • 网络前缀越长,地址块越小,路由越具体
  • 若在分组转发时,发现有多条路由可选,则选择网络前缀最长的那条,称为 最长前缀匹配

IPv4地址的应用规划

定长的子网掩码,变长子网掩码

1653385237944

IP数据报的发送和转发过程

  • IP数据报的发送和转发过程包含以下两个部分
    • 主机发送IP数据报
    • 路由器转发IP数据报

举例:这是两个由路由器相连的网络

1653531459639

直接交付 :源主机与目的主机在同一个网络中

间接交付 :源主机与目的主机不在同一个网络中

当主机发送数据报时,如何知道目的主机是否与自己在同一个网络中?

1653531728448

当 C 向 F 发送数据时,先将C的 源地址与子网掩码相与后的结果目的F的地址与C的子网掩码相与的结果 相比较,若不相等则证明不在同一个网络

主机C 如何知道路由器 R的存在?

1653532004098

默认情况下每台主机都有 默认网关地址 即所连路由器的地址 ,当知道 主机 目的地址与源地址不在同一个网络时 ,便会将数据报发送至 网关路由 ,由其帮忙转发

路由器收到数据报如何转发?

  1. 检查IP数据包首部是否出错:

    • 若出错,则直接丢弃并通告源主机
    • 若没有,则进行转发:根据目的地址在路由表中查找相匹配的条目,若找到,则转发给条目中所指示的下一跳,若找不到通告源主机
  2. A —> D

1653532327232

  1. 查表

1653532393554

  1. 比较

1653532417304

将目的主机与路由表中条目的子网掩码相与,得到目的网络后比较,相同则根据下一条所指示转发

路由器具有隔离广播域的效果

1653532694802

静态路由配置及其可能产生的路由环路问题

1653532754211

路由选择协议

路由选择协议概述

静态路由选择

  • 由人工配置的网络路由、默认路由、特定主机路由、黑洞路由等都属于静态路由
  • 这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑)的变化。
  • 一般只在小规模网络中采用

动态路由选择

  • 路由器通过路由选择协议自动获取路由信息
  • 比较复杂、开销也比较大,能较好的适应网络状态的变化。
  • 适用于大规模网络。

因特网所采用的路由选择协议的主要特点

  • 自适应:动态路由选择,能较好的适应网络变化
  • 分布式:路由器之间交换路由信息
  • 分层次:将整个因特网划分为许多个小的自治系统AS

1653534003316

路由器的基本结构

1653534314206

路由信息协议RIP的基本工作原理

  • RIP要求自治系统AS 内的每一个路由器都要维护从他自己到AS内其他每一个路由器的距离记录。称为 距离向量
  • RIP 使用跳数作为度量来衡量到达目的网络的距离
    • 路由器到直连网络的距离定义为 1
    • 路由器到非直连网络的距离定义为所经过的路由器数+ 1
    • 允许一条路径最多只能包含 15 个路由器。即 距离 等于 16相当于不可达,因此 RIP 只适合小型互联网。

1653544395259

1653544730611

1653544749521

  • RIP 存在 “坏消息传得慢“ 的问题

1653544875434

开放最短路径优先OSPF的基本工作原理

  • OSPF 是基于 链路状态 的,而不像RIP那样是 基于距离向量

  • OSPF采用SPF 算法计算路由,从算法上保证了 不会产生路由环路

  • OSPF不限制网络规模,更新效率高,收敛速度快,RIP 规定一条路径不能超过 16个路由器

  • 链路状态 是指 本路由器和 哪些路由器相连 ,以及相应 链路的代价

    • 代价 用来表示费用,距离,时延,带宽,等等。
  • OSPF 相邻路由器之间通过交换 问候(Hello)分组,建立和维护邻居关系。

    • Hello 分组封装在 IP数据报中

      1653625593597

    • 发送周期为10 s

    • 40 s 未收到来自相邻路由器的 Hello 分组 ,则认为该邻路由器不可达。

  • 使用 OSPF 的每个路由器都会产生 链路状态通告LSA 包含以下内容:

    • 直连网络的链路状态信息
    • 邻居路由器的链路状态信息
  • LSA被封装在链路状态分组LSU中,采用 “洪泛法”发送

    • 洪泛法:就是路由器通过所有输出端口向所有相邻路由器发送信息,而相邻路由器向其所有的路由器发送此信息
  • 使用 OSPF 的每个路由器 都有一个链路状态数据库LSDB,用于存储 LSA 。

    1653625971631

    • 使用 OSPF 的各路由器 基于LSDB 进行最短路径优先SPF 计算,构建出各自到达其他路由器的最短路径,即路由表。

1653626095307

1653626155923

1653626194967

1653626207652

边界网关协议BGP的基本工作原理

IPv4数据报的首部格式

1653650794118

  • 版本:占 4 比特,表示协议的版本,通信双方使用的IP协议版本必须一致。目前广泛使用的还是IPv4。

  • 首部长度:占 4 比特,表示IP数据报首部的长度。该字段的取值以4 字节 为单位。十进制值 最小值为 5 ,最大值为 15

  • 可选字段:长度从 1字节 到 40 字节不等。用来支持排错,测量即安全等措施。

  • 填充字段:确保首部长度为 4字节 的整数倍,使用 全零 填充。

  • 区分服务:占 8 比特,用来获得更好的服务。

  • 总长度:占 16比特 ,表示 整个IP数据报 的长度。最大值为 65535,以字节为单位。

    1653651187867

  • 标识、标志、片偏移:这三个字段共同用于 IP数据报 分片

    • 当 IPv4 数据报长度 超过 MTU时,无法封装,需要进行分片。以太网规定 MTU为1500字节
    • 标识:占16位,属于同一个数据报的各分片数据报应具有相同的标识
    • 标志:占 3 比特,DF 位:1表示允许分片 MF位:1表示 后边还有分片,0表示这是最后一个分片,保留位:必须为0
    • 片偏移:占 13 比特,指出分片数据报的数据载荷部分偏移其原数据的位置有多少个单位,片偏移以8字节为单位。

1653651718258

  • 生存时间:占 8 比特,最初以秒为单位,最大生存周期为 255 秒,现在以 跳数 为单位,路由器转发 IP数据报时,将IP数据报首部中的该字段减1,若不为0就转发,若为0就丢弃。

  • 协议:占 8比特 ,指明 当前数据报 的数据部分 使用的是 何种协议数据单元。

    • 常用的一些协议和相应的协议字段值如下。

      1653652005887

  • 首部检验和:占 16 比特,用来检验首部在传输过程中是否出现差错。

  • 源 IP 地址 :32 比特

  • 目的 IP 地址:32 比特

网际控制报文协议ICMP

  • 为了更有效地转发 IP数据报和提高交付成功地机会,在网际层使用了网际控制报文协议 ICMP
  • 主机或路由器使用 ICMP 来发送 差错报告报文询问报文
  • ICMP 报文被封装在IP数据报中发送

ICMP 差错报告报文共有以下 五种:

  • 终点不可达

    1653652641377

  • 源点抑制

    1653652654331

  • 时间超过

    1653652691549

  • 参数问题

    1653652708495

  • 改变路由

    1653652720674

1653652730747

1653652753657

虚拟专用网VPN与网络地址转换NAT