当前位置:   article > 正文

计算机网络之网络层_计算机网络网络层

计算机网络网络层

1.网络层概述

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

如图所示:这些异构型网络如果只是需要各自内部通信,那他们只要实现各自的物理层和数据链路层即可
在这里插入图片描述
但是如果需要将这些异构型网络互连起来,形成一个更大的互联网就需要使用网络层互连设备路由器
在这里插入图片描述
需要说明的是为了简单起见,有时我们可以不用画出这些网络而将他们看做是一条链路即可
在这里插入图片描述
对于互联网而言仅实现物理层和数据链路层是不能实现数据包在互联网中个网络之间传输的,要实现该功能就必须实现网络层

要实现网络层任务,需要解决以下主要问题:

  • 网络层向运输层提供怎样的服务、 网络层寻址问题、路由选择问题
  • 网络层向运输层提供怎样的服务(是可靠传输还是不可靠)
    • 数据包在传输过程中可能会出现误码,也有可能由于路由器繁忙而被路由器丢弃,还有可能出现按序发送的数据包不能按序到大接收方(失序
    • 如果网络层对上述传输错误不采取任何措施就是不可靠传输服务
    • 如果网络层对上述传输错误采取措施,并使得接收方能正确接收发送方所发送的数据包,则提供的是可靠传输服务
    • 不同网络体系中提供的服务可能是不同的,例如TCP/IP的网际层提供的是无连接的,不可靠的数据报服务,而ATM、帧中继和X.25的网络层提供的都是面向连接的,可靠的虚电路服务
  • 网络层寻址问题
    • TCP/IP的网际层使用IP地址:
      网络N1上两个路由器接口各自所分配的IP地址
      网络N3上两个路由器接口各自所分配的IP地址
      网络N7上两个路由器接口各自所分配的IP地址。
      他们的前几位是相同的,表示所在网络的网络编号,后几个数各不相同用于区分不同的路由器接口
      在这里插入图片描述
  • 路由选择问题
    • 数据包从源站到达目的站有多条路径可走
      路由器收到数据包后是依据什么来决定将数据包从自己的哪个接口转发出去:
      依据的是数据包中的目的地址和数据包中的路由表
      在这里插入图片描述
      在实践中路由器是如何得出这样的路由记录呢:1.一种是由用户或人工管理员进行人工配置,这种方法只适用于规模较小且网络拓扑不改变的小型互联网2.实现各种路由选择协议,由路由器执行路由选择协议中所规定的路由选择算法,而自动得出路由表中的路由记录,这种方法适用于规模较大且网络拓扑改变的型大互联网

因特网是目前全世界用户数量最多的互联网,它使用TCP/IP协议栈
TCP/IP协议栈的网络层使用网际协议IP,是整个协议栈的核心协议,因此在 TCP/IP体系中网络层常被称为网际层
在这里插入图片描述

2. 网络层提供的两种服务

  • 面向连接的虚电路服务
  • 无连接的数据报服务

面向连接的虚电路服务
虚电路以保证通信双方一切网络资源
虚电路是一条逻辑上的连接,而不是真正建立了一条物理连接
而采用电路交换的电话通信,则是先建立一条真正的连接,所以虚电路和电路交换式有区别的
在这里插入图片描述
很多广域分组交换网都使用面向连接的虚电路服务。例如,曾经的X.25和逐渐过时的帧中继FR、异步传输模式ATM等。

无连接的数据报服务
因特网的先驱者并没有采取上述设计思路,而是采用无连接的数据报服务
在这里插入图片描述
采用这种方式的好处是:网络造价大大降低,运行方式灵活,能够适用多种应用

两种服务对比:
在这里插入图片描述

3.IP地址

IP 地址被用来给Internet 上的电脑一个编号。大家日常见到的情况是每台联网的PC 上都需要有IP 地址,才能正常通信。我们可以把“个人电脑”比作“一台电话”,那么“IP 地址”就相当于“电话号码”,而Internet 中的路由器,就相当于电信局的“程控式交换机”。

IP地址有两个标准:IP版本4 (IPv4)和IP版本6 (IPv6)。所有有IP地址的计算机都有IPv4地址,许多计算机也开始使用新的IPv6地址系统。

3.1 IPv4地址概述

IPv4地址就是给因特网(Internet)上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符。
在这里插入图片描述
IPv4地址的表示方法
32比特的IPv4地址不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1.1分类编制的IPv4地址(第一阶段)

在这里插入图片描述
A类地址
在这里插入图片描述
在这里插入图片描述

B类地址
在这里插入图片描述
在这里插入图片描述
C类地址
在这里插入图片描述
总结:
在这里插入图片描述
地址0.0.0.0是一个特殊的IPv4地址, 只能作为源地址使用,表示“在本网络上的本主机”。封装有DHCP Discovery报文的IP分组的源地址使用0.0.0.0;

以127开头且后面三个字节非“全0”或“全1"的IP地址是一类特殊的IPv4地址, 既可以作为源地址使用,也可以作为目的地址使用,用于本地软件环回测试,例如常用的环回测试地址127.0.0.1;

地址255.255.255.255是一个特殊的IPv4地址,只能作为目的地址使用,表示“只在本网络上进行广播(各路由器均不转发)
在这里插入图片描述
在这里插入图片描述
可在该范围内挑选一个网络号分配给这个网络,再挑选另一个分配给这个网络,不同网络的网络号不能相同,网络号分配完毕后就可以给各网络中的各主机和路由器的各接口分配IP地址,需要注意的是所分配的IP地址应该互不相同,并且其主机号部分不能出现全0,因为这是网络地址,也不能出现全1,因为这是广播地址,网络地址或广播地址都不能分配给主机或路由器的各接口,因为他们无法表示一台主机或路由器某个接口
在这里插入图片描述

3.1.2划分子网的IPv4地址(第二阶段)

为什么会出现划分子网的需求:
先举个例子
某单位有一个大型的局域网需要连接到因特网,如果申请一个c类网络地址其可分配的网络地址只有254个,不够使用因此该单位申请了一个B类网络地址,其可分配的IP地址达到65574个,给每台计算机和路由器分配IP地址后还有大量剩余,这些剩余的网络只能有该单位的同一个网络使用,而其他单位网络不能使用。
在这里插入图片描述
随着该单位计算机的进步该单位又新增了一些计算机,并且需要将原来的网络划分成三个独立的网络,我们称其为子网1,子网2,子网3

假设子网1仍然使用原来申请到的B类网络地址,那么就需要为子网2,子网3各自申请新的网络地址为新增网络申请新的网络号会带来以下弊端:
口 需要等待时间和花费更多的费用
口 会增加其他路由器中路由表记录的数量
口 浪费原有网络中剩余的大量IP地址

从主机号借用一部分作为子网号就可以利用原有网络中剩余的大量IP地址
在这里插入图片描述
之后就可以给各子网中的主机和路由器接口分配IP地址
在这里插入图片描述
如果未在图中标记子网号部分,那么我们和计算机又如何知道分类地址中主机号有多少比特被用作子网号了呢?

这样我们就引出了划分子网的工具 :子网掩码

  • 32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号
    口子网掩码使用连续的比特1来对应网络号和子网号
    口子网掩码使用连续的比特0来对应主机号
    口将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    题目所给的子网掩码,表明从主机号部分借用1个比特作为子网号,也就是将该C类网均分为两个子网
    我们将主机号写成8比特的形式,从主机号借用一个比特作为子网号,子网号只能是0或1保持网络号和子网号不变主机从7个比特0增加到7个比特1
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 默认的子网掩码是指在未划分子网的情况7下使用的子网掩码。
    在这里插入图片描述
    总结:
  • 为新增网络申请新的网络号会带来以下弊端:
    口 需要等待时间和花费更多的费用
    口 会增加其他路由器中路由表记录的数量
    口 浪费原有网络号中剩余的大量IP地址
  • 可以从主机号部分借用一部分比特作为子网号
  • 32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号
    口 子网掩码使用连续的比特1来对应网络号和子网号
    口 子网掩码使用连续的比特0来对应主机号
    口 将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址
  • 给定一个分类的IP地址和其相应的子网掩码,就可知道子网划分的细节:
    口 划分出的子网数量
    口 每个子网可分配的IP地址数量
    口 每个子网的网络地址和广播地址
    口 每个子网可分配的最小和最大地址
  • 默认的子网掩码是指在未划分子网的情况下使用的子网掩码。
    口 A类: 255.0.0.0
    口 B类: 255.255.0.0
    口 C类: 255.255.255.0

3.1.3无分类编址的IPv4地址(第三阶段)

■ 划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。

■ 为此, 因特网工程任务组IETF又提出了采用无分类编址的方法来解决IP地址紧张的问题,同时还专门成立IPv6工作组负责研究新版本IP以彻底解决IP地址耗尽问题。

■1993年,IETF发布了无分类域间路由选择CIDR(Classless Inter-Domain Routing)的RFC文档: RFC 1517~1519和1520。
□ CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念;
□ CIDR可以更加有效地分配IPv4的地址空间, 并且可以在新的IPv6使用之前允许因特网的规模继续增长。

CIDR:
▷ CIDR使用“斜线记法”, 或称CIDR记法。即在IPv4地址后面加上斜线"/”,在斜线后面写上网络前缀所占的比特数量。
在这里插入图片描述
■ CIDR实际上是将网络前缀都相同的连续的IP地址组成一个“CIDR地址块”
■ 我们只要知道CIDR地址块中的任何一 个地址,就可以知道该地址块的全部细节:
□ 地址块的最小地址
□ 地址块的最大地址
□ 地址块中的地址数量
□ 地址块聚合某类网络(A类、B类或C类)的数量
□ 地址掩码 (也可继续称为子网掩码)

斜线数字为20表明该IPv4的前20个比特为网络前缀,也就是说所给地址左起第一个字节,第二个字节以及第三个字节的前4个比特构成20比特的网络前缀,剩余12个比特为主机号,因此,我们需要将该地址的第三个字节和第四个字节转换为二进制的形式
在这里插入图片描述
在这里插入图片描述
CIDR中路由聚合的概念
路由聚合(构造超网)
在这里插入图片描述
网络前缀越长,地址块越小,路由越具体
■ 若路由器查表转发分组时发现有多条路由可选,则选择网络前缀最长的那条,这称为最长前缀匹配,因为这样的路由更具体。
在这里插入图片描述
在这里插入图片描述

3.1.4 IPv4地址的应用规划

■ 给定一个IPv4地址块,如何将其划分成几个更小的地址块,并将这些地址块分配给互联网中的不同网络。进而可以给各网络中的主机和路由器接口分配IPv4地址。
■ 一般有以下两种方法:
□ 一种是采用定长的子网掩码进行划分。
□ 另一种是采用变长的子网掩码进行划分。
在这里插入图片描述
定长的子网掩码FLSM:

假设申请到的C类网络为218.75.230.0,请使用定长的子网掩码给下图所示的小型互联网中的各设备分配IP地址。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
采用定长的子网掩码进行子网划分,只能划分出2^n个子网。其中n是从主机号部分借用的用来作为子网号的比特数量。每个子网所分配的IP地址数量相同,容易造成IP地址的浪费
图中的网络5只需要4个IP地址,但是我们只能给它分配32个IP地址,这样就造成了P地址的严重浪费。

变长的子网掩码VLSM:

假设申请到的地址块为218.75.230.0/24,请使用变长的子网掩码给下图所示的小型互联网中的各设备分配IP地址。
在这里插入图片描述
在这里插入图片描述
大的先分小的后分
在这里插入图片描述
可以做到按需分配不造成浪费

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

■ IP数据报的发送和转发过程包含以下两部分:
□ 主机发送IP数据报
□ 路由器转发IP数据报
为了将重点放在TCP/IP协议栈的网际层发送和转发IP数据报的过程上,在之后的举例中,忽略使用ARP协议来获取目的主机或路由器接口的MAC地址的过程以及以太网交换机自学习和转发帧的过程。

在下图所示的小型回联网中,路由器的接口0只连了一个交换式以太网,接口1也只连了一个交换式以太网。

我们给该网络分配了这样的网络地址和子网掩码,给网络中的各主机和路由器的接口配置了相应的IP地址和子网掩码。
我们给另一个网络分配了这样的网络地址和子网掩码,,给网络中的各主机和路由器的接口配置了相应的IP地址和子网掩码。
在这里插入图片描述
同一个网络中的主机之间可以直接通信,这属于直接交付
不同网络中的主机之间的通信,需要通过路由器来中转,这属于间接交付
在这里插入图片描述
源主机如何知道目的主机是否与自己在同一个网络中?
假设主机C要给主机F发送IP数据报。主机C将自己的IP地址和子网掩码相与,就可以得到主机C的网络地址,既然主机C要给主机F发送IP数据报,那主机C肯定知道主机F的P地址,否则就没法发送了
在这里插入图片描述
主机C将主机F的IP地址自己的子网掩码相与,就可得到目的网络地址,该地址与主机C的网络地址不相等,因此主机C就知道了主机F与自己不在同一网络,他们之间的通信属于间接交付。主机C需要将IP数据报传输给路由器。由路由器将IP数据报转发给路由器F
在这里插入图片描述
那么主机C又是如何知道应该把IP数据报交给哪个路由器进行转发呢?
实际上,用户为了能让本网络上的主机能和其他网络中的主机进行通信就必须给其指定本网络中的一个路由器,由该路由器帮忙进行转发。所指定的路由器,也被称为默认网关。
对于本例,我们可以将路由器接口0的IP地址,指定给该接口所直连网络中的各个主机作为默认网关。可将路由器接口1的IP地址,指定给该接口所直连网络中的各个主机作为默认网关。当本网络中的主机要和其他网络中的主机进行通信时,会将IP数据报传输给默人网关,由默认网关帮主机将IP数据报转发出去。
在这里插入图片描述
假设本例中的主机A要给主机D发送IP数据报,属于间接交付。主机A会将该IP数据报传输给自己的默认网关,也就是图中所示的路由器。
在这里插入图片描述当路由器收到数据报后,又是如何转发的呢
① 检查IP数据报首部是否出错:
若出错,则直接丢弃该IP数据报并通告源主机
若没有出错,则进行转发
② 根据IP数据报的目的地址在路由表中查找匹配的条目:
若找到匹配的条目,则转发给条目中指示的下一跳
若找不到,则丢弃该IP数据报并通告源主机

我们假没本例中的P数据报首部没有出现差错。路由器取出IP数据报首部各地址字段的值。
在这里插入图片描述
路由器就要对该IP数据报进行查表转发了。
当我们给路由器的接口配置IP地址和子网掩码时,路由器就知道了自自己的该接口与哪个网络是直连的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
假设主机A给本网络上的各设备发送了一个广播数据报。该网络中的各设备都会收到该广播IP数据报。但是路由器收到后并不会转发该数据报
在这里插入图片描述
在这里插入图片描述
注意:
▷ 中继器和集线器工作在物理层,既不隔离冲突域也不隔离广播域。
▷ 网桥和交换机(多端口网桥)工作在数据链路层,可以隔离冲突域,不能隔离广播域。
▷ 路由器工作在网络层,既隔离冲突域,也隔离广播域。
▷ IP路由器工作在TCP/IP体系结构的网际层(或称IP层) ,TCP/IP体系结构的网际层
并不负责可靠传输,也就是不能确保传输的IP分组不丢失。
▷ IP路由器对收到的IP分组头进行差错校验,当发现错误时会丢弃该IP分组并向源主机发送ICMP差错报告报文(类型为参数错误)。
在这里插入图片描述
重点:
主机发送IP数据报
判断目的主机是否与自己在同一个网络(判断方法请参看本节课相关示例)
在同一个网络,则属于直接交付;
不在同一个网络,则属于间接交付,传输给主机所在网络的默认网关(路由器),由默认网关帮忙转发;

路由器转发IP数据报
①检查|P数据报首部是否出错:
若出错,则直接丢弃该IP数据报并通告源主机;
若没有出错,则进行转发;
②根据IP数据报的目的地址在路由表中查找匹配的条目(查找方法相关示例) :
若找到匹配的条目,则转发给条目中指示的下一跳;
若找不到,则丢弃该IP数据报并通告源主机;

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

■ 静态路由配置是指用户或网络管理 员使用路由器的相关命令给路由器人工配置路由表。
□ 这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化。
□ 一般只在小规模网络中采用。
■ 使用静态路由配置可能出现以下导致产生路由环路的错误
□ 配置错误
□ 聚合了不存在的网络
□ 网络故障

  • 举例静态路由配置
    我们采用如图所示的网络拓扑和相应的P地址配置。路由器R1通过自己的接口0F斤配置的P地址和地址掩码,可以自动得出接口0斤在的网络。由于接口0与该网络直连,则下跳不是路由器地址,而是通过接口0转发IP数据报给该网络中的某个主机。这属于直接交付,其他例子一样
    在这里插入图片描述
    假设R1要转发数据报给该网络中的某个主机。从图中可以看出,R1应该将该IP数据报转发给路由器R2的接口0。但R1的路由表中并没有关于该目的网络的路由条目。换句话说,R1并不知道目的网络的存在。
    在这里插入图片描述
    因此,我们可以使用路由器的相关配置命令,给R1添加一条到达该目的网络的路由条目。第三行第一个是该目的网络的地址,下一跳为路由器R2的接口0的地址,该路由条目是我们人工配置的静态路由
    在这里插入图片描述
    假设R2要转发个数据报给该网络中的某个主机。从图中可以看出,R2应该将该IP数据报转发给路由器R1的接口1。但R2的路由表中并没有关于该目的网络的路由条目。因此,我么可以给R2添加一条到达该目的网络的路由条目,第三行第一个是该目的网络的地址,下一跳为路由器R1的接口1的地址,该路由条目是我们人工配置的静态路由
    在这里插入图片描述
  • 默认路由概念
    假没路由器R2的接口2连接到了因特网。
    在这里插入图片描述
    假设R1要转发一个IP数据报给因特网某个网络中的某个主机
    从图中可以看出R1应该将该IP数据报转发给路由器R2的接口0。由于因特网中包含了众多的网络。如果我们给R1添加针对这些网络的每条路由条目。则会给人工正配置带来E大的工作量,并且使R1的路由表变得非常大,降低查表转发的速度。实际上,对于具有相同下一跳的不同目的网络的路由条目,我们可以用一条默认路由条目来替代。
    在这里插入图片描述
    特定主机路由的概念:
    我们可以给路由器添加针对某个主机的特定主机路由条目。一般用于网络管理人员对网络的管理和测式。另外在需要考虑某种安全问题时也可以采用特定主机路由。
    假设这是该网络中的某台特定主机。我们可以在R1的路由表中添加一条到达该主机的特定主机路由条目。
    在这里插入图片描述
    静态路由配置错误导致路由环路:
    在这里插入图片描述
    为了防止IP数据报在路由环路中永久兜圈,在IP数据报首部设有生存时间TTL字段。
    IP数据报进入路由器后,TTL字段的值减1。若TTL的值不等于0,则被路由器转发,否则被丢弃。

聚合了不存在的网络而导致路由环路:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
假设R2要转发数据报到这个不存在的网络,进行查表转发
在这里插入图片描述
将会选择红色那条到达网络的黑洞路由,下一跳为虚拟接口null0
在这里插入图片描述
网络故障而导致路由环路:
假设路由器R1,检测到其接口0所直连的网络出现了故障而不可达,就会自动在其路由表中删除该直连网络的路由条目。
在这里插入图片描述
在这里插入图片描述
针对这种情况,在R1路由表中添加针对该直连网络的黑洞路由。
在这里插入图片描述
假设一段时间后,之前的故障消失了。则R1又自动地得出了其接口0的直连网络的路由条目
在这里插入图片描述
总结:
■ 静态路由配置是指用户或网络管理 员使用路由器的相关命令给路由器人工配置路由表。
□ 这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化。
□ 一般只在小规模网络中采用。
■ 使用静态路由配置可能出现以下导致产生路由环路的错误
□ 配置错误
□ 聚合了不存在的网络
□ 网络故障
■ 路由条目的类型
□ 直连网络
□ 静态路由(人工配置)
□ 动态路由(路由选择协议)
■ 特殊的静态路由条目
□ 默认路由(目的网络为0.0.0.0,地址掩码为0.0.0.0)
□ 特定主机路由(目的网络为特定主机的IP地址,地址掩码为255.255.255.255)
□ 黑洞路由(下一-跳为null0)

6.路由选择协议

在这里插入图片描述
在这里插入图片描述
因特网采用分层次的路由选择协议
在这里插入图片描述
外部网关协议EGP和内部网关协议GP,只是路由选择协议的分类名称,而不是具体的路由选择协议。名称中使用的是“网关”这个名词,是因为在因特网早期期的RFC文档中。
没有使用路由器”。而使用的是“网关”这-名词。现在新的RFC文档中又改用“路由器”这名词。因此,外部网关协议EGP可政称为外部路由协议ERP,内部网关协议GP可故称为内部路由协议RP。
在这里插入图片描述
在这里插入图片描述
路由选择协议是在路由器上运行的
路由器的基本结构
在这里插入图片描述
在这里插入图片描述
除了处理路由报文外还会周期性的给其他分组转发路由报文信息
在这里插入图片描述

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

■路由信息协议RIP(Routing Information Protoco)是内部网关协议IGP中最先得到广泛使用的协议之一,其相关标准文档为RFC 1058。
■RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每- -个网络的距离记录。这是一组距离,称为“距离向量D-V(Distance-Vector)" 。
■RIP使用跳数(Hop Count)作为度量(Metric)来衡量到达目的网络的距离。
□路由器到直连网络的距离定义为1。
□路由器到非直连网络的距离定义为所经过的路由器数加1。
□允许-条路径最多只能包含15个路由器。“距离” 等于1 6时相当于不可达。因此,RIP只适用于小型互联网。
在这里插入图片描述
■RIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由。
■当到达同一 目的网络有多条” 距离相等”的路由时,可以进行等价负载均衡。
■RIP包含以下三个要点:
□和谁交换信息 仅和相邻路由器交换信息
在这里插入图片描述
□交换什么信息 自己的路由
□何时交换信息 周期性交换 (例如每30秒)

请添加图片描述
RIP的基本工作过程:
在这里插入图片描述
收敛如图所示:
在这里插入图片描述
RIP的路由条目的更新规则
请添加图片描述
请添加图片描述
在这里插入图片描述
■RIP存在“坏消息传播得慢”的问题
■“坏消息传播得慢”又称为路由环路或距离无穷计数问题,这是距离向量算法的一个固有问题。
■可以采取多种措施减少出现该问题的概率或减小该问题带来的危害。
□限制最大路径距离为15 (16表示不可达)
□当路由表发生变化时就立即发送更新报文(即“触发更新”),而不仅是周期性发送
□让路由器记录收到某特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送(即“水平分割”)
在这里插入图片描述
在这里插入图片描述

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

■开放最短路径优先OSPF(Open Shortest Path First),是为克服RIP的缺点在1989年开发出来的。
□ “开放” 表明OSPF协议不是受某-家厂商控制,而是公开发表的。
□ "最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF。
■OSPF是基于链路状态的, 而不像RIP那样是基于距离向量的。
■OSPF采用SPF算法计算路由, 从算法.上保证了不会产生路由环路。
■OSPF不限制网络规模, 更新效率高,收敛速度快。
■链路状态是指本路由器都和哪些路由器相邻, 以及相应链路的”代价”(cost) 。
□ "代价”用来表示费用、距离、时延、带宽,等等。这些都由网络管理人员来决定。
在这里插入图片描述
■使用OSPF的每个路由器都会产生链路状态通告LSA(Link State Advertisement)。LSA中包含以下内容:
□ 直连网络的链路状态信息
□ 邻居路由器的链路状态信息
■LSA被封装在链路状态更新分组LSU中,采用洪泛法发送。
在这里插入图片描述
■使用OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储LSA。
■通过各路由器洪泛发送封装有自己LSA的LSU分组,各路由器的LSDB最终将达到-致。

在这里插入图片描述
■使用OSPF的各路由器基于LSDB进行最短路径优先SPF计算,构建出各自到达其他各路由器的最短路径,即构建各自的路由表。
在这里插入图片描述

■OSPF有以下五种分组类型
□ 类型1, 问候(Hello)分组
用来发现和维护邻居路由器的可达性。
□ 类型2, 数据库描述(Database Description)分组
向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息
□ 类型3, 链路状态请求(Link State Request)分组
向邻居路由器请求发送某些链路状态项目的详细信息。
□ 类型4, 链路状态更新(Link State Update)分组
路由器使用这种分组将其链路状态进行洪泛发送,即用洪泛法对全网更新链路状态。
□ 类型5,链路状态确认(Link State Acknowledgment)分组
这是对链路状态更新分组的确认分组。
请添加图片描述
请添加图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
BGP的邻站交换整个BGP路由表。但以后只需要在发生变化时更新有变化的部分,这样做对节省网络带宽和减少路由器的处理采销都有好处。在BGP协议刚刚运行时,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.IPv4数据报的首部格式

简单起见,之后将IPv4数据报简称为IP数据报,而不指出版本号,IP数据报的首部格式及其内容,是实现IP协议主要功能的基础。
在这里插入图片描述
■版本:
占4比特,表示IP协议的版本。
通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4 (即IPv4)。
■首部长度
占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位。
最小十进制取值为5,表示IP数据报首部只有20字节固定部分;
最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分。
■可选字段
长度从1个字节到40个字节不等。用来支持排错、测量及安全等措施。
可选字段增加了IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理IP数据报的开销。实际上可选字段很少被使用。
■填充字段
确保首部长度为4字节的整数倍。使用全0进行填充。
填充的作用:首部长度字段是以4字节为长度单位的,换句话说IP数据报的首部长度一定是4字节的整数倍,由于首部中的可选字段的长度从1个字节到40个字节不等,那么当20个字节的固定部分加上1到40个字节长度不等的可变部分,会造成首部长度不是4字节整数倍时,就用取值为全0的填充相应字节,确保首部长度为4字节的整数倍
在这里插入图片描述
■区分服务
占8比特,用来获得更好的服务。
该字段在旧标准中叫作服务类型,但实际上-直没有被使用过。
1998年,因特网工程任务组IETF把这个字段改名为区分服务。
利用该字段的不同数值可提供不同等级的服务质量。
只有在使用区分服务时,该字段才起作用。-般情况下都不使用该字段。
■总长度
占16比特,表示IP数据报的总长度(首部+数据载荷)
最大取值为十进制的65535,以字节为单位。
需要说明的是在实际运用中很少使用这么长的IP数据报

举例说明首部长度字段和总长度字段的区别与联系:
在这里插入图片描述
标识、标志、片偏移这三个部分:
在这里插入图片描述
■标识
占16比特,属于同一一个数据报的各分片数据报应该具有相同的标识。
IP软件维持一个计数器,每产生一个数据报,计数器值加1,并将此值赋给标识字段。
■标志
占3比特,各比特含义如下:
□ DF位: 1表示不允许分片 ; 0表示允许分片
□ MF位: 1表示后面还有分片; 0表示“这是最后一个分片
□ 保留位:必须为0
■片偏移 .
占13比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少个单位。
片偏移以8个字节为单位。

IPv4数据报如何进行分片:
在这里插入图片描述
现在假定分片2的IP数据报经过某个网络时还需要再进行分片。其中一个分片长度为800字节,另一个分片长度为600字节,分片结束后给每个分片重新添加个首部。使之成为IP数据报
在这里插入图片描述
■生存时间TTL
占8比特,最初以秒为单位,最大生存周期为255秒:路由器转发IP数据报时,将IP数据报首部中的该字段的值减去IP数据报在本路由器上所耗费的时间,若不为0就转发,否则就丢弃。

现在以“跳数”为单位,路由器转发IP数据报时,将IP数据报首部中的该字段的值减1,若不为0就转发,否则就丢弃。

生存时间TTL字段的作用:防止IP数据报在网络中永久兜圈
请添加图片描述
IP数据报将在路由环路中兜圈,直到TTL的值减少到0时被路由器丢弃!

■协议
占8比特,指明IPv4数据报的数据部分是何种协议数据单元。
常用的一些协议和相应的协议字段值如下。
在这里插入图片描述
在这里插入图片描述
■首部检验和
占16比特,用来检测首部在传输过程中是否出现差错。比CRC检验码简单,称为因特网检验和。

IP数据报每经过一个路由器,路由器都要重新计算首部检验和,因为某些字段(生存时间、标志、片偏移等)的取值可能发生变化。

由于IP层本身并不提供可靠传输的服务,并且计算首部校验和是一项耗时的操作,因此在IPv6中,路由器不再计算首部校验和,从而更快转发IP数据报。

■源IP地址和目的IP地址
各占32比特,用来填写发送该IP数据报的源主机的IP地址和接收该IP数据报的目的主机的IP地址。

11.网际控制报文协议ICMP

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

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

  • 终点不可达(找不到目的主机信息)
    □ 当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。具体可再根据ICMP的代码字段细分为目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知等13种错误
    在这里插入图片描述
  • 源点抑制(路由器或主机拥塞丢弃数据报)
    □ 当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
    在这里插入图片描述
  • 时间超过(TTL=0时 没有发过去时间超时)
    当路由器收到一个目的IP地址不是自己的IP数据报,会将其生存时间TTL字段的值减1
    若结果不为0,则将该IP数据报转发出去;
    若结果为0,除丢弃该IP数据报外,还要向源点发送时间超过报文。
    在这里插入图片描述
    另外,当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,也会向源点发送时间超过报文。
  • 参数问题(发送报文中参数出错)
    当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段发现首部在传输过程中出现了误码,就丢弃该数据报,并向源点发送参数问题报文。
    在这里插入图片描述
  • 改变路由(重定向)(可以选择更好的路径)
    路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。
    在这里插入图片描述
    ■ 以下情况不应发送ICMP差错报告报文:
    对ICMP差错报告报文不再发送ICMP差错报告报文
    对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
    对具有多播地址的数据报都不发送ICMP差错报告报文
    对具有特殊地址(如127.0.0.0或0.0.0.0) 的数据报不发送ICMP差错报告报文

■常用的ICMP询问报文有以下两种:
回送请求和回答
ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。
收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。
这种询问报文用来测试目的站是否可达及了解其有关状态。
时间戳请求和回答
ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间。
在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。
这种询问报文用来进行时钟同步和测量时间

■ICMP应用举例

  • 分组网间探测PING(Packet InterNet Groper)
    □ 用来测试主机或路由器间的连通性
    □ 应用层直接使用网际层的ICMP (没有通过运输层的TCP或UDP)
    □ 使用ICMP回送请求和回答报文

使用Ping命令来测试该主机与官方网站服务器的连通性
在这里插入图片描述

  • 跟踪路由(traceroute)
    □用来测试IP数据报从源主机到达目的主机要经过哪些路由器
    □Windows版本
    ◇ tracert命令
    ◇ 应用层直接使用网际层ICMP
    ◇ 使用了ICMP回送请求和回答报文以及差错报告报文
    □Unix版本
    ◇ traceroute命令
    ◇ 在运输层使用UDP协议
    ◇ 仅使用ICMP差错报告报文

使用tracert命令来测试该主机与官方网站服务器之间要经过哪些路由器。
在这里插入图片描述
tracert命令实现原理是什么
在这里插入图片描述

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

  • 虚拟专用网VPN(Virtual Private Network)
    利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网。
    由于IPv4地址的紧缺,一个机构能够申请到的IPv4地址数量往往远小于本机构所拥有的主机数量。因此,虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址,而不是需要申请的、在因特网上使用的公有地址。
    私有地址只能用于一个机构的内部通信。而不能用于和因特网上的主机通信。换句话说私有地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器,对目的地址是私有地址的IP数据报一律不进行转发。
    在这里插入图片描述
    如下图所示,同- -机构内不同部门的内部网络所构成的虚拟专用网VPN又称为内联网VPN。
    有时一个机构的VPN需要有某些外部机构(通常就是合作伙伴)参加进来。这样的VPN就称为外联网VPN。
    在外地工作的员工需要访问公司内部的专用网络时,只要在任何地点接入到因特网,运行驻留在员工PC中的
    VPN软件,在员工的PC和公司的主机之间建立VPN隧道,即可访问专用网络中的资源。这种VPN称为远程接入VPN。
    在这里插入图片描述
  • 网络地址转换NAT(Network Address Translation)
    虽然因特网采用了无分类编址方式来减缓|Pv4地址空间耗尽的速度,但由于因特网用户数目的
    激增,特别是大量小型办公室网络和家庭网络接入因特网的需求不断增加,IPv4地址空间即将面临
    耗尽的危险仍然没有被解除。
    1994年提出了一种网络地址转换NAT的方法再次缓解了IPv4地址空间即将耗尽的问题
    NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网.上的主机
    和资源。

    在这里插入图片描述
    这需要在专用网络连接到因持网的路由器上,安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一一个有效的外部全球IP地址。都要在NAT路由器上将其私有地址转换成全球IP地址。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    对于一些P2P网络应用,需要外网主机主动与内网主机进行通信,在通过NAT
    时会遇到问题,需要网络应用自己使用一些特殊的NAT穿越技术来解决问题。
    另外,由于NAT对外网屏蔽了内网主机的网络地址,能为内网的主机提供一定的安全保护。
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/1019546
推荐阅读
相关标签
  

闽ICP备14008679号