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

  • 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电纸书阅读器