3.5 ICMPv6 报文和报文类型

这篇具有很好参考价值的文章主要介绍了3.5 ICMPv6 报文和报文类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 3.5 ICMPv6 报文和报文类型
  • 1. ICMPv6 报头
  • 2. ICMPv6 报文类型

3.5 ICMPv6 报文和报文类型

1. ICMPv6 报头

ICMPv6的报头由 type(8bit)\ code(8bit)\ checksum(16bit)可变数据组成,由于可变数据太多,这里暂不罗列,由具体协议展开。

3.5 ICMPv6 报文和报文类型

struct icmp6hdr {

	__u8		icmp6_type;
	__u8		icmp6_code;
	__sum16		icmp6_cksum;
	...
}

在 ICMPv6 的消息分类中,Type字段的最高位为0时(0-127),表示错误消息,为1时(128-255),表示信息消息。ICMPv4 中则使用error字段来表示。

2. ICMPv6 报文类型

下面是ICMPv6 报文的类型。(部分)

3.5 ICMPv6 报文和报文类型

在 ICMPv6 中,没有像 ICMPv4 一样的数组icmp_pointers[]来注册各种消息的处理函数,而是使用一个大的 switch 来选择不同消息类型的处理函数。

TYPEID 消息类型 处理函数
1 ICMPV6_DEST_UNREACH icmpv6_notify
2 ICMPV6_PKT_TOOBIG icmpv6_notify
3 ICMPV6_TIME_EXCEED icmpv6_notify
4 ICMPV6_PARAMPROB icmpv6_notify
128 ICMPV6_ECHO_REQUEST icmpv6_echo_reply
129 ICMPV6_ECHO_REPLY ping_rcv
130 ICMPV6_MGM_QUERY igmp6_event_query
131 ICMPV6_MGM_REPORT igmp6_event_report
132 ICMPV6_MGM_REDUCTION --
133 NDISC_ROUTER_SOLICITATION ndisc_rcv
134 NDISC_ROUTER_ADVERTISEMENT ndisc_rcv
135 NDISC_NEIGHBOUR_SOLICITATION ndisc_rcv
136 NDISC_NEIGHBOUR_ADVERTISEMENT ndisc_rcv
137 NDISC_REDIRECT ndisc_rcv

处理函数进行归纳有:

查询处理: icmpv6_echo_reply() \ ping_rcv() \ igmp6_event_query() \ igmp6_event_report()

差错处理: icmpv6_notify()

邻居发现函数处理:ndisc_rcv() 后文展开。文章来源地址https://www.toymoban.com/news/detail-844415.html

  • icmpv6_echo_reply() 负责处理echo请求。
  • ping_rcv() 负责处理echo应答。这个方法同ICMPv4 共用,是个双栈函数。
  • igmp6_event_query() 负责处理组播侦听者查询,后文展开。
  • igmp6_event_report() 负责处理组播侦听者报告, 后文展开。
  • icmpv6_notify() 负责处理接收到的错误消息,并且统计。
  • ndisc_rcv() 所有邻居发现类函数都有这个函数处理。后文展开。

到了这里,关于3.5 ICMPv6 报文和报文类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包