计算机网络 网络层

网络层

2021-6-3
大二上课笔记,谢希仁版,图源教材

物理层笔记
数据链路层笔记
运输层笔记(tcp)
在这里插入图片描述

1. 网络层提供的服务

本章节向大家介绍网络层的内容,先介绍网络层在计算机网络中提供什么服务,然后介绍网络层的核心内容——IP协议,然后介绍服务于IP协议的相关内容。

1.1 虚电路

对于网络层提供的服务,曾有争议,有人认为应该学习电信网成功的经验,让网络提供可靠服务,提供一种面向连接的服务,这会在两台计算机之间搭建一条虚电路,两台主机之间的通信是可靠的,但是这带来的问题是,两台主机之间通信会十分缓慢。

1.2 无连接

互联网的设计思路则是无连接服务,因为电信网成功的原因是因为,电话机的终端是简单的,并没有差错处理的能力,而互联网的终端则是强大的计算机,因此,设计者采用了面向数据报的无连接服务,是一种不可靠的服务。出现差错则有强大的计算机终端处理。

在这里插入图片描述

2. 网际通信协议——IP

连接在互联网之中的主机如何通信?下面将介绍网际通信协议——IP协议。

在这里插入图片描述

2.1 用途——虚拟互联网络

在理解IP协议前,首先要明白它的应用场景——虚拟互联网络。各个计算机,网络之间是通过虚拟的方式互连的。

2.1.1 目的

首先我们要明白,不同的物理网络之间的结构是不一样的,我们想要通信,需要消除这种异构,从逻辑上将其统一。通过IP协议,将其从逻辑上连接成一个统一的网络,忽略各种异构的细节。

在这里插入图片描述

我们可以看下图的例子,主机H1发送消息给H2,经过多个路由器的分组转发,最后交付给H2,这些路由器的物理结构都是不同的,但是IP协议将其高度抽象化了。

在这里插入图片描述

2.2 内容

要理解该协议的功能,肯定要看数据报格式的首部,即其控制字段,看它的字段便能猜测到它的大部分功能了。

2.2.1 IP地址分类

IP地址是给互联网上的各个主机之间分配的唯一的标识符,对于IP地址的编制有三个阶段:分类编址,划分子网,构造超网。

(1)IP地址表示方法

对于将IP地址分类的方法,是指将IP地址分为两个字段——网络号主机号,通过网络号来标识主机所在的网络,然后通过主机号来找到具体的主机。

如下图为两级IP地址的格式。

在这里插入图片描述

如下图,有五类IP地址,其中A,B,C类是单播地址(一对一通信)

在这里插入图片描述

将IP地址分类的目的是减少IP地址的浪费,因为不同的网络拥有的主机数也不同,倘若都是同一类地址,那主机数较少的网络则会浪费较多的地址。

2.2.2 数据报格式

想要知道IP协议具体有什么功能,可以通过它的数据报首部格式略知一二,如下图是数据报的完整格式。

在这里插入图片描述

(1)首部字段

上图我们看到IP数据报有首部和数据部分,数据部分我们不用花太多信息,理解好首部即理解了IP协议的内容,下面将一个一个展开首部内容的讲解,首先讲固定部分,下一段讲可变部分。

上面我们能看到,横向的是位大小,纵向的是字节大小,一行4字节,32位。

1. 版本:4位,指IP协议的版本,双方使用的版本应该是一致的。IPV4与IPV6是不兼容的

2. 首部长度:4位,IP首部的固定长度为20字节,最大长度为60字节,要注意的是,当长度不为4的倍数的时候,则需要在最后填充。

3. 区分服务:一般不使用

4. 总长度:指整个IP数据报的总长度,包括首部和数据部分。

我们知道在数据链路层有一个最大长度MTU,因此我们IP数据报的最大长度不能超过该值,否则需要分片处理。

分片的时候,该值则标识当前分片的首部和数据部分。

5. 标识:IP服务维持的一个计数器,产生一个数据报则加1。我们要知道,IP服务是无连接服务,不需要按顺序接收,该标识是用于在分片的时候,寻找相同片的数据报的。

6. 标志:3位,目前只有2位有意义。最低位:MF,more fragment,如果该值等于1则标识后面还有分片,反之即该分片为最后一个

中间位:DF,don’t fragment ,当为0时则不能分片。

7. 片偏移:该字段表示当前分片在原数据报的相对位置,以8个字节为偏移单位。下面举个例子

在这里插入图片描述

倘若一个数据报总长度3820,数据部分为3800,分片为不超过1420长度的部分,即每部分的数据长度不超过1400,则需要分成三片,1400,1400,1000,上面我们可以看到片偏移的情况。下图可以看到相关数值。

在这里插入图片描述

8. 生存时间:表示该数据报在网络中的生存时间,避免无法交付的数据报在互联网中无限兜圈子。

9. 协议:指出数据报使用的数据携带的协议。相关字段如下图

在这里插入图片描述

10. 首部检验和

IP数据报也使用首部检验和来验证数据报,不过只检查数据报的首部,而不检查数据部分。

在这里插入图片描述

(2)可变部分

事实上该部分很少是使用,因为会增加路由器的开销。

2.3 IP地址与物理地址的关系

2.3.1 区别

首先我们要先弄懂IP地址与物理地址之间的不同处。

从下图可以看到, IP地址是应用网络层和以上的地址,是一种逻辑地址;而物理地址则是数据链路层,物理层使用的地址。

在这里插入图片描述

我们还要注意,在物理层,只能看到物理层的地址,在网络层,只能看到抽象后的网络层IP地址和数据报。

2.3.2 联系

具体的IP地址与物理地址的组合应用在互联网中找到目的地址,则可以见下图。

在这里插入图片描述

图a中我们看到,一个主机终端只有一个物理地址,但是一个路由器有两个物理地址,因为路由器连接到了两个局域网上,每个局域网中都有一个地址。

在这里插入图片描述

在图b我们可以具体地看到,网络层IP地址与物理层MAC地址的应用,下图也归纳了具体情况

在这里插入图片描述

2.4 IP地址与物理地址的转换——ARP

2.4.1 目的

在实际应用过程中,我们路由器找到具体网络地址后,如何在下层转换成物理地址来找到具体的主机呢?我们是通过ARP(Address Resolution Protocol)完成的。

在这里插入图片描述

2.4.2 ARP协议的内容

(1)工作方式:ARP协议解决该问题的方法是,在主机中设置一个ARP缓存区,专门用来存储IP地址到物理地址的映射表,并且该表会经常动态更新,以适应映射关系的变化。

(2)工作流程:具体的工作流程将从下面一个例子展开。

在这里插入图片描述

(1)发送请求

(2)接收请求

(3)响应请求

(4)写入缓存区

2.5 通过IP地址转发信息

2.5.1 过程

首先我们介绍一下路由器如何转发IP地址,下图是路由器的路由表样例。

在这里插入图片描述

在路由表中,最重要的是以下的两个信息:

在这里插入图片描述

在路由器的路由表中,首先标识目的地址,然后下一跳地址表示分组应该转发到哪里,如果是直接连接则直接交付,否则转发给下一个路由器。

2.5.2 要点

路由器的分组转发都是基于目的主机所在的网络进行转发的,有时候有些路由器会设置成默认路由,所有分组都转发到一个默认网络中,以减少路由表的消耗。

在这里插入图片描述

3. 优化IP协议

IP协议实际使用肯定也会出现许许多多的问题,这里将介绍如何优化IP协议的使用。

3.1 目的

如何优化首先要知道出现了什么问题。

3.1.1 IP地址利用率低

即便对IP地址进行了分类,但是仍会出现IP地址浪费的情况,因为大多数时候人们申请IP地址都会买多不买少,因此会有大量地址浪费。

3.1.2 两级IP地址不灵活

两级地址的使用,倘若某个单位新增加了一个网络,则需要申请IP地址才能使用,这就需要等待时间,如何能够灵活的新增网络?

3.2 增加IP地址利用率

3.2.1 划分子网

划分子网解决了新增网络不灵活的问题,通过增加子网号字段,可以灵活的解决网络新增或删除的问题。

(1)划分思路

首先一个单位是以一个整体的网络对外表现的,但是这个单位中可以存在多个由物理网络划分的不同子网。

划分的方法则是将IP地址变成三级地址,增加一个子网号

在这里插入图片描述

其余的操作并无太大区别,只不过在寻址的时候选择网络号后再选择子网号再选择主机号,应用例子可见下图。

在这里插入图片描述

(2)子网掩码

现在还要解决一个问题就是,我们划分了子网后,我们如何将这个IP地址转发到相应的子网中去呢?

解决办法是将主机号分一半作为子网号。

原先网络号为:192.168.0.0,后面十六位则作为主机号

而现在则为:192.168.1.0,前面两位作为子网号。

在这里插入图片描述

通过上图的例子我们明白如何通过掩码计算网络主机号,把IP地址减去子网掩码,子网掩码一般为全1。

3.2.2 构造超网——CIDR

即便划分子网,但IP地址仍面临不够用的情况,,因此又出现了一种无分类编制的方法(CIDR)。

(1)思路——网络前缀

CIDR方法消除了传统的分类概念,将IP地址分为两部分,网络前缀和主机号。

并采用斜线记法

在这里插入图片描述

在这里插入图片描述

即表明前20位为网络前缀,后面的则为主机号。其地址掩码同样的,前面20位全为1。

这样一个CIDR地址块便有许多个地址,在路由表中则通过这种地址聚合来查找目的网络,大大减少了路由表的消耗。这种聚合也叫构成超网。

事实上CIDR的优势在于,它其实是一个灵活分类的地址,可以进行灵活的分类,不再拘束与ABC类,分类更灵活,也更切合需求。

(2)路由选择——最长前缀匹配

举一个例子说明,倘若一条信息的目的地址是大学A的B系,大学A的地址是:206.0.38.0/22,而B系的地址为:206.0.71.128/25,这时候在路由器中应该发送到哪里去呢?

这时应该选择网络前缀最长的路由,因为前缀越长,则地址块越小,也就越具体。

(3)使用二叉树查找路由表

由于路由选择的方法是最长前缀匹配,那路由表的查询过程将会变得复杂,如何减少查找方法呢?在这里应用了二叉树的方法。

在这里插入图片描述

3.2 提高传输成功率——ICMP

通过网际控制报文协议ICMP来提高IP数据报的交付成功率。

3.2.1 报文格式

在这里插入图片描述

ICMP实际上是IP层的协议,它存放在IP报文的数据部分中。

3.2.2 报文种类

ICMP有ICMP差错报告报文ICMP询问报文两种

在这里插入图片描述

3.2.3 应用

4. 选择路由协议

4.1 内容

4.1.1 目的

前面讨论了网络传输协议,下面将讨论,在网络传输中,路由器如何构造路由表?如何选择合适的路线进行传输。

(1)路由算法

路由算法是指路由器生成路由表,并且如何选择路由表进行分组转发的算法。它应该尽量简单,而且要正确且完整,并具有稳定性等。

实际应用中有静态路由选择策略动态路由选择策略,静态路由也叫做非自适应性动态路由也叫自适应路由选择,动态路由能较好的适应网络状态的变化。

(2)分层次的选择协议

互联网由于网络复杂,因此实际上使用的是自适应路由选择算法,在实际情况中,由于数据保护等原因,单位或公司等不会与外界共享内部的互联网拓扑结构,因此在互联网中,实际上是有许多个小的自治系统AS组成的,这些自治系统内部使用自己的路由选择策略,为内部网关协议,而自治系统之间的连接则使用外部网关策略,下面都会逐一讲解到。

在这里插入图片描述

4.1.2 路由器
(1)结构

在这里插入图片描述

路由器拥有多个输入输出端口,通过端口输入的信息,查找它的目的网络,通过路由选择协议来选择输出端口,然后进行转发。

路由选择部分称为控制部分,下面的输入端口,输出端口和交换结构部分称为分组转发部分

(2)工作过程

在这里插入图片描述

在这里插入图片描述

(3)交换结构

在这里插入图片描述

4.2 内部网关协议

4.2.1 RIP

RIP算法是较早使用的算法,是一种分布式的基于距离向量的路由选择协议,就是按距离最短来选择路由,它的特点是简单。

(1)工作原理

在这里插入图片描述

RIP算法要求路由器要维护它到目的网络的距离,经过一个路由器则距离+1,上面R1到网1或者网2的距离则为1(直接连接),而到网3则距离为2(经过一个路由器)。

距离也称跳数,说白就是要经过几个路由器,但是这个距离有最大限制,不能超过16,也就意味着,该算法只适用于小型的互联网。

(2)特点

弄清楚路由交换协议要知道:

  • 和哪些路由交换信息?
  • 交换什么信息?
  • 又在什么时候交换信息?

RIP协议是:

  • 仅和相邻的路由器交换信息
  • 交换的信息是路由器知道的全部信息(路由表)
  • 固定时间间隔发送信息

路由表信息则是通过这样的方法不断地更新,从而逐渐获得全部信息。

路由表的信息包括到目的网络的距离,以及经过的下一跳地址,而路由表更新则需要找到每个目的网络的最短距离,这种算法叫做距离向量算法。

(3)距离向量算法

对相邻路由器X发来的RIP报文进行以下步骤:

  1. 修改传入报文的内容,将下一跳地址修改为X,距离+1(经过了路由器X)。每个项目报文都有三个关键信息(目的网络N,距离d,下一跳地址X)
  2. 如果路由表没有目的网络N,则加入
  3. 否则,如果下一跳地址同样为X则更新,因为这是新地址
  4. 否则如果距离小于项目则更新,否则什么也不做

要注意的是,如果3分钟没有收到相邻路由器的更新信息,则将其距离设置为16,意不可达。

下面举个例子

在这里插入图片描述

上面我们看到路由器R6原先的路由表,以及R4发来的更新信息

在这里插入图片描述

上面我们对发来的路由表进行修改,距离+1,下一跳地址均改为R4

在这里插入图片描述

然后对原先路由表进行比较更新。原先没有Net1的信息则加入,原先Net2的下一跳为R4则直接更新,原先Net3的下一跳地址为R5且距离较大,则更新。

(4)报文格式

在这里插入图片描述

从上图我们能看到,RIP在用UDP进行传输的,RIP报文包括首部路由部分,首部是放一些控制信息,路由部分则放目标地址,下一跳地址,距离等路由表相关信息。

(5)缺点

RIP的特点是,好消息传播快,坏消息传播慢

我们设想,倘若一个路由器发现一个更短路径,相邻路由器马上知道,倘若一个路由器故障了,则很难被发现

在这里插入图片描述

网1出问题后,R1收到R2的报文,以为可以通过R2到达网1,则更新,R2收到R1的报文,又以为可以通过R1到达网1,更新,直到最后才发现网1不可达。因此我们会发现,RIP协议仅仅适合规模较小的网络,下面的OSPF协议则适合规模较大的网络。

4.2.2 OSPF

OSPF即指开放最短路径优先,是一种最短路径优先的算法。

(1)工作原理

OSPF使用的是链路状态协议不同于距离向量算法。见如下:1. 向谁发送信息?2. 发送什么信息? 3. 什么时候发送?

  1. 路由器使用洪泛法想所有路由器发送信息,每个相邻路由器之间互相发送,如同涟漪一般层层向外推进。
  2. 发送的信息是本路由器与相邻路由器的链路状态,这只是部分信息,因为只说明本路由器和哪些路由器相邻和度量(具体由管理人员定)
  3. 只有链路状态变化时才发送信息

通过上面的方法,所有路由器都能获得一个全网的拓扑结构图,就能构建自己的路由表

(2)特点

为了对OSPF进行优化,还将一个网络自治系统继续划分成更小的区域。

在这里插入图片描述

区域划分使用层级结构,有主干区域和边界区域,主干区域中的主干路由器中的边界路由器负责与外界通信。

(3)报文格式

在这里插入图片描述

从上图可以看到,OSPF报文直接通过IP数据报进行传送。包括首部控制信息与分组信息。

(4)分组类型

上面我们看到OSPF有分组类型,下面介绍一下:

  1. 问候分组:用于发现和维持相邻路由器的可达性
  2. 数据库描述:向相邻路由器发送自己的链路状态数据库的摘要信息
  3. 链路状态请求:请求某些链路状态信息
  4. 链路状态更新:向全网更新链路状态
  5. 链路状态确认:
(5)优劣

OSPF协议中,每个路由器隔十秒要发送问候分组,确认路由器可达,若超过40秒没收到问候分组则认为该路由器不可达。

4.3 外部网关协议——BGP

4.3.1 解决的问题

首先我们思考,为什么外部网关协议不适用内部网关协议的方法呢?同样都是寻址罢了,我们设立自治系统的目的仅仅是用于保护各单位的数据隐私。

  1. 网络结构过于复杂,互联网的规模太大了
  2. 各个AS具体情况的考虑,可能最短路径包括AS1,但是它的速度太慢了,还不如另一个路径,甚至它不愿意帮忙传输信息,而且数据传到人家网络中,也有数据安全问题。

通过上面的描述我们的外部网关的协议找的不是最佳道路,而是较佳的道路。因此使用路径向量路由选择协议

4.3.2 工作原理
  1. 每个系统选出一个发言人,往往是边界路由器,并通过共享网络连接。
  2. 发言人之间建立TCP连接发送BGP报文,交换路由信息,称为彼此的邻站。

在这里插入图片描述

4.3.3 报文格式

在这里插入图片描述

上图能看到BGP是在TCP中传输的,报文也有不同的类型,具体不展示了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值