通信方法及装置与流程

专利2023-02-08  139



1.本技术涉及通信技术领域,尤其涉及一种通信方法及装置。


背景技术:

2.深度报文检测(英文:deep packet inspection,简称:dpi)是一种基于应用层信息对经过网络设备的业务流量进行检测和控制的安全机制。
3.在日益复杂的网络安全威胁中,很多恶意行为(比如,蠕虫病毒、垃圾邮件、漏洞等)均是隐藏在数据报文的应用层载荷中。传统安全防护技术仅依靠网络层、传输层的安全检测技术已无法满足网络安全要求。因此,网络设备须具备dpi功能,实现对网络应用层信息的检测和控制,以保证数据内容的安全,提高网络的安全性。
4.在一种场景下,客户端预从服务端(例如,服务器信息块(英文:server message block,简称:smb)服务器)内读取文件。具体过程为:
5.客户端先向服务端发送nt_create_andx request数据包以请求服务端打开文件。服务端返回nt_create_andx response数据包以告知客户端已打开文件。客户端向服务端发送read_andx request数据包以请求读取文件。服务端返回的read_andx response数据包以向客户端传输文件内容。传输完成后,客户端向服务端发送close request数据包以请求关闭文件。服务端返回close response数据包以告知客户端已关闭文件。
6.在上述过程中,客户端发送read_andx request数据包时是按照读取文件内容的顺序依次发送多个数据包。但是,服务端在返回read_andx response数据包时,未按照读取文件内容给的顺序依次响应read_andx request数据包。如此,将导致文件内容出现乱序。
7.上述出现的文件内容乱序具体是指应用层内容乱序,而非ip网络层乱序和tcp传输层乱序。由于深度检测管理(英文:deepth inspect manager,简称:dim)引擎的处理是基于流的,若文件传输过程中,文件内容出现乱序,则将导致在对报文解析时出现算法层面错误、协议识别、解析失败、文件识别、解析失败、攻击特征识别漏报等情况的发生。


技术实现要素:

8.有鉴于此,本技术提供了一种通信方法及装置,用以解决现有客户端与服务器之间传输文件过程中,文件内容易出现乱序的问题。
9.第一方面,本技术提供了一种通信方法,所述方法应用于网络设备,所述方法包括:
10.获取服务端向客户端发送的第一读响应数据包,所述第一读响应数据包包括第一文件内容以及第一请求序号;
11.从第一队列包括的第一节点中获取第二请求序号,所述第一节点为所述第一队列的首节点;
12.判断所述第一请求序号是否与所述第二请求序号相同;
13.若相同,则对所述第一文件内容进行dpi业务处理;
14.若不同,则缓存所述第一响应数据包;
15.其中,所述第一队列包括至少一个节点,所述第一队列包括的首节点内存储的请求序号为最小值。
16.第二方面,本技术提供了一种通信装置,所述装置应用于网络设备,所述装置包括:
17.第一获取单元,用于获取服务端向客户端发送的第一读响应数据包,所述第一读响应数据包包括第一文件内容以及第一请求序号;
18.第二获取单元,用于从第一队列包括的第一节点中获取第二请求序号,所述第一节点为所述第一队列的首节点;
19.第一判断单元,用于判断所述第一请求序号是否与所述第二请求序号相同;
20.业务处理单元,用于若相同,则对所述第一文件内容进行dpi业务处理;
21.缓存单元,用于若不同,则缓存所述第一响应数据包;
22.其中,所述第一队列包括至少一个节点,所述第一队列包括的首节点内存储的请求序号为最小值。
23.第三方面,本技术提供了一种网络设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使执行本技术第一方面所提供的方法。
24.因此,通过应用本技术提供的通信方法及装置,网络设备获取服务端向客户端发送的第一读响应数据包,该第一读响应数据包包括第一文件内容以及第一请求序号;网络设备从第一队列包括的第一节点中获取第二请求序号,该第一节点为第一队列的首节点;网络设备判断第一请求序号是否与第二请求序号相同;若相同,则网络设备对第一文件内容进行dpi业务处理;若不同,则网络设备缓存第一响应数据包;其中,第一队列包括至少一个节点,第一队列包括的首节点内存储的请求序号为最小值。
25.如此,利用客户端、服务端相互发送的请求序号,使得网络设备按请求序号对匹配的文件内容进行业务处理。解决了现有客户端与服务器之间传输文件过程中,文件内容易出现乱序的问题。保证了文件内容顺序处理,从而提升对文件检测的能力。
附图说明
26.图1为本技术实施例提供的通信方法的流程图;
27.图2为本技术实施例提供的通信装置结构图;
28.图3为本技术实施例提供的网络设备硬件结构体。
具体实施方式
29.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本技术相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
30.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数
形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。
31.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
32.下面对本技术实施例提供的通信方法进行详细地说明。参见图1,图1为本技术实施例提供的通信方法的流程图。该方法应用于网络设备,该网络设备可具体为能够处理dpi业务的防火墙设备。本技术实施例提供的通信方法可包括如下所示步骤。
33.步骤110、获取服务端向客户端发送的第一读响应数据包,所述第一读响应数据包包括第一文件内容以及第一请求序号;
34.具体地,客户端、网络设备、服务端处于同一局域网内。网络设备处于客户端与服务端之间,其可捕获客户端、服务端之间交互的各类数据包。例如,读请求数据包、读响应数据包、写请求数据包、写响应数据包等等。
35.服务端接收到客户端发送的第一读请求数据包(例如,read_andx request)后,根据第一读请求数据包,在对应的文件中获取第一文件内容。服务端生成第一读响应数据包(例如,read_andx response),该第一读响应数据包包括第一文件内容以及第一请求序号。
36.服务端向客户端发送第一读响应数据包。
37.网络设备获取到第一读响应数据包后,从中获取第一文件内容以及第一请求序号。
38.需要说明的是,第一读请求数据包包括第一文件内容长度、第一文件内容起始位置以及第二请求序列号。服务端可根据第一文件内容长度、第一文件内容起始位置从文件中获取第一文件内容。
39.通常情况下,服务端接收到读请求数据包后,将该读请求数据包包括的请求序号作为与该读请求数据包对应的读响应数据包包括的请求序号。
40.可选地,在步骤110之前,还包括网络设备获取客户端向服务端发送第一读请求数据包、以及网络设备将读请求数据包包括的内容对应存储至第一队列,即req_queue1的节点处。
41.以客户端预从服务端(例如,smb服务器)内读取文件为例进行说明。
42.局域网内通过文件共享方式访问文件时,客户端与服务端之间先进行smb会话认证。客户端先向服务端发送创建请求(例如,nt_create_andx request)数据包以请求服务端打开文件。服务端返回创建响应(例如,nt_create_andx response)数据包以告知客户端已打开文件。
43.客户端向服务端发送第一读请求数据包以请求读取文件。网络设备获取到该第一读请求数据包,该第一读请求数据包包括客户端待读取的第一文件内容长度(len)、第一文件内容起始位置(也可称之为偏移量offset)以及第二请求序号(messageid)。
44.其中,len为当前待读取的文件内容长度。offset为当前待读取的文件内容位于整个文件的偏移位置。messageid可具体为一数字,例如,1、2、3等。客户端每发送一个读请求
数据包后,将messageid加1。在本技术实施例中,请求数据包与响应数据包的messageid应是对应匹配的。
45.若offset为0,messageid为1,网络设备确定该第一读请求数据包为读取文件的首个读请求数据包,网络设备可将该messageid作为lastreqid。若len与offset的和值为file_size,即和值为当前待读取的文件总长度,网络设备确定该第一读取请求数据包为读取文件的最后一个读请求数据包。网络设备可将messageid为endoffileid。
46.在本技术实施例中,网络设备在本地利用req_queue1记录请求序号、len以及offset。req_queue1包括至少一个节点,每个节点用于存储请求序号,节点之间按请求序号的大小顺序进行排序,req_queue1中首节点内存储的请求序号为全部请求序号的最小值。当然,len、offset等内容也可存储在对应的请求序号所在节点处。
47.网络设备获取第一读请求数据包后,将第二请求序号缓存至req_queue1包括的第一节点处(网络设备根据第二请求序号的大小缓存至对应的节点处,此处以第一节点为例进行说明)。网络设备计算第一文件内容长度与第一文件内容起始位置的和值,得到第一值,即第一值=len+offset。网络设备从本地获取smb协议解析插件内存储的第二值。网络设备判断第二值是否与第一文件内容起始位置相同。
48.若相同,则网络设备确定当前客户端读取文件内容为顺序读取,网络设备利用第一值更新第二值;若不同,则网络设备确定当前客户端读取文件内容为乱序读取,并维持第二值不变,网络设备还将第一文件内容长度、第一文件内容起始位置缓存至第一节点处缓存至第一节点处。
49.同理,当网络设备获取到客户端向服务端发送的第二读请求数据包时,网络设备将第二读请求数据包包括的第三请求序号缓存至req_queue1包括的第三节点(此处以第三节点为例进行说明,也可以为第二节点)处。网络设备比较第二值是否与第二读请求数据包包括的第二文件内容起始位置相同。
50.若不相同,则网络设备确定当前客户端读取文件内容为乱序读取,并维持第二值不变,网络设备将第二读请求数据包包括的第二文件内容长度、第二文件内容起始位置缓存至第三节点处;若相同,则网络设备确定当前客户端读取文件内容为顺序读取,网络设备计算第二文件内容长度与第二文件内容起始位置的和值,得到第三值,并利用第三值更新第二值。
51.在本技术实施例中,网络设备本地包括一smb协议解析插件,该smb协议解析插件内存储的第二值具体为nextreqoffset。也即是,下一个请求数据包应携带的offset值。nextreqoffset根据请求类型的不同,对应不同的值。例如,当为读请求数据时,nextreqoffset具体为第二值;当为写请求数据包时,nextreqoffset具体为第四值(此处以第四值为例进行说明,也可以为第三值)。在后续实施例中,将具体介绍第四值。
52.在一个例子中,网络设备本地smb协议解析插件内存储的第二值为0。网络设接收第一读请求数据包,第一文件内容长度(len)为40、第一文件内容起始位置(offset)为0以及第二请求序号(messageid)为1。
53.网络设备将第二请求序号1缓存至第一节点处,并确定第一读请求数据包为首个读请求数据包。网络设备计算第一文件内容长度与第一文件内容起始位置的和值,得到第一值为40。网络设备从smb协议解析插件内获取第二值,并比较第二值是否与第一文件内容
起始位置相同。
54.在本示例中,第二值与第一文件内容起始位置相同。网络设备确定当前客户端读取文件内容为顺序读取,网络设备利用第一值40更新第二值0,此时,第二值为40。
55.此时,网络设备获取到客户端向服务端发送的第二读请求数据包,第二文件内容长度(len)为40、第二文件内容起始位置(offset)为120以及第三请求序号(messageid)为2。
56.网络设备将第三请求序号2缓存至第三节点处。可以理解的是,第三节点与第一节点相邻并处于第一节点后。网络设备从smb协议解析插件内获取第二值40,并比较第二值是否与第二文件内容起始位置相同。
57.本示例中,第二值与第二文件内容起始位置不同。网络设备确定当前客户端读取文件内容为乱序读取,网络设备将第二文件内容长度、第二文件内容起始位置缓存至第三节点处。
58.在另一个例子中,此时,网络设备获取到客户端向服务端发送的第二读请求数据包,第二文件内容长度(len)为40、第二文件内容起始位置(offset)为40以及第三请求序号(messageid)为2。
59.网络设备将第三请求序号2缓存至第三节点处。可以理解的是,第三节点与第一节点相邻并处于第一节点后。网络设备从smb协议解析插件内获取第二值40,并比较第二值是否与第二文件内容起始位置相同。
60.本示例中,第二值与第二文件内容起始位置相同。网络设备确定当前客户端读取文件内容为顺序读取,网络设备计算第二文件内容长度与第二文件内容起始位置的和值,得到第一值为80,并利用第一值80更新第二值40,此时,第二值为80。
61.可以理解的是,网络设备每获取到客户端向服务端发送的读请求数据包后,首先将请求序号按照大小顺序存储至req_queue1的节点处。然后,网络设备比较smb协议解析插件内的值是否与文件内容起始位置相同。
62.若相同,则网络设备确定客户端读取文件内容为顺序读取。网络设备计算文件内容长度与文件内容起始位置的和值,并利用和值更新smb协议解析插件内的值。
63.若不同,则网络设备确定客户端读取文件内容为乱序读取。网络设备维持smb协议解析插件内的值,并将文件内容长度、文件内容起始位置缓存至请求序号所在的节点处。
64.网络设备重复执行上述过程。
65.步骤120、从第一队列包括的第一节点中获取第二请求序号,所述第一节点为所述第一队列的首节点;
66.具体地,根据步骤110的描述,网络设备获取req_queue1包括的首节点中缓存的第二请求序号。
67.步骤130、判断所述第一请求序号是否与所述第二请求序号相同;
68.具体地,根据步骤120的描述,网络设备获取到第二请求序号后,比较第一请求序号是否与第二请求序号相同。若相同,则网络设备执行步骤140;若不同,则网络设备执行步骤150。
69.步骤140、若相同,则对所述第一文件内容进行dpi业务处理;
70.具体地,根据步骤130的描述,若第一请求序号与第二请求序号相同,则网络设备
确定第一读响应数据包为与第一读请求数据包对应的响应数据包。
71.网络设备对第一文件内容进行进行dpi业务处理。
72.可选地,网络设备对第一文件内容进行dpi业务处理后,网络设备将第一节点从req_queue1中删除。此时,与第一节点相邻的下一节点升级为第一队列的首节点,该节点内缓存的请求序号为全部请求序号的最小值。
73.步骤150、若不同,则缓存所述第一响应数据包。
74.具体地,根据步骤130的描述,若第一请求序号与第二请求序号不同,则网络设备确定第一读响应数据包不为与第一读请求数据包对应的响应数据包,并确定服务端并未按序返回读响应数据包。网络设备先不对第一文件内容进行进行dpi业务处理。
75.网络设备缓存第一响应数据包。
76.可选地,网络设备缓存第一响应数据包,具体过程:网络设备将第一请求序号缓存至req_queue1包括的第二节点处,并将第一文件内容缓存至第二节点处。
77.因此,通过应用本技术提供的通信方法,网络设备获取服务端向客户端发送的第一读响应数据包,该第一读响应数据包包括第一文件内容以及第一请求序号;网络设备从第一队列包括的第一节点中获取第二请求序号,该第一节点为第一队列的首节点;网络设备判断第一请求序号是否与第二请求序号相同;若相同,则网络设备对第一文件内容进行dpi业务处理;若不同,则网络设备缓存第一响应数据包;其中,第一队列包括至少一个节点,第一队列包括的首节点内存储的请求序号为最小值。
78.如此,利用客户端、服务端相互发送的请求序号,使得网络设备按请求序号对匹配的文件内容进行业务处理。解决了现有客户端与服务器之间传输文件过程中,文件内容易出现乱序的问题。保证了文件内容顺序处理,从而提升对文件检测的能力。
79.可选地,在本技术实施例中,还包括网络设备识别第一请求序号是否为最终序号,进而结束本次文件传输流程的过程。
80.具体地,网络设备重复执行前述步骤110-步骤150,在每次获取到第一请求序号后,判断第一请求序号是否为最终序号,即第一请求序号是否为endoffileid。
81.若是,则确定服务端已将最后一部分文件内容传输,网络设备遍历文件内容。若遍历到文件结束标记,则网络设备结束本次文件传输流程。
82.其中,endoffileid的值为待获取文件的文件总长度,待获取文件的文件总长度为待获取文件的文件内容长度与待获取文件的文件内容起始位置之和。
83.可选地,若未遍历到文件技术标记,则网络设备确定本次文件传输流量中文件传输不全,网络设备无法结束本次文件传输流程。
84.若未结束本次文件传输流程,则当网络设备获取到客户端向服务端发送的关闭请求数据包(例如,close request数据包)时,结束本次文件传输流程。
85.可选地,在本技术实施例中,前述均以客户端、服务端之间交互读请求数据包、读响应数据包为例进行说明。在实际过程中,客户端、服务端之间也会交互写请求数据包、写响应数据包。
86.下面以客户端、服务端之间交互写请求数据包、写响应数据包为例进行说明。
87.具体地,客户端与服务端之间先进行smb会话认证。客户端先向服务端发送创建请求(例如,nt_create_andx request)数据包以请求服务端创建并打开新文件。服务端返回
创建响应(例如,nt_create_andx response)数据包以告知客户端已创建并打开文件。
88.客户端向服务端发送第一写请求数据包(例如,write_andx request),该第一写请求数据包包括客户端待写入的第三文件内容、第三文件内容长度、第三文件内容起始位置以及第四请求序号。
89.网络设备获取第一写请求数据包,从第一写请求数据包中获取第三文件内容、第三文件内容长度、第三文件内容起始位置以及第四请求序号。
90.网络设备计算第三文件内容长度与第三文件内容起始位置的和值,得到第三值。网络设备获取本地smb协议解析插件内存储的第四值。网络设备判断第四值是否与第三文件内容起始位置相同。
91.若相同,则网络设备确定客户端写入文件内容为顺序写入,并利用第三值更新第四值;若不同,则网络设备确定客户端写入文件内容为乱序写入,并维持本地smb协议解析插件内存储的第四值。
92.进一步地,网络设备利用第三值更新第四值后,对第三文件内容进行dpi业务处理。
93.网络设备维持本地smb协议解析插件内存储的第四值后,将第三文件内容、第三文件内容长度以及第三文件内容起始位置缓存至第二队列(例如,req_queue2)包括的第一节点处。
94.可以理解的是,req_queue2与req_queue1的结构、功能相同,每个节点可用于记录len、offset以及文件内容。req_queue1与获取的读请求数据包、读响应数据包对应;req_queue2与获取的写请求数据包对应。
95.在本技术实施例中,网络设备不再将第四请求序号缓存至节点内,原因在于,服务端接收到写请求数据包后,将文件内容写入对应的位置后,生成并向客户端发送写响应数据包(例如,write_andx response),以告知客户端写执行结果。在写响应数据包中不再包括对应的请求序号,而包括写入成功或写入失败。
96.需要说明的是,网络设备维持本地smb协议解析插件内存储的第四值后,若后续再接收到写请求数据包,经过上述计算、判断后,第四值与文件内容起始位置不同,则网络设备可遍历req_queue2包括的每个节点内存储的offset,查找是否存在与第四值相同的offset。若存在,则网络设备计算该offset与该节点内len的和值,并利用该和值更新第四值。更新第四值后,网络设备对该节点内存储的文件内容进行dpi业务处理。进行dpi业务处理后,网络设备删除该节点内存储的offset、len以及文件内容。
97.在一个例子中,网络设备本地smb协议解析插件内存储的第四值为0。网络设接收第一写请求数据包,第三文件内容长度(len)为40、第三文件内容起始位置(offset)为0以及第四请求序号(messageid)为1。
98.网络设备网络设备计算第三文件内容长度与第三文件内容起始位置的和值,得到第三值为40。网络设备从smb协议解析插件内获取第四值,并比较第四值是否与第三文件内容起始位置相同。
99.在本示例中,第四值与第三文件内容起始位置相同。网络设备确定当前客户端写入文件内容为顺序写入,网络设备利用第三值40更新第四值0,此时,第四值为40。网络设备对第三文件内容进行dpi业务处理。
100.此时,网络设备获取到客户端向服务端发送的第二写请求数据包,第四文件内容长度(len)为40、第四文件内容起始位置(offset)为120以及第五请求序号(messageid)为2。
101.网络设备再次从smb协议解析插件内获取第四值40,并比较第四值是否与第四文件内容起始位置相同。
102.本示例中,第四值与第四文件内容起始位置不同。网络设备确定当前客户端读取文件内容为乱序写入,网络设备将第四文件内容长度、第四文件内容起始位置以及第四文件内容缓存至req_queue2包括的第一节点处。
103.在另一个例子中,网络设备本地smb协议解析插件内存储的第四值为40。req_queue2包括的节点1、节点2、节点3均存储了对应的offset、len以及文件内容。
104.节点1内存储offset1为40、len1为40以及文件内容1;节点2内存储offset2为120、len2为40以及文件内容2;节点3内存储offset3为200、len3为40以及文件内容3。
105.此时,网络设备获取到客户端向服务端发送的第二读请求数据包,第三文件内容长度(len)为40、第三文件内容起始位置(offset)为160以及第四请求序号(messageid)为2。
106.网络设备从smb协议解析插件内获取第四值40,并比较第四值是否与第三文件内容起始位置相同。
107.本示例中,第四值与第三文件内容起始位置不同。网络设备确定当前客户端读取文件内容为乱序写入,网络设备遍历节点1、节点2、节点3内存储的offset,查找到节点1内存储的offset1与第四值相同。网络设备计算offset1与len1的和值为80,利用该和值80更新第四值。更新第四值为80后,网络设备对文件内容1进行dpi业务处理。进行dpi业务处理后,网络设备删除节点1内存储的offset1、len1以及文件内容1。
108.基于同一发明构思,本技术实施例还提供了与通信装置。参见图2,图2为本技术实施例提供的通信装置,所述装置应用于网络设备,所述装置包括:
109.第一获取单元210,用于获取服务端向客户端发送的第一读响应数据包,所述第一读响应数据包包括第一文件内容以及第一请求序号;
110.第二获取单元220,用于从第一队列包括的第一节点中获取第二请求序号,所述第一节点为所述第一队列的首节点;
111.第一判断单元230,用于判断所述第一请求序号是否与所述第二请求序号相同;
112.业务处理单元240,用于若相同,则对所述第一文件内容进行dpi业务处理;
113.缓存单元250,用于若不同,则缓存所述第一响应数据包;
114.其中,所述第一队列包括至少一个节点,所述第一队列包括的首节点内存储的请求序号为最小值。
115.可选地,所述第一获取单元210还用于,获取所述客户端向所述服务端发送的第一读请求数据包,所述第一读请求数据包包括所述客户端待读取的第一文件内容长度、第一文件内容起始位置以及第二请求序号;
116.所述缓存单元250还用于,将所述第二请求序号缓存至所述第一节点处;
117.所述装置还包括:计算单元(图中未示出),用于计算所述第一文件内容长度与第一文件内容起始位置的和值,得到第一值;
118.第三获取单元(图中未示出),用于获取本地smb协议解析插件内存储的第二值;
119.第二判断单元(图中未示出),用于判断所述第二值是否与所述第一文件内容起始位置相同;
120.更新单元(图中未示出),用于若相同,则利用所述第一值更新所述第二值;
121.所述缓存单元250还用于,若不同,则维持所述本地smb协议解析插件内存储的第二值,并将所述第一文件内容长度、所述第一文件内容起始位置缓存至所述第一节点处缓存至所述第一节点处;
122.其中,所述第一文件内容由所述服务器根据所述第一文件内容长度以及所述第一文件内容起始位置确定。
123.可选地,所述装置还包括:删除单元(图中未示出),用于将所述第一节点从所述第一队列中删除。
124.可选地,所述缓存单元250具体用于,将所述第一请求序号缓存至所述第一队列包括的第二节点处,并将所述第一文件内容缓存至所述第二节点处。
125.可选地,所述装置还包括:第三判断单元(图中未示出),用于判断所述第一请求序号是否为最终序号;
126.结束单元(图中未示出),用于若是,则结束本次文件传输流程;
127.其中,所述最终序号的值为待获取文件的文件总长度,所述待获取文件的文件总长度为所述待获取文件的文件内容长度与所述待获取文件的文件内容起始位置之和。
128.可选地,所述结束单元(图中未示出)还用于,若未结束本次文件传输流程,则当获取到所述客户端向所述服务端发送的关闭请求数据包时,结束本次文件传输流程。
129.可选地,所述第一获取单元210还用于,获取所述客户端向所述服务端发送的第一写请求数据包,所述第一写请求数据包包括所述客户端待写入的第三文件内容、第三文件内容长度以及第三文件内容起始位置;
130.所述计算单元(图中未示出)还用于,计算所述第三文件内容长度与所述第三文件内容起始位置的和值,得到第三值;
131.所述第三获取单元(图中未示出)还用于,获取本地smb协议解析插件内存储的第四值;
132.所述第二判断单元(图中未示出)还用于,判断所述第四值是否与所述第三文件内容起始位置相同;
133.所述更新单元(图中未示出)还用于,若相同,则利用所述第三只更新所述第四值;
134.所述缓存单元250还用于,若不同,则维持所述本地smb协议解析插件内存储的第四值。
135.可选地,所述业务处理单元240还用于,对所述第三文件内容进行dpi业务处理。
136.可选地,所述缓存单元250还用于,将所述第三文件内容、第三文件内容长度以及第三文件内容起始位置缓存至第二队列包括的第一节点处;
137.其中,所述第二队列包括至少一个节点,每个节点用于存储文件内容、文件内容长度以及文件内容起始位置。
138.因此,通过应用本技术提供的通信装置,网络设备获取服务端向客户端发送的第一读响应数据包,该第一读响应数据包包括第一文件内容以及第一请求序号;网络设备从
第一队列包括的第一节点中获取第二请求序号,该第一节点为第一队列的首节点;网络设备判断第一请求序号是否与第二请求序号相同;若相同,则网络设备对第一文件内容进行dpi业务处理;若不同,则网络设备缓存第一响应数据包;其中,第一队列包括至少一个节点,第一队列包括的首节点内存储的请求序号为最小值。
139.如此,利用客户端、服务端相互发送的请求序号,使得网络设备按请求序号对匹配的文件内容进行业务处理。解决了现有客户端与服务器之间传输文件过程中,文件内容易出现乱序的问题。保证了文件内容顺序处理,从而提升对文件检测的能力。
140.基于同一发明构思,本技术实施例还提供了一种网络设备,如图3所示,包括处理器310、收发器320和机器可读存储介质330,机器可读存储介质330存储有能够被处理器310执行的机器可执行指令,处理器310被机器可执行指令促使执行本技术实施例所提供的通信方法。前述图2所示的通信装置,可采用如图3所示的网络设备硬件结构实现。
141.上述计算机可读存储介质330可以包括随机存取存储器(英文:random access memory,简称:ram),也可以包括非易失性存储器(英文:non-volatile memory,简称:nvm),例如至少一个磁盘存储器。可选的,计算机可读存储介质330还可以是至少一个位于远离前述处理器310的存储装置。
142.上述处理器310可以是通用处理器,包括中央处理器(英文:central processing unit,简称:cpu)、网络处理器(英文:network processor,简称:np)等;还可以是数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)、现场可编程门阵列(英文:field-programmable gate array,简称:fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
143.本技术实施例中,处理器310通过读取机器可读存储介质330中存储的机器可执行指令,被机器可执行指令促使能够实现处理器310自身以及调用收发器320执行前述本技术实施例描述的通信方法。
144.另外,本技术实施例提供了一种机器可读存储介质330,机器可读存储介质330存储有机器可执行指令,在被处理器310调用和执行时,机器可执行指令促使处理器310自身以及调用收发器320执行前述本技术实施例描述的通信方法。
145.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
146.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
147.对于通信装置以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
148.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。

技术特征:
1.一种通信方法,其特征在于,所述方法应用于网络设备,所述方法包括:获取服务端向客户端发送的第一读响应数据包,所述第一读响应数据包包括第一文件内容以及第一请求序号;从第一队列包括的第一节点中获取第二请求序号,所述第一节点为所述第一队列的首节点;判断所述第一请求序号是否与所述第二请求序号相同;若相同,则对所述第一文件内容进行dpi业务处理;若不同,则缓存所述第一响应数据包;其中,所述第一队列包括至少一个节点,所述第一队列包括的首节点内存储的请求序号为最小值。2.根据权利要求1所述的方法,其特征在于,所述获取服务端向客户端发送的第一读响应数据包之前,所述方法还包括:获取所述客户端向所述服务端发送的第一读请求数据包,所述第一读请求数据包包括所述客户端待读取的第一文件内容长度、第一文件内容起始位置以及第二请求序号;将所述第二请求序号缓存至所述第一节点处;计算所述第一文件内容长度与第一文件内容起始位置的和值,得到第一值;获取本地smb协议解析插件内存储的第二值;判断所述第二值是否与所述第一文件内容起始位置相同;若相同,则利用所述第一值更新所述第二值;若不同,则维持所述本地smb协议解析插件内存储的第二值,并将所述第一文件内容长度、所述第一文件内容起始位置缓存至所述第一节点处缓存至所述第一节点处;其中,所述第一文件内容由所述服务器根据所述第一文件内容长度以及所述第一文件内容起始位置确定。3.根据权利要求1所述的方法,其特征在于,所述对所述第一文件内容进行dpi业务处理后,所述方法还包括:将所述第一节点从所述第一队列中删除。4.根据权利要求1所述的方法,其特征在于,所述缓存所述第一响应数据包,具体包括:将所述第一请求序号缓存至所述第一队列包括的第二节点处,并将所述第一文件内容缓存至所述第二节点处。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:判断所述第一请求序号是否为最终序号;若是,则结束本次文件传输流程;其中,所述最终序号的值为待获取文件的文件总长度,所述待获取文件的文件总长度为所述待获取文件的文件内容长度与所述待获取文件的文件内容起始位置之和。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:若未结束本次文件传输流程,则当获取到所述客户端向所述服务端发送的关闭请求数据包时,结束本次文件传输流程。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述客户端向所述服务端发送的第一写请求数据包,所述第一写请求数据包包括
所述客户端待写入的第三文件内容、第三文件内容长度以及第三文件内容起始位置;计算所述第三文件内容长度与所述第三文件内容起始位置的和值,得到第三值;获取本地smb协议解析插件内存储的第四值;判断所述第四值是否与所述第三文件内容起始位置相同;若相同,则利用所述第三只更新所述第四值;若不同,则维持所述本地smb协议解析插件内存储的第四值。8.根据权利要求7所述的方法,其特征在于,所述利用所述第三值更新所述第四值之后,所述方法还包括:对所述第三文件内容进行dpi业务处理。9.根据权利要求7所述的方法,其特征在于,所述维持所述本地smb协议解析插件内存储的第四值之后,所述方法还包括:将所述第三文件内容、第三文件内容长度以及第三文件内容起始位置缓存至第二队列包括的第一节点处;其中,所述第二队列包括至少一个节点,每个节点用于存储文件内容、文件内容长度以及文件内容起始位置。10.一种通信装置,其特征在于,所述装置应用于网络设备,所述装置包括:第一获取单元,用于获取服务端向客户端发送的第一读响应数据包,所述第一读响应数据包包括第一文件内容以及第一请求序号;第二获取单元,用于从第一队列包括的第一节点中获取第二请求序号,所述第一节点为所述第一队列的首节点;第一判断单元,用于判断所述第一请求序号是否与所述第二请求序号相同;业务处理单元,用于若相同,则对所述第一文件内容进行dpi业务处理;缓存单元,用于若不同,则缓存所述第一响应数据包;其中,所述第一队列包括至少一个节点,所述第一队列包括的首节点内存储的请求序号为最小值。

技术总结
本申请提供一种通信方法及装置,所述方法应用于网络设备,所述方法包括:获取服务端向客户端发送的第一读响应数据包,所述第一读响应数据包包括第一文件内容以及第一请求序号;从第一队列包括的第一节点中获取第二请求序号,所述第一节点为所述第一队列的首节点;判断所述第一请求序号是否与所述第二请求序号相同;若相同,则对所述第一文件内容进行DPI业务处理;若不同,则缓存所述第一响应数据包;其中,所述第一队列包括至少一个节点,所述第一队列包括的首节点内存储的请求序号为最小值。队列包括的首节点内存储的请求序号为最小值。队列包括的首节点内存储的请求序号为最小值。


技术研发人员:郭玲玲
受保护的技术使用者:新华三信息安全技术有限公司
技术研发日:2022.06.10
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-825.html

最新回复(0)