一种基于winpcap的高速网络数据传输方法技术

技术编号:21121089 阅读:19 留言:0更新日期:2019-05-16 10:42
本发明专利技术提供一种基于winpcap的高速网络数据传输方法,以一种基于winpcap的主机与嵌入式设备高速网络数据传输方法为例,主机通过winpcap网络接口发送和接收网络数据包,winpcap接口运行于windows系统之上,通过网卡驱动访问网卡硬件,从而减少了TCP/IP协议栈组包和拆包的开销。主机包含处理器、储存器和网卡,存储器上有输入数据buffer,参数数据buffer和输出数据buffer。主机通过winpcap接口将输入数据和参数数据发送到嵌入式设备,并且通过winpcap网络接口将结果数据从嵌入式设备接收回来,并负责完成相应的发送数据包、接收数据包和应答包等的组包和拆包操作,以及相应buffer的读写操作。这样在windows系统网络硬件固定的情况下,提高了windows系统下网络传输的效率,更加充分地利用了网络带宽。

【技术实现步骤摘要】
一种基于winpcap的高速网络数据传输方法
本专利技术涉及一种基于winpcap的高速网络数据传输方法,尤其涉及一种不经过TCP/IP协议栈的,基于winpcap的主机端网络传输方法,属于网络开发领域。
技术介绍
winpcap在windows平台下为应用程序提供访问底层网络的能力,可用于windows系统下的直接的网络编程。winpcap能够实现windows系统下的底层网络抓包和发包。因此,可以将自己组好的不包含TCP/IP包头的网络包通过winpcap接口发送出去,也可以接收其他设备发送过来的不包含TCP/IP包头的网络包。在实时性要求比较高的场景下,相比于发送和接收包含TCP/IP包头的网络包,发送和接收不包含TCP/IP包头的简单网络包可以节省很多TCP/IP协议栈消耗的时间,从而能够在有限的网卡硬件资源条件下,更加充分地利用网卡的带宽,提高网络传输的速率。现有的专利相关文献如下:(1)CN103281335:一种基于winpcap的嵌入式网络协议栈开发。(2)CN103064064:WinPcap+千兆以太网外辐射源雷达数据传输方法。专利号为CN103281335的专利也采用了winpcap,但是他们主要是为了克服嵌入式设备上调试程序的困难,将嵌入式设备上的网络协议栈的开发移植到了windows系统上进行开发、测试,本质上还是有协议栈的,只能提高嵌入式开发的效率,并不能提高网络传输的速率,在网络硬件设备固定的情况下,并不能充分利用网络带宽。专利号为CN103064064的专利,主要采用winpcap用于捕获外辐射源雷达信号的网络数据包,并未考虑提升网络传输速率。
技术实现思路
本专利技术的技术解决的问题:克服现有技术的不足,提供一种基于winpcap的高速网络数据传输方法,主机通过winpcap网络接口发送和接收网络数据包,从而减少了在TCP/IP协议栈上组包和拆包的开销,提高了windows系统下的网络传输速率,在网络硬件设备固定的情况下,更加充分地利用了网络带宽。本专利技术的技术方案:一种基于winpcap的高速网络数据传输方法,尤其是一种基于winpcap的主机与嵌入式设备高速网络数据传输方法。所述主机包含处理器、存储器和网卡,所述存储器上有输入数据buffer,参数数据buffer和输出数据buffer。所述嵌入式设备内部包含加速计算模块和网卡。本专利技术的一种基于winpcap的高速网络数据传输方法,包括:主机,主机通过winpcap接口发送数据,主机通过winpcap接口接收数据。所述主机由处理器,网卡和包含输入数据buffer、参数数据buffer和输出数据buffer的存储器构成。所述主机通过winpcap接口发送数据时,主机需要判断是否更新发送到嵌入式设备端的参数文件。所述主机通过winpcap接口发送数据时,主机需要对要发送的参数数据和输入数据按照相应的格式进行组包,得到参数数据包和输入数据包。所述主机通过winpcap接口接收数据时,主机需要准备好存放接收数据的buffer,对接收到的应答包和结果数据包进行拆包。所述主机通过winpcap接口发送和接收数据时,需要对发送数据或者接收数据的最后一个不满数据长度的尾包进行处理,计算出来尾包的数据长度,并进行单独组包和拆包。所述主机通过winpcap接口接收数据时,需要接收计算结果数据和接收来自嵌入式设备的应答包。所述主机对接收到的结果数据包和应答包进行拆包,得到相应的计算结果数据或者应答信息。本专利技术方法的完整工作流程如下:步骤1:打开主机的winpcap网络接口。步骤2:主机判断是否需要更新嵌入式设备端加速计算所需的参数文件,若需要更新,则执行步骤3,否则,跳到步骤5执行。步骤3:主机端准备好需要发送的参数数据等相关信息并按指定格式进行组包,得到参数数据包。步骤4:主机端将参数数据包通过winpcap网络接口发送到嵌入式设备端。步骤5:主机端准备好存放要发送的输入数据等相关信息,并组好输入数据包。步骤6:主机端将步骤5组好的输入数据包发送到嵌入式设备端。步骤7:主机端准备好要接收的嵌入式设备端输出数据的buffer地址等信息。步骤8:主机端接收来自嵌入式设备端的输出数据,并存储在主机端。步骤9:判断主机端的输入数据是否处理完毕,若处理完毕,则执行步骤10;否则,回到步骤2执行。步骤10:关闭主机端的winpcap网络接口。本专利技术与现有技术相比的优点在于:(1)本专利技术涉及的一种基于winpcap的高速网络数据传输方法,适用于主机与嵌入式设备之间的网络传输。当主机和嵌入式设备之间需要较高的网络传输速率时,可以在主机端基于winpcap接口完成网络发送和接收任务,从而保证较高的网络传输速率。(2)本专利技术中,主机通过winpcap网络接口发送和接收网络数据包,从而减少了TCP/IP协议栈组包和拆包的开销。主机包含处理器、储存器和网卡,存储器上有输入数据buffer,参数数据buffer和输出数据buffer。主机通过winpcap接口将输入数据和参数数据发送到嵌入式设备,并且通过winpcap网络接口将结果数据从嵌入式设备接收回来,并负责完成相应的发送数据包、接收数据包和应答包等的组包和拆包操作,以及相应buffer的读写操作。这样在windows系统网络硬件固定的情况下,提高了windows系统下网络传输的效率,更加充分地利用了网络带宽。附图说明图1为本专利技术中主机与嵌入式设备之间发送和接收数据的模块图;图2为本专利技术中主机通过winpcap接口发送和接收数据总体操作流程图;图3为本专利技术中主机通过winpcap接口发送网络包的操作流程图;图4为本专利技术中主机通过winpcap接口接收网络包的操作流程图。具体实施方式下面通过具体实施例和附图,对本专利技术做详细的说明。图1为本专利技术中主机与嵌入式设备间高速网络数据传输的模块图。主机部分主要包含处理器,存储器和网卡,处理器和网卡通过总线读写存储器中的输入数据buffer、参数数据buffer和输出数据buffer。主机和嵌入式设备通过网卡发送和接收网络数据包。主机从输入数据buffer和参数数据buffer中取数据,组包后通过winpcap网络接口将组好的数据包发送到嵌入式设备,嵌入式设备处理完数据后,再将结果数据发送到主机,主机通过winpcap网络接口接收输出数据包,并将数据包中的数据拆出来存放到输出数据buffer中。winpcap接口运行于windows操作系统之上,需要网卡驱动的支持才能访问网卡硬件设备。完整的发送和接收网络数据的流程如图2所示。图2为本专利技术中主机与嵌入式设备间高速网络数据传输的整体工作流程图,具体操作步骤如下:步骤1:打开主机端的winpcap网络接口。步骤2:判断是否需要更新嵌入式设备端加速计算所需的参数文件,若需要更新,则执行步骤3,否则,跳到步骤7执行。步骤3:主机端准备好需要发送的存放参数数据的buffer和参数数据的长度。步骤4:主机端确定出嵌入式设备端存放参数数据的buffer的地址。步骤5:主机端准备好是否需要嵌入式设备进行加速计算的标志信息。步骤6:主机端将参数数据发送到步骤4准备好的嵌入式设备端的参数buffer中。步骤7:主机端准备好存放要发送的输入到本文档来自技高网
...

【技术保护点】
1.一种基于winpcap的高速网络数据传输方法,其特征在于:包括,主机,主机通过winpcap接口发送数据,主机通过winpcap接口接收数据。

【技术特征摘要】
1.一种基于winpcap的高速网络数据传输方法,其特征在于:包括,主机,主机通过winpcap接口发送数据,主机通过winpcap接口接收数据。2.根据权利要求1所述的方法,其特征在于:所述主机由处理器,网卡和包含输入数据buffer、参数数据buffer和输出数据buffer的存储器构成。3.根据权利要求1或2所述的方法,其特征在于:所述主机通过winpcap接口发送数据时,主机需要判断是否更新发送到嵌入式设备端的参数文件。4.根据权利要求1或2所述的方法,其特征在于:所述主机通过winpcap接口发送数据时,主机需要对要发送的参数数据和输入数据按照相应的格式进行组包,得到参数数据包和输入数据包。5.根据权利...

【专利技术属性】
技术研发人员:程丽敏李玲武延军
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1