一种网络协议调试方法、装置和系统的制作方法

文档序号:8005160阅读:296来源:国知局
一种网络协议调试方法、装置和系统的制作方法
【专利摘要】本发明公开了一种网络协议调试方法、装置和系统,属于计算机软件领域。网络驱动模块捕获网络协议包,并将捕获取的网络协议包写入共享内存;调试服务端读取共享内存中的网络协议包数据,并发送给远程连接的调试客户端。采用本发明实施例,不需要借助外部网络设备进行抓包调试,也不需要改变原有网络拓扑结构,能节省成本;同时,调试过程中不会导致与被调试设备无关的网络协议数据包,不再需要过滤调试信息,简单高效。
【专利说明】ー种网络协议调试方法、装置和系统
【技术领域】
[0001]本发明涉及计算机软件领域,尤其涉及ー种网络协议调试方法、装置和系统。
【背景技术】
[0002]当出现网络设备以来,为了解决网络设备在运行时出现的网络问题,往往需要改变原网络环境,在网络中接入ー些调试设备,才能分析并调试网络协议等相关问题。常见的网络环境如图1所示,客户端设备与服务端设备在同一路由器或者交換机下,将调试设备连接到网络设备所在网络环境中,但由于原有路由器或者交換机设备不会将数据包转发至所有网络接ロ,还需要在原网络环境中添加其它网络设备来捕获网络中的网络协议包,如图2所示,比如接入具有所有节点转发功能的集线器(HUB)用以辅助调试设备网络协议问题,这样就会破坏原有的网络环境结构,同时还存在如下缺陷:
[0003](1)受原有网络环境限制,若无法改变原有网络环境,则无法分析问题。
[0004](2)改变原有网络拓扑结构,会造成成本增加。
[0005](3)増加集线器等调试设备,调试时由于网络数据包很多,需要过滤不需要的数据包。

【发明内容】

[0006]有鉴于此,本发明要解决的技术问题是提供ー种网络协议调试方法、装置和系统,以解决当网络拓扑限制无法改变时对网络协议的调试,以及对网络拓扑改变时造成的成本増加和不相关的网络数据包过多影响调试分析问题。
[0007]本发明解决上述技术问题所采用的技术方案如下:
[0008]根据本发明的ー个方面,提供的ー种网络协议调试方法包括:
[0009]网络驱动模块捕获网络协议包,并将捕获取的网络协议包写入共享内存;
[0010]调试服务端读取共享内存中的网络协议包数据,并发送给远程连接的调试客户端。
[0011]优选地,网络驱动模块捕获网络协议包,并将捕获取的网络协议包写入共享内存包括步骤:
[0012]检查是否已创建共享内存,如果没有,则创建共享内存;
[0013]检查调试状态标志是否有效,如果有效,则当有网络协议数据读取或写入时,将网络协议数据包写入到共享内存。
[0014]其中,网络协议包数据包括包头和包体,其中:包头包括幻数、方向和数据长度,包体包括数据内容。
[0015]优选地,调试服务端读取共享内存中的网络协议包数据,并发送给远程连接的调试客户端包括步骤:
[0016]启动网络监听;
[0017]当监听到有远程调试客户端请求连接吋,将调试客户端增加到客户端列表,并将调试状态标志为有效;
[0018]判断共享内存中是否有未读取的数据包,如果有,则读取共享内存中的数据包,并将数据包发送给调试客户端。
[0019]优选地,网络驱动模块捕获网络协议包之前还包括:调试客户端通过调试服务端的地址信息向调试服务端请求连接;
[0020]调试服务端读取共享内存中的网络协议包数据,并发送给远程连接的调试客户端之后还包括:调试客户端接收调试服务端发送的网络协议包数据并显示在界面上。
[0021]根据本发明的另ー个方面,提供的ー种网络协议调试装置包括网络驱动模块和调试服务端,其中:
[0022]网络驱动模块,用于捕获网络协议包,并将捕获取的网络协议包写入共享内存;
[0023]调试服务端,用于读取共享内存中的网络协议包数据,并发送给远程连接的调试客户端。
[0024]优选地,网络驱动模块包括:
[0025]第一判断単元,用于判断是否已创建共享内存;
[0026]共享内存创建单元,用于第一判断单元判断出没有创建共享内存时,创建共享内存;
[0027]第二判断単元,用于判断调试状态标志是否有效;
[0028]第三判断単元,用于判断是否有网络协议数据读取或写入;
[0029]写入単元,用于调试状态标志有效且有网络协议数据读取或写入时,当将网络协议数据包写入到共享内存。
[0030]优选地,调试服务端包括:
[0031]监听单元,用于监听是否远程调试客户端请求连接;
[0032]设置单元,用于监听到有远程调试客户端请求连接吋,将调试客户端增加到客户端列表;并将调试状态标志为有效;
[0033]第四判断単元,用于判断共享内存中是否有未读取的数据包;
[0034]读取单元,用于当共享内存中有未读取的数据包时,读取共享内存中的数据包;
[0035]发送单元,用于将读取的数据包发送给远程连接的调试客户端。
[0036]优选地,该装置还包括调试客户端,用于通过调试服务端的地址信息向调试服务端请求连接,还用于接收调试服务端发送的网络协议包数据并显示在用户界面上。
[0037]根据本发明的再ー个方面,提供的一种网络协议调试系统,包括调试设备和被调试设备,其中,被调试设备上述技术方案中的网络协议调试装置,调试设备包括调试客户端,用于通过调试服务端的地址信息向调试服务端请求连接,还用于接收调试服务端发送的网络协议包数据并显示在用户界面上。
[0038]本发明实施例提供的网络协议调试方法、装置和系统,与现有技术相比,通过在调试设备上部署调试客户端,在被调试设备上部署设备网络驱动模块和调试服务端,被调试设备将接收和发送的网络协议数据写入共享内存,然后将共享内存中的收发数据打包发送给远程连接的调试设备。不需要借助外部网络设备进行抓包调试,也不需要改变原有网络拓扑结构,节省了成本;同吋,调试过程中不会导致与被调试设备无关的网络协议数据包,不再需要过滤调试信息,简单高效。【专利附图】

【附图说明】
[0039]图1为现有技术中的网络环境结构示意图。
[0040]图2为现有技术中的网络协议调试环境结构示意图。
[0041]图3为本发明实施例提供的ー种网络协议调试方法流程图。
[0042]图4为本发明优选实施例提供的网络驱动模块工作流程图。
[0043]图5为本发明优选实施例提供的调试服务端工作流程图。
[0044]图6为本发明优选实施例提供的调试客户端工作流程图。
[0045]图7为本发明优选实施例提供的网络协议包存储结构示意图。
[0046]图8为本发明实施例提供的ー种网络协议调试装置的结构示意图。
[0047]图9为本发明实施例提供的一种网络协议调试系统的结构示意图。
【具体实施方式】
[0048]为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一歩详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用干限定本发明。
[0049]如图3所示为本发明实施例提供的ー种网络协议调试方法流程图,该方法包括:
[0050]S302、网络驱动模块捕获网络协议包,并将捕获取的网络协议包写入共享内存;
[0051]具体包括:网络驱动模块检查是否已创建共享内存,如果没有,则创建共享内存;然后检查调试状态标志是否有效,如果有效,则捕获网络协议包,当有网络协议数据读取或写入时,将网络协议数据包写入到共享内存。
[0052]S304、调试服务端读取共享内存中的网络协议包数据,并发送给远程连接的调试客户端。
[0053]具体包括:调试服务端加载后,启动ー个网络监听;当监听到有远程调试客户端请求连接吋,将调试客户端增加到客户端列表,并将调试状态标志为有效;然后判断共享内存中是否有未读取的数据包,如果有,则读取共享内存中的数据包,并将数据包发送给远程连接的调试客户端。
[0054]S306、调试客户端接收网络协议包数据并显示在界面上。
[0055]本发明实施例,与现有技术相比,通过在调试设备上部署调试客户端,在被调试设备上部署设备网络驱动模块和调试服务端,被调试设备将接收和发送的网络协议数据写入共享内存,然后将共享内存中的收发数据打包发送给远程连接的调试设备。不需要借助外部网络设备进行抓包调试,也不需要改变原有网络拓扑结构,节省了成本;同吋,调试过程中不会导致与被调试设备无关的网络协议数据包,不再需要过滤调试信息,简单高效。
[0056]图4为本发明优选实施例提供的网络驱动模块工作流程图,该方法包括:
[0057]S402、判断是否已创建共享内存,如果是,执行步骤S406,否则执行步骤S404 ;
[0058]S404、创建共享内存;
[0059]S406、判断调试状态标志是否有效,如果是,则执行步骤S408,否则执行步骤S414。
[0060]S408、判断是否有网络协议数据读取或写入,如果是,则执行步骤S410,否则跳转步骤S414。
[0061]S410、写入数据包包头;
[0062]请參阅图7,网络协议数据包括包头和数据包,包头包括幻数、方向和数据包长度。其中,幻数用于识别数据包、方向用于区分是接收还是发送、数据包长度用于表示数据内容的长度。
[0063]S412、写入数据包包体。
[0064]具体来说,在网络驱动的读取和写入接ロ将数据包写入共享内存。
[0065]S414、结束流程。
[0066]本发明实施例通过在被调试设备上修改网络驱动程序,在被调试设备启动时网络驱动程序自动加载,从而获取接收与发送的网络数据包,并保存至共享内存,为调试提供网络协议包数据。
[0067]图5为本发明优选实施例提供的调试服务端工作流程图,该方法包括:
[0068]S502、启动网络监听;
[0069]S504、判断是否有远程调试客户端连接,如果有,则执行步骤S506,否则继续监听;
[0070]S506、修改客户端列表,并设置调试状态标志为有效;
[0071]具体来说,当监听到有远程调试客户端连接时,则将调试客户端添加至客户端连接管理列表中,若客户端连接管理列表中有调试客户存在,则设置当前驱动调试状态标志为有效,以便网络驱动模块开始捕获网络协议数据包。
[0072]S508、判断共享内存中是否有未读取的数据包,如果有,则执行步骤S510,否则返回步骤S504 ;
[0073]具体来说,当共享内存的有效数据包长度大于零时,表示有数据包未读取,则访问共享内存,将数据读出。
[0074]S510、读出共享内存中的数据包。
[0075]请參阅图7,网络协议数据包括包头和包体,包头包括幻数、方向和数据包长度。其中,幻数用于识别数据包、方向用于区分是接收还是发送、数据包长度用于表示数据内容的长度,包体存放数据内容。本步骤根据包头的信息进行按包分片,先逐字节读取并校验包头幻数,识别出数据包头,然后读取数据包头中的数据包长度信息,根据数据包长度信息,读取包体内容作为ー个分片数据包。
[0076]S512、将数据包发送给远程连接的调试客户端。
[0077]具体来说,将分片后的数据包发送给远程连接的客户端。
[0078]本发明实施例通过在被调试设备上增加一个调试服务端进程,为调试客户端提供连接管理,并读取共享内存中的网络协议包数据并发送给调试客户端。
[0079]如图6为本发明优选实施例提供的调试客户端工作流程图,该方法包括:
[0080]S602、向调试服务端请求连接;
[0081]具体来说,可以通过被调试设备的地址信息,向被调试服务端请求连接。
[0082]S604、接收调试服务端发送的数据包;
[0083]S606、读取数据包包头信息;
[0084]S608、读取数据包包体信息;[0085]S610、显示数据包内容。
[0086]具体来说,显示的数据包内容主要包括方向(包括接收或发送)、数据长度、数据包内容。
[0087]本发明实施例通过在调试设备上増加一个调试客户端程序连接被调试设备的调试服务端,并接收调试服务端发送的网络协议包数据,从而定位网络问题。
[0088]如图8所示为本发明实施例提供的ー种网络协议调试装置的结构示意图,该装置包括网络驱动模块101和调试服务端102,其中:
[0089]网络驱动模块101,用于捕获网络协议包,并将捕获取的网络协议包写入共享内存;
[0090]进ー步地,网络驱动模块101包括:第一判断单元1011、共享内存创建单元1012、第二判断单元1013、第三判断单元1014和写入单元1015,其中:
[0091]第一判断单元1011,用于判断是否已创建共享内存;
[0092]共享内存创建单元1012,用于第一判断単元判断出没有创建共享内存时,创建共享内存;
[0093]第二判断单元1013,用于判断调试状态标志是否有效;
[0094]第三判断単元1014,用于判断是否有网络协议数据读取或写入;
[0095]写入単元1015,用于当调试状态标志有效且有网络协议数据读取或写入时,将网络协议数据包写入到共享内存。
[0096]具体来说,当读/写接ロ触发时,判断网络协议包长度有效性,以及当前调试状态标志,若无效则不进行处理;若有效,则先获取当前共享内存的网络协议包长度。举例来说,若长度为N,则先在N?N+3这四个字节处写入幻数,幻数为固定值,假设为0x20090501,然后在N+4这ー个字节写入方向,若当前为读取接ロ,则值为1,若为写入接ロ,则值为2,然后在N+5?N+8这四个字节中写入当前网络协议包长度,最后在N+9处根据网络协议包长度写入网络协议包内容。
[0097]调试服务端102,用于读取共享内存中的网络协议包数据,并发送给远程连接的调试客户端。
[0098]进ー步地,调试服务端102包括监听单元1021、设置单元1022、第四判断単元1023、读取单元1024、发送单元1025,其中:
[0099]监听单元1021,用于监听是否有远程调试客户端请求连接;
[0100]设置单元1022,用于当监听到有远程调试客户端请求连接吋,将调试客户端增加到客户端列表;并将调试状态标志为有效;
[0101]第四判断単元1023,用于判断共享内存中是否有未读取的数据包;
[0102]读取单元1024,用于当判断共享内存中未读取的数据包时,读取共享内存中的数据包;
[0103]发送单元1025,用于将读取的数据包发送给远程连接的调试客户端。
[0104]具体来说,启动网络监听后,若有远程连接请求,则将客户端添加至客户端连接管理列表中,若客户端连接管理列表中有客户存在,则设置当前驱动调试状态标志为有效;定时循环检查共享内存是否有未读取的数据包,若共享内存中有未读取的数据包,则先读取四个字节的幻数,若幻数有效,则读取一个字节的网络协议包方向,然后读取网络协议包长度,最后根据网络协议包长度,读取网络协议包内容,然后逐一将网络协议包发送给客户端连接管理列表中存在的客户端。
[0105]本发明实施例通过在被调试设备上增加该调试装置,不需要借助外部网络设备进行抓包调试,也不需要改变原有网络拓扑结构,节省了成本;同吋,调试过程中不会导致与被调试设备无关的网络协议数据包,不再需要过滤调试信息,简单高效。
[0106]如图9所示为本发明实施例提供的一种网络协议调试系统的结构示意图,该系统包括被调试设备10和调试设备20,被调试设备10又包括网络驱动模块101和调试服务端102,调试设备20包括调试客户端201,其中:
[0107]网络驱动模块101,用于捕获网络协议包,并将捕获取的网络协议包写入共享内存。
[0108]调试服务端102,用于读取共享内存中的网络协议包数据,并发送给远程连接的调试客户端201。
[0109]调试客户端201,用于通过调试服务端的地址信息向调试服务端请求连接,还用于接收调试服务端发送的网络协议包数据并显示在用户界面上。
[0110]需要说明的是,上述图8的技术方案在本实施例中同样适用,这里不再重述,本实施例的系统中,被调试设备10可以是视频监控设备,还可以是其他网络上的运行设备。
[0111]本发明实施例提供的系统,通过在调试设备上部署调试客户端,在被调试设备上部署设备网络驱动模块和调试服务端,被调试设备将接收和发送的网络协议数据写入共享内存,然后将共享内存中的收发数据打包发送给远程连接的调试设备。不需要借助外部网络设备进行抓包调试,也不需要改变原有网络拓扑结构,节省了成本;同吋,调试过程中不会导致与被调试设备无关的网络协议数据包,不再需要过滤调试信息,简单高效。
[0112]以上參照【专利附图】
附图
【附图说明】了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
【权利要求】
1.ー种网络协议调试方法,其特征在于,该方法包括: 网络驱动I旲块摘获网络协议包,并将摘获取的网络协议包与入共孕内存; 调试服务端读取共享内存中的网络协议包数据,并发送给远程连接的调试客户端。
2.根据权利要求1所述的网络协议调试方法,其特征在于,所述网络驱动模块捕获网络协议包,并将捕获取的网络协议包写入共享内存包括步骤: 检查是否已创建共享内存,如果没有,则创建共享内存; 检查调试状态标志是否有效,如果有效,则当有网络协议数据读取或写入时,将网络协议数据包写入到共享内存。
3.根据权利要求2所述的网络协议调试方法,其特征在于,所述网络协议包数据包括包头和包体,其中:所述包头 包括幻数、方向和数据长度,所述包体包括数据内容。
4.根据权利要求1所述的网络协议调试方法,其特征在于,所述调试服务端读取共享内存中的网络协议包数据,并发送给远程连接的调试客户端包括步骤: 启动网络监听; 当监听到有远程调试客户端请求连接时,将所述调试客户端增加到客户端列表,并将调试状态标志为有效; 判断共享内存中是否有未读取的数据包,如果有,则读取共享内存中的数据包,并将数据包发送给所述调试客户端。
5.根据权利要求1-4任意一项权利要求所述的网络协议调试方法,其特征在干,网络驱动模块捕获网络协议包之前还包括步骤:调试客户端通过调试服务端的地址信息向调试服务端请求连接; 所述调试服务端读取共享内存中的网络协议包数据,并发送给远程连接的调试客户端之后还包括步骤:调试客户端接收所述调试服务端发送的网络协议包数据并显示在界面上。
6.ー种网络协议调试装置,其特征在于,该装置包括网络驱动模块和调试服务端,其中: 所述网络驱动模块,用于捕获网络协议包,并将捕获取的网络协议包写入共享内存;所述调试服务端,用于读取共享内存中的网络协议包数据,并发送给远程连接的调试客户端。
7.根据权利要求6所述的网络协议调试装置,其特征在于,所述网络驱动模块包括: 第一判断単元,用于判断是否已创建共享内存; 共享内存创建单元,用于第一判断単元判断出没有创建共享内存时,创建共享内存; 第二判断単元,用于判断调试状态标志是否有效; 第三判断単元,用于判断是否有网络协议数据读取或写入; 写入単元,用于当调试状态标志有效且有网络协议数据读取或写入时,将网络协议数据包写入到共享内存。
8.根据权利要求6所述的网络协议调试装置,其特征在于,所述调试服务端包括: 监听单元,用于监听是否远程调试客户端请求连接; 设置单元,用于监听到有远程调试客户端请求连接时,将所述调试客户端增加到客户端列表;并将调试状态标志为有效;第四判断単元,用于判断共享内存中是否有未读取的数据包; 读取单元,用于当共享内存中有未读取的数据包时,读取共享内存中的数据包; 发送单元,用于将读取的数据包发送给远程连接的调试客户端。
9.根据权利要求6-8任意一项所述的网络协议调试装置,其特征在于,所述装置还包括调试客户端,用于通过调试服务端的地址信息向调试服务端请求连接,还用于接收调试服务端发送的网络协议包数据并显示在用户界面上。
10.一种网络协议调试系统,包括调试设备和被调试设备,其特征在干, 所述被调试设备包括6-8任意一项权利要求所述的网络协议调试装置, 所述调试设备包括调试客户端,用于通过调试服务端的地址信息向调试服务端请求连接,还用于接收调 试服务端发送的网络协议包数据并显示在用户界面上。
【文档编号】H04L12/26GK103457765SQ201310373122
【公开日】2013年12月18日 申请日期:2013年8月23日 优先权日:2013年8月23日
【发明者】郝勇 申请人:中安消技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1