CN108737409A - 一种基于ndis驱动的数据传输方法 - Google Patents
一种基于ndis驱动的数据传输方法 Download PDFInfo
- Publication number
- CN108737409A CN108737409A CN201810455978.5A CN201810455978A CN108737409A CN 108737409 A CN108737409 A CN 108737409A CN 201810455978 A CN201810455978 A CN 201810455978A CN 108737409 A CN108737409 A CN 108737409A
- Authority
- CN
- China
- Prior art keywords
- packet
- data packet
- network
- queue
- data transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提出一种基于NDIS驱动的数据传输方法,涉及数据传输技术领域。所述方法包括:步骤1:获取网络数据包;步骤2:对获取到的网络数据包进行分析,将符合条件的网络数据包加入到读队列中,将不符合条件的数据包进行释放;步骤3:将读队列中的数据包及时转发到应用层,应用层对接收到的数据包进行处理;步骤4:将应用层处理完毕后的数据包发送给网卡,完成数据传输。具有便捷性高和转发包执行效率高的优点。
Description
技术领域
本发明涉及数据传输技术领域,具体而言,涉及一种基于NDIS驱动的数据传输方法。
背景技术
NDIS是NetworkDriverInterface Specification,即网络驱动接口规范。NDIS的主要目的就是为NIC(网络接口卡,NetworkInterface Cards)制定出标准的API接口。MAC(介质访问控制,MediaAccess Controller)设备驱动封装了所有的NIC硬件实现,这样一来所有的使用相同介质的NIC就可以通过通用的编程接口被访问。NDIS同时也提供一个函数库(有时也称作wrapper),这个库中的函数可以被MAC驱动调用,也可以被高层的协议(例如TCP/IP)驱动调用。这些wrapper函数使得MAC驱动和协议驱动的开发变得更加容易。
采用NDIS的方式对游戏数据进行处理,因为NDIS工作在网络协议的前三层,在抓取数据时,不考虑操作***内内核和其他驱动驱动程序的接口问题,很容易和网卡通信。
发明内容
本发明的目的在于提供一种基于NDIS驱动的数据传输方法,具有便捷性高和转发包执行效率高的优点。
为了实现上述目的,本发明实施例采用的技术方案如下:
本发明实施例提供了一种基于NDIS驱动的数据传输方法,所述方法包括以下步骤:
步骤1:获取网络数据包;
步骤2:对获取到的网络数据包进行分析,将符合条件的网络数据包加入到读队列中,将不符合条件的数据包进行释放;
步骤3:将读队列中的数据包及时转发到应用层,应用层对接收到的数据包进行处理;
步骤4:将应用层处理完毕后的数据包发送给网卡,完成数据传输。
进一步的,所述步骤2中对获取到的网络数据包进行分析,将符合条件的网络数据包加入到读队列中,将不符合条件的数据包进行释放的方法包括:
步骤1:分析获取到的网络数据包是否为IP包,如果为IP包,则执行步骤2;如果不是IP包则将该数据包进行释放;
步骤2:分析获取到的网络数据包是否为是否为ICMP或UDP或TCP包,如果为是否为ICMP或UDP或TCP包,则执行步骤:3;如果不是是否为ICMP或UDP或TCP包则将该数据包进行释放;
步骤3:分析获取到的网络数据包的目标IP是否为本网段,如果为为本网段,则执行步骤4;如果不是为本网段则将该数据包进行释放;
步骤4:分析获取到的网络数据包的源IP或源MAC是否匹配过滤条件,如果匹配过滤条件,将该数据包加入到读队列中;如果不匹配过滤条件则将该数据包进行释放。
本发明实施例提供的一种基于NDIS驱动的数据传输方法,针对现在的转发包效率提高显著,占用CPU不超过5%,占用内存不超过20M,响应时间不超过5ms。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的基于NDIS驱动的数据传输方法的流程示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
一种基于NDIS驱动的数据传输方法,所述方法包括以下步骤:
步骤1:获取网络数据包;
步骤2:对获取到的网络数据包进行分析,将符合条件的网络数据包加入到读队列中,将不符合条件的数据包进行释放;
步骤3:将读队列中的数据包及时转发到应用层,应用层对接收到的数据包进行处理;
步骤4:将应用层处理完毕后的数据包发送给网卡,完成数据传输。
进一步的,所述步骤2中对获取到的网络数据包进行分析,将符合条件的网络数据包加入到读队列中,将不符合条件的数据包进行释放的方法包括:
步骤1:分析获取到的网络数据包是否为IP包,如果为IP包,则执行步骤2;如果不是IP包则将该数据包进行释放;
步骤2:分析获取到的网络数据包是否为是否为ICMP或UDP或TCP包,如果为是否为ICMP或UDP或TCP包,则执行步骤:3;如果不是是否为ICMP或UDP或TCP包则将该数据包进行释放;
步骤3:分析获取到的网络数据包的目标IP是否为本网段,如果为为本网段,则执行步骤4;如果不是为本网段则将该数据包进行释放;
步骤4:分析获取到的网络数据包的源IP或源MAC是否匹配过滤条件,如果匹配过滤条件,将该数据包加入到读队列中;如果不匹配过滤条件则将该数据包进行释放。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段或代码的一部分,所述单元、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能单元可以集成在一起形成一个独立的部分,也可以是各个单元单独存在,也可以两个或两个以上单元集成形成一个独立的部分。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Onl8Memor8)、随机存取存储器(RAM,RandomAccess Memor8)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (2)
1.一种基于NDIS驱动的数据传输方法,其特征在于,所述方法包括以下步骤:
步骤1:获取网络数据包;
步骤2:对获取到的网络数据包进行分析,将符合条件的网络数据包加入到读队列中,将不符合条件的数据包进行释放;
步骤3:将读队列中的数据包及时转发到应用层,应用层对接收到的数据包进行处理;
步骤4:将应用层处理完毕后的数据包发送给网卡,完成数据传输。
2.如权利要求1所述的基于NDIS驱动的数据传输方法,其特征在于,所述步骤2中对获取到的网络数据包进行分析,将符合条件的网络数据包加入到读队列中,将不符合条件的数据包进行释放的方法包括:
步骤1:分析获取到的网络数据包是否为IP包,如果为IP包,则执行步骤2;如果不是IP包则将该数据包进行释放;
步骤2:分析获取到的网络数据包是否为是否为ICMP或UDP或TCP包,如果为是否为ICMP或UDP或TCP包,则执行步骤:3;如果不是是否为ICMP或UDP或TCP包则将该数据包进行释放;
步骤3:分析获取到的网络数据包的目标IP是否为本网段,如果为为本网段,则执行步骤4;如果不是为本网段则将该数据包进行释放;
步骤4:分析获取到的网络数据包的源IP或源MAC是否匹配过滤条件,如果匹配过滤条件,将该数据包加入到读队列中;如果不匹配过滤条件则将该数据包进行释放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810455978.5A CN108737409A (zh) | 2018-05-14 | 2018-05-14 | 一种基于ndis驱动的数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810455978.5A CN108737409A (zh) | 2018-05-14 | 2018-05-14 | 一种基于ndis驱动的数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108737409A true CN108737409A (zh) | 2018-11-02 |
Family
ID=63937400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810455978.5A Pending CN108737409A (zh) | 2018-05-14 | 2018-05-14 | 一种基于ndis驱动的数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108737409A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932375A (zh) * | 2012-11-22 | 2013-02-13 | 北京奇虎科技有限公司 | 网络访问行为的防护方法和装置 |
CN103873463A (zh) * | 2014-02-26 | 2014-06-18 | 北京优炫软件股份有限公司 | 多级过滤防火墙***及多级过滤方法 |
-
2018
- 2018-05-14 CN CN201810455978.5A patent/CN108737409A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932375A (zh) * | 2012-11-22 | 2013-02-13 | 北京奇虎科技有限公司 | 网络访问行为的防护方法和装置 |
CN103873463A (zh) * | 2014-02-26 | 2014-06-18 | 北京优炫软件股份有限公司 | 多级过滤防火墙***及多级过滤方法 |
Non-Patent Citations (3)
Title |
---|
刘博: "《Window CE.NET平台基于NDIS中间层驱动的包过滤程序设计与实现》", 《中国优秀硕士论文辑》 * |
彭议民: "《一个融合多种隐藏技术的远程监控***设计与实现》", 《中国优秀硕士论文辑》 * |
陈锦标等: "基于NDIS中间层驱动的帧过滤设计与实现", 《微计算机信息》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10659498B2 (en) | Systems and methods for security configuration | |
US7840696B2 (en) | Apparatus and method for classifier identification | |
CN105794172B (zh) | 网络设备和用于在网络设备中处理报文的方法 | |
JP6410547B2 (ja) | ネットワーク動作アーチファクトの順序によるマルウェアの分類 | |
CN104954271B (zh) | Sdn网络中的数据包处理方法和装置 | |
CN115037575A (zh) | 报文处理的方法和装置 | |
US20150347012A1 (en) | System and method of interleaving data retrieved from first and second buffers | |
EP3906649B1 (en) | Securing network-based compute resources using tags | |
CN104408190B (zh) | 基于Spark的数据处理方法及装置 | |
CN106790170B (zh) | 一种数据包过滤方法及装置 | |
CN109597582A (zh) | 一种数据处理方法及相关设备 | |
US20170180253A1 (en) | Hash-based packet classification with multiple algorithms at a network processor | |
CN101263464A (zh) | 基于帧的数据传送并行处理 | |
CN103106364A (zh) | 程序分析***和方法 | |
WO2017058188A1 (en) | Identification of an sdn action path based on a measured flow rate | |
JP2006512662A5 (zh) | ||
US10375214B2 (en) | Emulating FICON over IP | |
CN106959927A (zh) | 获取虚拟机中的逻辑分区的位置信息的方法及装置 | |
CN107070766A (zh) | 基于软件定义数据平面可编程语言的虚拟网络构建方法 | |
US7779464B2 (en) | System security approaches utilizing a hierarchical memory system | |
US10616116B1 (en) | Network traffic load balancing using rotating hash | |
CN108737409A (zh) | 一种基于ndis驱动的数据传输方法 | |
US11496394B2 (en) | Internet of things (IoT) device identification on corporate networks via adaptive feature set to balance computational complexity and model bias | |
US20170214626A1 (en) | Application based link selection based on link characteristics | |
CN105099942B (zh) | 一种数据包处理方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181102 |
|
RJ01 | Rejection of invention patent application after publication |