ICode9

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

计算机网络笔记第四章网络层

2021-02-22 09:04:49  阅读:254  来源: 互联网

标签:多播 IP 网络层 计算机网络 地址 路由 主机 第四章 路由器


适用计算机网络(第七版)
自己的学习笔记,PPT及图片来源网络,侵删。

计算机网第四章

第四章网络层

4.1 网络层提供的两种服务

在计算机网络领域,网络层应该向运输层提供怎样的服务,在计算机通信中,可靠交付应当由网络还是端系统负责,是计算机网络领域长期的争论。

第一种想法——网络负责可靠交付 :

  • 让网络负责可靠交付,计算机网络应模仿电信网络,使用面向连接的通信方式。
  • 通信之前先建立虚电路 ,以保证双方通信所需的一切网络资源。
  • 如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点,不丢失、不重复。

虚电路 :

  • 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
  • 电路交换的电话通信是先建立了一条真正的连接。
  • 分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。

在这里插入图片描述

第二种想法——网络提供数据报服务 :

  • 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
  • 网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。
  • 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。

尽最大努力交付 :

  • 由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉。
  • 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责可靠交付(包括差错处理、流量控制等) 。
  • 采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。

在这里插入图片描述

虚电路服务与数据报服务的区别:
在这里插入图片描述

4.2 网际协议 IP

TCP/IP(传输控制协议/网际协议),能够在多个不同网络间实现信息传输的协议簇,不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

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

  • 地址解析协议 ARP
  • 网际控制报文协议 ICMP
  • 网际组管理协议 IGMP

在这里插入图片描述
在这一层中,ARP画在最下面,因为IP经要使用这个协议。ICMP和IGMP画在这一层的上部,因为它们要使用IP协议。

由于网际协议IP是用来使互连起的许多计算机网络能够进行通信的,因此TCP/IP体系中的网络层常常被称为网际层或IP层。

4.2.1 虚拟互连网络

网络连接的中间设备(中继系统):

  • 物理层中继系统:转发器
  • 数据链路层中继系统:网桥 或 桥接器
  • 网络层中继系统:路由器
  • 网络层以上的中继系统:网关

网络互连都是指用路由器进行网络互连和路由选择,当中继系统是转发器或网桥时,不称之为网络互连,仅仅是把一个网络扩大了,但这仍然是一个网络,网关比较复杂,使用较少。

参与互连的计算机使用相同的网继协议IP,就形成了一个虚拟互联网络简称IP网,如果在覆盖全球的IP网上层使用TCP协议,那么就是现在使用的互联网。

4.2.2 的 IP 地址

IP 地址就是给每个连接在互联网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位4个字节的标识符。

分类的IP地址 :将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成,其中第一个字段是网络号( net-id),它标志主机(或路由器)所连接到的网络,第二个字段是主机号(host-id),它标志该主机(或路由器)。

网络号在整个互联网范围内必须是唯一的。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见IP地址在整个互联网范围内是唯一的。
在这里插入图片描述
A、B、C是单播地址,D为多播地址,E用于以后使用,一般网络地址使用点分十进制记法表示。

IP地址的指派范围:

  • A类网络两个网络号不可用,0表示本网络,127用于本地软件网络测试,不是网络号。
  • B类、C类各一个网络号不可用,128.0与192.0.0,表示本网络。

在这里插入图片描述

一般不使用的特殊的 IP 地址 :
在这里插入图片描述
IP地址的特点:

  • IP 地址是一种分等级的地址结构。分两个等级的好处是:
    • 分配 IP 地址时只分配网络号,主机号则由得到该网络号的单位自行分配,方便了 IP 地址的管理。
    • 路由器仅根据目的主机所连接的网络号来转发分组,从而减小了路由表所占的存储空间。
  • 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。
    • 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机。
    • 由于一个路由器至少应当连接到两个网络,因此一个路由器至少应当有两个不同的 IP 地址。
  • 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号。
  • 所有分配到网络号网络都是平等的。

4.2.3 IP 地址与硬件地址

地质类型形式实现方式使用层次使用位置
IP地址逻辑地址软件网络层及以上IP数据报首部
硬件地址物理地址硬件数据链路层MAC帧首部
  • 在发送数据时,数据从高层下到低层,然后才到通信链路上传输。使用IP地址的IP数据报一旦交给了数据链路层,就被封装成MAC帧了。
  • MAC帧在传送时使用的源地址和目的地址都是硬件地址,这两个硬件地址都写在MAC帧的首部中。
  • 连接在通信链路上的设备(主机或路由器)在收到MAC帧时,根据MAC帧首部中的硬件地址决定收下或丢弃。
  • 只有在剥去MAC帧的首部和尾部后把MAC层的数据上交给网络层后,网络层才能在IP数据报的首部中找到源IP地址和目的P地址

在这里插入图片描述
强调指出 :

  • 在IP层抽象的互联网上只能看到IP数据报。
  • 虽然在IP数据报首部有源站IP地址,但路由器只根据目的站的IP地址的网络号进行路由选择
  • 在局域网的链路层,只能看见MAC帧。IP数据报被封装在MAC帧中
  • IP层抽象的互联网屏蔽了网络的硬件地址体系各不相同复杂的细节。

4.2.4 地址解析协议 ARP

ARP用于已知IP地址求其相应的硬件地址。

地址解析协议 ARP 要点 :

  • 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
  • 每一个主机都设有一个 ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。

ARP运行过程 :

  • 当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
    • 如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
    • 如没有, ARP 进程在本局域网上广播发送一个 ARP 请求分组。收到 ARP 响应分组后,将得到的 IP 地址到硬件地址的映射写入 ARP 高速缓存。

在这里插入图片描述
ARP 高速缓存的作用 :

  • 存放最近获得的 IP 地址到 MAC 地址的绑定,以减少 ARP 广播的数量。
  • 为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。
  • 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。

注意 :

  • ARP 用于解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
  • 如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
  • 从 IP 地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不了解的。
  • 只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。

使用IP地址而不是直接使用硬件地址的原因是硬件地址的格式复杂,通讯困难,使用IP地址免除了这样复杂的问题,在本网络,IP地址到硬件地址的转换有ARP完成。

4.2.5 IP 数据报的格式

在这里插入图片描述
下述中的位表示字长,1字节=8字长

IP数据报中的各个字段 :

  • 版本占4位,指IP协议的版本。通信双方使用的P协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4),版本还有以后使用的IPv6。
  • 首部长度占4位 ,单位为32位字(即该位每多加1,首部的长度就多加4个字节),4位可表示的最大十进制数值是15,IP首部的固定长度是20字节(所有IP数据报都需要包含的的首部),以首部长度作为基本单位,20个字节所表示的十进制数值为5个首部长度(0101),因为其字段最大可以表示的数值为(1111),所以IP数据报的首部最大长度为60字节,当IP分组的首部长度不为4字节的倍数时,需要利用填充字段进行填充。
  • 区分服务占8位,用来获得更好的服务,只有在使用区分服务时,这个字段才起作用。在一般的情况下都不使用这个字段。
  • 总长度占16位,总长度指首部和数据之和的长度,单位为1字节。因此数据报的最大长度为216 - 1 =65535字节。
  • (5)标识占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。这个“标识”并不是序号,因为IP数据报不存在按序接收的问题。当数据报必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
  • 标志占3位,但目前只有两位有意义,最低位记为MF,MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。标志字段中间的一位记为DF,意思是“不能分片”。只有当DF=0时才允许分片。
  • 片偏移占13位。片偏移指出较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。
  • 8)生存时间占8位,表明这是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在互联网中兜圈子消耗网络资源。TTL字段的功能为“跳数限制”。路由器在每次转发数据报之前就把TTL值减1,若TTL值减小到零,就丢弃这个数据报,不再转发。TTL的意义是指明数据报在互联网中至多可经过多少个路由器。显然,数据报能在互联网中经过的路由器的最大数值是255。若把TTL的初始值设置为1,就表示这个数据报只能在本局域网中传送。
  • 协议占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个协议进行处理。
    在这里插入图片描述
  • (10)首部检验和占16位。这个字段只检验数据报的首部,但不包括数据部分。方法:在发送方,先把IP数据报首部划分为许多16位字的序列,并把检验和字段置零。用反码算术运算把所有16位字相加后,将得到的和的反码写入检验和字段。接收方收到数据报后,将首部的所有16位字再使用反码算术运算相加一次。将得到的和取反码,即得出接收方检验和的计算结果。若首部未发生任何变化,则此结果必为0,于是就保留这个数据报。否则即认为出差错,并将此数据报丢弃。

IP数据报首部的的可变部分 :用来增加扩展功能,较少使用,长度从1个字节到40个字节不等,最后用全为0的填充字段补齐为4字节的整数倍。

4.2.6 IP 层转发分组的流程

转发过程 :

  • 按主机所在的网络地址来制作路由表,每一个路由器中的路由表就只包含 少数几个项目(每一行对应于一个网络),这样就可使路由表大大简化。
  • 根据目的网络地址就能确定下一跳路由器,这样做的结果是:
    • IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
    • 只有到达最后一个路由器时,才试图向目的主机进行直接交付。

特定主机路由 :特定的目的主机指明一个路由,可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。

默认路由 : 减少路由表所占用的空间和搜索路由表所用的时间,即当路由表中没有对应的网咯时,就采用默认路由。

IP数据报的首部不会直接指出“下一跳”的路由IP地址,在接收到IP数据报之后,路由器送交下层网络接口软件,网络接口软件使用ARP转换IP地址为硬件地址,之后封装再MAC帧的首部 ,根据硬件地址寻找下一跳路由器。

分组转发算法 :

  • 1)从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
  • 2 )若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行 3 )。
  • 3 )若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行4 )。
  • 4 )若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行 5 )。
  • 5 )若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行 6 )。
  • 6 )报告转发分组出错。

4.3 划分子网和构造超网

4.3.1 划分子网

从两级IP到三级IP:

  • IP 地址空间的利用率有时很低。
  • 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
  • 两级的 IP 地址不够灵活。

划分子网的基本思路 :

  • 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
  • 从主机号借用若干个位作为子网号 ,而主机号也就相应减少了若干个位。
  • 凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号,先找到连接在本单位网络上的路由器。
  • 然后此路由器在收到 IP 数据报后,再按目的网络号和子网号找到目的子网。
  • 最后就将 IP 数据报直接交付目的主机。

子网掩码 :

  • 子网掩码是一个网络或一个子网的重要属性。
  • 路由器在和相邻路由器交换路由信息时,必须给出所在网络(或子网)的子网掩码,。
  • 路由表中的每一个项目,除给出目的网络地址外,必须同时给出该网络的子网掩码。
  • 一个路由器连接在两个子网上,就拥有两个网络地址和两个子网掩码。

子网的划分方法 :

  • 有固定长度子网和变长子网两种子网划分方法。
  • 在采用固定长度子网时,所划分的所有子网的子网掩码都是相同的。
  • 划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数。
  • 在不划分子网时,为了便于查找路由表,依旧使用子网掩码,其设置为该网络的默认子网掩码。

在这里插入图片描述

4.3.2 使用子网时分组的转发

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

  • 从收到的分组的首部提取目的 IP 地址 D。
  • 先用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行下一步。
  • 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行下一步。
  • 对路由表中的每一行,将子网掩码和 D 逐位相“与”。若结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行下一步。
  • 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行下一步。
  • 报告转发分组出错。

4.3.3无分类编址 CIDR(构造超网)

随着分类网络地址的使用,网络地址告罄,需要采用全新的网络地址分配方法。

CIDR 最主要的特点 :

  • CIDR 消除了传统的分类地址以及划分子网的概念,可以更加有效地分配 IPv4 的地址空间。
  • CIDR使用各种长度的“网络前缀”来代替分类地址中的网络号和子网号。
  • IP 地址从三级编址(使用子网掩码)又回到了两级编址。

CIDR 使用“斜线记法”,它又称为 CIDR 记法,即在 IP 地址面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。例如: 220.78.168.0/24

CIDR 地址块 :

  • CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。
  • 128.14.32.0/20 表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位)。
    • 这个地址块的起始地址是 128.14.32.0。
    • 在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。
    • 128.14.32.0/20 地址块的最小地址:128.14.32.0
    • 128.14.32.0/20 地址块的最大地址:128.14.47.255
    • 全 0 和全 1 的主机号地址一般不使用。

在这里插入图片描述

路由聚合 :

  • 一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个原来传统分类地址的路由。
  • 路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。
  • 路由聚合也称为构成超网。
  • CIDR 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。
  • 对于 /20 地址块,它的掩码是 20 个连续的 1。 斜线记法中的数字就是掩码中1的个数。

CIDR 记法的其他形式 :

  • 10.0.0.0/10 可简写为 10/10,也就是把点分十进制中低位连续的 0 省略。
  • 10.0.0.0/10 隐含地指出 IP 地址 10.0.0.0 的掩码是 255.192.0.0。
  • 网络前缀的后面加一个星号 * 的表示方法,如 0000 1010 00*,在星号 * 之前是网络前缀,而星号 * 表示 IP 地址中的主机号,可以是任意值。

构成超网 :

  • 前缀长度不超过 23 位的 CIDR 地址块都包含了多个 C 类地址。
  • 这些 C 类地址合起来就构成了超网。
  • CIDR 地址块中的地址数一定是 2 的整数次幂。
  • 网络前缀越短,其地址块所包含的地址数就越多。而在三级结构的IP地址中,划分子网是使网络前缀变长。
  • CIDR 的一个好处是:可以更加有效地分配 IPv4 的地址空间,可根据客户的需要分配适当大小的 CIDR 地址块。

使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果,应当从匹配结果中选择具有最长网络前缀的路由。

使用二叉线索查找路由表 :

  • IP 地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。
  • 为了简化二叉线索的结构,先找出对应每一个地址的唯一前缀,使用唯一前缀构建二叉线索,进行查找时,只要匹配上唯一前缀即可。

4.4 网际控制报文协议 ICMP

  • ICMP是IP层协议,分装在IP数据报的数据部分中。
  • ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告

ICMP 报文的格式 :
在这里插入图片描述

4.4.1 ICMP 报文的种类

  • ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
  • ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
    在这里插入图片描述

ICMP 差错报告报文的种类 :

  • 终点不可达 :当路由器或主机不能交付数据报时就向源点发送终点不可达报文
  • 时间超过 :当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文
  • 参数问题 :当路由器或目的主机收到的数据报的首部中有的字段的值不正确时就丢弃该数据报,并向源点发送参数问题报文
  • 改变路由(重定向) :路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。

ICMP 差错报告报文 :

  • 所有的IMP差错报告报文中的数据字段都具有同样的格式。把收到的需要进行差错报告的IP数据报的首部和数据字段的前8个字节提取出来,作为IMP报文的数据字段。再加上相应的ICMP差错报告报文的前8个字节,就构成了ICMP差错报告报文。

在这里插入图片描述

  • 提取收到的数据报的数据字段前8个字节是为了得到运输层的端口号(对于TCP和UDP)以及运输层报文的发送序号(对于TCP)。这些信息对源点通知高层协议是有用的,整个ICMP报文作为IP数据报的数据字段发送给源点。

ICMP 询问报文种类 :

  • 回送请求和回答 :ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态
  • 时间戳请求和回答 :ICMP时间戳请求报文是请某台主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日到当前时刻一共有多少秒,用于时间同步与时间测量。

不应发送 ICMP 差错报告报文的几种情况 :

  • 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
  • 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
  • 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
  • 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。

4.4.2 ICMP 的应用举例

PING :

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

Traceroute :

  • 在 Windows 操作系统中这个命令是 tracert。
  • 用来跟踪一个分组从源点到终点的路径。
  • 它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。

4.5 互联网的路由选择协议

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

理想的路由算法 :

  • 算法必须是正确的和完整的。
  • 算法在计算上应简单。
  • 算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。
  • 算法应具有稳定性。
  • 算法应是公平的。
  • 算法应是最佳的。

路由算法的自适应性考虑 :

  • 静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
  • 动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。

分层次的路由选择协议 :

  • 互联网规模非常大。
  • 许多单位不希望外界了解自己的网络布局细节与采用的路由选择协议,但同时又希望连接在外部网络上。

自治系统 AS :尽管一个 AS 使用了多种内部路由选择协议和度量,但重要的是一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。

路由选择协议 :

  • 内部网关协议 IGP,在一个自治系统内部使用的路由选择协议。
  • 外部网关协议 EGP,若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。
  • 自治系统之间的路由选择也叫做域间路由选择,在自治系统内部的路由选择叫做域内路由选择。

4.5.2 内部网关协议 RIP

工作原理 :

  • RIP是内部网关协议 IGP 中最先得到广泛使用的协议
  • RIP 是一种分布式的、基于距离向量的路由选择协议。
  • RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。

距离 :

  • 从一个路由器到直接连接的网络的距离定义为 1。
  • 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
  • RIP 协议中的“距离”也称为“跳数”,因为每经过一个路由器,跳数就加 1。
  • 这里的“距离”实际上指的是“最短距离”。
  • RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
  • RIP 允许一条路径最多只能包含 15 个路由器。
  • “距离”的最大值为 16 时即相当于不可达。
  • RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。

RIP 协议的三个特点 :

  • 仅和相邻路由器交换信息。
  • 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
  • 按固定的时间间隔交换路由信息,当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。

距离向量算法 :
对每一个相邻路由器发送过来的RIP报文,进行以下步骤 :

  • 对地址为 X 的相邻路由器发来的RIP报文,先修改此报文的所有项目:把“下一跳”字段中的地址都改为 X ,并把所有的“距离”字段值加 1 。每一个项目都有三个关键数据,即:到目的的网络 N ,距离 d ,下一跳路由器 X 。 这样做的目的是为了便于进行本路由表的更新,假设从位于 X 的相邻路由器发来RIP报文的某一项目是:“Net2,3,Y”,意思是“我经过路由器Y到网络Net2的距离是3”,那么本路由器可推断出“我经过路由器X到网络Net2的距离是3+1=4”,于是将收到的RIP报文的这一项目修改为:“Net2,4,X”,作为下一步和路由表中原有项目进行比较时使用(比较后确定是否更新)。
  • 对修改后的RIP报文中的每个项目,执行以下步骤:
    • 如果原来的路由表中没有目的网络N:
      • 把该项目添加到路由表中。本路由表中没有到目的网络Net2的路由,那么路由表中就要加入新的项目“Net2,4,X”
    • 在路由表中有目的网络N,查看下一跳路由器地址:
      • 下一跳路由器地址是 X,把收到的项目替换原路由表中的项目。不管原来路由表中项目时“Net2,3,X”还是“Net2,5,X”,都要更新为“Net2,4,X”,即以最新的消息为准。
      • 下一跳路由器地址不是X,比较距离d与路由表中的距离:
        • 如果收到的项目中的距离 d 小于路由表中的距离,则进行更新若路由表中已有项目“Net2,5,P”,就更新为“Net2,4,X”,以此使路由最短
        • 如果收到的项目中的距离 d 小于路由表中的距离,就什么也不做。若距离更大了,显然不应更新;若距离不变,也不更新
  • 若三分钟还没收到相邻路由器的更新路由表,则把此相邻路由器记为不可到达的路由器,即“距离”为 16。
  • 返回。

RIP协议的报文格式 :

  • RIP2 报文由首部和路由部分组成。
  • RIP2 报文中的路由部分由若干个路由信息组成。每个路由信息需要用 20 个字节。地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。
  • 路由标记填入自治系统的号码,这是考虑使 RIP 有可能收到本自治系统以外的路由选择信息。
  • 再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。
  • 一个 RIP 报文最多可包括 25 个路由,因而 RIP 报文的最大长度是 4+20 x25=504 字节。如超过,必须再用一个 RIP 报文来传送。
  • RIP2 具有简单的鉴别功能。
    • 若使用鉴别功能,则将原来写入第一个路由信息(20 个字节)的位置用作鉴别。
    • 在鉴别数据之后才写入路由信息,但这时最多只能再放入 24 个路由信息。

在这里插入图片描述

RIP 协议特点:好消息传播得快,坏消息传播得慢。
RIP 存在的一个问题:当网络出现故障时,要经过比较长的时间 (例如数分钟) 才能将此信息传送到所有的路由器。

RIP协议

  • 实现简单,开销较小。
  • RIP 限制了网络的规模,它能使用的最大距离为 15。
  • 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
  • “坏消息传播得慢”,使更新过程的收敛时间过长。

4.5.3 内部网关协议 OSPF

OSPF 协议的基本特点 :

  • “开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
  • “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法 SPF采用分布式的链路状态协议,但这并不意味着其他路由协议不是最短路径优先的。

OSPF与IRP不同的三个要点 :

  • 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
  • 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”,即“代价”。
  • 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。

链路状态数据库 :

  • 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
  • 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。
  • OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。
  • OSPF 的更新过程收敛得快是其重要优点。

区域 :

  • OSPF 将一个自治系统再划分为若干个更小的范围,叫做区域。
  • 每一个区域都有一个 32 位的区域标识符 。
  • 区域也不能太大,在一个区域内的路由器最好不超过 200 个。

划分区域 :

  • 划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
  • 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
  • OSPF 使用层次结构的区域划分。在上层的区域叫做主干区域 。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。

OSPF 直接用 IP 数据报传送 :

  • OSPF 不用 UDP 而是直接用 IP 数据报传送。
  • OSPF 构成的数据报很短。这样做可减少路由信息的通信量。
  • 数据报很短的另一好处是可以不必将长的数据报分片传送。
  • 但分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。

OSPF 的其他特点 :

  • OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。
  • 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫做多路径间的负载平衡。
  • 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
  • 支持可变长度的子网划分和无分类编址 CIDR。
  • 每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。
  • OSPF 还规定每隔一段时间,要刷新一次数据库中的链路状态。
  • 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
  • OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。

OSPF分组 :

  • 版本 :当前的版本号是2
  • 类型 :可以是五种类型分组中的一种
  • 分组长度 :包括OSPF首部在内的分组长度,以字节为单位
  • 路由器标识符 :标志发送该分组的路由器的接口的IP地址
  • 区域标识符 :分组属于的区域的标识符
  • 检验和 :用来检测分组中的差错
  • 鉴别类型 :目前只有两种,0(不用)和1(口令)
  • 鉴别 :鉴别类型为0时就填入0,鉴别类型为1则填入8个字符的口令

在这里插入图片描述

OSPF的五种分组类型 :

  • 类型1,问候分组。
  • 类型2,数据库描述 分组。
  • 类型3,链路状态请求分组。
  • 类型4,链路状态更新分组,用洪泛法对全网更新链路状态。
  • 类型5,链路状态确认分组。

多点接入的局域网采用了指定的路由器的方法,使广播的信息量大大减少。指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。

4.5.4 外部网关协议 BGP

BGP 是不同自治系统的路由器之间交换路由信息的协议。
BGP 较新版本是 BGP-4(BGP 第 4 个版本),可以将 BGP-4 简写为 BGP。

BGP 使用环境不同 :

  • 互联网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。
    • 当一条路径通过几个不同 AS 时,要想对这样的路径计算出有意义的代价是不太可能的。
    • 比较合理的做法是在 AS 之间交换“可达性”信息。
  • 自治系统之间的路由选择必须考虑有关策略。
  • 因此,边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。

BGP 发言人 :选择至少一个路由器作为该自治系统的“ BGP 发言人”,往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。

BGP 交换路由信息 :

  • 一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话,利用 BGP 会话交换路由信息。
  • 使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。
  • 使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。

BGP 协议的特点 :

  • BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
  • 每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
  • BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
  • 在 BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。

BGP-4 四种报文 :

  • 打开报文,用来与相邻的另一个BGP发言人建立关系。
  • 更新报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
  • 保活报文,用来确认打开报文和周期性地证实邻站关系。
  • 通知报文,用来发送检测到的差错。

BGP报文的格式 :
在这里插入图片描述

4.5.5 路由器的构成

路由器是网络层设备,是互联网中的关键设备,主要作用是 :

  • 连通不同的网络。
  • 选择信息转发分路,减轻网络负担。

典型的路由器的结构 :

  • 整个的路由器结构可划分为两大部分:
    • 路由选择部分
      • 也叫做控制部分,其核心构件是路由选择处理机。
      • 路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
    • 分组转发部分
      • 交换结构:又称为交换组织,其作用是根据转发表对分组进行处理。
      • 一组输入端口(硬件)
      • 一组输出端口(硬件)

“转发”和“路由选择”的区别 :

  • “转发”就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。
  • “路由选择”则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
  • 路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
    在讨论路由选择的原理时,往往不去区分转发表和路由表的区别。

输出端口 :

  • 输出端口里面装有物理层、数据链路层和网络层的处理模块。
  • 输出端口从交换结构接收分组,然后把它们发送到路由器外面的线路上。
  • 在网络层的处理模块中设有一个缓冲区(队列)。当交换结构传送过来的分组的速率超过输出链路的发送速率时,来不及发送的分组就必须暂时存放在这个队列中。
  • 数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。

分组丢弃 :

  • 若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。
  • 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。

交换结构 :

  • 交换结构是路由器的关键构件。
  • 正是这个交换结构把分组从一个输入端口转移到某个合适的输出端口。
  • 实现交换有多种方法。常用交换方法有三种:
    • 通过存储器
      • 当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择处理机。然后分组就从输入端口复制到存储器中。
      • 路由器处理机从分组首部提取目的地址,查找路由表,再将分组复制到合适的输出端口的缓存中。
      • 若存储器的带宽(读或写)为每秒 M 个分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率)一定小于 M/2。
    • 通过总线
      • 数据报从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。
      • 因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。
      • 现代的技术已经可以将总线的带宽提高到每秒吉比特的速率,因此许多的路由器产品都采用这种通过总线的交换方式。
    • 通过纵横交换结构
      • 这种交换结构常称为互连网络。
      • 它有 2N 条总线,可以使 N 个输入端口和 N 个输出端口相连接。
      • 当输入端口收到一个分组时,就将它发送到与该输入端口相连的水平总线上。
      • 若通向所要转发的输出端口的垂直总线是空闲的,则在这个结点将垂直总线与水平总线接通,然后将该分组转发到这个输出端口。
      • 但若该垂直总线已被占用(有另一个分组正在转发到同一个输出端口),则后到达的分组就被阻塞,必须在输入端口排队。

在这里插入图片描述

4.6 IPv6

三级分类网络地址IPV4在经过长时间的使用之后,消耗殆尽,使用新的网络地址分配方式IPv6。

4.6.1 IPv6 的基本首部

IPv6 仍支持无连接的传送,但将协议数据单元 PDU 称为分组。为方便起见,仍采用数据报这一名词。
所引进的主要变化如下:

  • 更大的地址空间。IPv6 将地址从 IPv4 的 32 位 增大到了 128 位。
  • 扩展的地址层次结构。
  • 灵活的首部格式。 IPv6 定义了许多可选的扩展首部。
  • 改进的选项。 IPv6 允许数据报包含有选项的控制信息,其选项放在有效载荷中。
  • 允许协议继续扩充。
  • 支持即插即用(即自动配置)。因此 IPv6 不需要使用 DHCP。
  • 支持资源的预分配。 IPv6 支持实时视像等要求,保证一定的带宽和时延的应用。
  • IPv6 首部改为 8 字节对齐。首部长度必须是 8 字节的整数倍。原来的 IPv4 首部是 4 字节对齐。

IPv6 数据报的一般形式 :
在这里插入图片描述

  • 基本首部。
  • 有效载荷。有效载荷也称为净负荷。有效载荷允许有零个或多个扩展首部 ,再后面是数据部分。

IPV6的基本首部 :

  • 版本占4位。它指明了协议的版本,对IPv6该字段是6。
  • 通信量类占8位。这是为了区分不同的Pv6数据报的类别或优先级。
  • 流标号占20位。IPv6的一个新的机制是支持资源预分配,并且允
    许路由器把每一个数据报与一个给定的资源分配相联系。IPv6提出流的抽象概念。所谓“流”就是互联网络上从特定源点到特定终点(单播或多播)的一系列数据报(如实时音频或视频传输),而在这个“流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。因此,流标号对实时音频/视频数据的传送特别有用。对于传统的电子邮件或非实时数据,流标号则没有用处,把它置为0即可。
  • 有效载荷长度占16位。它指明IPv6数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内)。这个字段的最大值是64KB(65535字节)。
  • 下一个首部占8位。它相当于IPv4的协议字段或可选字段。当IPV6数据报没有扩展首部时,下一个首部字段的作用和IPv4的协议字段一样它的值指出了基本首部后面的数据应交付mP层上面的哪一个高层协议(例如:6
    或17分别表示应交付运输层TCP或UDP)当出现扩展首部时,下一个首部字段的值就标识后面第一个扩展首部的类型
  • 跳数限制占8位。用来防止数据报在网络中无限期地存在。源点
  • 源地址占128位。是数据报的发送端的P地址
  • 目的地址占128位。是数据报的接收端的IP地

在这里插入图片描述

扩展首部 :

  • IPv6 把原来 IPv4 首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。
  • 数据报途中经过的路由器都不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部)。
  • 这样就大大提高了路由器的处理效率。

六种扩展首部:

  • 逐跳选项
  • 路由选择
  • 分片
  • 鉴别
  • 封装安全有效载荷
  • 目的站选项

4.6.2 IPv6 的地址

目的地址类型 :

  • 单播:传统的点对点通信。
  • 多播 :一点对多点的通信。
  • 任播 :这是 IPv6 增加的一种类型。任播的目的站是一组计算机,数据报在交付时只交付其中的一个,通常是距离最近的一个。

结点 :IPv6 将实现 IPv6 的主机和路由器均称为结点,一个结点就可能有多个与链路相连的接口。

  • 一个接口可以有多个单播地址。
  • 其中的任何一个地址都可以当作到达该结点的目的地址。即一个结点接口的单播地址可用来唯一地标志该结点。

IPv6使用冒号十六进制记法,以便于记忆,这种记法允许零压缩的存在。

  • 在任一地址中只能使用一次零压缩。
  • 地址最后的0不允许省略

IPv6 地址分类 :
在这里插入图片描述

  • 未指明地址 : 这是 16 字节的全 0 地址,可缩写为两个冒号“::”。这个地址只能为还没有配置到一个标准的 IP 地址的主机当作源地址使用。这类地址仅此一个。
  • 环回地址 :即 0:0:0:0:0:0:0:1(记为 ::1)。作用和 IPv4 的环回地址一样。这类地址也是仅此一个。
  • 多播地址 :功能和 IPv4 的一样,这类地址占 IPv6 地址总数的 1/256。
  • 本地链路单播地址 :有些单位的网络使用 TCP/IP 协议,但并没有连接到互联网上。连接在这样的网络上的主机都可以使用这种本地地址进行通信,但不能和互联网上的其他主机通信,这类地址占 IPv6 地址总数的 1/1024。
  • 全球单播地址 :全球单播地址,IPv6 的这一类单播地址是使用得最多的一类。

4.6.3 从 IPv4 向 IPv6 过渡

IPV4在现行网络上大量使用,向IPv6过渡只能采用逐步演进的办
法,同时IPV6必须向后兼容,即IPv6 系统必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。两种向 IPv6 过渡的策略:使用双协议栈、使用隧道技术。

双协议栈 :

  • 双协议栈是指在完全过渡到 IPv6 之前,使一部分主机(或路由器)装有两个协议栈,一个 IPv4 和一个 IPv6。
  • 双协议栈的主机(或路由器)记为 IPv6/IPv4,表明它同时具有两种 IP 地址:一个 IPv6 地址和一个 IPv4 地址。
  • 双协议栈主机在和 IPv6 主机通信时是采用 IPv6 地址,而和 IPv4 主机通信时就采用 IPv4 地址。
  • 根据 DNS 返回的地址类型可以确定使用 IPv4 地址还是 IPv6 地址。

隧道技术 :

  • 在 IPv6 数据报要进入 IPv4 网络时,把 IPv6 数据报封装成为 IPv4 数据报,整个的 IPv6 数据报变成了 IPv4 数据报的数据部分。
  • 当 IPv4 数据报离开 IPv4 网络中的隧道时,再把数据部分(即原来的 IPv6 数据报)交给主机的 IPv6 协议栈。

4.6.4 ICMPv6

IPv6 也需要使用 ICMP 来反馈一些差错信息,地址解析协议 ARP 和网际组管理协议 IGMP 协议的功能都已被合并到 ICMPv6 中。

  • CMPv6 是面向报文的协议,它利用报文来报告差错,获取信息,探测邻站或管理多播通信。
  • ICMPv6 还增加了几个定义报文的功能及含义的其他协议。
    在这里插入图片描述

4.7 IP 多播

4.7.1 IP 多播的基本概念

IP 多播的目的是为了更好地支持一对多通信。一对多通信:一个源点发送到许多个终点。多播可大大节约网络资源,互联网范围的多播要靠路由器来实现,能够运行多播协议的路由器称为多播路由器,当然它也可以转发普通的单播IP数据报。

多播 IP 地址 :

  • 在多播数据报的目的地址写入的是多播组的标识符。
  • 多播组的标识符就是 IP 地址中的 D 类地址(多播地址)。
  • 每一个 D 类地址标志一个多播组。
  • 多播地址只能用于目的地址,不能用于源地址。

多播数据报 :

  • 多播数据报和一般的 IP 数据报的区别就是它使用 D 类 IP 地址作为目的地址,并且首部中的协议字段值是 2,表明使用网际组管理协议 IGMP。
  • 多播数据报也是“尽最大努力交付”,不保证一定能够交付多播组内的所有成员。
  • 对多播数据报不产生 ICMP 差错报文。因此,若在 PING 命令后面键入多播地址,将永远不会收到响应。

4.7.2 在局域网上进行硬件多播

从互联网上取得信息之后,在局域网内采用MAC地址进行多播,因此D类IP地址需要与MAC多播地址一一对应。

IEEE 的注册管理机构 RA 负责向厂家分配地址字段 6 个字节中的前三个字节 称为组织唯一标识符,MAC地址字段的第一字节的最低位为 I/G 位,其为1时表示组播地址。

互联网号码指派管理局IANA拥有的高24位(3字节)为00-00-5E,所以TCP/IP 协议使用的以太网地址块的范围是 :
从 00-00-5E-00-00-00 到 00-00-5E-FF-FF-FF ,
又因为MAC地址字段的 I/G 位为1时表示组播地址。因此IANA拥有的以太网多播地址是:
从 00-01-5E-00-00-00 到 00-01-5E-FF-FF-FF 。

MAC地址有23位可用于组播,即D类IP地址只能有23位可以用于组播。D 类 IP 地址可供分配的有 28 位,在这 28 位中的前 5 位不能用来构成以太网硬件地址。
在这里插入图片描述

4.7.3 网际组管理协议 IGMP 和多播路由选择协议

  • 为了使路由器知道多播组成员的信息,需要利用网际组管理协议 IGMP
  • 连接在局域网上的多播路由器还必须和互联网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要使用多播路由选择协议。

IGMP的使用范围 :

  • IGMP 并非在互联网范围内对所有多播组成员进行管理的协议。
  • IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。
  • IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。

IGMP与IP数据报

  • 和 ICMP 相似,IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务。
  • 我们不把 IGMP 看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。

多播路由选择协议 :

  • 多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化)。,单播路由选择通常是在网络拓扑发生变化时才需要更新路由。
  • 多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。
  • 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。

IGMP 工作过程 :

  • 申请加入入多播组
    • 当某个主机加入新的多播组时,该主机应向多播组的多播地址发送 IGMP 报文,声明自己要成为该组的成员。
    • 本地的多播路由器收到 IGMP 报文后,将组成员关系转发给互联网上的其他多播路由器。
  • 探询组成员变化情况
    • 组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。
    • 只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。
      *一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。

IGMP 采用的具体措施 :

  • 在主机和多播路由器之间的所有通信都是使用 IP 多播。
  • 多播路由器在探询组成员关系时,只需要对所有的组发送一个请求信息的询问报文,而不需要对每一个组发送一个询问报文。
  • 当同一个网络上连接有几个多播路由器时,它们能够迅速和有效地选择其中的一个来探询主机的成员关系。
  • 在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间。当收到询问时,主机在 0 到 N 之间随机选择发送响应所需经过的时延。对应于最小时延的响应最先发送。
  • 同一个组内的每一个主机都要监听响应,只要有本组的其他主机先发送了响应,自己就可以不再发送响应了

多播路由选择协议 :

  • 多播路由选择协议尚未标准化。
  • 一个多播组中的成员是动态变化的,随时会有主机加入或离开这个多播组。
  • 多播路由选择实际上就是要找出以源主机为根结点的多播转发树。
  • 在多播转发树上的路由器不会收到重复的多播数据报。
  • 对不同的多播组对应于不同的多播转发树。
  • 同一个多播组,对不同的源点也会有不同的多播转发树。

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

4.8.1 虚拟专用网 VPN

假定在一个机构内部的计算机通信也是采用 TCP/IP 协议,那么从原则上讲,对于这些仅在机构内部使用的计算机就可以由本机构自行分配其 IP 地址。

本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。

全球地址——全球唯一的 IP 地址,必须向互联网的管理机构申请。

专用 IP 地址块 :

  • 10.0.0.0 到 10.255.255.255,A类,或记为10.0.0.0/8,又称为 24 位块。
  • 172.16.0.0 到 172.31.255.255,B类,或记为172.16.0.0/12,又称为 20 位块。
  • 192.168.0.0 到 192.168.255.255,C类,或记为192.168.0.0/16,又称为 16 位块。

专用网 :采用专用 IP 地址的互连网络称为专用互联网或本地互联网,专用IP地址也叫做可重用地址。

虚拟专用网VPN :专用网利用公用的互联网作为本机构各专用网之间的通信载体。

内联网 intranet 和外联网 extranet

  • 基于TCP/IP协议
  • 内联网为同一个机构内部建立的VPN
  • 外联网为VPN中加入了外部的机构

远程接入 VPN :可以满足外部流动员工访问公司网络的需求的一种VPN。

4.8.2 网络地址转换 NAT

网络地址转换 NAT :在专用网上使用专用地址的主机如何与互联网上的主机通信。
NAT路由器,至少有一个有效的外部全球IP地址的安装了NAT软件的路由器。

网络地址转换的过程 :

  • 内部主机 A 用本地地址 IPA 和互联网上主机 B 通信所发送的数据报必须经过 NAT 路由器。
  • NAT 路由器将数据报的源地址 IPA 转换成全球地址 IPG ,并把转换结果记录到NAT地址转换表中,目的地址 IPB 保持不变,然后发送到互联网。
  • NAT 路由器收到主机 B 发回的数据报时,知道数据报中的源地址是 IPB 而目的地址是 IPG
  • 根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPA,转发给最终的内部主机 A。

网络地址转换 NAT :

  • 具有 n 个全球 IP 地址时,专用网内最多可以同时有 n 台主机接入到互联网。
  • 通过 NAT 路由器的通信必须由专用网内的主机发起。专用网内部的主机不能充当服务器用,互联网上的客户无法请求专用网内的服务器提供服务。

网络地址与端口号转换NAPT :常用的 NAT 转换表把运输层的端口号也利用上。这样,就可以使多个拥有本地地址的主机,共用一个 NAT 路由器上的全球 IP 地址,可以同时和互联网上的不同主机进行通信。

4.9 多协议标记交换 MPLS

多协议”表示在 MPLS 的上层可以采用多种协议;可以使用多种数据链路层协议。
标记”是指每个分组被打上一个标记,根据该标记对分组进行转发。
MPLS 并没有取代 IP,而是作为一种 IP 增强技术,被广泛地应用在互联网中。

4.9.1 MPLS 的工作原理。

基本原理 :

  • 在 MPLS 域的入口处,给每一个 IP 数据报打上固定长度“标记”,然后对打上标记的 IP 数据报用硬件进行转发。
  • 采用硬件技术对打上标记的 IP 数据报进行转发就称为标记交换。
  • “交换”也表示在转发时不再上升到第三层查找转发表,而是根据标记在第二层(链路层)用硬件进行转发。
  • MPLS 域是指该域中有许多彼此相邻的路由器,并且所有的路由器都是支持 MPLS 技术的标记交换路由器 LSR 。
  • LSR 同时具有标记交换和路由选择这两种功能,标记交换功能是为了快速转发,但在这之前LSR 需要使用路由选择功能构造转发表。

MPLS 的基本工作过程 :

  • MPLS 域中的各 LSR 使用专门的标记分配协议 LDP 交换报文,并找出标记交换路径 LSP。各 LSR 根据这些路径构造出分组转发表。
  • 分组进入到 MPLS 域时, MPLS 入口结点把分组打上标记,并按照转发表将分组转发给下一个 LSR。给 IP 数据报打标记的过程叫做分类 。
  • 一个标记仅仅在两个标记交换路由器 LSR 之间才有意义。分组每经过一个 LSR,LSR 就要做两件事:一是转发,二是更换新的标记,即把入标记更换成为出标记,这就叫做标记对换。
  • 当分组离开 MPLS 域时,MPLS 出口结点把分组的标记去除。再以后就按照一般分组的转发方法进行转发。

转发等价类 FEC :路由器按照同样方式对待的分组的集合,从同样接口转发到同样的下一跳地址,并且具有同样服务类别和同样丢弃优先级。

入口结点并不是给每一个分组指派一个不同的标记,而是将属于同样 FEC 的分组都指派同样的标记,FEC 和标记是一一对应的关系,FEC的指定由管理员决定,有很大的自由性。

4.9.2 MPLS 首部的位置与格式

  • MPLS 并不要求下层的网络都使用面向连接的技术,下层的网络并不提供打标记的手段,而 IPv4 数据报首部也没有多余的位置存放 MPLS 标记。
  • 采用一种一种封装技术:在把 IP 数据报封装成以太网帧之前,先要插入一个 MPLS 首部。
  • 从层次的角度看,MPLS 首部就处在第二层和第三层之间。
    在这里插入图片描述
    MPLS 首部的格式 :“给 IP 数据报打上标记”其实就是在以太网的帧首部和 IP 数据报的首部之间插入一个 4 字节的 MPLS 首部。
    在这里插入图片描述
  • 标记值,20 位。可以同时容纳高达 220个流(即 1048576 个流)。实际上几乎没有哪个 MPLS 实例会使用很大数目的流,因为通常需要管理员人工管理和设置每条交换路径。
  • 试验,3 位。目前保留用作试验。
  • 栈S, 1 位。在有“标记栈”时使用。
  • 生存时间TTL,8位。用来防止 MPLS 分组在 MPLS 域中兜圈子。

标签:多播,IP,网络层,计算机网络,地址,路由,主机,第四章,路由器
来源: https://blog.csdn.net/qq_45657669/article/details/112972581

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

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

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

ICode9版权所有