CN104333533B - 一种用于工业控制系统网络的数据包零拷贝获取方法 - Google Patents
一种用于工业控制系统网络的数据包零拷贝获取方法 Download PDFInfo
- Publication number
- CN104333533B CN104333533B CN201410466615.3A CN201410466615A CN104333533B CN 104333533 B CN104333533 B CN 104333533B CN 201410466615 A CN201410466615 A CN 201410466615A CN 104333533 B CN104333533 B CN 104333533B
- Authority
- CN
- China
- Prior art keywords
- packet
- kernel module
- data
- network
- nodes
- 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.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种用于工业控制系统网络的数据包零拷贝获取方法,本发明使用经过改进优化的零拷贝技术,通过减少接口数据的拷贝次数以及一些控制结构,提高了数据包获取过程的效率和实时性。通过绕过系统协议栈,直接从网卡物理层到用户应用的“零拷贝”技术可以轻松的实时获取超高速率下的网络数据包;同时本发明的数据包捕获主机位于网络其他主机的侧面并联的方式,既采集了数据,又不影响网络原有数据包流转,实现了数据的高效捕获。
Description
技术领域
本发明属于网络安全技术,特别涉及一种用于工业控制系统网络的数据包零拷贝获取方法。
背景技术
在工业网络系统中,系统的安全性非常重要,因此需要一些应用系统来保障系统的安全稳定,如入侵检测系统、安全审计系统等等。这些系统需要对网络中的数据包进行捕获、分析和记录,同时为了保证不影响系统的正常通信活动,通常将系统设计为一个数据链路层的旁路。
为了满足这一需求,通常的方法是通过libpcap接口库来抓包,libpcap的包捕获机制就是在数据链路层加一个旁路处理。当一个数据包到达网络接口,从网络设备物理层向操作系统提交时,libpcap首先利用POSIX标准的socket直接链路层访问接口(以不同的操作系统类型而有不同的具体实现)在数据经过链路层的过程中获得该数据包的拷贝,再将数据包发给过滤器。过滤器根据用户定义的过滤规则对数据包进行逐一匹配,匹配成功则放入内核中的缓冲区,并在用户请求时拷贝到用户态指定的缓冲空间,匹配失败则直接丢弃。如果没有设置过滤规则,所有数据包都将被缓冲并传递给用户。
随着硬件和网络技术的不断发展,网络的传输速率和吞吐量也逐渐变大,而libpcap的通过多次拷贝(至少两次以上)而进行抓包的方式也相应地成为了系统效率的瓶颈,以至于在高数据流量的网络环境下,采用libpcap抓包的系统的性能大大降低。
其中,工业控制系统网络的数据包一般情况下分为三类,第一为周期性数据,即一些传感器的周期性采集数据,这类数据量事先为可预知的且有严格时限限制;第二类为非周期紧急数据,包括一些报警和控制命令等,这些数据的发生是随机不可预知的,但是也有严格时限要求;第三类为非周期的一般数据,比如一些视频数据和历史数据库备份的数据流,这类数据虽不要求严格的时限,但是也要求不要丢包且数据无误。工业控制系统的网络数据流有严格的实时性限制,如平常的第一类和第二类数据,即使数据量不大的时候,对大部分数据包也有固定的时限(死期),所以网络设备或主机会预先分配资源且预留给这些实时性严格的数据,这时如果网络监测或采集的数据包获取程序运行在策略严格预置的枢纽主机上,很可能会影响性能及策略流量配置的主机的效率,甚至破坏数据包的实时性;当网络数据包瞬时流量非常大的时候,通常为第三类数据不定 期的出现的时候,可能网络个节点数据包速率非常快,这样即使数据包获取主机并联在网络中,但用传统pcap抓包内核用户态多次拷贝的方式也很有可能捕获速率低于网络数据包速率而产生丢包或乱序包,成为瓶颈。
发明内容
发明目的:本发明为了克服现有技术中存在的不足,本发明提供一种能够保证数据包实时性,并有效提高数据包捕获速度和质量的用于工业控制系统网络的数据包获取方法。
发明内容:为解决上述技术问题,本发明提供了一种用于工业控制系统网络的数据包零拷贝获取方法,包括以下步骤:
步骤1,加载内核模块,指定需要获取数据包的网络接口;即设定网卡名称;
步骤2,初始化内核模块,其中包括分配内核模块和用户程序的共享内存区域,所述共享的内存区域分配在用户态区;
步骤3,格式化和结构化共享内存区的数据模型,并将共享内存区的数据模型中各部分设置初始状态;
步骤4,创建用于用户态和内核模块之间通信交互的虚拟字符设备,并将字符设备返回给用户态以加载;
步骤5,用户程序通过虚拟字符设备通知内核模块,开始数据包零拷贝获取操作;
步骤6,内核模块经过准备工作后,开始获取网卡链路层数据包,并从网卡直接写到共享内存区域;
步骤7,内核模块把原始的链路层数据包进行TCP流表重组;如果数据包在TCP流表内组织为顺序包,那么作为就绪包处理,设置一定标志位。内核模块通知用户态就绪数据包已经到达,用户态取下数据包后,做应用处理;
步骤8,用户态处理完数据包后,通知内核模块数据包以处理完成,内核模块将处理完数据包从共享内存区中删除,将删除后的空间给后面的数据包获取过程使用。
进一步,所述步骤2中共享内存区域是通过内核模块与用户态之间映射形成,主要方法为:利用alloc_pages函数申请物理页,然后使用vmap将申请的物理页映射到内核模块,再通过vm_insert_page函数将申请的物理页插入到用户地址空间;其中,所述alloc_pages函数用于在内核模块中申请物理内存页框的函数;所述vmap函数用于把申请的物理页框的内容映射到内核模块虚拟地址的一段连续地址;所述 vm_insert_page函数用于把物理页框映射到用户进程虚拟地址的一块连续地址。这样可以达到大内存映射的效果。
进一步,所述步骤3中共享内存区的数据模型包括五部分,分别为内存管理结构体、哈希表、连接结点、数据存储管理单元和数据存放区块。
进一步,所述步骤6中内核模块进行的准备工作主要包括,首先通过虚拟字符设备的mmap函数申请映射一块设备空间用作内核模块与用户程序之间通信存储临时消息;然后判断网卡驱动是否运行,如运行则不进行操作,如果网卡驱动不运行则把网卡的数据缓冲区替换为所述共享内存区,最后,使网卡驱动继续运行。这就大大减少了数据的拷贝开销,提高了抓包效率。
进一步,所述数据存储管理单元被组织成一个双向循环链表,其中有三个控制结点:head、use和tail,所述head表示数据包管理链表的头节点;所述use表示数据包管理链表的中间节点;所述tail表示数据包管理链表的尾节点;其中,head和use节点之间是用户态使用中的节点,use和tail节点之间是内核态使用中的节点,tail和head节点之间是目前空闲中的节点,所述网卡得到数据包后,首先将head和use节点之间已经处理完成的结点放到ail和head节点之间的末端,然后从tail和head节点之间取第一个结点放到use和tail节点之间用于存放网卡直接内存存取(简称DMA)过来的数据;use和tail节点之间的结点经过处理之后或被丢弃或移动到head和use节点之间供用户程序处理。这样可以有效的提高数据包捕获的效率。
进一步,所述数据存储管理单元被组织成的双向循环链表中使用延时函数。利用延时函数,这样对双向循环链表操作时,无需添加自旋锁就可以实现操作的有序进行,可以提高系统的运行效率。
进一步,所述步骤7中内核模块把原始的链路层数据包进行TCP流表重组的方法为:通过数据包的IP头获得源IP和目的IP,从TCP头获得源端口和目的端口,通过源IP、目的IP、源端口和目的端口的四元组来存放到不同的连接中;然后通过TCP机制和ACK、SYN、FIN控制包,将数据包重组成为数据流。
工作原理:本发明采用一种零拷贝技术,所谓零拷贝技术的基本思想是:数据包从网络设备到用户程序空间传递的过程中,减少数据拷贝的次数,减少系统调用,实现CPU的零参与,彻底消除CPU在这方面的负载。本发明使用的是经过改进优化的零拷贝技术,通过减少接口数据的拷贝次数以及一些控制结构,实现了数据的高效捕获。
有益效果:与现有技术相比,本发明的绕过系统协议栈,直接从网卡物理层到用户应用的“零拷贝”技术可以轻松的实时获取超高速率下的网络数据包;同时本发明的数据包捕获主机位于网络其他主机的侧面并联的方式,既采集了数据,又不影响网络原有数据包流转,实现了数据的高效捕获。
附图说明
图1为共享内存区的数据结构示意图;
图2为双向循环链表的逻辑结构示意图;
图3为双向循环链表组织结构示意图;
图4为数据流状态管理机工作过程示意图。
具体实施方式
下面结合附图对本发明的技术方案作进一步解释。
本发明提供了一种用于工业控制系统网络的数据包零拷贝获取方法,包括以下步骤:
步骤1,加载内核模块,指定需要获取数据包的网络接口;即设定网卡名称。
步骤2,初始化内核模块,其中包括分配内核模块和用户程序的共享内存区域,所述共享的内存区域分配在用户态区。
其中,共享内存区域是通过内核模块与用户态之间映射形成,主要方法为:利用alloc_pages函数申请物理页,然后使用vmap将申请的物理页映射到内核模块,再通过vm_insert_page函数将申请的物理页插入到用户地址空间;其中,alloc_pages函数用于在内核模块中申请物理内存页框的函数;vmap函数用于把申请的物理页框的内容映射到内核模块虚拟地址的一段连续地址;vm_insert_page函数用于把物理页框映射到用户进程虚拟地址的一块连续地址。用户地址空间是一个虚拟的地址空间,每个用户程序都有自己的一个地址空间,可存放64位表示的最大值个地址,而实际的物理内存需要映射到用户程序虚拟空间,用户程序才可以使用,插入的过程就是把一块物理内存和用户程序的一段虚拟地址相对应的过程。
步骤3,格式化和结构化共享内存区的数据模型,并将共享内存区的数据模型中各部分设置初始状态。如图1所示,其中,共享内存区的数据模型包括五部分,分别为内存管理结构体、哈希表、连接结点、数据存储管理单元和数据存放区块。这五部分在工作时至少需要定义16个指针,具体见如下程序:
其中,用于内存管理结构体的指针有char*space_head_kernel,char*space_head_user和long off;用于哈希表的指针有hlist_head*hash和unsigned long hash_item_count;用于连接节点的指针有con_t*con_first,list_head con_head,unsignedlong con_count和unsigned long con_free;用于数据存储管理单元的指针有unsignedlong buf_count和unsigned long buf_free;用于数据存放区块的指针有buf_mgr_t*first,list_head head,list_head tail和list_head use。
步骤4,创建用于用户态和内核模块之间通信交互的虚拟字符设备,并将字符设备返回给用户态以加载。
步骤5,用户程序通过虚拟字符设备通知内核模块,开始数据包零拷贝获取操作。
步骤6,内核模块经过准备工作后,开始获取网卡链路层数据包,并从网卡直接写到共享内存区域。
首先通过虚拟字符设备的mmap函数申请映射一块设备空间用作内核模块与用户程序之间通信存储临时消息;然后判断网卡驱动是否运行,如运行则不进行操作,如果网卡驱动不运行则修改E1000E的网卡驱动(版本2.5.4),把网卡的数据缓冲区替换为所述共享内存区,使得数据来临时网卡驱动直接把数据DMA方式存储到申请的缓冲区中,最后,使网卡驱动继续运行。
准备工作结束后,如图2~3所示,数据存储管理单元被组织成一个双向循环链表,其中有三个控制结点:head、use和tail,所述head表示数据包管理链表的头节点;所述use表示数据包管理链表的中间节点;所述tail表示数据包管理链表的尾节点;其中,head和use节点之间是用户态使用中的节点,use和tail节点之间是内核态使用中的节点,tail和head节点之间是目前空闲中的节点,所述网卡得到数据包后,调用接口首先将head和use节点之间已经处理完成的结点放到ail和head节点之间的末端,然后从tail和head节点之间取第一个结点放到use和tail节点之间用于存放网卡DMA过来的数据;use和tail节点之间的结点经过处理之后或被丢弃或移动到head和use节点之间供用户程序处理。
其中,数据存储管理单元被组织成的双向循环链表中使用延时函数。利用延时函数,使得对双向循环链表操作时,无需添加自旋锁就可以实现操作的有序进行。
步骤7,内核模块把原始的链路层数据包进行TCP流表重组;如果数据包在TCP流表内组织为顺序包,那么作为就绪包处理,设置一定标志位。内核模块通知用户态就绪数据包已经到达,用户态取下数据包后,做应用处理。
其中,内核模块把原始的链路层数据包进行TCP流表重组的方法为:通过数据包的IP头获得源IP和目的IP,从TCP头获得源端口和目的端口,通过源IP、目的IP、源端口和目的端口的四元组来存放到不同的连接中;然后通过TCP机制和ACK、SYN、FIN控制包,将数据包重组成为数据流。在重组过程中,连接会有许多不同的状态,为了管理这些状态,设计了简单高效的数据流状态管理机。如图4所示,数据流状态管理机工作过程为开始全部是空闲状态,当内核模块启动时把网卡驱动指向的缓冲区修改为其中的一部分空闲的数据包,然后把这些数据包设置为dma状态(即为等待数据)。数据到来后,写入到dma状态的数据包空间里,这时状态变为dma完成。完成之后把数据包交由过滤器过滤,这时设置成过滤状态。这时有一个分支,如果数据包被过滤掉了,那么 就把这个包重新置成空闲状态备用,如果数据包没有被过滤掉,那么交由流表排序模块排序,同时置成排序状态。在排序过程中,数据包的走向也有两种方向,如果数据包在排序时发现为重传包或错误包,那么置包空闲态备用,如果数据包排序合理且为有序状态,则交由用户程序进行读取使用,并置成用户态。最后用户态的数据包使用完后,再置回空闲态备用。
步骤8,用户态处理完数据包后,通知内核模块数据包以处理完成,内核模块将处理完数据包从共享内存区中删除,将删除后的空间给后面的数据包获取过程使用。
将本发明应用到工程中数据库审计系统,该系统的应用方式为作为实际数据库系统主机的旁路,通过交换机端口镜像功能,把数据包发送给数据库审计主机,而审计主机应用了本发明的零拷贝数据包获取模块,快速捕获数据包,不需拷贝,按TCP包序直接放到用户态审计程序处理,大大加快了数据包获取效率。如表1所示,通过我们的实验,得到以下本发明方法和传统pcap方法的对比参数。
表1
Claims (7)
1.一种用于工业控制系统网络的数据包零拷贝获取方法,其特征在于:包括以下步骤:
步骤1,加载内核模块,指定需要获取数据包的网络接口;
步骤2,初始化内核模块,其中包括分配内核模块和用户程序的共享内存区域,所述共享的内存区域分配在用户态区;
步骤3,格式化和结构化共享内存区的数据模型,并将共享内存区的数据模型中各部分设置初始状态;
步骤4,创建用于用户态和内核模块之间通信交互的虚拟字符设备,并将虚拟字符设备返回给用户态以加载;
步骤5,用户程序通过虚拟字符设备通知内核模块,开始数据包零拷贝获取操作;
步骤6,内核模块经过准备工作后,开始获取网卡链路层数据包,并从网卡直接写到共享内存区域;
步骤7,内核模块把原始的链路层数据包进行TCP流表重组,这其中用到序列号和应答号信息;如果数据包在TCP流表内组织为顺序包,那么作为就绪包处理,设置一个定标志位;内核模块通知用户态就绪数据包已经到达,用户态取下数据包后,做应用处理;如果数据包在TCP流表内组织不为顺序包,由TCP流表重组功能暂时缓存,等待直到后面数据包到达后可以组成顺序包,再进行就绪处理;
步骤8,用户态处理完数据包后,通知内核模块数据包以处理完成,内核模块将处理完数据包从共享内存区中删除,将删除后的空间给后面的数据包获取过程使用。
2.根据权利要求1所述的用于工业控制系统网络的数据包零拷贝获取方法,其特征在于:所述步骤2中共享内存区域是通过内核模块与用户态之间映射形成,主要方法为:利用alloc_pages函数申请物理页,然后使用vmap函数将申请的物理页映射到内核模块,再通过vm_insert_page函数将申请的物理页插入到用户地址空间;其中,所述alloc_pages函数用于在内核模块中申请物理内存页框的函数;所述vmap函数用于把申请的物理页框的内容映射到内核模块虚拟地址的一段连续地址;所述vm_insert_page函数用于把物理页框映射到用户进程虚拟地址的一块连续地址。
3.根据权利要求1所述的用于工业控制系统网络的数据包零拷贝获取方法,其特征在于:所述步骤3中共享内存区的数据模型包括五部分,分别为内存管理结构体、哈希表、连接结点、数据存储管理单元和数据存放区块。
4.根据权利要求1所述的用于工业控制系统网络的数据包零拷贝获取方法,其特征在于:所述步骤6中内核模块进行的准备工作主要包括,首先通过虚拟字符设备的mmap函数申请映射一块设备空间用作内核模块与用户程序之间通信存储临时消息;然后判断网卡驱动是否运行,如运行则不进行操作,如果网卡驱动不运行则把网卡的数据缓冲区替换为所述共享内存区,最后,使网卡驱动继续运行。
5.根据权利要求3所述的用于工业控制系统网络的数据包零拷贝获取方法,其特征在于:所述数据存储管理单元被组织成一个双向循环链表,其中有三个控制结点:head、use和tail,所述head表示数据包管理链表的头节点;所述use表示数据包管理链表的中间节点;所述tail表示数据包管理链表的尾节点;其中,head和use节点之间是用户态使用中的节点,use和tail节点之间是内核态使用中的节点,tail和head节点之间是目前空闲中的节点,所述网卡得到数据包后,调用接口首先将head和use节点之间已经处理完成的结点放到ail和head节点之间的末端,然后从tail和head节点之间取第一个结点放到use和tail节点之间用于存放网卡直接内存存取过来的数据;use和tail节点之间的结点经过处理之后或被丢弃或移动到head和use节点之间供用户程序处理。
6.根据权利要求5所述的用于工业控制系统网络的数据包零拷贝获取方法,其特征在于:所述数据存储管理单元被组织成的双向循环链表中使用延时函数。
7.根据权利要求1所述的用于工业控制系统网络的数据包零拷贝获取方法,其特征在于:所述步骤7中内核模块把原始的链路层数据包进行TCP流表重组的方法为:通过数据包的IP头获得源IP和目的IP,从TCP头获得源端口和目的端口,通过源IP、目的IP、源端口和目的端口的四元组来存放到不同的连接中;然后通过TCP机制和ACK、SYN、FIN控制包,将数据包重组成为数据流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410466615.3A CN104333533B (zh) | 2014-09-12 | 2014-09-12 | 一种用于工业控制系统网络的数据包零拷贝获取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410466615.3A CN104333533B (zh) | 2014-09-12 | 2014-09-12 | 一种用于工业控制系统网络的数据包零拷贝获取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104333533A CN104333533A (zh) | 2015-02-04 |
CN104333533B true CN104333533B (zh) | 2017-09-08 |
Family
ID=52408185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410466615.3A Expired - Fee Related CN104333533B (zh) | 2014-09-12 | 2014-09-12 | 一种用于工业控制系统网络的数据包零拷贝获取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104333533B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209684B (zh) * | 2016-07-14 | 2019-08-02 | 深圳市永达电子信息股份有限公司 | 一种基于时间触发转发检测调度的方法 |
CN107480080B (zh) * | 2017-07-03 | 2021-03-23 | 深圳致星科技有限公司 | 一种基于rdma的零拷贝数据流 |
CN107908365A (zh) * | 2017-11-14 | 2018-04-13 | 郑州云海信息技术有限公司 | 用户态存储系统数据交互的方法、装置及设备 |
US10733096B2 (en) | 2017-11-22 | 2020-08-04 | Samsung Electronics Co., Ltd. | System and method for frame buffer |
CN110830325B (zh) * | 2019-11-05 | 2021-05-14 | 北京云杉世纪网络科技有限公司 | 一种自适应的网络旁路路径网流方向推测方法及系统 |
CN114817641B (zh) * | 2022-02-19 | 2023-06-20 | 英赛克科技(北京)有限公司 | 一种工业数据采集方法、装置及电子设备 |
CN115220936B (zh) * | 2022-09-20 | 2023-01-10 | 之江实验室 | 一种多类传感器数据在控制器中零拷贝的方法和装置 |
CN116455612B (zh) * | 2023-03-23 | 2023-11-28 | 京信数据科技有限公司 | 一种隐私计算中间数据流零拷贝装置及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267361A (zh) * | 2008-05-09 | 2008-09-17 | 武汉飞思科技有限公司 | 一种基于零拷贝技术的高速网络数据包捕获方法 |
CN102761517A (zh) * | 2011-04-25 | 2012-10-31 | 工业和信息化部电信传输研究所 | 一种高速网络的内容还原方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8279885B2 (en) * | 2007-09-25 | 2012-10-02 | Packeteer, Inc. | Lockless processing of command operations in multiprocessor systems |
-
2014
- 2014-09-12 CN CN201410466615.3A patent/CN104333533B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267361A (zh) * | 2008-05-09 | 2008-09-17 | 武汉飞思科技有限公司 | 一种基于零拷贝技术的高速网络数据包捕获方法 |
CN102761517A (zh) * | 2011-04-25 | 2012-10-31 | 工业和信息化部电信传输研究所 | 一种高速网络的内容还原方法 |
Non-Patent Citations (1)
Title |
---|
《基于多核处理器的无锁零拷贝数据包转发框架》;肖月振,华蓓;《计算机工程》;20131215(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104333533A (zh) | 2015-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104333533B (zh) | 一种用于工业控制系统网络的数据包零拷贝获取方法 | |
US20220100697A1 (en) | High level instructions with lower-level assembly code style primitives within a memory appliance for accessing memory | |
Liu et al. | Offloading distributed applications onto smartnics using ipipe | |
US10841245B2 (en) | Work unit stack data structures in multiple core processor system for stream data processing | |
KR100437146B1 (ko) | 지능망 인터페이스 장치 및 통신 가속 시스템 | |
US9083539B2 (en) | Method and apparatus for multicast packet reception | |
US11258796B2 (en) | Data processing unit with key value store | |
US8949838B2 (en) | Multi-threaded processing with hardware accelerators | |
US9864633B2 (en) | Network processor having multicasting protocol | |
US20100293353A1 (en) | Task queuing in a network communications processor architecture | |
CN103020257B (zh) | 数据操作的实现方法和装置 | |
CN106209684B (zh) | 一种基于时间触发转发检测调度的方法 | |
CN107948334A (zh) | 基于分布式存储系统的数据处理方法 | |
CN103617142B (zh) | 一种基于pf_ring的高速网络数据采集方法 | |
CN107179878A (zh) | 基于应用优化的数据存储的方法和装置 | |
CN106850740A (zh) | 一种高吞吐数据流处理方法 | |
WO2018032510A1 (zh) | 应用于存储设备中的访问请求的处理方法和装置 | |
CN107864391A (zh) | 视频流缓存分发方法及装置 | |
DE112021000155T5 (de) | Vorrichtungen und verfahren für netzwerknachrichtensequenzierung | |
US20040205145A1 (en) | Data transfer method | |
CN111831596B (zh) | 一种rtos串口网络传输方法及装置 | |
CN107453948A (zh) | 一种网络测量数据的存储方法及系统 | |
CN112511633B (zh) | 一种海量小文件分块传输的方法、系统、设备及介质 | |
US11552907B2 (en) | Efficient packet queueing for computer networks | |
CN106713462A (zh) | 一种网络数据包处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170908 |
|
CF01 | Termination of patent right due to non-payment of annual fee |