ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

计算机网络微课堂——第四章—网络层(下)

2022-01-06 12:32:27  阅读:223  来源: 互联网

标签:R1 IP 网络层 网络 计算机网络 第四章 路由表 路由 路由器


  • 5.4 聚合了不存在的网络而导致路由环路

上例子:
在这里插入图片描述

这里要好好理解一下聚合路由的概念和求取过程。

  • 聚合路由:多个网络归(聚合)到一个大类,在查表的时候,查找到这个大类,就相当于查找到了具体的目的网络,因为他们的下一跳是相同的。你只要转发给下一跳,下一跳就能根据目的网络转发给具体的主机。
  • 在查表的时候,这些具体的目的网络可以匹配聚合网络,原理是最长前缀匹配。
注意:发送数据包的时候目的地址 还是具体的目的网络,只是你在查找转发的时候走了聚合路由的路子,数据报的目的网络并不是聚合网络。

好了,回到例子中,当R2转发IP数据报到绿色网络以及橙色网络时可以正常转发,就不赘述了。下面讲解会产生路由回路的情况。

实际上聚合路由‘192.168.0.0/22’中,包含了四个网络,如下图所示:
在这里插入图片描述
其中,绿色网络 和 橙色网络是实际存在的。而两个黑色网络在本例中是不存在的。
当R2给黑色网络发送IP数据报时,查表转发,走聚合路由,发送给R1,然后R1查表转发,由于黑色网络不存在,所以只能走默认路由,而默认路由的下一跳又是R2,这就又套娃了。如下图所示:
在这里插入图片描述

针对这种路由环路,使用黑洞路由来解决他:

黑洞路由:IP数据报进入黑洞路由则会被路由器直接丢弃,而不转发。
在这里插入图片描述
有了黑洞路由后,当R2再次尝试给黑色网络发送数据报时,能找到两条可选的路由条目,但是根据最长前缀匹配,选择了走黑洞路由。数据报被丢弃,这样就解决了路由环路问题。
在这里插入图片描述

  • 5.4 聚合了不存在的网络而导致路由环路

上例子:
在这里插入图片描述

这里要好好理解一下聚合路由的概念和求取过程。

  • 聚合路由:多个网络归(聚合)到一个大类,在查表的时候,查找到这个大类,就相当于查找到了具体的目的网络,因为他们的下一跳是相同的。你只要转发给下一跳,下一跳就能根据目的网络转发给具体的主机。
  • 在查表的时候,这些具体的目的网络可以匹配聚合网络,原理是最长前缀匹配。
注意:发送数据包的时候目的地址 还是具体的目的网络,只是你在查找转发的时候走了聚合路由的路子,数据报的目的网络并不是聚合网络。

好了,回到例子中,当R2转发IP数据报到绿色网络以及橙色网络时可以正常转发,就不赘述了。下面讲解会产生路由回路的情况。

实际上聚合路由‘192.168.0.0/22’中,包含了四个网络,如下图所示:
在这里插入图片描述
其中,绿色网络 和 橙色网络是实际存在的。而两个黑色网络在本例中是不存在的。
当R2给黑色网络发送IP数据报时,查表转发,走聚合路由,发送给R1,然后R1查表转发,由于黑色网络不存在,所以只能走默认路由,而默认路由的下一跳又是R2,这就又套娃了。如下图所示:
在这里插入图片描述

针对这种路由环路,使用黑洞路由来解决他:

黑洞路由:IP数据报进入黑洞路由则会被路由器直接丢弃,而不转发。
在这里插入图片描述
有了黑洞路由后,当R2再次尝试给黑色网络发送数据报时,能找到两条可选的路由条目,但是根据最长前缀匹配,选择了走黑洞路由。数据报被丢弃,这样就解决了路由环路问题。
在这里插入图片描述

  • 5.5 网络故障而导致路由环路

上例子,其中橙色网络出现故障,如下图所示:
在这里插入图片描述
R1能够检测到其接口0所连接的橙色网络出现故障,并自动在路由表中删除该目的网络
在这里插入图片描述
此时R2要给橘色网络发送数据报,查表转发,发给了R1的接口1,然后R1继续查表转发,找不到目的网络的路由记录,所以走默认路由的下一跳,又转发给了R2,这就又套娃了。如下图所示:
在这里插入图片描述
仍然可以人工配置黑洞路由来解决这种环路,当路由表中某个路由记录的目的网络故障时,人工添加针对该网络的黑洞路由,R2再发送数据报给R1时,R1就会直接丢弃,如下图所示:
在这里插入图片描述
若橙色网络又恢复正常,R1能自动得到其路由记录并写入路由表,之前针对橙色网络的黑洞路由自动失效,假设橙色网络又出了故障,R1能自动删除其路由条目,并自动生效之前的黑洞路由。也就是说只要第一次配置好黑洞路由,以后路由器就能自动管理针对某个网络的黑洞路由和普通路由。

6、路由选择协议

  • 6.1 概述

    • 6.1.1 静态 和 动态 路由选择
      路由选择协议分为 静态路由选择 和 动态路由选择两种:(如图)
      在这里插入图片描述
    • 6.1.2 因特网采用的路由选择协议特点在这里插入图片描述分层次举例:一个因特网供应商就可划为一个自治系统,系统内部和外部采用不同的路由选择协议,分别进行路由选择。如下图所示:在这里插入图片描述
注:
  • 这里的网关和路由器是一个东西,早期的因特网RFC文档用的网关,而新的RFC改成了路由器。因此两个协议类型缩写也可以改成IRP 和 ERP。
  • 某个自治系统使用的IGP和因特网其他自治系统用的IGP互不相干,可以随意使用合适的协议。
    • 6.1.3 常见的路由选择协议
      在这里插入图片描述
    • 6.1.4 路由器的基本结构

路由器:有多个输入输出端口的 用于转发分组的 专用计算机。
路由器可分为两大部分(如下图所示):
在这里插入图片描述其中核心(大脑)部分是路由选择部分,功能是:根据使用的路由选择协议,周期性的 与其他路由器进行信息交互,从而更新路由表。
分组转发部分也可以划分为两个部分:交换结构 和 输入输出端口。其实路由器的端口都具有输入和输出功能,上图中分开是以便理解接收 转发分组的过程。

路由器工作过程:
  • 物理成接收识别电信号,转换成01比特,送交链路层
  • 数据链路层识别帧,去掉帧头帧尾,送交网络层
  • 网络层收到的分组——
  • 如果是数据分组,则根据转发表查表转发。找不到则丢弃。找到则按照匹配条目指示的端口转发,同样经过网络层(需要更新数据分组首部某些字段的值,如:生存时间-1),链路层,和物理层。
  • 如果是路由器间交换信息的 路由报文,则先送交路由选择处理机,路由选择处理机根据 分组内容 更新路由表。(路由表 和 转发表 有如下几个细节):在这里插入图片描述
    上一篇将静态路由配置的,没区分 路由表和转发表 ,后面也不会区分,主要是便于理解。
注:
  • 路由选择处理机还会周期性 给其他路由器 发送自己知道的路由信息。
  • 路由器有 输入输出缓冲区 ,可以暂存 收不过来或发不过来 的分组。
  • 6.2 路由信息协议RIP(Routing Information Protocol)

RIP的一些特性:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里说的路由表并不是严格意义上的路由表,理解其意思即可。
在这里插入图片描述
那么交换信息用来做什么呢?
用于更新‘路由条目’。发送方发送RIP更新报文,更新接收方的‘路由表’。以下图为例:来讲解C如何发送RIP更新报文(可以理解为C的‘路由表’)来更新D的‘路由表’。
在这里插入图片描述
RIP更新报文并不包含C‘路由表’中下一跳的信息,因为用C来更新D的话,顶多是把D的下一跳改成C,和C的下一跳无关。
D拿到C的‘路由表’后,先对所有目的网络的距离+1,因为D和这些目的网络已经隔了C这一层厚障壁,然后把下一跳全改成C,因为现在是打算用C来更新D,然后就可以更新自己的‘路由表’了。更新原则如下图所示:
在这里插入图片描述
了解以上知识,就能理解一个网络从刚建立,到完成RIP协议的完成过程,如下图所示:
在这里插入图片描述
在这里插入图片描述

RIP的坏消息传得慢的问题:

上例子,在下图所示的一个网络中:
在这里插入图片描述
假设网络N1突然出故障了,这时R1‘路由表’中对N1的记录应该为16,并等待RIP更新周期到时候,发送RIP更新报文提醒R2 网络N1连不上了,如下图所示:
在这里插入图片描述但是嘞,由于坏消息传得慢,R2先来更新R1了,如下图所示:
在这里插入图片描述
然后网络N1不可怜的信息就被覆盖了,R1就被这个RIP更新报文误导:认为可以通过R2到达N1。就这样R1的‘路由表’错误的被更新成了“N1 3 R2”,如下图所示:
在这里插入图片描述然后就又是相互套娃的过程,直到他们到N1的距离增加到16(也就是收敛),如下图所示:
在这里插入图片描述在套娃的过程中,R1和R2 也算是一个路由环路了,这个环路长达数分钟。
在这里插入图片描述
针对坏消息传得慢问题,有以下几种措施来防范:
在这里插入图片描述
但即便有了这些措施,还是不能完全解决坏消息传得慢带来的影响。

注:若某路由器检测到某网络发生故障,则该路由器必与该网络直连。


  • 例题:
    在这里插入图片描述

  • 6.3 开放最短路径优先OSPF(Open Shortest Path First)

这个OSPF协议乱得很,总的来说 这个协议用大量操作使得每个路由器内 都有他所在的那个自治系统的网络拓扑图,因此每个路由器都能结合这个图 + Dijkstra算法 求出到目的网络的‘最短路’,然后就能构建出效率最高的路由表了。下面的这些概念你都可以把他们往这个大的思路上去靠,就会稍微清晰一点了。

在这里插入图片描述
在这里插入图片描述
这个代价是不是很像权值?但他不完全是,因为要考虑的因素有很多,可以把它看成全职的一部分。拿上面的带宽来说的话,带宽越大代表权值越小。
在这里插入图片描述

  • IP数据报首部中的协议号字段取值为89,表明IP数据报时OSPF分组

  • 死亡倒计时 到0之前 收到了邻居的分组,则会将其重置

  • 这个Hello分组的作用你可以理解为,你要先和邻居路由器建立联系,才能获取他的状态。

在这里插入图片描述
泛洪转发就是向所有路由器转发。
在这里插入图片描述
每个路由器都把 周围链路的状态 收集起来,四处发送,尽快让所有路由器都生成 整个网络的拓扑图,存在路由器各自的数据库里面,然后每个路由器就都能用Dijkstra算法了。
如下图所示:
在这里插入图片描述
OSPF的实际工作过程:
就是一个 通过发送上述五个分组,不断 完善 更新 链路状态数据库的过程。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 每个区域用32位比特标识符来区分,可用点分十进制表示。主干区域必须用0.0.0.0表示。
  • 主干区域用于连通其他区域。每个区域包含的路由器不超过200个。
  • 好处:把利用洪泛法交换链路信息的范围局限在每个区域,而不是自治系统。减少了网络上的通信量。
  • 区域内路由器:所有接口都在区域内。
  • 6.4 边界网关协议BGP

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

7、IPv4数据报的首部格式

IPv4数据报首部的格式,如下图所示:
在这里插入图片描述

每个小格子称为字段 或 域,下面介绍每个字段的功能。

在这里插入图片描述
在这里插入图片描述

首部长度字段的单位是4字节,也就是说首部的长度只能是4字节的整数倍。因此才有了填充字段,用于补0使长度满足4字节整数倍。

在这里插入图片描述在这里插入图片描述

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

为什么要分片呢?
数据链路层对MAC帧的长度有要求,若IP数据报太长则需要分片。如下图所示:
在这里插入图片描述
这三个字段的功能如下:
在这里插入图片描述

  • 标识:一个IP数据报被分片后,每个分片的标识字段都和原来整个IP数据报相同。
  • 片偏移:他的单位是8,所以 片偏移 = 数据部分首部在原数据中的位置/8,偏移量必须是一个整数,所以分片的时候并不是随意分的。

上个例子,如下图:
在这里插入图片描述
假设分片2还需要进行分片,如下图:
在这里插入图片描述
在这里插入图片描述

  • 每过一个路由器该字段-1
  • 功能就是减小路由回路带来的影响

在这里插入图片描述
在这里插入图片描述
例题:

在这里插入图片描述在这里插入图片描述 若片偏移量是小数,则需要向下取整,重新计算。

这里是引用

关键在于给出的是以太网数据帧的16进制,并不是IP数据报。所以还需要考虑MAC帧的首部长度。

在这里插入图片描述
在这里插入图片描述

不要忘记这个首部校验和,很容易漏,TTL字段变了,他肯定要变。

7、网际控制报文协议ICMP

  • 7.1 ICMP概述

在这里插入图片描述差错报告报文 和 询问报文 有着不同的功能,下面主要围绕这两种功能来讲解。

  • 7.2 ICMP差错报告报文

差错报告报文共有五大类,下面逐一讲解。

终点不可达:

在这里插入图片描述
R1中没有网络N3的路由记录,默认路由,以及H2的特定主机路由,那只能丢弃,并向源主机发送报告。

源点抑制:

在这里插入图片描述
注:ICMP协议的使用范围是网络层,并不局限于路由器,主机也可以发送ICMP差错报告报文。
在这里插入图片描述

时间超过:

在这里插入图片描述
另外,对于分片数据报,终点在规定时间内收不到整个数据报的所有分片时,会把已收到的数据报片全丢掉。

参数问题:

在这里插入图片描述

改变路由:

在这里插入图片描述

注:

在这里插入图片描述
这与差错报告报文的类型无关。

  • 7.3 常用的ICMP询问报文

共有两大类。
在这里插入图片描述

  • 7.4 ICMP的应用

    • 7.4.1 分组网间探测PING(Packet InterNet Groper)

也就是Windows命令行中的命令 ping

关于PING:

  • 原理是使用 ICMP回送请求和回答报文
  • 它用来测试主机或路由器间的连通性
  • 应用层直接使用网际层的ICMP(没有通过运输层的TCP或UDP)

ping一下我们学校官网:
在这里插入图片描述

    • 7.4.2 路由跟踪 traceroute

关于traceroute:
在这里插入图片描述
traceroute的实现原理:
源主机发送一个IP数据报,里面封装有ICMP回送请求和回答,关键点在于他首部的的TTL字段,该字段的初值为1,也就是说源主机发送的的第一个数据报只能到达一个路由器,然后在这个路由器TTL=0,这个路由器发送时间超过ICMP差错报告报文,好了,已经跟踪到了源主机到目的主机途径的第一个路由器了,下一步,只要将TTL字段的值改成2就能跟踪到第二个路由器,以此类推,还没完,直到源主机发送的数据报成功到达目的主机,目的主机拆开一看,是个ICMP回送请求和回答报文,那他必须得回应,源主机收到回答报文,就知道已经跟踪到了路径中的最后一站。(部分过程如下图所示)
在这里插入图片描述在这里插入图片描述

8、虚拟专用网VPN 和 网络地址转换NAT

  • 8.1 虚拟专用网VPN(Virtual Private Network)

引例:
在这里插入图片描述
所以只能使用无需申请的可自由分配的专用地址(Private-Use,下图中标粉的IP):
在这里插入图片描述
汇总一下就是下面这些IP:
在这里插入图片描述

但是使用私有地址又有一个问题,私有地址只能用于公司内部通信,他无法用于和因特网上的主机通信。换句话说:私有地址只能用作本地地址,而不能用于全球地址。

在因特网中,所有路由器对目的地址是私有地址的IP数据报一律不转发。

所以引例中的两个部门还是不能通信。怎么着每个部门也得至少有一个全球IP地址,然后私有地址才有可能通过全球IP访问因特网。如下图中两个橙色IP地质所示:在这里插入图片描述
那么私有地址如何通过全球IP访问因特网呢?这就是VPN解决的问题。
既然R1,R2有全球IP,那A、B间的数据报必要经过这两个路由器。
部门内:
跨部门通信的主机仍然正常组装IP数据报,源地址目的地址都使用部门内的私有IP。然后数据报给到R1、R2。
部门外:
R1,R2要改装通过的数据报:给整个数据报打包,并加密,作为新的数据载荷,然后加上新的首部,改装后的数据报就能在因特网中传输了。如下图所示:
在这里插入图片描述
在这里插入图片描述

  • 8.2 网络地址转换NAT(Network Address Translation)

    • 8.2.1 引入
      在这里插入图片描述

简单来说就是:NAT能让使用私有地址的主机访问因特网。
我们平时家里用的网就是NAT。

    • 8.2.2 NAT的原理

私有IP主机分时共享使用全球IP
在这里插入图片描述

路由器上必须装NAT软件。路由器把发过来的数据报中的私有地址替换成全球IP,并记录下两个IP的映射关系,在接收因特网传回数据报时通过这个映射,把数据报顺利给到目的主机。
在这里插入图片描述
多个私有IP要访问因特网:
在这里插入图片描述
那…因特网要是主动想给专用网发数据报呢?
可以到是可以,但是需要通过一些特殊手段,这里不赘述。
在这里插入图片描述在这里插入图片描述

标签:R1,IP,网络层,网络,计算机网络,第四章,路由表,路由,路由器
来源: https://blog.csdn.net/m0_51551385/article/details/122313652

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有