第三部分 网络层

网络层的几个重要概念

网络层提供的两种服务

在这里插入图片描述

网际协议IP

网际协议IP是TCP/IP体系中两个最主要的协议之一。

与协议IP配套使用的还有三个协议:

  1. 地址解析协议ARP;
  2. 网际控制报文协议ICMP;
  3. 网际组管理协议IGMP;

逆地址解析协议RARP已经被淘汰不再使用了。

TCP/IP体系中的网络层常常被称为网际层。

虚拟互联网络

将网络互相连接起来需要使用一些中间设备:

设备
物理层转发器
数据链路层网桥、交换机
网络层路由器
网络层以上网关

当中间设备是转发器或者网桥时,仅仅是把一个网络扩大了,从网络层的角度来看,这仍然是一个网络并不称之为网络互联。

所谓虚拟互联网络(internet)就是通过网际IP协议让不同物理结构下的网络形成的一个整体的网络,也称为IP网。

互联网就是在这种覆盖全球的IP网的上层使用TCP协议,那么就是现在的互联网(Internet)。

清楚间接交付和直接交付。

IP地址

整个的互联网就是一个单一的、抽象的网络。IP地址就是给连接到互联网上的每一台主机/路由器的每一个接口,分配一个在全世界范围内是唯一的32位的标识符。

通常采用点分十进制记法。

I P 地 址 : : = { < 网 络 号 > , < 主 机 号 > } IP地址::=\{<网络号>,<主机号>\} IP::={<>,<>}

分类的IP地址*

请添加图片描述

地址说明
A1. 共有 2 7 2^7 27个;2. 网络号为全0的IP地址表示本网络;3. 网络号为127(01111111)保留作为本地软件回环测试本主机的进程之间的通信之用;4. A类地址可指派的网络号为 2 7 − 2 2^7-2 272个;5. A类地址中全0和全1的主机号不指派,因此可指派的主机号为 2 24 − 2 2^{24}-2 2242
B1. 可指派的网络数为 2 14 2^{14} 214个;2. 可指派的主机数为 2 16 − 2 2^{16}-2 2162
C1. 可指派的网络数为 2 21 2^{21} 221个;2. 可指派的主机数为 2 8 − 2 2^{8}-2 282

IP地址的一些重要特点

  1. IP地址是一种分等级的地址结构。好处是:IP地址管理机构在分配IP地址时只分配网络前缀,剩下的主机号由单位自行分配,这样方便了IP地址的管理;路由器仅更加目的主机所连接的网络号来转发分组,使得路由表中的项目数大幅度减小,从而减小了路由表所占的存储空间;
  2. IP地址标志着一台主机和一条链路的借口。多归属主机;
  3. 一个网络是指具有相同网络前缀的主机集合,具有不同网络前缀的局域网必须使用路由器进行互连;
  4. 互联网同等地对待每一个IP地址;

划分子网*

在IP地址中增加了一个“子网号字段”,使两级的IP地址变为了三级的IP地址。

这种做法称为划分子网。

从主机号借用若干个比特作为子网号subnet-id。

I P 地 址 : : = { < 网 络 号 > , < 子 网 号 > , < 主 机 号 > } IP地址::=\{<网络号>,<子网号>,<主机号>\} IP::={<>,<>,<>}

凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号线找到连接在本单位网络上的路由器。

然后由此路由器按照目的网络号和子网号找到目的子网。

最后按照网络号、子网号、主机号将IP数据报交付。

划分子网只是将IP地址的本地部分进行再划分,不改变IP地址的因特网部分。

子网掩码

问题:从一个IP数据报的首部无法判断源主机或目的主机所连接的网络是否进行了子网划分。

使用子网掩码可以找出IP地址中的子网部分。

请添加图片描述

CIDR*

CIDR中将网络号称为网络前缀,主机号称为后缀: I P 地 址 : : = { < 网 络 前 缀 > , < 主 机 号 > } IP地址::=\{<网络前缀>,<主机号>\} IP::={<>,<>}

最大的区别是:网络前缀的位数 n n n不是固定的数。

CIDR采用斜线记法,即在IP地址后面加上斜线,斜线后面是网络前缀所占的位数。

地址块:
CIDR把网络前缀都相同的所有连续的IP地址组成一个CIDR地址块。

全0(最小地址)和全1(最大地址)的主机号地址一般不使用。

CIDR虽然不使用子网了,但仍然使用掩码。

IP地址与MAC地址

请添加图片描述

IP地址放在IP数据报首部(网络层),MAC地址放在MAC帧首部(数据链路层)。

在这里插入图片描述

在这里插入图片描述

说明:

  1. 在IP层抽象的互联网上只能看到IP数据报;
  2. 路由器只根据目的站的IP地址进行转发;
  3. 在局域网的链路层,只能看见MAC帧;

于是,产生了两个问题:

  1. 主机/路由器怎么知道MAC帧的首部该写入什么样的MAC地址?
  2. 路由器的转发表是怎样得出的?

地址解析协议ARP*

知道一个机器的IP地址,需要找到对应的MAC地址。

网络层使用的是IP地址,但实际网络的链路上传送数据帧时,最终还是必须使用链路层的MAC地址。

地址解析协议ARP解决这个问题的方法是在主机的ARP高速缓存中存放一个从IP地址到MAC地址的映射表,并且这个映射表还经常动态更新。

这是ARP协议的第一部分。

那么我这个映射表里面没有这个关系怎么办呢?

  1. ARP进程在本局域网上广播一个ARP请求分组;
  2. 在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组;
  3. 主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下这个ARP请求分组(写入自己的ARP高速缓存中),并向主机A发送ARP响应分组,同时在这个ARP相应分组中写下自己的MAC地址;
  4. 主机A收到主机B的ARP响应分组后就在其ARP高速缓存中写入主机B的IP地址到MAC地址的映射。

这是ARP协议的第二部分。

ARP对保存在高速缓存中的每一个映射地址项目都设置生存时间。

如果ARP用于解决同一个局域网上的主机或路由器的IP地址和MAC地址的映射问题。

如果所要找的主机和源主机不在同一个局域网上,那么就无法解析出这个MAC地址。那么这个数据报的交付过程和图4.16一致。

也就是说,如果不再同一个网络上,就交给路由器,让下一个网络处理。

IP数据报的格式*

一个IP数据报由首部和数据两部分组成。首部的前一部分长度是固定的,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。
请添加图片描述

(1)版本
占4位,指协议IP的版本。这里讨论的协议IP版本号为4。

(2)首部长度
占4位,可表示的最大十进制数值是15。
因为IP首部固定字段的长度为20字节,所以首部长度字段的最小值为5(5个32位字长);最大值对应着60字节。
IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。

(3)服务类型
占8位,实际上从来没用过。

(4)总长度
总长度指首部和数据之和的长度。
IP层下面的数据链路层协议(MAC帧协议)规定了一个数据帧中的数据字段的最大长度,称为最大传送单元MTU。此数据报的总长度不能超过MTU值,如果超了,就要进行分片处理。

(5)标识
占16位。每产生一个数据报,计数器就加1。
但这个标识不是序号,因为IP是无连接服务,不存在按序接受的问题。
当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。
相同的标识字段的值使分片后的各数据报片最后能正确地重装位原来的数据报。

(6)标志
占3位,目前只有前两位有意义。
最低位记为MF(More Fragment)。MF=1标识后面还有分片,MF=0则表示这是最后一个。
中间一位记为DF(Don’t Fragment)。DF=0时才允许分片。

(7)片偏移
占13位,片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。
片偏移以8个字节为偏移单位。

(8)生存时间(TTL)
数据报在网络中的寿命,目的是防止无法交付的数据报无限制地在互联网中兜圈子。
现在是“跳数限制”,每次转发数据报,就将TTL的值减1。

(9)协议
占8位。
协议字段指出此数据报携带的数据采用何种协议。

(10)首部检验和
占16位。
只检验数据报的首部,但不包含数据部分。
在这里插入图片描述
所谓反码算数运算求和指的是:0和0相加是0,0和1相加是1,1和1相加是0但要产生一个进位1,加到下一列。若最高位相加后产生进位,则最后得到的结果要在最低位加1。

(11)源地址
占32位。
发送IP数据报的主机的IP地址。

(12)目的地址
占32位。
接受IP数据报的主机的IP地址。

IP层转发分组的过程

在划分子网的情况下路由器转发分组算法

请添加图片描述
(6)报告转发分组出错。

最长前缀匹配:在采用CIDR编址时,如果一个分组在转发表中可以找到多个匹配的前缀,那么就应当选择前缀最长的一个座位匹配的前缀。

网际报文控制协议ICMP*

目的:为了更有效地转发IP数据报和提高交付的机会。

说明:

  1. ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告;
  2. ICMP不是高层协议,但看起来像,因为ICMP报文装在IP数据报中,作为其中的数据部分。

ICMP报文种类

  1. ICMP差错报文;
  2. ICMP询问报文。

ICMP差错报文共有四种:

  1. 终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文;
  2. 时间超时:当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文;
  3. 参数问题:当路由器或目的主机收到的数据报的首部中有字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文;
  4. 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应该将数据报发送给另外的路由器(找到更好的了)。

不应该发送ICMP差错报文的情况有:

  1. 对ICMP差错报文;
  2. 对第一个分片的数据报片的所有后续数据报片;
  3. 对具有多播地址的数据报;
  4. 对具有特殊地址(127.0.0.0或0.0.0.0)的数据报。

常用的ICMP询问报文:

  1. 回送请求或回送发送:ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。目的是测试目的站是否可达以及了解其有关状态;
  2. 时间戳请求或时间戳回答:利用在报文中记录的时间戳(报文的发送时间和接收时间),发送方很容易计算出当前网络的往返时延。

ICMP的应用举例

  1. ICMP的一个重要应用是PING,用来测试两台主机之间的连通性。
  2. PING使用了ICMP回送请求与回送回答报文。
  3. PING是应用层直接用网络层ICMP的一个例子,没有通过运输层的TCP或UDP。

互联网的路由选择协议

有关路由选择协议的几个基本概念

理想的路由算法

路由算法协议的核心就是路由算法,即需要何种算法来获得路由表中的各项目。

  1. 算法必须是正确的和完整的;
  2. 算法计算上应简单;
  3. 算法应能适应通信量和网络拓扑变化;
  4. 算法应具有稳定性;
  5. 算法应是最佳的。

按照算法是否自适应来分,有两类:
静态路由选择策略/非自适应路由选择:简单,开销小;不能及时适应网络状态的变化;
动态路由选择策略/自适应路由选择:能及时适应网络状态的变化;复杂,开销大。

分层次的路由选择协议

由于以下两个原因,互联网采用分层次的路由选择协议:

  1. 互联网规模太大;
  2. 许多单位不愿意让外界了解自己的网络布局等。

为此,互联网被划分为了许多较小的自治系统,一般记为AS。

互联网根据自治系统,将路由选择协议分为两大类:

  1. 内部网关协议IGP(RIP、OSPF)
  2. 外部网关协议EGP(BGP-4)

内部网关协议RIP*

原理

  1. 路由信息协议RIP是内部网关协议IGP中最先得到广泛使用的协议;
  2. RIP是一种分布式的基于距离向量的路由选择协议;
  3. RIP协议要求网络中的每一个路由器都要维护从它到自己的其他每一个目的网络的距离记录;
  4. 从一路由器到直接连接的网络的距离为1。从一主机到非直接连接的网络的距离定义为所经过的路由器数+1;
  5. RIP认为好的路由就是通过的路由器数目少;
  6. RIP允许一条路径最多只能包含15个路由器;
  7. 距离等于16时相当于不可达;
  8. RIP只适用于小型网络;
  9. RIP不能在两个网络之间同时使用多条路由;
  10. RIP只选择一条具有最少网络数的路由,哪怕还有另一条高速但网络数多的路由。

特点

  1. 仅和相邻路由器交换信息;
  2. 路由器交换的信息是当前本路由器所知道的全部信息,即自己现在的路由表;
  3. 按固定的时间间隔交换路由信息。

路由表的建立

  1. 路由器刚刚开始工作时,只知道直接连接的网络的距离(此距离定义为1);
  2. 然后,每一个路由器只和数目非常有限的相邻路由器交换并更新路由信息;
  3. 经过若干次的更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。

距离向量算法

请添加图片描述

Example

请添加图片描述
表中的三个类目是目的网络、距离和下一跳路由器。

请添加图片描述
我们带入距离向量算法来叙述一下路由器B收到相邻路由器的路由表之后的行为:

  1. 首先,我收到路由器A的路由表,我把A表中的下一跳全改成A,并且这个距离加1;
  2. 对A表的每一条,我逐一进行检查;
  3. 目的网络是1和2的话,我本来的表里面没有,我给他加进来;
  4. 目的网络是3的话我有了,然后这个下一跳也和我本来的不一样,距离相比之下更长一些,因此我还是不变;
  5. 对C的路由表同理。

需要补充的是,如果下一跳和本来的一样,那么直接就选择更新哦。

所以说在更新路由表时有三种情况要面对:有没有、一不一样、小不小。

RIP协议的位置

RIP协议使用运输层的用户数据报UDP进行传送;

RIP协议的位置应当在应用层,但转发IP数据报的过程是在网络层完成的。

RIP协议的优缺点

优点缺点
实现简单,开销较小网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器
-限制了网络的规模,它能使用的最大距离为15
-随着网络规模的增大,开销也会增加

如何理解好消息传得快,坏消息传得慢?
请添加图片描述

  1. 最开始,R1告诉R2,我这里到网络1就1步,然后R2就更新自己的表为“1 2 R1”;
  2. 每三十分钟,这个路由表更新一次,然后这个R1发现网1坏了,立马改了自己的数据“1 1 16”,再告诉R2;
  3. 因为是例行更新,所以R2还没接收到R1的更新就把自己表里面的内容发给了R1,R1一看,走R2的话,能到网1,于是就改了自己的路由表,在下一次例行更新时向R2报告自己的更新;
  4. 此时R2收到了R1不可达的消息,之后又收到了R1更新完的消息,于是听取了后者,将自己的表改为“1 4 R1”,然后告诉R1自己更新后的结果,于是两个路由器相互传半天才知道网1不可达。

内部网关协议OSPF*

协议OSPF的基本特点

  1. “开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的;
  2. “最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF;
  3. 是分布式的链路状态协议。

三个要点

  1. 向本自治系统中所有路由器,这里使用的方法是泛洪法。路由器通过所有输出端口向所有相邻路由器发送信息,而每一个相邻路由器又再将此信息发送其所有相邻路由器;
  2. 发送的信息是与本路由器相邻的所有路由器的链路状态;链路状态是说明本路由器都和哪些路由器相邻,以及该链路的度量;
  3. 只有当链路状态发送变化时,路由器才用泛洪法向所有路由器发送此信息。

链路状态数据库

  1. 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
  2. 这个数据库实际上是全网的拓扑地图,它在全网范围内是一致的。
  3. OSPF的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。

OSPF的划分

OSPF能用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域。

每个区域有一个32位的区域标识符。

一个区域内的路由器最好不超过200个。

划分区域的好处是:利用泛洪法交换链路状态信息的范围局限于一个区域而不是整个自治系统,这减少了整个网络上的通信量。

在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑情况。

OSPF使用层次结构的区域划分。在上层的区域叫做主干区域。主干区域的标识符规定0.0.0.0。主干区域的作用是用来联通其他在下层的区域。

区域边界路由器:接受其他区域来的信息;

主干路由器:主干区域内的路由器。

一个主干路由器可以同时是区域边界路由器。

在主干区域内有一个路由器专门和本自治系统外的其他自治系统交换路由信息,称为自治边界路由器

OSPF的位置

OSPF不用UDP而是直接用IP数据报传送,可见OSPF的位置在网络层。

OSPF的数据报

OSPF的数据报很短,这样做可以减少路由器的通信量;另一个好处是可以不必将长的数据报分片传送。

可靠的泛洪法

请添加图片描述
在一个路由器更新数据之后,告诉别的路由器,然后收到消息的路由器也更新,然后再告诉别人,以此类推。

RIP的话只是在定期更新,OSPF都有。

OSPF没有坏消息传播得慢的问题。

外部网关协议BGP

使用BGP协议的两个原因

  1. 互联网规模太大,使得自治系统AS之间路由选择选择非常困难;
  2. 自治系统AS之间的路由选择必须考虑有关策略。

综合上述情况,BGP只能是力求选择出一条能够到达目的网络前缀且比较好的路由而并非计算出一条最佳路由。

BGP路由*

每个自治系统的管理员要选择至少一个路由器作为该自治系统的BGP发言人;

在一个自治系统AS中有两种不同功能的路由器,即边界路由器和内部路由器。一个AS至少要有一个边界路由器和相邻AS的边界路由器直接相邻。

当两个边界路由器进行通信时,必须先建立TCP连接。

BGP发言人相互交换网络可达性信息。

请添加图片描述
请添加图片描述

BGP协议的特点

  1. BGP协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多;
  2. 每个自治系统中BGP发言人的数目很少,这样就使得自治系统之间的路由选择不致过分复杂;
  3. 支持CIDR;
  4. 刚刚运行时,BGP的邻站是交换整个BGP路由表,但以后只交换发生变化的部分。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
计算机网络网络层习题的答案如下: 1. 答:该IP地址所在的网络号为218.23.49.32,可分配的IP地址范围为218.23.49.33~218.23.49.62。 2. 答:将该网络号198.168.3.0划分成6个子网,可以采取以下方法: 198.168.3.0/20 198.168.3.64/20 198.168.3.128/20 198.168.3.192/20 198.168.3.224/20 198.168.3.256/20 每个子网中的主机地址范围如下: 198.168.3.0/20:198.168.3.1~198.168.3.63 198.168.3.64/20:198.168.3.65~198.168.3.127 198.168.3.128/20:198.168.3.129~198.168.3.191 198.168.3.192/20:198.168.3.193~198.168.3.255 198.168.3.224/20:198.168.3.256~198.168.3.319 198.168.3.256/20:198.168.3.320~198.168.3.-(填充) 其中,填充部分表示该子网中没有可用的主机地址。 3. 答:该单位有4000台机器,平均分布在16个不同地点。如选用子网掩码为255.255.255.0,可以分配给每个地点一个子网号。每个地点主机号的最小值和最大值可以通过以下公式计算得出: 最小值 = 2^n - 2,最大值 = 2^n - 2 + 2^(n-1) - 2,其中n为子网号位数。 根据上述公式,可以计算出每个地点主机号的最小值和最大值如下: 地点号码 n: 子网最小主机数(范围) 子网最大主机数(范围) 最小主机数(范围) 最大主机数(范围) 0 4 - 4 4000 4 4 4 4 4000 8 4 4 4 4000 4 4 4 4 4000 当n=4时,子网掩码为二进制数: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 将子网掩码转换为十进制后为: “****-****-****-****-****-****-****-****”,共有3个连续的“*”符号。 根据此规则,为每一个地点分配一个子网号。因此,第一个地点的子网号为第5个子网(子网号位为5,地址为57~~74)。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [计算机网络层——习题](https://blog.csdn.net/m0_63148076/article/details/131264940)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [计算机网络——网络层课后习题答案](https://blog.csdn.net/weixin_46548255/article/details/124369187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

右边是我女神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值