System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信,尤其涉及一种基于send的内核与协议栈的交互方法及装置。
技术介绍
1、send(secure neighbor discovery,安全邻居发现)是一种用于ipv6(internetprotocol version 6,互联网协议第6版)网络中邻居发现和地址解析的安全协议。它旨在提高ipv6网络的安全性,特别是防止地址欺骗和邻居发现协议的各种攻击。icmpv6(internet control message protocol version 6,互联网控制信息协议版本六)依赖send机制的报文为icmpv6 send报文。
2、专利技术人发现,目前设备在接收到icmpv6 send报文时,通常要由内核对部分报文内的选项字段option进行单独地消息组装,随后由协议栈完成校验,并返回组装校验结果消息至内核。该种方式导致报文处理效率低下,且在同时面临大量报文时,易使内核与协议栈的消息队列阻塞,影响通信功能正常运行,给用户带来不友好的体验。
技术实现思路
1、本申请实施例提供了一种基于send的内核与协议栈的交互方法及装置,用于解决目前icmpv6 send报文处理效率低下,报文量大时容易导致内核与协议栈的消息队列阻塞,影响用户使用体验。
2、一方面,本申请实施例提供了一种基于send的内核与协议栈的交互方法,该方法包括:
3、内核当接收到icmpv6 send报文之后,基于预设验证规则,确定所述icmpv6 send报文是否为组装
4、若是,将所述组装验证报文封装得到校验消息,以将所述校验消息发送至协议栈;
5、根据来自所述协议栈的校验结果,匹配相应的处理策略,以根据所述处理策略对所述组装验证报文进行处理。
6、在本申请的一种实现方式中,所述send选项字段为与send的安全机制相关的选项,至少包括timestamp option、nonce option、cga option、rsa option。
7、在本申请的一种实现方式中,将所述组装验证报文封装得到校验消息,以将所述校验消息发送至协议栈之前,所述方法还包括:
8、内核对所述timestamp option及所述nonce option进行校验;
9、在校验结果为通过的情况下,将所述组装验证报文进行封装处理;
10、否则,根据所述处理策略对所述组装验证报文进行处理。
11、在本申请的一种实现方式中,所述处理策略至少包括结束流程、内核回复报文。
12、在本申请的一种实现方式中,将所述组装验证报文封装得到校验消息,以将所述校验消息发送至协议栈,具体包括:
13、确定所述组装验证报文对应的send选项字段数量;
14、根据所述send选项字段数量,确定可变长度options列表及封装头部,并将各所述send选项字段添加至所述可变长度options列表;
15、根据所述封装头部及添加字段后的所述可变长度options列表,进行封装得到所述校验消息,以将所述校验消息发送至协议栈。
16、另一方面,本申请实施例还提供了一种基于send的内核与协议栈的交互装置,所述装置包括:
17、确定模块,用于内核当接收到icmpv6 send报文之后,基于预设验证规则,确定所述icmpv6 send报文是否为组装验证报文;其中,所述预设验证规则用于识别所述icmpv6send报文是否携带send选项字段;
18、封装模块,用于若是,将所述组装验证报文封装得到校验消息,以将所述校验消息发送至协议栈;
19、匹配模块,用于根据来自所述协议栈的校验结果,匹配相应的处理策略,以根据所述处理策略对所述组装验证报文进行处理。
20、在本申请的一种实现方式中,所述send选项字段为与send的安全机制相关的选项,至少包括timestamp option、nonce option、cga option、rsa option。
21、在本申请的一种实现方式中,将所述组装验证报文封装得到校验消息,以将所述校验消息发送至协议栈之前,所述装置还包括:
22、校验模块,用于内核对所述timestamp option及所述nonce option进行校验;
23、所述封装模块,在校验结果为通过的情况下,将所述组装验证报文进行封装处理;
24、处理模块,用于否则,根据所述处理策略对所述组装验证报文进行处理。
25、在本申请的一种实现方式中,所述处理策略至少包括结束流程、内核回复报文。
26、在本申请的一种实现方式中,所述封装模块,具体用于:
27、确定所述组装验证报文对应的send选项字段数量;
28、根据所述send选项字段数量,确定可变长度options列表及封装头部,并将各所述send选项字段添加至所述可变长度options列表;
29、根据所述封装头部及添加字段后的所述可变长度options列表,进行封装得到所述校验消息,以将所述校验消息发送至协议栈。
30、本申请与现有技术相比,其显著效果如下:
31、通过上述技术方案,无需针对每一个option单独封装消息发往协议栈校验,每份报文只封装一个消息,极大地减少了对于消息队列的占用,保证内核与协议栈之间消息队列的正常运行。进而提高了对icmpv6 send报文处理效率,在报文量大时仍能够保障内核与协议栈消息队列畅通,提高用户的使用体验。
本文档来自技高网...【技术保护点】
1.一种基于SeND的内核与协议栈的交互方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种基于SeND的内核与协议栈的交互方法,其特征在于,所述SeND选项字段为与SeND的安全机制相关的选项,至少包括Timestamp option、Nonceoption、CGA option、RSA option。
3.根据权利要求2所述的一种基于SeND的内核与协议栈的交互方法,其特征在于,将所述组装验证报文封装得到校验消息,以将所述校验消息发送至协议栈之前,所述方法还包括:
4.根据权利要求3所述的一种基于SeND的内核与协议栈的交互方法,其特征在于,所述处理策略至少包括结束流程、内核回复报文。
5.根据权利要求1所述的一种基于SeND的内核与协议栈的交互方法,其特征在于,将所述组装验证报文封装得到校验消息,以将所述校验消息发送至协议栈,具体包括:
6.一种基于SeND的内核与协议栈的交互装置,其特征在于,所述装置包括:
7.根据权利要求1所述的一种基于SeND的内核与协议栈的交互装置,其特征在于,所述S
8.根据权利要求7所述的一种基于SeND的内核与协议栈的交互方法,其特征在于,将所述组装验证报文封装得到校验消息,以将所述校验消息发送至协议栈之前,所述装置还包括:
9.根据权利要求8所述的一种基于SeND的内核与协议栈的交互方法,其特征在于,所述处理策略至少包括结束流程、内核回复报文。
10.根据权利要求1所述的一种基于SeND的内核与协议栈的交互方法,其特征在于,所述封装模块,具体用于:
...【技术特征摘要】
1.一种基于send的内核与协议栈的交互方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种基于send的内核与协议栈的交互方法,其特征在于,所述send选项字段为与send的安全机制相关的选项,至少包括timestamp option、nonceoption、cga option、rsa option。
3.根据权利要求2所述的一种基于send的内核与协议栈的交互方法,其特征在于,将所述组装验证报文封装得到校验消息,以将所述校验消息发送至协议栈之前,所述方法还包括:
4.根据权利要求3所述的一种基于send的内核与协议栈的交互方法,其特征在于,所述处理策略至少包括结束流程、内核回复报文。
5.根据权利要求1所述的一种基于send的内核与协议栈的交互方法,其特征在于,将所述组装验证报文封装得到校验消息,以将所述校验消息发送至...
【专利技术属性】
技术研发人员:王佳成,
申请(专利权)人:浪潮网络科技山东有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。