[0057] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0058] 请参阅附图。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0059] 下面结合实施例和附图对本发明进行详细说明。
[0060] 实施例一
[0061] 本实施例提供一种堆叠交换机的协议调试通用方法及系统,其应用场景如图1所示,所述堆叠交换机包括主控卡和线卡,所述主控卡和线卡均包括带外网卡和调试网卡。
[0062] 如图2所示,本实施例所述的堆叠交换机的协议调试通用方法包括:
[0063] S201,在所述带外网卡的驱动中添加协议调试层。
[0064] S202,利用所述协议调试层将上层软件(简称上层)发送的协议数据包不做任何修改通过调试网卡发送至协议调试编码端,以便所述协议调试编码端通过主控卡镜像直接查看调试网卡的串口输出信息。所述协议调试编码端可以是类似PC机的具备调试编码功能的任意类型的终端。参见表1所示,所述协议数据包(即带外网数据包,所有经过带外网数据传送的包都叫带外网数据包)的格式包括以太网第二层头和自定义数据两部分;其中,所述以太网第二层头部分包括目的MAC,源MAC和数据包长度;所述自定义数据部分包括协议标识、协议版本、会话类型、会话标识、头校验、客户标识、客户数据长度、数据字段、以及客户数据校验。本实施例中,协议数据包可以理解为带外网数据包,协议数据包是带外网数据包的子集。
[0065] 表1:协议数据包的格式
[0066]
[0067] 表1中,各个字段的说明如下:
[0068] 协议标识:0xaa;
[0069] 协议版本:0;
[0070] 会话类型:0表示收到此数据包时需要回ack应答包;1表示此数据包为ack应答包;2表示收到此数据包时不需要回ack应答包;
[0071] 会话标识:唯一标识此次会话;
[0072] 头校验:自定义协议公共头各个字段CRC校验;
[0073] 客户标识:指示客户类型,也就是应用层消息类型;1表示Discover类型的消息,Discover包含三类子消息,分别是probe、route、config;2表示rpc消息;3表示tunnel消息;4表示rlink消息;
[0074] 客户数据长度:指示客户消息长度;
[0075] 客户数据:客户消息数据体。
[0076] 客户数据校验:从客户标识到客户数据长度各个字段的CRC校验。
[0077] 进一步,如图3所示,步骤S202中,所述协议调试编码端通过主控卡镜像直接查看调试网卡的串口输出信息的一种实现过程包括:
[0078] S301,所述协议调试编码端启用Wireshark抓包软件随时抓取所述调试网卡发送来的协议数据包。
[0079] S302,所述协议调试编码端加载主控卡镜像。
[0080] S303,所述协议调试编码端通过Wireshark抓包软件直接查看主控卡上的调试网卡的串口输出信息。如:在Wireshark查看rpc消息和rlink消息。
[0081] 进一步,如图4所示,步骤S202中,所述协议调试编码端通过主控卡镜像直接查看调试网卡的串口输出信息的另一种实现过程包括:
[0082] S401,通过所述协议调试编码端修改主控卡代码,在主控卡中添加串口打印rpc消息或/和串口打印rlink消息的打印代码。例如:修改主控卡代码,添加打印代码的一种实现方式参考如下:
[0083]
[0084] S402,所述协议调试编码端编译代码,生成新的主控卡镜像,重启主控卡加载所述新的主控卡镜像。
[0085] S403,所述协议调试编码端在主控卡运行过程中查看调试网卡的串口输出信息。
[0086] 在实际应用中,rpc消息的内容比较多,图4所述的实现方法中串口终端无法一页显示rpc消息的全部内容,或者存在后面消息覆盖前面消息的情况,图3所述的实现方法则不存在此问题。当只编写了打印rpc和rlink的代码,突然想看tunnel消息代码的时候,图4所述的实现方法需要重新写代码、编译生成镜像,重启主控卡;而图3所述的实现方法则可以直接查看,无需再做工作。故而,在实际应用中,可根据实际情况选择图3所述的实现方法或图4所述的实现方法。
[0087] 本发明所述的堆叠交换机的协议调试通用方法的保护范围不限于本实施例列举的步骤执行顺序,凡是利用本发明的原理所做的简单步骤增减、顺序调整等替换方案都包括在本发明的保护范围内。
[0088] 本实施例还提供一种堆叠交换机的协议调试通用系统,该系统可以实现本实施例所述的堆叠交换机的协议调试通用方法,但本实施例所述的堆叠交换机的协议调试通用方法的实现装置包括但不限于本实施例列举的堆叠交换机的协议调试通用系统的结构。
[0089] 如图5所示,本实施例所述的堆叠交换机的协议调试通用系统500包括:协议调试层510。所述协议调试层510添加于所述带外网卡的驱动中,用于将上层软件发送的协议数据包不做任何修改通过调试网卡发送至协议调试编码端,以便所述协议调试编码端通过主控卡镜像直接查看调试网卡的串口输出信息。
[0090] 进一步,如图6所示,所述协议调试编码端600的一种实现结构包括:Wireshark抓包软件模块610,第一主控卡镜像模块620,第一串口读取模块630。所述Wireshark抓包软件模块610与所述主控卡相连,随时抓取所述调试网卡发送来的协议数据包。所述第一主控卡镜像模块620与所述主控卡相连,加载主控卡镜像。所述第一串口读取模块630与所述Wireshark抓包软件模块610和第一主控卡镜像模块620分别相连,通过Wireshark抓包软件直接查看主控卡上的调试网卡的串口输出信息。
[0091] 进一步,如图7所示,所述协议调试编码端700的另一种实现结构包括:代码修改模块710,第二主控卡镜像模块720,第二串口读取模块730。所述代码修改模块710与所述主控卡相连,修改主控卡代码,在主控卡中添加串口打印rpc消息或/和串口打印rlink消息的打印代码。所述第二主控卡镜像模块720与所述主控卡相连,编译代码,生成新的主控卡镜像,重启主控卡加载所述新的主控卡镜像。所述第二串口读取模块730与所述第二主控卡镜像模块720相连,在主控卡运行过程中查看调试网卡的串口输出信息。
[0092] 实施例二
[0093] 本实施例也提供一种堆叠交换机的协议调试通用方法及系统,其与实施例一的区别在于,实施例一所述的堆叠交换机的协议调试通用方法及系统是从堆叠交换机的角度进行描述的,而本实施例所述的堆叠交换机的协议调试通用方法及系统是从与堆叠交换机进行通信的对端角度进行描述的。
[0094] 本实施例的应用场景如图1所示,所述堆叠交换机包括主控卡和线卡,所述主控卡和线卡均包括带外网卡和调试网卡。
[0095] 如图8所示,本实施例所述的堆叠交换机的协议调试通用方法包括:
[0096] S801,利用一协议调试编码端接收调试网卡发送的协议数据包。所述协议调试编码端可以是类似PC机的具备调试编码功能的任意类型的终端。所述协议数据包的格式参见表1所示,包括以太网第二层头和自定义数据两部分;其中,所述以太网第二层头部分包括目的MAC,源MAC和数据包长度;所述自定义数据部分包括协议标识、协议版本、会话类型、会话标识、头校验、客户标识、客户数据长度、数据字段、以及客户数据校验。
[0097] 进一步,如图9所示,步骤S801所述的利用一协议调试编码端接收调试网卡发送的协议数据包的一种实现过程包括:
[0098] S901,在所述带外网卡的驱动中添加协议调试层。
[0099] S902,利用所述协议调试层将上层软件发送的协议数据包不做任何修改通过调试网卡发送至协议调试编码端。
[0100] S802,所述协议调试编码端通过主控卡镜像直接查看调试网卡的串口输出信息。
[0101] 进一步,如图10所示,步骤S802所述的协议调试编码端通过主控卡镜像直接查看调试网卡的串口输出信息的一种实现过程包括:
[0102] S1001,所述协议调试编码端启用Wireshark抓包软件随时抓取所述调试网卡发送来的协议数据包。
[0103] S1002,所述协议调试编码端加载主控卡镜像。
[0104] S1003,所述协议调试编码端通过Wireshark抓包软件直接查看主控卡上的调试网卡的串口输出信息。如:在Wireshark查看rpc消息和rlink消息。
[0105] 进一步,如图11所示,步骤S802所述的协议调试编码端通过主控卡镜像直接查看调试网卡的串口输出信息的另一种实现过程包括:
[0106] S1101,通过所述协议调试编码端修改主控卡代码,在主控卡中添加串口打印rpc消息或/和串口打印rlink消息的打印代码。例如:修改主控卡代码,添加打印代码的一种实现方式参考如下:
[0107]
[0108] S1102,所述协议调试编码端编译代码,生成新的主控卡镜像,重启主控卡加载所述新的主控卡镜像。
[0109] S1103,所述协议调试编码端在主控卡运行过程中查看调试网卡的串口输出信息。
[0110] 在实际应用中,rpc消息的内容比较多,图11所述的实现方法中串口终端无法一页显示rpc消息的全部内容,或者存在后面消息覆盖前面消息的情况,图10所述的实现方法则不存在此问题。当只编写了打印rpc和rlink的代码,突然想看tunnel消息代码的时候,图11所述的实现方法需要重新写代码、编译生成镜像,重启主控卡;而图10所述的实现方法则可以直接查看,无需再做工作。故而,在实际应用中,可根据实际情况选择图10所述的实现方法或图11所述的实现方法。
[0111] 本发明所述的堆叠交换机的协议调试通用方法的保护范围不限于本实施例列举的步骤执行顺序,凡是利用本发明的原理所做的简单步骤增减、顺序调整等替换方案都包括在本发明的保护范围内。
[0112] 本实施例还提供一种堆叠交换机的协议调试通用系统,该系统可以实现本实施例所述的堆叠交换机的协议调试通用方法,但本实施例所述的堆叠交换机的协议调试通用方法的实现装置包括但不限于本实施例列举的堆叠交换机的协议调试通用系统的结构。
[0113] 如图12所示,本实施例所述的堆叠交换机的协议调试通用系统1200包括:协议调试编码端1210。所述协议调试编码端1210接收调试网卡发送的协议数据包,通过主控卡镜像直接查看调试网卡的串口输出信息。
[0114] 进一步,如图13所示,所述调试网卡1300包括一协议调试层1310;所述协议调试层1310添加于所述带外网卡的驱动中,用于将上层软件发送的协议数据包不做任何修改通过调试网卡发送至协议调试编码端。
[0115] 进一步,如图14所示,所述协议调试编码端1400的一种实现结构包括:Wireshark抓包软件模块1410,第一主控卡镜像模块1420,第一串口读取模块1430。所述Wireshark抓包软件模块1410与所述主控卡相连,随时抓取所述调试网卡发送来的协议数据包。所述第一主控卡镜像模块1420与所述主控卡相连,加载主控卡镜像。所述第一串口读取模块1430与所述Wireshark抓包软件模块1410和第一主控卡镜像模块1420分别相连,通过Wireshark抓包软件直接查看主控卡上的调试网卡的串口输出信息。
[0116] 进一步,如图15所示,所述协议调试编码端1500的另一种实现结构包括:代码修改模块1510,第二主控卡镜像模块1520,第二串口读取模块1530。所述代码修改模块1510与所述主控卡相连,修改主控卡代码,在主控卡中添加串口打印rpc消息或/和串口打印rlink消息的打印代码。所述第二主控卡镜像模块1520与所述主控卡相连,编译代码,生成新的主控卡镜像,重启主控卡加载所述新的主控卡镜像。所述第二串口读取模块1530与所述第二主控卡镜像模块1520相连,在主控卡运行过程中查看调试网卡的串口输出信息。
[0117] 本发明通过修改网卡驱动,将经过网卡的所有协议数据包传输到协议调试编码端,协议调试编码端通过抓包工具如Wireshark得到协议数据包,然后编写lum脚本分析相关协议包以及协议包各个字段,最终实现通用的堆叠交换机的协议调试。
[0118] 本发明能仅通过一次编码对所有的协议包都有效,无需针对特定协议包进行单独编码,具有通用性,且能灵活抓取分析各种协议包或者特定协议包的各个字段,无需编写额外的代码,不用重新加载代码到目标板卡,还能够使用通用的包分析工具如Wireshark对协议包进行分析,方便直观。
[0119] 综上所述,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0120] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。