[计算机网络003]网络层概述

目录

一、网络层提供的服务:

二、核心功能-----转发和路由:

三、网路层的服务模型: 

1.无连接的服务:

(1)数据报网络的特点:

(2)分组转发的策略:

  2.连接的服务:

(1).虚电路的定义:

(2).每条虚电路包括:

(3).虚电路的通信过程:

 (4).虚电路信令协议(signaling protocols):

 3.两种模型的对比:

四、IPv4协议:

1.IP数据报(分组)的格式:

 2.IP数据报分片:

3.IP编址:

4.有类IP地址:

5.IP子网与子网划分:

五、CIDR与路由聚集: 

1.CIDR(无类域间路由):

2.路由聚合:

六、DHCP协议: 

1.硬编码的方法:

2.动态主机配置协议 :

(1)基本概念:

七、NAT协议: 

1.基本定义:

2.工作原理:

3.实现:

 八、ICMP协议:

1.主要功能:

 2.ICMP报文的格式

九、ARP协议:(数据链路层有关部分,这里略写)

 十、路由算法:

1.路由算法的定义:

2.链路状态的路由算法:

3.距离向量路由算法:

4.层次路由: 

十一、Internet路由: 

1.RIP协议

2.OSPF协议:


一、网络层提供的服务:

从发送主机向接收主机传送数据段(segment)。其中发送主机将数据段封装到数据(datagram)之中,接收主机向传输层交付数据段。

在这个过程之中:每个主机和路由器都在运行网络层协议。其中路由器会检验所有穿过它的IP数据报的头部域(根据头部域来决定如何处理数据报) 

二、核心功能-----转发和路由:

转发的概念:

将一个分组从路由器的一个输入端口转移到一个合适的输出端口的这样一个功能被叫做转发。

如何判断哪一个是所谓的合适的端口:

路由器在维护一个转发表,利用转发表可以确定在本路由器之中如何转发如何转发分组。我们收到数据报以后会发现在数据报之中会存放着一些地址(广义地址)信息。那么我就可以这个地址来查表,进而知道如何转发分组。

路由的概念:

确定分组从源到目的经过的路径。我们会通过一些路由算法来决定:

三、网路层的服务模型: 

首先分为无连接的数据报(datagram)网络和有连接的虚电路(virtual-circuit)网络

类似于我们在传输层的UDP和TCP。

1.无连接的服务:

 不事先为系列分组的传输确定路径。

每个分组独立确定传输路径。

不同分组可能的传输路径不同。

数据报网络。

(1)数据报网络的特点:

①:网络层没有连接。

②:每个分组携带目的地址。

③:路由器根据分组的目的地址转发分组。

(2)分组转发的策略:

首先一个大前提是:路由器是根据分组的目的地址来转发分组。具体的实现仍然以查询转发表来实现

①:直接根据IP地址转发

 对于Internet而言IP地址是32位的二进制数(IPv4),对转发表的实现几乎不可行。

②以IP地址的范围为依据 :

我们针对地址范围:通过地址范围我们可以将具有共同地址范围的转发表入口进行聚合

 非常理想的情况,在实际的网络中不会这么完美。一般情况下我们的转发表是这个样子的(即在不同的目的地址范围之间存在交集的关系例如:

对于第一个地址:我们只能找到一个满足其地址范围的转发表项即链路接口位0的结果。

对于第二个地址:我们可以找到两个包含其的范围我们选择了链路接口1

最长前缀匹配优先原则:在检索转发表的时候,优先选择与分组目的地址匹配的前缀最长的入口

  2.连接的服务:

首先为系列分组的传输确定从源到目的经过的路径(建立连接)。

随后沿着该路径(连接)传输系列分组。

系列分组传输路径相同。

传输结束后拆除连接。

虚电路网络。

(1).虚电路的定义

一条从源主机到目的主机,类似于电路的路径(逻辑上存在,实际不存在)。特点:用于分组交换,并且会利用链路的全部带宽。源到目的路径之中经过的所有网络层设备共同完成虚电路的功能。(比如从源主机、目的主机、以及路径之中的路由器都会参与虚电路的建立、维护、并且实现其功能)。

(2).每条虚电路包括:

1.从源主机到目的主机的一条路径

2.虚电路号(VCID),沿路每段链路一个编号。

3.沿路的每个网络层设备(例如路由器),利用转发表记录经过的每一条虚电路。

注意:

沿着某条虚电路传输的分组,携带对应虚电路的VCID,而不是目的地址。同一条VC,在每一段链路的VCID不同,路由器转发的时候依据转发表改写/替换虚电路号。

(3).虚电路的通信过程:

首先建立呼叫(call setup)--->数据传输--->拆除呼叫。

对于每个分组而言:都会携带虚电路标识(VC ID),而不是目的主机地址。

虚电路经过的每个网络设备(例如路由器),维护每条经过它的虚电路连接状态。

上图是一个分组在虚电路的传输过程,可以看到在虚电路之中每一段链路的VCID都不一样。

 这个是路由器R1内的转发表:我们可以看到标红的一行就是上图的分组的转发过程:由接口号1输入,随后根据其携带的VCID我们可以唯一确定其输出接口以及输出VC。

 (4).虚电路信令协议(signaling protocols):

用于VC的建立、维护、以及拆除。应用于虚电路网络:例如ATM、帧中继网络。在Internet之中不采用。

 3.两种模型的对比:

数据报网络:

弹性服务,没有严格的时间要求。

链路类型多,统一服务困难。

可以自恢复,性能控制。

VC网络:

严格的时间要求,可靠性需求,需要有保障的服务。

四、IPv4协议:

在Internet的网络层之中:主机、路由器网络层的主要功能:

 这一小节学习IP协议

1.IP数据报(分组)的格式:

其包括两个部分首部+数据:有意思的一点,其数据部分就是我们的UDP/TCP段。(这是我的理解:应用层将对象(数据)交付给传输层,传输层通过不同的协议将数据加工附上各类不同的头部信息后组成报文段,报文段作为数据部分又参与IP数据报的组成)下面给出IP数据报的格式:

版本号:指IP协议的版本,目前广泛使用的是IPv4协议,所以版本号为4.

首部长度:用来指明首部的长度大小,大小占4位,一般情况下最常用的首部长度为20

总长度:指首部和数据报的长度之和,占16位

标识:是一个计数器,每产生一个数据报就加1,并且赋值给标识字段。其作用可以标识一个IP分组。

标志位:占有三位,对于最低位MF(More Fragment):0的时候表示当前为最后一个分片(或者还没有开始分片,1的时候表示该分片后面还有其他分片。标志字段的中间位DF(Don't Fragment),当为0的时候我们允许使用分片,1的时候禁止分片。

片偏移:占据13位,指出较长的分组在分片以后,某一片在原来分组的相对位置。

首部校验和:IP数据报的首部校验和只检验分组的首部,不校验数据部分

生存时间:标识分组在网络之中的寿命,以确保分组不会永远的在网络之中循环。路由器在转发分组之前,将其TTL减去1,在转发。当TTL变为0必须丢弃。

协议:占8位,指出该分组携带的数据是基于什么类型的协议(可以理解为携带的报文段在传输层之中采用的协议,即分组的数据到达接收方以后交付给哪一个传输层协议)

源地址:占四字节,标识发送方的IP地址。

目的地址:占四字节,标识接收方的IP地址。

 2.IP数据报分片:

首先我们需要引入一个概念:MTU(最大传输单元)———链路层数据帧可以封装数据的上限,对于不同的来链路其MYU有所不同:

当大IP分组向较小MTU链路转发的时候,可以被分片:一个IP分组分为多片IP分组,这些IP分组进入主机以后会继续重组。IP首部的相关字段用于标识分片以及确定分片的相对顺序(包括:总长度、标识、标志位、片偏移。)

接下来我们看具体的分片过程:

首先:我们假设原来的IP分组的大小位L,待转发的链路的MTU为M。

若L>M,且有DF=0,那么我们就可以采取分片的操作。

分片时的每一个分片的标识复制原来的IP分组的标识。

通常情况下:出去最后一公分片,其他的分片均被分割为MTU下允许的最大分片。

一个最大分片可以封装的数据应该是8的倍数

我们利用一个表格来解决这个问题设计的计算:

情景:我们已知的IP分组为3000字节,首部为标准大小,在MTU=1500的情况下 ,发送该分组时候会有多少个分片?写出各个分片的信息(长度,偏移,MF)。

先将首部去除3000-20=2980(数据大小为2980B);

接下来分组:由上文的分片过程可以知道:分片时的每一个分片的标识复制原来的IP分组的标识。所以每个分片都有20字节大小的报头。由于MTU=1500,那我们可以知道除去20B的报头以后我们还可以容纳1480B的数据。这样第一个分片我们就设计好了。其报头为原来的分组的报头大小20B,数据有1480B,长度为1500,偏移量为0,还有剩下的数(2980-1480=1500)所以后面还有报文MF置为1。接下来看第二个分片:同样的其报头也为20,剩下的1500B数据,该分片只能接受1480了。对于偏移量放到最后解决。此时换剩下20B的数据所以对于分片2的MF字段应该为1。对于第三个分片:其报头20B,数据20B,后面没有数据了,说明没有分片了,那么MF=0。

上图直观的解释了偏移量的概念。

 下面是计算的总结:

3.IP编址:

接口(interface):指主机/路由器与物理链路的连接:路由器一般由多个,主机通常一到两个。事实上IP数据报是从网络接口输出的,最后也会到达另一个主机的网络缺口。

IP地址:32bit(IPv4)编号标识主机和路由器的接口。即IP地址与每一个接口相关联。

具体的分配方法:

我们将IP地址分为两个部分:

 对于高比特位:采用网络号,对于低比特位;采用主机号。

我们同时引出IP子网的概念:IP地址之中具有相同的网络号的设备接口,无需跨越路由器,可以彼此物理联通的接口。

 如图为三个IP子网

4.有类IP地址:

 我们可以知道的是:网络号+主机号=32位,那么他们分别有多少个比特位?

A类地址的网络位是8位,其中最高位固定是0。那么A类网络的子网地址空间是2^7,即127。所以可以根据点分十进制IP地址的第一个十进制数的取值来判断这个地址是哪一类地址。范围是0.0.0.0~127.255.255.255。可以标识大量主机。
B类地址的网络位 是16位,其中最高两位固定是10。那么B类网络的子网地址空间是2^14。范围是128.0.0.0~191.255.255.255
C类地址的网络位 是24位,其中最高三位固定是110。那么B类网络的子网地址空间是2^21。范围是192.0.0.0~223.255.255.255
D类地址的不再区分网络号和主机号。因为在网络里用作特殊的目的。其中最高四位固定为1110。它用来表述一组主机,这组主机理论上可以分布在互联网中的每一个地方。它们只能作为目的地址。这类地址叫多播地址或组播地址。
E地址的也不再区分网络号和主机号。其中最高四位固定为1111。它们被保留作为研究使用。

 

 此外还有一些特殊用途的IP地址

对于网络地址和广播地址而言:我们设计子网的时候也要考虑 

5.IP子网与子网划分:

背景:由于在A类和B类网络之中:我们可以标识的主机数目很多,所以中间一定含有路由器等设备,此时需要对大的网络进一步区分更小的网络。即如何将一个IP比较大的子网区分为更小的一些子网。简单来讲,如果没有子网,我们标识一个主机的时候需要在大范围之中寻找,设计了子网以后我们在将大范围划为了多个小范围,我们可以在小范围之中去寻找。

IP地址组成:

网络号+子网号+主机号

 例如我们将一个网络划分为4个子网,此时SubID有两位:

随后再使用路由器互联在一起:

 问题:网络怎么知道是否划分了子网?利用了多少位划分子网。

 我们引申出子网掩码的概念:从形式上是与IP地址是相似的也是一个32位的数字(一般我们也会把它写成分十进制的形式)在取值上面:对于NetID、SubID均取值为1,HostID全取0。比如A类网络的默认子网掩码为255.0.0.0。B类网络的默认子网掩码为255.255.0.0,C类网络的默认子网掩码为255.255.255.0。如果一个B类网络,借用主机号的3个比特位进行自我划分的时候其子网掩码:255.255.224.0(128+64+32=224)。但我们需要明确得到一个IP子网的范围,单单有子网地址是不够的,还需要子网掩码。

例如:子网201.2.3.0,和255.255.255.0划分为四个等长的子网。

1. 确定初始网络地址和子网掩码

  • 初始网络地址:201.2.3.0
  • 初始子网掩码:255.255.255.0

2. 计算初始子网中的总主机数

初始子网掩码255.255.255.0表示前24位是网络部分,后8位是主机部分。因此,总共有 256−2=254 个可用的主机地址(减去2是因为网络地址和广播地址不能分配给主机)。

3. 划分子网

为了将这个子网划分为四个等长的子网,我们需要增加子网掩码中的网络位数。具体来说,我们需要从主机部分借用2位来作为子网部分,这正好可以划分出4个子网。

新的子网掩码将是:

  • 初始子网掩码:255.255.255.0
  • 加上2位子网位:255.255.255.192 (即128+64=192前26位为网络部分,后6位为主机部分)

4. 计算每个新子网的范围

每个新子网的主机位数为6位,因此每个子网的总地址数为 2的六次。但是,每个子网中需要排除两个地址:一个是网络地址(所有主机位都为0),另一个是广播地址(所有主机位都为1)。因此,每个子网的可用主机地址数量为 64−2=62

第一个子网

  • 网络地址:201.2.3.0(所有主机位都为0)
  • 子网掩码:255.255.255.192
  • 可用主机地址范围:201.2.3.1 - 201.2.3.62
  • 广播地址:201.2.3.63(所有主机位都为1)

第二个子网

  • 网络地址:201.2.3.64(所有主机位都为0)
  • 子网掩码:255.255.255.192
  • 可用主机地址范围:201.2.3.65 - 201.2.3.126
  • 广播地址:201.2.3.127(所有主机位都为1)

第三个子网

  • 网络地址:201.2.3.128(所有主机位都为0)
  • 子网掩码:255.255.255.192
  • 可用主机地址范围:201.2.3.129 - 201.2.3.190
  • 广播地址:201.2.3.191(所有主机位都为1)

第四个子网

  • 网络地址:201.2.3.192(所有主机位都为0)
  • 子网掩码:255.255.255.192
  • 可用主机地址范围:201.2.3.193 - 201.2.3.254
  • 广播地址:201.2.3.255(所有主机位都为1)

5. 总结

将子网201.2.3.0和子网掩码255.255.255.0划分为四个等长的子网后,得到的子网如下:

  1. 子网1: 201.2.3.0/26
    • 可用主机地址:201.2.3.1 - 201.2.3.62
  2. 子网2: 201.2.3.64/26
    • 可用主机地址:201.2.3.65 - 201.2.3.126
  3. 子网3: 201.2.3.128/26
    • 可用主机地址:201.2.3.129 - 201.2.3.190
  4. 子网4: 201.2.3.192/26
    • 可用主机地址:201.2.3.193 - 201.2.3.254

每个子网有62个可用的主机地址。

 子网掩码的应用:

将分组的目的IP地址与子网掩码按位与运算:可以提取子网地址。

例如:目的IP地址:173.32.1.112,子网掩码:255.255.254.0

10101100 00100000 00000001 01110000

11111111   11111111   11111110  00000000

-------------------------------------------------------

10101100 00100000 00000000 00000000=172.32.0.0(子网地址)

显然B类网络:其中子网位有(128+64+32+16+8+4+2)所以有七位,那么对于其可用的主机地址:2的九次=512,再减去网络地址以及广播地址那么就有510个

  • 网络地址:172.32.0.0(所有主机位都为0)
  • 子网掩码:255.255.254.0
  • 可用主机地址范围:172.32.0.1~172.32.1.254
  • 广播地址:172.32.1.255(所有主机位都为1)

五、CIDR与路由聚集: 

1.CIDR(无类域间路由):

特点:

①消除传统的ABC类的地址界限。

NetID+SubID----->Network Prefix(可以是任意长度)

②融合子网地址与子网掩码。

无类地址格式:a.b.c.d/x,其中x为前缀长度。

11001000 00010111 00010000 00000000

------------Prefix------------------------HostID---

书写为:200.23.16.0/23

2.路由聚合:

聚合(Supernetting)是一种将多个连续的网络地址合并为一个较大网络地址的技术,用于减少路由表项,从而提高路由效率。聚合的关键在于合并的网络必须是连续的,并且网络前缀必须可以通过减少前缀长度来合并。

1、聚合的示例
  假设有以下连续的网络地址:

192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
  这些网络地址可以通过聚合合并成一个较大的网络地址:
192.168.0.0/22
  在这个例子中,前缀长度从24位减少到22位,这表示前四个网络地址被合并成一个较大的网络范围。
2、聚合的计算步骤
确定连续网络: 确保要聚合的网络地址是连续的。
找到共同的前缀: 找出这些网络地址的共同前缀,并确定合并后的前缀长度。
合并网络地址: 用新的前缀长度表示合并后的网络地址。
3、实例解析
  假设我们有以下连续的IP地址段,需要进行CIDR聚合:

192.168.4.0/24

192.168.5.0/24

192.168.6.0/24

192.168.7.0/24

步骤1: 确定连续网络
  这四个地址段是连续的。

步骤2: 找到共同的前缀
  将这些地址转换为二进制形式:

192.168.4.0 = 11000000.10101000.00000100.00000000

192.168.5.0 = 11000000.10101000.00000101.00000000

192.168.6.0 = 11000000.10101000.00000110.00000000

192.168.7.0 = 11000000.10101000.00000111.00000000
  我们可以看到,前22位是相同的:

11000000.10101000.000001

步骤3: 合并网络地址
  合并后的网络地址是192.168.4.0/22。

六、DHCP协议: 

引入:考虑一个问题:一个主机如何获得一个IP地址?

1.硬编码的方法:

  1. 基本定义:硬编码静态配置是指在网络设备(如计算机、路由器等)上手动设置IP地址和其他相关网络参数(如子网掩码、默认网关等)的过程。这种配置方式与动态获取IP地址的方式(如通过DHCP协议)相对应。

  2. 配置过程:在配置静态IP时,用户需要指定IP地址、子网掩码和默认网关。这些参数通常可以在操作系统的网络设置界面中找到并手动输入。例如,在Windows系统中,可以通过“网络和共享中心”或“控制面板”中的“网络连接”选项来设置静态IP。

  3. 适用场景:硬编码静态配置适用于需要固定IP地址的设备或网络环境,如服务器、打印机等关键设备,或者在没有DHCP服务器的小型网络中。

  4. 优缺点:优点是配置简单明了,易于管理;缺点是需要手动配置,容易出错,且在网络规模较大时难以维护。

默认网关:

  1. 基本定义:默认网关是指当设备需要发送数据到其他网络时,如果目标网络不在当前所在的网络范围内,就将数据包发送给默认网关进行转发。它是设备与其他网络之间进行通信的桥梁。

  2. 作用:默认网关的主要作用是提供设备与其他网络之间的通信路径。通过默认网关,设备能够访问其他网络上的资源和服务,实现互联网的连接。

  3. 配置方法:默认网关的配置方法因操作系统而异。在Windows系统中,可以在网络适配器设置界面中手动指定默认网关的IP地址。在Linux系统中,则可以通过编辑网络配置文件来设置默认网关。

  4. 重要性:正确配置默认网关对于实现网络通信至关重要。如果默认网关设置错误,可能会导致设备无法访问外部网络或者与其他设备进行通信。

 

与之相对应的就是我们要引入的:

2.动态主机配置协议 :

(1)基本概念

定义:DHCP全称为Dynamic Host Configuration Protocol,即动态主机配置协议。

功能:DHCP的主要功能是主机可以从服务器动态的获得;IP地址、子网掩码、默认网关地址、以及DNS服务器名称。

那么该协议就支持这么一个场景:

对于想要接入该网络并且获取IP地址的一个新的主机:

基于客户端/服务器模型:DHCP基于客户端/服务器模型工作,其中DHCP服务器负责分配和管理IP地址,而客户端则向服务器请求这些信息。新的主机与DHCP服务器进行一些报文的交换以完成地址的申请与分配。该过程包括四个阶段:DHCP的工作过程通常包括四个阶段:发现、提供、请求和确认。在这个过程中,客户端会广播一个DHCP发现消息(DHCP     discover)以寻找可用的DHCP服务器;服务器响应客户端的请求并提供IP地址(DHCP offer)等信息;客户端选择其中一个提供的IP地址并向服务器发送请求(DHCP request);最后,服务器确认客户端的选择并分配IP地址(DHCP ACK)。

 

DHCP协议是一个应用层协议,主机将请求报文封装到UDP报文段后再通过IP协议广播,经由链路层和物理层的传播。到达DHCP服务器构造ACK报文。 

七、NAT协议: 

1.基本定义

NAT(Network Address Translation)是将IP数据报文中的IP地址转换为另一个IP地址的过程,主要用于实现私有网络访问公有网络的功能。

2.工作原理

当内部网络中的设备需要访问外部网络时,NAT设备会将该设备的私有IP地址和端口号转换为公共IP地址和端口号,并将转换后的数据包发送到外部网络。同时,NAT设备会维护一张转换表,用于记录内部私有IP地址与外部公共IP地址之间的映射关系。当外部网络向内部网络发送数据时,NAT设备会根据这张转换表将目的IP地址转换为对应的私有IP地址,从而实现数据的双向传输。

3.实现:

具体的实现是由路由器实现的。

(源IP地址,源端口号):我们认为是内网之中通用的

(NAT IP地址,新的端口号):再Internet之中通用的

替换:利用(NAT IP地址,新的端口号)替换每个外出IP数据报的(源IP地址,源端口号)。

记录:将每一对(NAT IP地址,新的端口号)与(源IP地址,源端口号)的替换信息存储到NAT转化表之中。

替换:将根据NAT转化表,利用(源IP地址,源端口号)替换每一个进入内网IP数据报的(目的IP地址,目的IP端口号)即(NAT IP地址,新的端口号)。

 

 八、ICMP协议:

我们知道IP协议说用来传输和路由IP数据包,对于ICMP协议其功能负责检查网络是否可达、路由是否正确、主机是否可达等网络状态的反馈信息。

1.主要功能

ICMP的主要功能包括确认IP包是否成功到达目标地址、进行网络诊断以及提供关于数据传输过程中的错误信息。通过这些功能,ICMP有助于收集各种网络信息、诊断和排除各种网络故障,对于用户数据的传递起着至关重要的作用。

 2.ICMP报文的格式

封装到IP数据报中的传输:

九、ARP协议:(数据链路层有关部分,这里略写)

ARP(Address Resolution Protocol,地址解析协议)是一种用于将网络层地址(IP地址)转换为数据链路层地址(MAC地址)的协议

(1)功能:ARP完成IP地址到MAC地址的映射。每个主机都有一个ARP表,存放本局域网的P地址到MAC地址的映射

 十、路由算法:

1.路由算法的定义:

在前面的网络层的核心功能之中我们在路由部分有转发表的概念其中提及了路由算法:确定分组从源到目的网络的最佳路径。

我们可以用数据结构的图来表示网络:

我们再符合实际一点,即对每一条链路附加上权值代表再该路径的费用。 

2.链路状态的路由算法:

一句话概括的话:通过收集网络中所有节点的信息存储到本地的链路状态数据库之中后,利用迪杰斯特拉算法来计算最佳路径。

  • 邻居发现:在链路状态路由算法中,首先需要发现和建立邻居关系。这通常通过发送Hello报文来实现,以确认哪些设备是直接相连的。
  • 链路状态广播:一旦建立了邻居关系,每个路由器会向其所有邻居广播自己的链路状态信息。这些信息包括路由器ID、链路类型、链路开销等。
  • 链路状态数据库:每个路由器都会接收来自其他路由器的链路状态信息,并将其存储在本地的链路状态数据库中。这个数据库包含了整个网络的拓扑结构。
  • 最短路径计算:每个路由器使用Dijkstra算法从链路状态数据库中计算出到达其他路由器的最短路径。然后,它会根据这些路径更新自己的路由表

 迪杰斯特拉算法(解决单源最短路径即求某一个点到其他点的最短路径):

采用表格法(每次选中距离出发点最近的点然后更新)记录其执行过程:

但是与之前的表格方法有所不一样;

符号:

c(x,y):结点x到结点y的链路费用;如果二者不直接相连那么,为无穷大。

D(v):从源到目的v的当前的路径费用

p(v):沿着从源到v的当前路径,v的前序结点。

N‘:已经找到最小费用路径的结点的集合。

其算法过程如图所示。下面给出具体实例:

其中u~z表示我们的路由器,图中画有链路以及链路上的COST:(再物理层面上的话,这些信息将被存储在本地的链路状态数据库。

 

 此时这个红色路径就是我们的最终最短路径树。

随后会将其存放到路由器u的转发表之中进行存放:

如图所示:

目的链路
v(u,v)
x(u,x)
y(u,x)
w(u,x)
z(u,x)

3.距离向量路由算法:

基于Bellman-Ford方程(动态规划,用于计算从一个节点通过其邻居到另一个节点的最短路径长度​​​​​​​)实现。

令:dx(y)=从x到达y的一个最小费用(距离)。

则:dx(y)=min{dv(y)+c(x,v)}

min即在x的所以邻居v之中选择最小值。

dv(y)从邻居到达y的费用,c(x,v)x到邻居的费用。例如:

 我们发现对于链路状态的路由算法,我们需要知道网络中所有节点的信息。而对于距离向量路由算法我们只需要得到其与邻居的连接状态(节点只了解直接连接的邻居节点的距离信息,而不知道整个网络的拓扑结构)。因为我们的转发表存放的是结点获取最短路径的下一跳即可。

1.算法步骤

初始化:每个节点维护一个距离向量表,记录到达其他所有节点的最短距离:每个节点将直接连接的邻居节点的距离添加到距离表中。

​​​​​​​更新距离表:节点周期性地向邻居发送自己的距离表,并接收邻居的距离表。通过比较收到的距离表和当前的距离表,节点可以更新自己的距离表。

计算最短路径:根据距离表中的最小距离以及邻居节点的信息,计算到达每个目标节点的最佳下一跳节点。

更新路由信息:如果节点的距离表发生变化,它将通知相邻节点,并将新的距离表发送给它们。这样,整个网络中的所有节点将逐步更新自己的距离表和路由信息。

4.层次路由: 

在链路状态和距离向量的方法我们均理想的把网络抽象为图,去标识所有路由器,这样子过于理想化。在实际网络中不可行,对存储表的规模要求很大几乎无法存储,而且查找时候的效率非常的低下。且对于自治管理会很难实现。

解决方法:层次路由算法通过将复杂的网络拓扑分解为多个较小的子网或自治系统(AS),每个子网或AS内部可以独立运行自己的路由协议,而不同AS之间则通过网关路由器进行互连。

协议:

内部网关协议:在一个自治系统内部的路由选择协议,RIP、OSFP.

外部网关协议:自治系统之间的路由选择协议。

工作特点

  • 自治系统划分:网络被划分为多个自治系统,每个自治系统内的路由器使用相同的内部网关协议(IGP)来交换路由信息。
  • 网关路由器:位于自治系统边缘的网关路由器负责与其他自治系统的网关路由器连接,并使用外部网关协议(EGP)如BGP来交换路由信息。
  • 路由决策:当一个数据包需要从一个自治系统传输到另一个自治系统时,它会被转发给最近的网关路由器,该网关路由器根据EGP协议确定最佳的转发路径。

十一、Internet路由: 

首先我们知道Internet的网络服务很大,所以仅仅单独使用距离向量路由算法或者链路状态算法都是不可行的,它采取了层次路由的算法。对于Internet中的自治系统的内部网络协议也成为IGP协议。比较常见的由RIP、OSFP。对于自治系统之间的协议即外部网关协议我们称其为BGP

1.RIP协议

基于距离向量路由算法而实现,使用UDP协议。

工作原理

  • 距离向量算法:RIP使用距离向量算法来确定最短路径。每个路由器维护一个距离向量表,记录到达其他所有节点的最短距离。当网络拓扑发生变化时,路由器会更新自己的距离向量表,并将更新后的信息发送给相邻的路由器。
  • 路由更新:RIP路由器会定期广播自己的路由表到所有相邻的RIP路由器。如果某个网络或路径发生故障,路由器将增加该路径的跳数(跳步数max=15hops),表示不可达。当跳数达到16时,该路径被认为是不可用的。
  • 通告:每隔30s邻居之间交换一次DV,称为通告(每次最多25个目的子网)

链路的失效与恢复:

如果180s没有从某个邻居收到通告,则证明该邻居/链路失效了。进而我们可以知道经过该邻居的路由不可以用了,所以我们需要重新计算路由。再向所有邻居发送新的通告,邻居再依次向外发送通告(如果转发表改变的情况下)。

RIP的路由表处理:

RIP路由表是利用了一个称为rotre-d的应用层进程进行管理的(但是它仍然为网络层协议,我们协议的划分我们不是依据他实现的层次,而是根据其功能进行划分)。其通告报文周期的通过UDP数据报发送。

2.OSPF协议:

  1. 基本概述:OSPF是一种基于链路状态算法的路由协议,使用Dijkstra算法计算最短路径树。该协议适用于单一自治系统(AS)内部,支持IPv4和IPv6网络。其OSPF报文直接封装到IP数据报之中。

  2. 工作原理:每个路由器负责发现和维护与邻居的关系,并将已知的邻居列表和链路费用通过可靠的泛洪机制与自治系统内的其他路由器周期性交互。当网络结构发生变化时,相关路由器会产生链路状态广播数据包LSA,包含所有相连链路的状态信息。各路由器一方面将其LSA数据包传送给所有相邻的OSPF路由器,另一方面接收其相邻的OSPF路由器传来的LSA数据包,根据其更新自己的数据库。

  3. 分组类型:OSPF依靠五种不同类型的分组来建立邻接关系和交换路由信息,即问候分组、数据库描述分组、链路状态请求分组、链路状态更新分组和链路状态确认分组。

未完成待补充与修改!!!!! 

十二、IPv6协议: 

  1. 地址空间

    • IPv4:IPv4使用32位地址长度,这限制了它只能提供大约43亿个唯一的IP地址。随着互联网的迅猛发展,这些地址已经分配完毕,导致了IPv4地址的枯竭问题。
    • IPv6:IPv6采用128位地址长度,提供了极其庞大的地址空间,理论上可以分配约3.4×10383.4×1038个IP地址。这使得IPv6能够为地球上的每一粒沙子分配多个IP地址,彻底解决了地址不足的问题。
  2. 地址表示

    • IPv4:IPv4地址通常以点分十进制表示,例如192.168.1.1。这种表示方法直观易懂,但随着地址长度的增加,表示起来也变得越来越复杂。
    • IPv6:IPv6地址则采用冒号分隔的十六进制表示,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334。虽然这种表示方法看起来较为复杂,但它支持更简洁的表示方式,如省略前导零和连续的零段,使得实际书写时更加简便。
  3. 子网划分

    • IPv4:在IPv4中,子网划分是通过子网掩码来实现的。子网掩码告诉网络设备哪些部分的IP地址代表网络地址,哪些部分代表主机地址。然而,随着CIDR(无类别域间路由)的引入,IPv4的子网划分变得更加灵活。
    • IPv6:IPv6则采用了更为灵活的子网划分方式,不再使用子网掩码,而是使用了网络前缀长度来表示。这种方式不仅简化了子网划分的过程,还提高了路由效率。
  4. 配置方式

    • IPv4:IPv4支持多种配置方式,包括手动配置、DHCP(动态主机配置协议)等。然而,在大型网络中,手动配置IPv4地址可能会非常繁琐且容易出错。
    • IPv6:IPv6则强调自动配置的重要性,支持无状态地址自动配置(SLAAC)和有状态DHCPv6两种模式。这使得IPv6在大规模网络部署中更加便捷和高效。
  5. 安全性

    • IPv4:IPv4在设计之初并没有充分考虑到安全性问题,因此存在许多安全隐患。例如,IPv4缺乏内置的加密和认证机制,容易受到各种网络攻击。
    • IPv6:IPv6在设计时就考虑了安全性问题,引入了IPsec作为必选扩展,提供了数据完整性、数据保密性和数据源认证等安全功能。这使得IPv6在网络安全方面具有更高的保障。
  6. 兼容性

    • IPv4:由于IPv4已经广泛应用于现有的网络设备和应用程序中,因此它在短期内仍将保持主导地位。然而,随着IPv6的逐渐普及,IPv4的兼容性问题也将逐渐凸显出来。
    • IPv6:IPv6在设计时就考虑了与IPv4的兼容性问题,提供了多种过渡机制,如双栈技术、隧道技术和翻译技术等。这些机制使得IPv6能够在不干扰现有IPv4网络的情况下逐步部署和应用。

首部结构: 

  1. 版本(Version):占4位,用于标识协议版本。对于IPv6,这个字段的值是6

  2. 通信量类别(Traffic Class):占8位,类似于IPv4的服务类型(ToS)字段,用于区分不同类型的流量或优先级。

  3. 流标签(Flow Label):占20位,用于标识特定的数据流或数据包序列。它支持资源预留并可用于QoS(服务质量)管理。

  4. 有效载荷长度(Payload Length):占16位,表示IPv6首部之后的数据部分的长度(包括扩展首部),单位为字节。由于IPv6首部长度固定为40字节,因此有效载荷长度可以通过总包长减去40字节来计算。

  5. 下一个首部(Next Header):占8位,类似于IPv4的协议字段,标识紧跟在IPv6首部后面的扩展首部类型或上层协议(如TCP、UDP等)。

  6. 跳数限制(Hop Limit):占8位,用于防止数据包在网络中无限循环。它每经过一个路由器就会减一,当跳数限制为零时,数据包将被丢弃。

  7. 源地址(Source Address):占128位,表示数据包的发送方地址。

  8. 目的地址(Destination Address):占128位,表示数据包的接收方地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值