CN103618722B - 基于vfs扫描网络传输数据的方法及系统 - Google Patents
基于vfs扫描网络传输数据的方法及系统 Download PDFInfo
- Publication number
- CN103618722B CN103618722B CN201310639324.5A CN201310639324A CN103618722B CN 103618722 B CN103618722 B CN 103618722B CN 201310639324 A CN201310639324 A CN 201310639324A CN 103618722 B CN103618722 B CN 103618722B
- Authority
- CN
- China
- Prior art keywords
- data
- write
- length
- vfs
- reading
- 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.)
- Active
Links
Landscapes
- Communication Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于VFS扫描网络传输数据的方法及系统,其中的方法包括,在内存中通过VFS系统调用预定义的函数在内存中创建内存队列;向内存队列分次写入数据;从内存队列中读取本次写入的数据,如果本次写入的数据读取成功,则对上一次写入内存队列并通过安全扫描的数据进行转发,同时对本次写入的数据进行安全扫描;如果本次写入的数据读取失败,则将本次读取数据的程序挂起。利用本发明,可以通过虚拟文件系统系统调用自定义的函数对网络传输数据进行操作,网络传输数据一直被当作一个整体处理,因此,文件不用缓存完整才能被转发,可以边扫描边转发,并且消耗的内存等同于基于文件块扫描消耗的内存,同时,又达到基于数据流扫描的效果。
Description
技术领域
本发明涉及无线网络领域,更为具体地,涉及一种基于VFS扫描网络传输数据的方法及系统。
背景技术
当前对于网络传输数据进行的安全性\合法性检测,主要分为两大类,一类是基于数据流扫描,一类是基于文件块扫描。对于HTTP等高响应需求的应用,如果使用基于文件块扫描传输中的大数据,例如下载的附件、视频流等,需要将该些附件和视频流先完整的保存到本地后,才能对其进行扫描,在扫描没有完成前,保存的数据不能被转发,导致网络传输延时。
而基于数据流扫描的实现技术相对复杂,并且对比基于文件块扫描更消耗内存。
因此,需要一种全新的扫描网络传输数据的方法。
发明内容
鉴于上述问题,本发明的目的是提供一种基于VFS扫描网络传输数据的方法及系统,已解决现有技术中采用基于数据流扫描网络传输数据时消耗内存大的问题和采用基于文件块扫描网络传输数据时造成网络传输延时的问题。
本发明提供一种基于VFS扫描网络传输数据的方法,包括:
在内存中通过VFS系统调用预定义的函数对网络传输的数据进行操作,该操作包括:
在内存中创建内存队列;
向内存队列分次写入数据;
从内存队列中读取本次写入的数据,如果本次写入的数据读取成功,则对上一次写入内存队列并通过安全扫描的数据进行转发,同时对本次写入的数据进行安全扫描;如果本次写入的数据读取失败,则将读取本次写入的数据的程序挂起。
本发明还提供一种基于VFS扫描网络传输数据的系统,用于在内存中通过VFS系统调用预定义的函数对网络传输的数据进行操作,该系统包括:
内存队列创建单元,用于在内存中创建内存队列;
数据写入单元,用于向内存队列写入数据;
数据读取单元,用于从内存队列读取写入的数据;
安全扫描单元,用于对读取成功的数据进行安全扫描;
程序挂起单元,用于将读取数据失败的程序挂起;
数据转发单元,对上一次写入内存队列并通过安全扫描的数据进行转发。
利用上述根据本发明的基于VFS扫描网络传输数据的方法及系统,通过虚拟文件系统(VFS)系统调用自定义的函数对网络传输数据进行操作,网络传输数据一直被当作一个整体处理,因此,文件不用缓存完整才能被转发,可以边扫描边转发,并且消耗的内存等同于基于文件块扫描消耗的内存,同时,又达到基于数据流扫描的效果。
为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
附图说明
通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
图1为基于文件块扫描的流程图;
图2为虚拟文件系统(VFS)的逻辑结构图;
图3为根据本发明的基于VFS扫描网络传输数据的方法的流程图;
图4为根据本发明的基于VFS扫描网络传输数据的方法的具体流程图;
图5为根据本发明实施例的基于VFS扫描网络传输数据的方法的流程图;
图6为根据本发明实施例的基于VFS扫描网络传输数据的系统的逻辑结构图。
在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施方式
在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。在其它例子中,为了便于描述一个或多个实施例,公知的结构和设备以方框图的形式示出。
对于基于文件块扫描的方式,首先需要扫描程序打开文件,然后通过libc库或者其他语言库调用Linux底层的系统调用(syscall)open/read/write三个函数来对数据进行操作,如图1所示,基于文件块的方式最大的缺陷就是扫描程序对数据的处理必须一次处理完,无法针对该次处理进行中间状态的保存,而基于数据流的扫描却能针对当前状态进行保存,当再来数据时,可以接着之前保存的状态进行接下去的处理。
本发明的解决思路就在于对数据的操作上。
首先,需要说明系统调用open/read/write函数的实现,Linux有一个称为VFS的虚拟文件系统,如图2所示,所有对于数据的操作系统调用到内核底层,会根据不同的文件系统,找对应不同的实现,文件系统可以自己定义,所以相应的实现也可以自己定义,也就是说,Linux提供了一种实现叫VFS,使用相同的文件系统,可以最终调用到自己定义的函数上。实现自己想实现的功能。
本发明的发明点就在于利用Linux的虚拟文件系统的特点定义了自己的操作函数,将对需要缓存的数据所进行的操作通过VFS进行了重新定义,也就是说,扫描程序还是调用文件系统,文件系统系统调用open/read/write函数,但执行到内核最低层,从原来的磁盘操作,变成了我们自己定义的内存操作。
以下将结合附图对本发明的具体实施例进行详细描述。
图3示出了根据本发明的基于VFS扫描网络传输数据的方法的流程。
如图3所示,本发明自定义的三个函数分别为Ne_open/Ne_read/Ne_write,Ne_open函数对应open函数,Ne_read函数对应read函数,Ne_write函数对应write函数,对比图1,现有技术对数据的打开、写入和读取操作全部由扫描程序执行,而在本发明中,数据的打开和读取操作由扫描程序执行,而数据的写入操作由转发程序执行,通过转发程序分担扫描程序的工作,可以降低扫描程序的负担,加快扫描程序的运行速度,更有效的处理数据。
通过上述的这种配合,让扫描程序感觉运行的时候一直都是一个完整的数据被处理,中间没有被其他事物打扰过,而对于转发程序来说,数据不用缓存完整才能被转发,可以边扫描边转发。
图4示出了根据本发明的基于VFS扫描网络传输数据的方法的具体流程。
如图4所示,通过VFS系统调用自定义的函数在内存中对网络传输的数据进行操作,该操作包括:
首先,在内存中创建内存队列(步骤S410);然后,向内存队列分次写入数据(步骤S420);从内存队列中读取本次写入的所述数据(步骤S430);如果本次写入的数据读取成功,则对上一次写入内存队列并通过安全扫描的数据进行转发,同时对本次写入的数据进行安全扫描;如果本次写入的数据读取失败,则将本次读取数据的程序挂起(步骤S440)。
需要说明的是,创建内存队列和写入数据是在转发程序中进行的,而打开内存队列和读取数据是在扫描程序中进行的,在不改变扫描程序和转发程本身的情况下,对数据进行操作。
为了更详细的说明本发明的基于VFS扫描网络传输数据的方法,图5示出了根据本发明实施例的基于VFS扫描网络传输数据的方法的流程。
如图5所示,本发明实施例的基于VFS扫描网络传输数据的方法包括:
步骤S500:转发程序通过VFS调用Ext2文件系统,Ext2文件系统系统在内存中创建内存队列;
具体地,作为示例,在内存创建一个先进先出队列,也就是FIFO队列,创建FIFO队列可以有多种方法,本发明不做限制。
步骤S510:扫描程序通过VFS调用Ext2文件系统,Ext2文件系统系统调用自定义的Ne_open函数打开步骤S500中创建的内存队列。
需要说明的是,Ext2文件系统打开文件的方式不变,还是通过系统调用open函数打开文件,只是执行到内核底层时,变成系统调用Ne_open函数打开内存队列,也就是说,Ne_open函数的定义是和linux的定义一致的,这样保证了系统的兼容性,以及确保对数据的操作能变成对流的操作,不需要额外修改原有的打开文件方式。
具体地,作为示例,Ne_open函数定义如下:
int neopen(const char*pathname,int flags)。
步骤S520:转发程序通过VFS调用Ext2文件系统,Ext2文件系统系统调用自定义的Ne_write函数向内存队列写入数据。
具体地,作为示例,Ne_write函数定义如下:
ssize_t write(int fd,const void*buf,size_t count)。
需要说明的是,Ne_write函数的定义是和linux的定义也是一致的,同样的为了保证系统的兼容性,也就是说,向已打开的文件内写入数据的方式不变,Ext2文件系统还是通过系统调用write函数向打开的文件内写入数据,但执行到内核底层时,变成系统调用Ne_write函数向内存队列写入数据。
还需要说明的是,转发程序在向内存队列写入数据的过程中,查看是否有读取数据的扫描程序挂起(程序不运行了),如果没有读取数据的扫描程序挂起,则转发程序进行常规的操作;如果有读取数据的扫描程序挂起,这种情况将在下面结合扫描程序读取数据的情况进行说明。
步骤S530:扫描程序通过VFS调用Ext2文件系统,Ext2文件系统系统调用自定义的Ne_read函数读取内存队列中写入的数据。
需要说明的是,Ne_read函数的定义是和linux的定义同样是一致的,都是为了保证系统的兼容性,也就是说,读取文件内写入的数据的方式不变,Ext2文件系统通过系统调用read函数读取文件内写入的数据,但执行到内核底层时,变成系统调用Ne_read函数读取内存队列中写入的数据。
具体地,作为示例,Ne_read函数定义如下:
ssize_t neread(int fd,void*buf,size_t count)。
判断读取数据成功的标准为:根据传输中的数据预设一段数据长度,如果读取的数据长度大于或等于预设的数据长度,则判断读取数据成功;如果读取的数据长度小于预设的数据长度,则记录读取的数据长度短于预设的数据长度的部分,相对于预设的数据长度来说,就是还需要继续读取的数据长度,再将读取数据的扫描程序挂起。
在步骤S520中,转发程序在向内存队列写入数据的过程中,查看到如果有读取数据的扫描程序挂起,在向内存队列写入数据后,判断写入的数据长度是否大于或等于还需继续读取的数据长度,如果写入的数据长度大于或等于上述记录的还需继续读取的数据长度,则将挂起的读取数据的扫描程序唤醒,将两次写入的数据看作一个整体作为需读取的数据;如果写入的数据长度小于还需继续读取的数据长度,则记录写入的数据长度小于还需继续读取的数据长度的部分;记录扫描程序需读取数据的长度是随着转发程序每次写入的数据长度而递减,直到转发程序写入的数据长度大于或等于扫描程序需读取的数据长度为止,唤醒挂起的读取数据的扫描程序,将挂起的扫描程序中的数据看作一个整体作为需读取的数据。
需要说明的是,扫描程序挂起表示扫描程序不进行读取数据的工作了,也就是说,在读取数据的扫描程序挂起时,如果转发程序写入的数据一直小于需继续读取的数据,扫描程序一直处于挂起状态,不读取数据,直到转发程序写入的数据一直大于或等于需继续读取的数据,唤醒扫描程序继续进行读取数据的工作,扫描程序将这些写入的数据作为一个整体进行读取。
具体地,作为示例,假设预设的数据长度为1000,第一次写入的数据为200,在读取数据时,写入的数据长度小于预设的数据长度,还需要继续读取的数据为800,将第一次读取数据的扫描程序挂起,如果第二次写入数据长度大于或等于800,则两次读入的数据合并到一起的长度大于预设的数据长度,将挂起的第一次读取数据的扫描程序唤醒,判断合并到一起的数据读取成功;如果第二次写入的数据长度为300,则两次读入的数据合并到一起的长度小于预设的数据长度,不唤醒读取数据的扫描程序,此时,第三次需读取的数据长度为500,如果第三次写入的数据长度小于500,再记录需读取的数据长度,直到写入的数据长度大于或等于需读取的数据长度为止,唤醒挂起的读取数据的扫描程序,扫描程序将这些写入的数据作为一个整体继续读取。
其中,预设的数据长度随着每次缓存在内存中的数据而变化。
步骤S540:扫描程序对读取成功的数据进行安全扫描。
如果数据通过安全扫描,转发程序将上次通过安全扫描的数据从内存队列中转发出去;如果数据没通过安全扫描,则对不安全的数据进行拦截。
需要说明的是,扫描程序和转发程序可以并行操作,扫描程序和转发程序本身只能进行单一的操作,也就是说,扫描程序对转发程序第一次的写入数据进行操作时不能同时对第二次写入的数据进行操作,为了提升工作效率,可以一台转发程序配合多台扫描程序使用。
由于扫描程序没有返回数据安全前,不能将所有数据都转发,而基于上述方式的转发,当扫描程序发现读取成功的数据有问题时,则将扫描程序中没有发送的数据阻断,不让发送,这样就做到了拦截威胁的作用。
由于转发程序是对之前通过安全扫描的数据进行转发,如果最后的数据通过安全扫描,转发程序则是通过检测数据的结束符来对最后的数据进行转发。
与上述方法相对应,本发明还提供一种基于VFS扫描网络传输数据的系统。图6示出了根据本发明实施例的基于VFS扫描网络传输数据的系统的逻辑结构。
如图6所示,本发明提供的基于VFS扫描网络传输数据的系统600,用于在内存中通过VFS系统调用预定义的函数对网络传输的数据进行操作,该系统包括内存队列创建单元610、数据写入单元611、数据读取单元612、安全扫描单元613、程序挂起单元614、数据转发单元615。
其中,内存队列创建单元610,用于在内存中创建内存队列;数据写入单元611,用于向内存队列分次写入数据;数据读取单元612,用于从内存队列中读取本次写入的数据;安全扫描单元613,用于对本次写入的读取成功的数据进行安全扫描;程序挂起单元614,用于将读取本次写入的数据失败的程序挂起;数据转发单元615,用于对上一次写入内存队列并通过安全扫描的数据进行转发。
其中,数据读取单元包括数据长度记录模块(图未示出),用于记录需续读的数据长度;预设数据长度判断模块(图未示出),用于根据预设的数据长度对写入的数据进行判定,如果写入的所述数据的长度大于或等于预设的数据长度,则判定写入的所述数据读取成功;如果写入的所述数据的长度小于预设的数据长度,则数据长度记录模块记录需续读的数据长度,判断写入的所述数据读取失败,程序挂起单元将读取所述数据失败的程序挂起。
其中数据写入单元包括程序唤醒模块(图未示出),用于唤醒挂起的读取数据的程序;续读数据长度判断模块(图未示出),用于判断写入的数据的长度是否大于或等于需续读的数据长度;程序挂起检测模块(图未示出),用于检测是否有读取数据的程序挂起;如果有读取数据的程序挂起,则在内存队列写入数据后,续读数据长度判断模块判断写入的所述数据的长度是否大于或等于需续读的数据长度,如果写入的所述数据的长度大于或等于需续读的数据长度,则程序唤醒模块唤醒挂起的读取数据的程序。
利用上述根据本发明的基于VFS扫描网络传输数据的方法及系统,通过虚拟文件系统(VFS)系统调用自定义的函数对网络传输数据进行操作,网络传输数据一直被当作一个整体处理,因此,文件不用缓存完整才能被转发,可以边扫描边转发,并且消耗的内存等同于基于文件块扫描消耗的内存,同时,又达到基于数据流扫描的效果。
如上参照附图以示例的方式描述了根据本发明的基于VFS扫描网络传输数据的方法及系统。但是,本领域技术人员应当理解,对于上述本发明所提出的基于VFS扫描网络传输数据的方法及系统,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。
Claims (3)
1.一种基于VFS扫描网络传输数据的方法,包括:
在内存中通过VFS系统调用预定义的函数对网络传输的数据进行操作,所述操作包括:
在内存中创建内存队列;
通过VFS系统调用自定义的Ne_write函数向所述内存队列分次写入数据,所述Ne_write函数定义为ssize_t write(int fd,const void*buf,size_t count);
通过VFS系统调用自定义的Ne_read函数从所述内存队列中读取本次写入的数据,所述Ne_read函数定义为ssize_t neread(int fd,void*buf,size_t count);如果本次写入的所述数据读取成功,则对上一次写入所述内存队列并通过安全扫描的数据进行转发,同时对本次写入的所述数据进行安全扫描;如果本次写入的所述数据读取失败,则将读取本次写入的所述数据的程序挂起;其中,判断读取数据成功的标准为:根据预设的数据长度对本次写入的所述数据进行判定,如果本次写入的所述数据的长度大于或等于预设的数据长度,则判定本次写入的所述数据读取成功;如果本次写入的所述数据的长度小于预设的数据长度,则判断本次写入的所述数据读取失败,并记录需续读的数据长度;以及,
再次向内存队列写入数据时,检测是否有读取数据的程序挂起,如果有读取数据的程序挂起,则在所述内存队列写入数据后,判断写入的所述数据的长度是否大于或等于需续读的数据长度,如果写入的所述数据的长度大于或等于需续读的数据长度,则唤醒挂起的读取数据的程序。
2.如权利要求1所述的基于VFS扫描网络传输数据的方法,在判断写入的数据的长度是否大于或等于需续读的数据长度的过程中,
如果写入的数据的长度小于需续读的数据长度,则不唤醒挂起的读取数据的程序,直到写入的数据的长度大于或等于需续读的数据长度为止,唤醒挂起的读取数据的程序,其中,需续读的数据长度随着每次写入的数据的长度而递减,直到写入的数据的长度大于或等于需续读的数据长度为止。
3.一种基于VFS扫描网络传输数据的系统,用于在内存中通过VFS系 统调用预定义的函数对网络传输的数据进行操作,所述系统包括:
内存队列创建单元,用于在内存中创建内存队列;
数据写入单元,用于通过VFS系统调用自定义的Ne_write函数向所述内存队列分次写入数据,所述Ne_write函数定义为ssize_t write(int fd,const void*buf,size_t count);所述数据写入单元包括:程序唤醒模块,用于唤醒挂起的读取数据的程序;续读数据长度判断模块,用于判断写入的数据的长度是否大于或等于需续读的数据长度;程序挂起检测模块,用于检测是否有读取数据的程序挂起;如果有读取数据的程序挂起,则在内存队列写入数据后,续读数据长度判断模块判断写入的所述数据的长度是否大于或等于需续读的数据长度,如果写入的所述数据的长度大于或等于需续读的数据长度,则程序唤醒模块唤醒挂起的读取数据的程序;
数据读取单元,用于通过VFS系统调用自定义的Ne_read函数从所述内存队列中读取本次写入的数据,所述Ne_read函数定义为ssize_t neread(int fd,void*buf,size_t count);所述数据读取单元包括:数据长度记录模块,用于记录需续读的数据长度;预设数据长度判断模块,用于根据预设的数据长度对写入的数据进行判定,如果写入的所述数据的长度大于或等于预设的数据长度,则判定写入的所述数据读取成功;如果写入的所述数据的长度小于预设的数据长度,则数据长度记录模块记录需续读的数据长度,判断写入的所述数据读取失败,程序挂起单元将读取所述数据失败的程序挂起;
程序挂起单元,用于将读取本次写入的数据失败的程序挂起;
安全扫描单元,用于对本次写入的读取成功的数据进行安全扫描;
数据转发单元,用于对上一次写入所述内存队列并通过安全扫描的数据进行转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310639324.5A CN103618722B (zh) | 2013-11-29 | 2013-11-29 | 基于vfs扫描网络传输数据的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310639324.5A CN103618722B (zh) | 2013-11-29 | 2013-11-29 | 基于vfs扫描网络传输数据的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103618722A CN103618722A (zh) | 2014-03-05 |
CN103618722B true CN103618722B (zh) | 2016-08-24 |
Family
ID=50169426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310639324.5A Active CN103618722B (zh) | 2013-11-29 | 2013-11-29 | 基于vfs扫描网络传输数据的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103618722B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569651A (zh) * | 2019-08-27 | 2019-12-13 | 北京明朝万达科技股份有限公司 | 基于国产操作系统的文件透明加解密方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309400A (zh) * | 2008-06-27 | 2008-11-19 | 上海华为技术有限公司 | 一种流媒体业务停顿信息获取方法及装置 |
CN102170459A (zh) * | 2010-12-22 | 2011-08-31 | 青岛海信宽带多媒体技术有限公司 | 播放器网络资源下载与播放的实现方法及播放器 |
CN102469007A (zh) * | 2010-11-08 | 2012-05-23 | 高通创锐讯通讯科技(上海)有限公司 | Onu计算上行队列的上报长度的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8341314B2 (en) * | 2009-06-30 | 2012-12-25 | Hewlett-Packard Development Company, L.P. | Managing I/O request in storage system |
-
2013
- 2013-11-29 CN CN201310639324.5A patent/CN103618722B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309400A (zh) * | 2008-06-27 | 2008-11-19 | 上海华为技术有限公司 | 一种流媒体业务停顿信息获取方法及装置 |
CN102469007A (zh) * | 2010-11-08 | 2012-05-23 | 高通创锐讯通讯科技(上海)有限公司 | Onu计算上行队列的上报长度的方法 |
CN102170459A (zh) * | 2010-12-22 | 2011-08-31 | 青岛海信宽带多媒体技术有限公司 | 播放器网络资源下载与播放的实现方法及播放器 |
Also Published As
Publication number | Publication date |
---|---|
CN103618722A (zh) | 2014-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018049761A1 (zh) | 一种gif文件的播放方法及系统 | |
US9183111B2 (en) | Methods and computer program products for collecting storage resource performance data using file system hooks | |
WO2018032936A1 (zh) | 一种对算法生成域名进行检测的方法及装置 | |
WO2015096729A1 (zh) | 多媒体直播举报的方法、终端、服务器及系统 | |
US20080117903A1 (en) | Apparatus and method for high speed and large amount of data packet capturing and replaying | |
CN104811473B (zh) | 一种创建虚拟非易失性存储介质的方法、系统及管理系统 | |
EP3483838A3 (en) | Systems and methods for rendering with ray tracing | |
WO2010063213A1 (zh) | 对垃圾邮件进行拦截的方法和装置 | |
CN101520792A (zh) | 一种自动挂载与识别系统文件的方法及其系统 | |
CN105868056B (zh) | 获取Windows虚拟机中已删除文件的方法、装置及安全虚拟机 | |
CN108228733A (zh) | 一种文件同步系统及方法 | |
CN102457701B (zh) | 图像显示处理方法及装置 | |
US10873532B2 (en) | Flow control visibility | |
CN105094824B (zh) | 一种智能手表上的通知消息展示方法以及一种智能手表 | |
US20170099365A1 (en) | Context enriched distributed logging services for workloads in a datacenter | |
EP2328322A1 (en) | Method and apparatus for accessing files stored in a storage access network (SAN) or network attached storange (NAS) | |
CN104298918B (zh) | 一种在虚拟机中基于数据块的病毒扫描方法和系统 | |
US7840725B2 (en) | Capture of data in a computer network | |
CN103618722B (zh) | 基于vfs扫描网络传输数据的方法及系统 | |
CN103560933B (zh) | 实现无显示器截取或/和录制图像的方法、装置及系统 | |
CN116708070A (zh) | 基于域控制器的can报文存储方法、装置、设备及存储介质 | |
CN208255079U (zh) | 一种缺陷检测系统 | |
CN104394453B (zh) | 视频预录方法及装置 | |
WO2013029425A1 (zh) | 一种音视频数据传输方法 | |
CN110209564A (zh) | 打印机日志的获取方法、打印机、服务器和打印机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |