计算机网络4——网络层3

一、网际控制报文协议ICMP

1、概念

为了更有效地转发数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP (Internet Control Message Protocol)[RFC 792,STD5]。ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP是互联网的标准协议。但ICMP不是高层协议(看起来好像是高层协议,因为ICMP报文装在IP数据报中,作为其中的数据部分),而是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP 报文格式如图所示。
在这里插入图片描述

2、种类

ICMP 报文有两种,即ICMP差错报告报文和ICMP询问报文。

ICMP报文的前4字节是统一的格式,共有三个字段:类型、代码和检验和。接着的4字节的内容与ICMP的类型有关。最后面是数据字段,其长度取决于 ICMP 的类型。下图给出了几种常用的ICMP 报文类型。
在这里插入图片描述
ICMP 标准在不断更新。已不再使用的ICMP报文有:“信息请求与回答报文”“地址掩码请求与回答报文”“路由器请求与通告报文”以及“源点抑制报文”

ICMP报文的代码字段用于进一步区分某种类型中的几种不同情况。检验和字段用来检验整个 ICMP 报文。我们应当还记得,IP数据报首部的检验和并不检验I数据报的内容,因此不能保证经过传输的 ICMP 报文不产生差错。

1)ICMP差错报告报文

  • 终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
  • 时间超过:当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
  • 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
  • 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(也就是说,找到了更好的路由)。
    下面对改变路由报文进行简短的解释。我们知道,在互联网的主机中也要有一个转发表。当主机要发送数据报时,首先查找主机自己的转发表,看应当从哪一个接口把数据报发送出去。在互联网中主机的数量远大于路由器的数量,出于效率的考虑,这些主机不和连接在网络上的路由器定期交换路由信息。在主机刚开始工作时,一般都在转发表中设置一个默认路由器的IP地址。不管数据报要发送到哪个目的地址,都一律先把数据报传送给这个默认路由器,而这个默认路由器知道到每一个目的网络的最佳路由(通过和其他路由器交换路由信息)。如果默认路由器发现主机发往某个目的地址的数据报的最佳路由应当经过网络上的另一个路由器R,就用改变路由报文把这情况告诉主机。于是,该主机就在其转发表中增加一个项目:到某某目的地址应经过路由器R(而不是默认路由器)。
    所有的ICMP差错报告报文中的数据字段都具有同样的格式(如图4-29所示)。把收到的需要进行差错报告的I数据报的首部和数据字段的前8个字节提取出来,作为ICMP 报文的数据字段。再加上相应的ICMP 差错报告报文的前8个字节,就构成了ICMP 差错报告报文。提取收到的数据报的数据字段前8个字节是为了得到运输层的端口号(对于TCP和UDP)以及运输层报文的发送序号(对于TCP)。这些信息对源点通知高层协议是有用的(端口的作用将在5.1.3节中介绍)。整个ICMP报文作为IP 数据报的数据字段发送给源点。
    在这里插入图片描述

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

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

2)ICMP询问报文

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

3、ICMP应用举例

ICMP 的一个重要应用就是分组网间探测PING(Packet InterNet Groper),用来测试两台主机之间的连通性。PING 使用了ICMP回送请求与回送回答报文。PING 是应用层直接使用网络层ICMP的一个例子。它没有通过运输层的TCP或UDP。

下u给出了从南京的一台PC到新浪网的邮件服务器 mail.sina.com.cn 的连通性的测试结果。PC一连发出4个ICMP回送请求报文。如果邮件服务器mail.sina.com.cn 正常工作而且响应这个ICMP回送请求报文(有的主机为了防止恶意攻击就不理睬外界发送过来的这种报文),那么它就发回ICMP回送回答报文。由于往返的ICMP报文上都有时间戳,因此很容易得出往返时间。最后显示出的是统计结果:发送到哪个机器(IP地址),发送的、收到的和丢失的分组数(但不给出分组丢失的原因),以及往返时间的最小值、最大值和平均值。从得到的结果可以看出,第三个测试分组丢失了。
:Vocumentsand SettingsXXR>ping mail.sina.com
另一个非常有用的应用是 traceroute(这是 UNIX操作系统中的命令),用来跟踪一个分组从源点到终点的路径。在Windows操作系统中这个命令是tracert。下面简单介绍这个命令的工作原理。

traceroute 从源主机向目的主机发送一连串的IP 数据报,数据报中封装的是无法交付的UDP用户数据报"。第一个数据报P,的生存时间 TTL 设置为1。当P,到达路径上的第一个路由器 R1 时,路由器 R1先收下它,接着把 TTL 的值减 1。由于 TTL 等于零了,因此 R1就把 P1丢弃,并向源主机发送一个ICMP 时间超过差错报告报文。

源主机接着发送第二个数据报P2,,并把 TTL 设置为2。P2先到达路由器R1,R1收下后把 TTL 减1再转发给路由器 R₂。R2收到 P2时 TTL 为 1,但减1后 TTL 变为零了。R2就丢弃P2,并向源主机发送一个ICMP时间超过差错报告报文。

这样一直继续下去。当最后一个数据报刚刚到达目的主机时,数据报的TTL是1。主机不转发数据报,也不把 TTL 值减1。但因IP 数据报中封装的是无法交付的运输层的UDP用户数据报,因此目的主机要向源主机发送 ICMP 终点不可达差错报告报文(见5.2.2节)。

这样,源主机达到了自己的目的,因为这些路由器和最后目的主机发来的ICMP 报文正好给出了源主机想知道的路由信息——到达目的主机所经过的路由器的IP地址,以及到达其中的每一个路由器的往返时间。

下图是从南京的一个PC向新浪网的邮件服务器mail.sina.com.cn 发出 tracert 命令后所获得的结果。图中每一行有三个时间出现,是因为对应于每一个 TTL值,源主机要发送三次同样的 IP 数据报。

我们还应注意到,从原则上讲,IP数据报经过的路由器越多,所花费的时间也会越长但从下图可看出,有时正好相反。这是因为互联网的拥塞程度随时都在变化,也很难预料到。因此,完全有这样的可能:经过更多的路由器反而花费更短的时间。
在这里插入图片描述

二、IPv6

协议IP是互联网的核心协议。现在使用的协议IP(即IPv4)是在 20 世纪 70年代末期设计的。互联网经过几十年的飞速发展,在2011年2月3日,IANA开始停止向地区互联网注册机构 RIR 分配IPv4地址,因为IPv4地址已经全部耗尽了。不久,各地区互联网地址分配机构也相继宣布地址耗尽。我国在2014年至2015年也逐步停止了向新用户和应用分配IPv4地址,同时全面开始商用部署IPv6。
解决 IP地址耗尽的根本措施就是采用具有更大地址空间的新版本的IP,即IPv6。经过多年的研究和试验,2017年7月终于发布了IPv6的正式标准。

1、IPv6基本首部

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

  1. 更大的地址空间。IPv6把地址从IPv4的32 位增大到4倍,即增大到 128 位,使地址空间增大了2%倍。这样大的地址空间在可预见的将来是不会用完的。
  2. 扩展的地址层次结构。IPv6由于地址空间很大,因此可以划分为更多的层次。
  3. 灵活的首部格式。IPv6数据报的首部和IPv4的并不兼容。IPv6 定义了许多可选的扩展首部,不仅可提供比IPv4更多的功能,而且还可提高路由器的处理效率,这是因为路由器对扩展首部不进行处理(除逐跳扩展首部外)。
  4. 改进的选项。IPv6 允许数据报包含有选项的控制信息,因而可以包含一些新的选项但IPv6的首部长度是固定的,其选项放在有效载荷中。我们知道,IP4所规定的选项是固定不变的,其选项放在首部的可变部分。
  5. 允许协议继续扩充。这一点很重要,因为技术总是在不断地发展的(如网络硬件的更新),而新的应用也还会出现。但我们知道,IPv4的功能是固定不变的。
  6. 支持即插即用(即自动配置)。因此IPv6 不需要使用 DHCP。
  7. 支持资源的预分配。IPv6 支持实时视像等要求保证一定的带宽和时延的应用。
  8. IPv6首部改为8字节对齐(即首部长度必须是8字节的整数倍)。原来的IPv4首部是4字节对齐。

IPv6 数据报由两大部分组成,即基本首部(base header)和后面的有效载荷(payload)。有效载荷也称为净负荷。有效载荷允许有零个或多个扩展首部(extension header),再后面是数据部分(如下图所示)。但请注意,所有的扩展首部并不属于IP6数据报的基本首部。
在这里插入图片描述
与IPv4相比,IPv6 对首部中的某些字段进行了如下的更改:

  • 取消了首部长度字段,因为它的首部长度是固定的(40字节)。
  • 取消了服务类型字段,因为优先级和流标号字段实现了服务类型字段的功能。
  • 取消了总长度字段,改用有效载荷长度字段。
  • 取消了标识、标志和片偏移字段,因为这些功能已包含在分片扩展首部中。
  • 把 TTL字段改称为跳数限制字段,但作用是一样的(名称与作用更加一致)。
  • 取消了协议字段,改用下一个首部字段。
  • 取消了检验和字段,这样就加快了路由器处理数据报的速度。我们知道,在数据链路层对检测出有差错的帧就丢弃。在运输层,当使用UDP时,若检测出有差错的用户数据报就丢弃。当使用TCP时,对检测出有差错的报文段就重传,直到正确传送到目的进程为止。因此在网络层的差错检测可以精简掉。
  • 取消了选项字段,而用扩展首部来实现选项功能。

由于把首部中不必要的功能取消了,使得IPv6首部的字段数减少到只有8个(虽然首部长度增大了一倍)。
下面解释IPv6 基本首部中各字段的作用:
在这里插入图片描述

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

下面我们简单介绍一下IPv6的扩展首部。
在 RFC 8200中定义了以下六种扩展首部:(1)逐跳选项:(2)路由选择;(3)分片;(4)鉴别;(5)封装安全有效载荷:(6)目的站选项。
每一个扩展首部都由若干个字段组成,它们的长度也各不同。但所有扩展首部的第一个字段都是8位的“下一个首部”字段。此字段的值指出了在该扩展首部后面的扩展首部是什么。当使用多个扩展首部时,应按以上的先后顺序出现。高层首部总是放在最后面。

大家知道,IPv4的数据报若在其首部中使用了选项,则在数据报转发路径中的每一个路由器,都必须检查首部中的所有选项,看是否与本路由器相关。这必然要花费相当的时间

IPv6 把原来IPv4首部中选项的功能都放在扩展首部中。IPv6 数据报若使用了扩展首部,则其基本首部的“下一个首部”字段会指出,在“有效载荷”字段中使用了何种扩展首部。而所有扩展首部的第一个字段都是“下一个首部”,用来指出在后面还有何种扩展首部。这就使得路由器能够迅速判断待转发的IPv6 数据报有无需要本路由器处理的选项。

2、IPv6地址

一般来讲,一个IPv6数据报的目的地址可以是以下三种基本类型地址之一:

  1. 单播(unicast):单播就是传统的点对点通信。
  2. 多播(multicast):多播是一点对多点的通信,数据报发送到一组计算机中的每一个。IPv6 没有采用广播的术语,而是将广播看作多播的一个特例。
  3. 任播(anycast):这是IPv6增加的一种类型。任播的终点是一组计算机,但数据报只交付其中的一个,通常是按照路由算法得出的距离最近的一个。

IPv6把实现IPv6的主机和路由器均称为节点。由于一个节点可能会使用多条链路与其他的一些节点相连,因此一个节点可能有多个与链路相连的接口。这样,IPv6 给节点的每一个接口(请注意,不是给某个节点)指派一个IPv6地址。一个具有多个接口的节点可以有多个单播地址,而其中任何一个地址都可当作到达该节点的目的地址。不过有时为了方便,若不会引起误解,也常说某个节点的IPv6地址,而把某个接口省略掉。

在IPv6中,每个地址占128位,地址空间大于 3.4 3.4 3.4x 1 0 38 10^{38} 1038。如果整个地球表面(包括陆地和水面)都覆盖着计算机,那么IPv6允许每平方米拥有 7 7 7x 1 0 23 10^{23} 1023个IP地址。如果地址分配速率是每微秒分配100万个地址,则需要 1 0 19 10^{19} 1019年的时间才能将所有可能的地址分配完毕。可见在想象到的将来,IPv6的地址空间是不可能用完的。

为了体会一下IPy6的地址有多大,可以看一下目前已经分配出去的最大的地址块。法国电信 France Telecom和德国电信 Deutsche Telekom 各分配到一个/19地址块,相当于各有35x 1 0 12 10^{12} 1012个地址,远远大于全部的IPv4地址(IPv4地址还不到4.3x 1 0 9 10^{9} 109个)。

巨大的地址范围还必须使维护互联网的人易于阅读和操纵这些地址。IPv4所用的点分十进制记法现在也不够方便了。

为了使地址再稍简洁些,IPv6 使用冒号十六进制记法(colon hexadecimal notation,简写为 colon hex),它把每个16 位的值用十六进制值表示,各值之间用冒号分隔。例如,如果前面所给的点分十进制数记法的值改为冒号十六进制记法,就变成了:
68 E 6 : 8 C 64 : F F F F : F F F F : 0 : 1180 : 960 A : F F F F 68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF 68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF

在十六进制记法中,允许把数字前面的0省略。上面就把0000中的前三个0省略了冒号十六进制记法还包含两个技术使它尤其有用。首先,冒号十六进制记法可以允许零压缩(zero compression),即一连串连续的零可以为一对冒号所取代,例如:

F F 05 : 0 : 0 : 0 : 0 : 0 : 0 : B 3 FF05:0:0:0:0:0:0:B3 FF05:0:0:0:0:0:0:B3

可压缩为:

F F 05 : : B 3 FF05::B3 FF05::B3

为了保证零压缩有一个不含混的解释,规定在任一地址中只能使用一次零压缩。该技术对已建议的分配策略特别有用,因为会有许多地址包含较长连续的零串。

其次,冒号十六进制记法可结合使用点分十进制记法的后缀。我们下面会看到这种结合在IPv4向IPv6的转换阶段特别有用。例如,下面的串是一个合法的冒号十六进制记法:

0 : 0 : 0 : 0 : 0 : 0 : 128.10.2.1 0:0:0:0:0:0:128.10.2.1 0:0:0:0:0:0:128.10.2.1

请注意,在这种记法中,冒号所分隔的每个值是两个字节(16位)的值,但点分十进制每个部分的值是一个字节(8位)的值。再使用零压缩即可得出:
: : 128.10.2.1 ::128.10.2.1 ::128.10.2.1
在这里插入图片描述
斜线意思和IPv4情况相似:
CIDR 记法的 2001 : 0 D B 8 : 0 : C D 30 : 123 : 4567 : 89 A B : C D E F / 60 2001:0DB8:0:CD30:123:4567:89AB:CDEF/60 2001:0DB8:0:CD30:123:4567:89AB:CDEF/60
表示IPv6 的地址是: 2001 : 0 D B 8 : 0 : C D 30 : 123 : 4567 : 89 A B : C D E F 2001:0DB8:0:CD30:123:4567:89AB:CDEF 2001:0DB8:0:CD30:123:4567:89AB:CDEF
而其子网号是: 2001 : 0 D B 8 : 0 : C D 30 : : / 60 2001:0DB8:0:CD30::/60 2001:0DB8:0:CD30::/60

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

  • 未指明地址:这是16字节的全0地址,可缩写为两个冒号“::”。这个地址不能用作目的地址,而只能将某台主机当作源地址使用,条件是这台主机还没有配置到一个标准的PP地址。这类地址仅此一个。
  • 环回地址:IPv6的环回地址是0:0:0:0:0:0:0:1,可缩写为::1。它的作用和IPy4的环回地址一样。这类地址也是仅此一个。
  • 多播地址功能:和IPv4的一样。这类地址占IPv6地址总数的1/256。
  • 本地站点单播地址(cite-local unicast address):有些单位的内部网络使用TCP/IP协议,但并没有连接到互联网上。连接在这样的内部网络上的主机都可以使用这种本地站点地址进行通信,但不能和互联网上的其他主机通信。这类地址占IPv6地址总数的1/1024,其用途和和IPv4的专用地址是一样的。
  • 本地链路单播地址(ink-local unicast address):这种地址是在单一链路上使用的。当一个节点启用IPv6时就自动生成本地链路地址(请注意,这个节点现在并没有连接在某个网络上)。当需要把分组发往单一链路的设备而不希望该分组被转发到此链路范围以外的地方时,就可以使用这种特殊地址。这类地址占IPv6地址总数的1/1024。
  • 全球单播地址:IPv6的这一类单播地址是使用得最多的一类。曾提出过多种方案来进-步划分这128位的单播地址。根据2006年发布的草案标准RFC4291的建议,IPv6单播地址的划分方法非常灵活,可以是如图4-34所示的任何一种。这就是说,可把整个的128位都作为一个节点的地址。也可用n位作为子网前缀,用剩下的(128-n)位作为接口标识符(相当于IPv4的主机号)。当然也可以划分为三级,用位作为全球路由选择前缀,用m位作为子网前缀,而用剩下的(128-n-m)位作为接口标识符。
    在这里插入图片描述

3、从IPv4向IPv6过渡

由于现在整个互联网的规模太大,因此,“规定一个日期,从这一天起所有的路由器一律都改用IPv6”,显然是不可行的。这样,向IPv6 过渡只能采用逐步演进的办法,同时,还必须使新安装的IPv6系统能够向后兼容这就是说,IPv6系统必须能够接收和转发IPv4分组,并且能够为IPv4分组选择路由。

下面介绍两种向IPv6过渡的策略,即使用双协议栈和使用隧道技术

1)双协议栈

双协议栈(dual stack)是指在完全过渡到IPv6 之前,使一部分主机(或路由器)同时装有IPv4和IPv6这两种协议栈。因此双协议栈主机(或路由器)既能够和IPv6的系统通信又能够和IPv4的系统通信。双协议栈的主机(或路由器)记为IPv6/IPv4,表明它同时具有IPv6地址和IPv4地址(如下图所示)。
在这里插入图片描述
双协议栈的主机在和IPy6主机通信时采用IPv6地址,而和IPv4主机通信时则采用IPv4地址。但双协议栈主机怎样知道目的主机是采用哪一种地址呢?它是使用域名系统DNS 来查询的。若DNS返回的是IPv4地址,则双协议栈的源主机就使用IPv4地址。但当DNS 返回的是IPv6地址,源主机就使用IPv6地址。

双协议栈需要付出的代价太大,因为要安装上两套协议。因此在过渡时期,最好采用下面的隧道技术。

2)隧道技术

向 IPv6 过渡的另一种方法是隧道技术(tunneling)。下图给出了隧道技术的工作原理这种方法的要点就是在IPv6数据报要进入IPv4网络时,把IPv6 数据报封装成为IPv4 数据报。现在整个的IPv6数据报变成了IPv4数据报的数据部分。这样的IPv4 数据报从路由器B 经过路由器C和D,传送到E,而原来的IPv6数据报就好像在IPv4 网络的隧道中传输,什么都没有变化。当IPv4数据报离开IPv4网络中的隧道时,再把数据部分(即原来的IPv6数据报)交给主机的IPv6协议栈。图中的一条粗线表示在IPv4网络中好像有一个从B到E的“IPv6 隧道”,路由器B是隧道的入口而E是出口。请注意,在隧道中传送的数据报的源地址是B而目的地址是E。
在这里插入图片描述
要使双协议栈的主机知道IPv4数据报里面封装的数据是一个IPv6数据报,就必须把IPv4首部的协议字段的值设置为41(41表示数据报的数据部分是IPv6数据报)

4、ICMPv6

和IPv4 一样,IPv6也不保证数据报的可靠交付,因为互联网中的路由器可能会丢弃数据报。因此IPv6也需要使用ICMP来反馈一些差错信息。新的版本称为ICMPv6,它比ICMPv4 要复杂得多。地址解析协议 ARP和网际组管理协议 IGMP的功能都已被合并到ICMPv(中(如下图所示)。
在这里插入图片描述
ICMPv6 是面向报文的协议,它利用报文来报告差错,获取信息,探测邻站或管理多播通信。ICMPv6还增加了几个定义报文功能及含义的其他协议。

在对ICMPv6 报文进行归类时,不同的文献和 RFC 文档使用了不同的策略,有的把其中的一些报文定义为ICMPv6 报文,而把另一些报文定义为邻站发现 ND(Neighbor-Discovery)报文或多播听众交付 MLD(Multicast Listener Delivery)报文。

其实所有这些报文都应当是ICMPv6 报文,只是功能和作用不同而己。因此我们把这些报文都列入ICMPv6的不同类别。使用这种分类方法的原因是所有这些报文都具有相同的格式,并且所有报文类型都由ICMPv6协议处理。

其实,像ND和 MLD这样的协议都是运行在ICMPv6 协议之下的。基于这样的考虑,可把ICMPv6 报文分类,如下图所示。请注意,邻站发现报文和组成员关系报文分别是在ND协议和MLD协议的控制下进行发送和接收的。
在这里插入图片描述

  • 52
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值