计算机网络-ICMPv6基础概念

前面我们学习了IPv6的基础概念以及IPv6地址的格式与分类,在IPv4中我们通过ARP、广播、ICMP进行地址冲突检测、网络连通性,但是在IPv6中是没有广播和ARP的,都是通过ICMPv6来实现其功能,所以这里我们需要了解下ICMPv6。

一、ICMP协议

ICMP(Internet Control Message Protocol)是互联网控制消息协议,它是TCP/IP协议族中一个重要的网络层协议,主要负责在网络设备(如主机、路由器)之间传递控制消息。

ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

主机间连通性
主机间连通性

ICMP消息封装在IP报文中,IP报文头部Protocol值为1时表示ICMP协议。ICMP消息的格式取决于TypeCode字段,其中Type字段为消息类型,Code字段包含该消息类型的具体参数。校验和字段用于检查消息是否完整。

ICMP报文
ICMP报文

1.1 ICMP差错控制

ICMP的一个典型应用是Ping。Ping是检测网络连通性的常用工具,同时也能够收集其他相关信息。用户可以在Ping命令中指定不同参数,如ICMP报文长度、发送的ICMP报文个数、等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行Ping测试。

Ping检测应用 简单说就是发送(8,0)的echo request,然后目的主机发送(0,0)的echo reply报文代表网络连通性正常。

报文抓包
报文抓包

1.2 ICMP错误报告

ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数据传输失败的原因。如:当网络设备无法访问目标网络时,会自动发送ICMP目的不可达报文到发送端设备。

功能:Tracert Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。Tracert是检测网络丢包和时延的有效手段,同时可以帮助管理员发现网络中的路由环路。

ICMP的另一个典型应用是Tracert。Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。为了跟踪到达某特定目的地址的路径,源端首先将报文的TTL值设置为1。该报文到达第一个节点后,TTL超时,于是该节点向源端发送TTL超时消息,消息中携带时间戳。然后源端将报文的TTL值设置为2,报文到达第二个节点后超时,该节点同样返回TTL超时消息,以此类推,直到报文到达目的地。这样,源端根据返回的报文中的信息可以跟踪到报文经过的每一个节点,并根据时间戳信息计算往返时间。

Tracert
Tracert

1.3 ICMP重定向

ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非最优路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。

ICMP重定向过程:

  • 主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。
  • 网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备RTA,此转发路径是更优的路径,所以RTB会向主机发送一个Redirect消息,通知主机直接向另一个网关RTA发送该报文。
  • 主机收到Redirect消息后,会向RTA发送报文,然后RTA会将该报文再转发给服务器A。
ICMP重定向
ICMP重定向

二、ICMPv6协议

ICMPv6(Internet Control Message Protocol version 6)是专为IPv6网络设计的控制消息协议,作为IPv6协议栈的一个重要组成部分,它继承了ICMPv4的基本功能,并针对IPv6的新特性进行了扩展和优化。

作用与用途:

  • 网络诊断与故障检测: 类似于ICMPv4,ICMPv6支持ping6命令来测试网络连通性,通过Echo Request/Reply报文进行双向确认。traceroute6工具则利用ICMPv6消息来追踪数据包的路由路径。

  • 错误报告与通知: 当IPv6数据包在传输过程中遇到问题时,ICMPv6发送差错报文通知发送方。这些报文类型包括Destination Unreachable、Packet Too Big、Time Exceeded、Parameter Problem等,对应不同的错误情况。

  • 网络配置与维护: ICMPv6在IPv6环境中承担了更多的网络配置和维护任务,尤其是通过邻居发现协议(Neighbor Discovery Protocol, NDP)实现的功能,包括:

    • 地址解析(替代IPv4 ARP): 使用Neighbor Solicitation(NS,类型135)和Neighbor Advertisement(NA,类型136)报文实现节点间地址解析。
    • 重复地址检测(DAD): 新节点通过发送NS报文验证其拟使用的IPv6地址是否唯一。
    • 路由器发现与选择: 节点通过Router Solicitation(RS,类型133)和Router Advertisement(RA,类型134)报文发现并选择默认路由器。
    • 前缀发现与状态更新: RA报文携带网络前缀信息,使节点能自动配置IPv6地址,并了解前缀变化情况。
    • 重定向: 路由器发送Redirect报文(类型137)指导节点使用更优的下一跳地址。

ICMPv6与IPv6紧密集成,是IPv6协议栈的标准组件,用于补充和增强IPv6协议的功能。ICMPv6位于网络层(第三层),与IPv6协议直接交互,为上层协议(如TCP、UDP)提供网络状况反馈和诊断服务。

2.1 ICMPv6报文

ICMPv6报文结构
ICMPv6报文结构
  • ICMPv6报文载荷由ICMPv6报文类型决定,因报文类型的不同而不同。
  • Type:表明消息的类型。
  • Code:表示消息类型的细分。
  • Checksum:表示ICMPv6报文的校验和。

ICMPv6报文分类两类:差错消息信息消息

报文类型
报文类型

2.2 ICMPv6-Path MTU发现

在IPv6中,中间转发设备不对报文进行分片而是在源设备进行分片,那源设备怎样知道路径上的MTU是多少呢?这里通过Path MTU来检测。

Path MTU发现
Path MTU发现

简单就是需要获取路径上接口的最小MTU,然后在源设备进行分片。

2.3 ICMPv6-Ping应用

Ping应用
Ping应用

通过发送(128,0)echo request和(129,0)echo reply报文进行联通性测试。

上面的是ICMPv6的基本报文类型,除了上面的还有一些专门为了IPv6实现功能的报文类型下次继续。

总结:ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。常见的如:PingTracertroute重定向等等。ICMPv6是专为IPv6网络设计的控制消息协议,作为IPv6协议栈的一个重要组成部分,它继承了ICMPv4的基本功能,并针对IPv6的新特性进行了扩展和优化。除了支持ICMP的功能还扩展了一些报文用以支持IPv6如NDP地址解析、邻居发现等。

如果对文章感兴趣欢迎微信搜索公众号:不喜欢热闹的孩子 不喜欢热闹的孩子

本文由 mdnice 多平台发布

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不喜欢热闹的孩子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值