CN113630338A - 一种处理smb请求的方法、系统、设备及介质 - Google Patents
一种处理smb请求的方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN113630338A CN113630338A CN202110867150.2A CN202110867150A CN113630338A CN 113630338 A CN113630338 A CN 113630338A CN 202110867150 A CN202110867150 A CN 202110867150A CN 113630338 A CN113630338 A CN 113630338A
- Authority
- CN
- China
- Prior art keywords
- smb
- request
- index number
- requests
- received
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种处理SMB请求的方法、系统、设备和存储介质,方法包括:按照顺序给每个SMB请求设置索引号;将所有的SMB请求按照轮询方式依次发送到各个SMB通道,并将不同SMB通道内的SMB请求经过哈希均衡后传输到对应的物理链路;在Samba服务端设置窗口缓存队列,根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置,并判断是否接收到所述窗口缓存队列的当前起始位置的SMB请求;以及响应于接收到所述窗口缓存队列的当前起始位置的SMB请求,将所述窗口缓存队列的当前起始位置到当前终止位置的SMB请求按照顺序执行。本发明通过在Samba服务端设计窗口缓存队列对SMB请求按照索引号进行排列重组,从根本上避免了SMB请求错序的发生。
Description
技术领域
本发明涉及数据传输领域,更具体地,特别是指一种Samba多通道顺序处理SMB请求的方法、系统、计算机设备及可读介质。
背景技术
链路聚合是将多个物理端口汇聚在一起,形成一个逻辑端口;通过网卡接口的绑定操作,一方面可以实现网络高吞吐量的数据传输,另一方面可以实现故障冗余备份的作用,当其中一个物理端口出现故障时,另一个物理端口可以正常承担业务访问,从而避免用户的业务中断。
SMB(Server Message Block,一种用于不同网络节点间的共享传输协议)从2.2版本开始支持多通道,在多通道连接条件下,Windows客户端到Samba(实现SMB,用于从Linux服务端向Windows客户端提供共享服务的应用)服务端可以形成多个网络TCP(Transmission Control Protocol,传输控制协议)连接,当底层聚合链路基于传输层参数进行均衡时,多个SMB通道就可以相对均衡地划分到各个聚合链路上,这样可以进一步提高多个SMB数据的网络传输效率。
同一客户端SMB数据流在未配置链路聚合的条件下,只用一条物理链路来传输,此时数据流的帧总能按照正确的顺序到达接收端。但配置了链路聚合之后,如果聚合链路的均衡方式是基于网络3、4层计算HASH(哈希)分配过程,则同一客户端不同SMB多通道的数据流中的帧就会通过不同的物理链路传输,这样一来同一文件处理对象的第二个数据帧有可能比第一个数据帧先到达接收端,从而产生接收数据包乱序的情况。
发明内容
有鉴于此,本发明实施例的目的在于提出一种Samba多通道顺序处理SMB请求的方法、系统、计算机设备及计算机可读存储介质,本发明通过在Samba服务端设计窗口缓存队列,利用窗口缓存队列对SMB请求按照索引号进行重组,保证从多个SMB通道接收到的各个数据流按照正确顺序进行排列,从而保证SMB请求在真正进入文件系统处理之前处于正确的顺序队列中,从根本上避免了SMB请求错序的发生。
基于上述目的,本发明实施例的一方面提供了一种Samba多通道顺序处理SMB请求的方法,包括如下步骤:按照顺序给每个SMB请求设置索引号;将所有的SMB请求按照轮询方式依次发送到各个SMB通道,并将不同SMB通道内的SMB请求经过哈希均衡后传输到对应的物理链路;在Samba服务端设置窗口缓存队列,根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置,并判断是否接收到所述窗口缓存队列的当前起始位置的SMB请求;以及响应于接收到所述窗口缓存队列的当前起始位置的SMB请求,将所述窗口缓存队列的当前起始位置到当前终止位置的SMB请求按照顺序执行。
在一些实施方式中,所述根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置包括:确定上一次执行的最后一个SMB请求的第一索引号,将起始位置设置到所述第一索引号的下一位,并判断是否已经接收到所述起始位置的下一位对应的SMB请求,以及响应于未接收到所述起始位置的下一位对应的SMB请求,将所述终止位置与所述起始位置置于同一位。
在一些实施方式中,所述根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置包括:响应于接收到所述起始位置的下一位对应的SMB请求,则将所述终止位置设置到从所述起始位置开始已经接收到的连续的SMB请求的最后一位上。
在一些实施方式中,所述按照顺序给每个SMB请求设置索引号包括:将SMB请求的消息类型设置为协商消息,并按照从小到大的顺序为每个SMB请求设置索引号。
在一些实施方式中,所述按照顺序给每个SMB请求设置索引号包括:响应于索引号达到第一阈值,将后续SMB请求的消息类型设置成非协商消息,并按照从小到大的顺序为后续每个SMB请求设置索引号。
在一些实施方式中,方法还包括:响应于连续超过读写次数阈值的数据包数量大于第二阈值,建立新的SMB通道连接。
在一些实施方式中,方法还包括:给所述新的SMB通道赋予与原SMB通道相同的全局唯一标识符,并给所述新的SMB通道设置单独的监听对象。
本发明实施例的另一方面,提供了一种Samba多通道顺序处理SMB请求的系统,包括:编号模块,配置用于按照顺序给每个SMB请求设置索引号;传输模块,配置用于将所有的SMB请求按照轮询方式依次发送到各个SMB通道,并将不同SMB通道内的SMB请求经过哈希均衡后传输到对应的物理链路;调整模块,配置用于在Samba服务端设置窗口缓存队列,根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置,并判断是否接收到所述窗口缓存队列的当前起始位置的SMB请求;以及执行模块,配置用于响应于接收到所述窗口缓存队列的当前起始位置的SMB请求,将所述窗口缓存队列的当前起始位置到当前终止位置的SMB请求按照顺序执行。
本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。
本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
本发明具有以下有益技术效果:通过在Samba服务端设计窗口缓存队列,利用窗口缓存队列对SMB请求按照索引号进行重组,保证从多个SMB通道接收到的各个数据流按照正确顺序进行排列,从而保证SMB请求在真正进入文件系统处理之前处于正确的顺序队列中,从根本上避免了SMB请求错序的发生。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明提供的Samba多通道顺序处理SMB请求的方法的实施例的示意图;
图2为SMB多通道的基本交互示意图;
图3为窗口缓存队列的工作示意图;
图4为本发明提供的Samba多通道顺序处理SMB请求的计算机设备的实施例的硬件结构示意图;
图5为本发明提供的Samba多通道顺序处理SMB请求的计算机存储介质的实施例的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
本发明实施例的第一个方面,提出了一种Samba多通道顺序处理SMB请求的方法的实施例。图1示出的是本发明提供的Samba多通道顺序处理SMB请求的方法的实施例的示意图。如图1所示,本发明实施例包括如下步骤:
S1、按照顺序给每个SMB请求设置索引号;
S2、将所有的SMB请求按照轮询方式依次发送到各个SMB通道,并将不同SMB通道内的SMB请求经过哈希均衡后传输到对应的物理链路;
S3、在Samba服务端设置窗口缓存队列,根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置,并判断是否接收到所述窗口缓存队列的当前起始位置的SMB请求;以及
S4、响应于接收到所述窗口缓存队列的当前起始位置的SMB请求,将所述窗口缓存队列的当前起始位置到当前终止位置的SMB请求按照顺序执行。
按照顺序给每个SMB请求设置索引号。每个SMB请求自带一个消息编号(也即是索引号),并且前后的消息编号在客户端是以连续编号标记的,因此服务端只要根据该编号就可以实现一个顺序的SMB消息处理队列,从而保证SMB消息处理的顺序性。
在一些实施方式中,所述按照顺序给每个SMB请求设置索引号包括:将SMB请求的消息类型设置为协商消息,并按照从小到大的顺序为每个SMB请求设置索引号。消息编号从第一个正式的协商消息开始,并且按照从小到大的顺序从1开始编号。
在一些实施方式中,所述按照顺序给每个SMB请求设置索引号包括:响应于索引号达到第一阈值,将后续SMB请求的消息类型设置成非协商消息,并按照从小到大的顺序为后续每个SMB请求设置索引号。索引号反转即是指当索引号超过某个数值后不再增大而直接初始化从一开始计数的情况,对于索引号反转的考虑,当索引号达到第一阈值,将后续SMB请求的消息类型设置成非协商消息,并按照从小到大的顺序从一开始给后续每个SMB请求设置索引号。这样当后续检测到SMB索引号为1但是消息类型不为协商消息,则说明是索引号发生了反转,此时添加到窗口缓存队列时则要放尾部处理。
在一些实施方式中,方法还包括:响应于连续超过读写次数阈值的数据包数量大于第二阈值,建立新的SMB通道连接。SMB多通道建立发生在文件读写阶段,在文件读写发生之前,Windows客户端映射网络驱动器的过程只会建立一个SMB通道连接,然后对共享目录进行文件读写,当传输的数据流量达到Windows设定的流量阈值后,Windows客户端即可自动发起多通道连接。
在一些实施方式中,方法还包括:给所述新的SMB通道赋予与原SMB通道相同的全局唯一标识符,并给所述新的SMB通道设置单独的监听对象。SMB多通道连接和普通SMB连接的不同之处在于SMB多通道连接使用了相同的客户端GUID(Globally Unique Identifier,全局唯一标识符),Samba服务端判断已经记录过该GUID标记符时就会将其作为同一个客户端的多个SMB通道连接,最终使用的仍为同一个SMB会话,每个SMB通道单独设置一个EPOLL(Linux下多路复用输入输出接口的一种实现形式)监听对象。
将所有的SMB请求按照轮询方式依次发送到各个SMB通道,并将不同SMB通道内的SMB请求经过哈希均衡后传输到对应的物理链路。Windows客户端对SMB请求采用轮询发送的方式,即对一个文件的所有SMB请求按照轮询策略依次发送到各个SMB通道。SMB数据包在真正发送到物理链路之前会经过网络协议栈封装为完整的数据包,然后选择合适的HASH参数进行均衡过程的计算,并根据计算结果在聚合链路中选择一条合适的物理链路发送出去。
图2示出的是SMB多通道的基本交互示意图。如图2所示,Windows客户端轮流向SMB通道1、SMB通道2、SMB通道3和SMB通道4发送SMB请求,所有SMB请求经过HASH均衡后再通过不同的物理链路发送出去。
在Samba服务端设置窗口缓存队列,根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置,并判断是否接收到所述窗口缓存队列的当前起始位置的SMB请求。Samba服务端初始化空的窗口缓存队列,并设置滑动窗口起始、结束位置设置为1,表示此时期望处理索引号为1的SMB请求。Samba服务端接收到SMB请求后,首先读取SMB请求头部长度值,然后从SOCKET(套接字)缓冲区进一步读取该长度的SMB数据。提取SMB数据中的索引编号,正常情况下,Windows会对每个SMB请求中附加一个8字节长度的无符号MESSAGE ID字段,这个字段对于每次单独的SMB挂载是从1开始按照顺序依次往后递增的。
动态调整所述窗口缓存队列的起始位置和终止位置可以如下:滑动窗口起始位置和结束位置都为1;当收到第一个协商请求并处理完成后,修改起始位置和结束位置都为2,表示接下来期望处理索引号为2的SMB请求;若顺序靠后的SMB请求优先到来,则插入窗口缓存队列;判断新插入队列的SMB请求是否与当前期望处理的SMB请求在索引编号上顺序相连,若相连,则移动窗口结束位置到新的SMB请求上;否则,说明中间还有其他间隔的SMB请求尚未收到,此时不再移动窗口结束位置。对于窗口起始位置,则每处理一个SMB请求,自动往后移动1;若遇到组合SMB请求,则自动递增组合SMB请求中包含的单个SMB请求个数。组合SMB请求也即是连续多个SMB请求,例如,组合SMB请求由SMB[n2]、SMB[n3]和SMB[n4]组成,则自动将起始位置递增3。
在一些实施方式中,所述根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置包括:确定上一次执行的最后一个SMB请求的第一索引号,将起始位置设置到所述第一索引号的下一位,并判断是否已经接收到所述起始位置的下一位对应的SMB请求,以及响应于未接收到所述起始位置的下一位对应的SMB请求,将所述终止位置与所述起始位置置于同一位。例如,上一次执行的最后一个SMB请求的第一索引号[n2],则可以将起始位置设置到[n3]。如果未接收到[n4],则将终止位置也设置到[n3]。
若新的SMB请求索引号和当前期望处理索引号一致,则直接处理,处理完成之后移动窗口起始、终止位置;例如,新的SMB请求索引号和当前期望处理索引号均为[n2],则直接对SMB[n2]进行处理,并将起始位置和终止位置均移动到SMB[n3]。其中,终止位置从起始位置后面一个索引号的SMB请求算起,往后连续存在于窗口缓存队列的SMB请求同样会连续递增终止位置,这样可以保证每次都能连续处理最大数量的SMB请求数;若新的SMB请求索引号为当前期望处理索引号+1,则放入窗口缓存队列,并移动窗口终止位置+1;若新的SMB请求索引号为当前期望处理索引号+n,则放入窗口缓存队列,并移动窗口终止位置+n。
在一些实施方式中,所述根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置包括:响应于接收到所述起始位置的下一位对应的SMB请求,则将所述终止位置设置到从所述起始位置开始已经接收到的连续的SMB请求的最后一位上。继续上例,如果接收到[n4],则将终止位置移到[n4],并判断是否接收到[n5],如果接收到[n5],则将终止位置移到[n5],以此类推。
图3示出的是窗口缓存队列的工作示意图。如图3所示,在阶段1,缓存队列的窗口起始位置为SMB[n2],表示下一个期望处理的SMB请求,由于SMB[n3]和SMB[n4]已经存在于队列中,因此标记窗口结束位置为SMB[n4];在阶段2收到了SMB[n2]请求,此时将Start(起始位置)和End(终止位置)之间的SMB请求即SMB[n2-n4]一次性连续处理,处理完成后,重新向前滑动Start和End位置,由于SMB[n5]和SMB[n6]都未到来,因此新的Start和End位置都将停留在SMB[n5]的位置,如果阶段3中SMB[n6]先到来,则加入队列并更新End位置到SMB[n6],此时由于队列中已经存在的SMB[n7],则继续更新End位置到[n7],并继续等待SMB[n5]的到来,以此类推,即End位置总是处于当前期望SMB请求的连续结束位置。
响应于接收到所述窗口缓存队列的当前起始位置的SMB请求,将所述窗口缓存队列的当前起始位置到当前终止位置的SMB请求按照顺序执行。继续上例,如果接收到SMB[n5],则将窗口缓存队列的当前起始位置到当前终止位置的SMB请求按照顺序执行。Samba服务端需要将调用结果转为SMB NT_STATUS格式并回应给客户端,如果是SMB读请求,则需要将读出来的数据一并打包发送给Windows客户端。
本发明实施例通过在Samba服务端设计窗口缓存队列,利用窗口缓存队列对SMB请求按照索引号进行重组,保证从多个SMB通道接收到的各个数据流按照正确顺序进行排列,从而保证SMB请求在真正进入文件系统处理之前处于正确的顺序队列中,从根本上避免了SMB请求错序的发生。
需要特别指出的是,上述Samba多通道顺序处理SMB请求的方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于Samba多通道顺序处理SMB请求的方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种Samba多通道顺序处理SMB请求的系统,包括:编号模块,配置用于按照顺序给每个SMB请求设置索引号;传输模块,配置用于将所有的SMB请求按照轮询方式依次发送到各个SMB通道,并将不同SMB通道内的SMB请求经过哈希均衡后传输到对应的物理链路;调整模块,配置用于在Samba服务端设置窗口缓存队列,根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置,并判断是否接收到所述窗口缓存队列的当前起始位置的SMB请求;以及执行模块,配置用于响应于接收到所述窗口缓存队列的当前起始位置的SMB请求,将所述窗口缓存队列的当前起始位置到当前终止位置的SMB请求按照顺序执行。
在一些实施方式中,所述调整模块配置用于:确定上一次执行的最后一个SMB请求的第一索引号,将起始位置设置到所述第一索引号的下一位,并判断是否已经接收到所述起始位置的下一位对应的SMB请求,以及响应于未接收到所述起始位置的下一位对应的SMB请求,将所述终止位置与所述起始位置置于同一位。
在一些实施方式中,所述调整模块配置用于:响应于接收到所述起始位置的下一位对应的SMB请求,则将所述终止位置设置到从所述起始位置开始已经接收到的连续的SMB请求的最后一位上。
在一些实施方式中,所述编号模块配置用于:将SMB请求的消息类型设置为协商消息,并按照从小到大的顺序为每个SMB请求设置索引号。
在一些实施方式中,所述编号模块配置用于:响应于索引号达到第一阈值,将后续SMB请求的消息类型设置成非协商消息,并按照从小到大的顺序为后续每个SMB请求设置索引号。
在一些实施方式中,系统还包括通道模块,配置用于:响应于连续超过读写次数阈值的数据包数量大于第二阈值,建立新的SMB通道连接。
在一些实施方式中,系统还包括设置模块,配置用于:给所述新的SMB通道赋予与原SMB通道相同的全局唯一标识符,并给所述新的SMB通道设置单独的监听对象。
基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备,包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行以实现如下步骤:S1、按照顺序给每个SMB请求设置索引号;S2、将所有的SMB请求按照轮询方式依次发送到各个SMB通道,并将不同SMB通道内的SMB请求经过哈希均衡后传输到对应的物理链路;S3、在Samba服务端设置窗口缓存队列,根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置,并判断是否接收到所述窗口缓存队列的当前起始位置的SMB请求;以及S4、响应于接收到所述窗口缓存队列的当前起始位置的SMB请求,将所述窗口缓存队列的当前起始位置到当前终止位置的SMB请求按照顺序执行。
在一些实施方式中,所述根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置包括:确定上一次执行的最后一个SMB请求的第一索引号,将起始位置设置到所述第一索引号的下一位,并判断是否已经接收到所述起始位置的下一位对应的SMB请求,以及响应于未接收到所述起始位置的下一位对应的SMB请求,将所述终止位置与所述起始位置置于同一位。
在一些实施方式中,所述根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置包括:响应于接收到所述起始位置的下一位对应的SMB请求,则将所述终止位置设置到从所述起始位置开始已经接收到的连续的SMB请求的最后一位上。
在一些实施方式中,所述按照顺序给每个SMB请求设置索引号包括:将SMB请求的消息类型设置为协商消息,并按照从小到大的顺序为每个SMB请求设置索引号。
在一些实施方式中,所述按照顺序给每个SMB请求设置索引号包括:响应于索引号达到第一阈值,将后续SMB请求的消息类型设置成非协商消息,并按照从小到大的顺序为后续每个SMB请求设置索引号。
在一些实施方式中,步骤还包括:响应于连续超过读写次数阈值的数据包数量大于第二阈值,建立新的SMB通道连接。
在一些实施方式中,步骤还包括:给所述新的SMB通道赋予与原SMB通道相同的全局唯一标识符,并给所述新的SMB通道设置单独的监听对象。
如图4所示,为本发明提供的上述Samba多通道顺序处理SMB请求的计算机设备的一个实施例的硬件结构示意图。
以如图4所示的装置为例,在该装置中包括一个处理器201以及一个存储器202,并还可以包括:输入装置203和输出装置204。
处理器201、存储器202、输入装置203和输出装置204可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器202作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的Samba多通道顺序处理SMB请求的方法对应的程序指令/模块。处理器201通过运行存储在存储器202中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的Samba多通道顺序处理SMB请求的方法。
存储器202可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据Samba多通道顺序处理SMB请求的方法的使用所创建的数据等。此外,存储器202可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器202可选包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置203可接收输入的用户名和密码等信息。输出装置204可包括显示屏等显示设备。
一个或者多个Samba多通道顺序处理SMB请求的方法对应的程序指令/模块存储在存储器202中,当被处理器201执行时,执行上述任意方法实施例中的Samba多通道顺序处理SMB请求的方法。
执行上述Samba多通道顺序处理SMB请求的方法的计算机设备的任何一个实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时执行如上方法的计算机程序。
如图5所示,为本发明提供的上述Samba多通道顺序处理SMB请求的计算机存储介质的一个实施例的示意图。以如图5所示的计算机存储介质为例,计算机可读存储介质3存储有被处理器执行时执行如上方法的计算机程序31。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,Samba多通道顺序处理SMB请求的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种处理SMB请求的方法,其特征在于,包括以下步骤:
按照顺序给每个SMB请求设置索引号;
将所有的SMB请求按照轮询方式依次发送到各个SMB通道,并将不同SMB通道内的SMB请求经过哈希均衡后传输到对应的物理链路;
在Samba服务端设置窗口缓存队列,根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置,并判断是否接收到所述窗口缓存队列的当前起始位置的SMB请求;以及
响应于接收到所述窗口缓存队列的当前起始位置的SMB请求,将所述窗口缓存队列的当前起始位置到当前终止位置的SMB请求按照顺序执行。
2.根据权利要求1所述的方法,其特征在于,所述根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置包括:
确定上一次执行的最后一个SMB请求的第一索引号,将起始位置设置到所述第一索引号的下一位,并判断是否已经接收到所述起始位置的下一位对应的SMB请求,以及
响应于未接收到所述起始位置的下一位对应的SMB请求,将所述终止位置与所述起始位置置于同一位。
3.根据权利要求2所述的方法,其特征在于,所述根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置包括:
响应于接收到所述起始位置的下一位对应的SMB请求,则将所述终止位置设置到从所述起始位置开始已经接收到的连续的SMB请求的最后一位上。
4.根据权利要求1所述的方法,其特征在于,所述按照顺序给每个SMB请求设置索引号包括:
将SMB请求的消息类型设置为协商消息,并按照从小到大的顺序为每个SMB请求设置索引号。
5.根据权利要求4所述的方法,其特征在于,所述按照顺序给每个SMB请求设置索引号包括:
响应于索引号达到第一阈值,将后续SMB请求的消息类型设置成非协商消息,并按照从小到大的顺序为后续每个SMB请求设置索引号。
6.根据权利要求1所述的方法,其特征在于,方法还包括:
响应于连续超过读写次数阈值的数据包数量大于第二阈值,建立新的SMB通道连接。
7.根据权利要求6所述的方法,其特征在于,方法还包括:
给所述新的SMB通道赋予与原SMB通道相同的全局唯一标识符,并给所述新的SMB通道设置单独的监听对象。
8.一种处理SMB请求的系统,其特征在于,包括:
编号模块,配置用于按照顺序给每个SMB请求设置索引号;
传输模块,配置用于将所有的SMB请求按照轮询方式依次发送到各个SMB通道,并将不同SMB通道内的SMB请求经过哈希均衡后传输到对应的物理链路;
调整模块,配置用于在Samba服务端设置窗口缓存队列,根据接收到的SMB请求的索引号动态调整所述窗口缓存队列的起始位置和终止位置,并判断是否接收到所述窗口缓存队列的当前起始位置的SMB请求;以及
执行模块,配置用于响应于接收到所述窗口缓存队列的当前起始位置的SMB请求,将所述窗口缓存队列的当前起始位置到当前终止位置的SMB请求按照顺序执行。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-7任意一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110867150.2A CN113630338A (zh) | 2021-07-29 | 2021-07-29 | 一种处理smb请求的方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110867150.2A CN113630338A (zh) | 2021-07-29 | 2021-07-29 | 一种处理smb请求的方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113630338A true CN113630338A (zh) | 2021-11-09 |
Family
ID=78381781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110867150.2A Pending CN113630338A (zh) | 2021-07-29 | 2021-07-29 | 一种处理smb请求的方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113630338A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050058131A1 (en) * | 2003-07-29 | 2005-03-17 | Samuels Allen R. | Wavefront detection and disambiguation of acknowledgments |
CN103618678A (zh) * | 2013-11-18 | 2014-03-05 | 北京星网锐捷网络技术有限公司 | 自适应多链路聚合的方法、装置及系统 |
CN110417650A (zh) * | 2019-08-02 | 2019-11-05 | 广东中兴新支点技术有限公司 | 多链路数据分配方法、装置及电子设备 |
US20190361780A1 (en) * | 2018-05-25 | 2019-11-28 | EMC IP Holding Company LLC | Method and approach for pagination over data stream with sliding window |
CN110535827A (zh) * | 2019-07-17 | 2019-12-03 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 实现多连接管理的tcp协议全卸载ip核的方法及系统 |
-
2021
- 2021-07-29 CN CN202110867150.2A patent/CN113630338A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050058131A1 (en) * | 2003-07-29 | 2005-03-17 | Samuels Allen R. | Wavefront detection and disambiguation of acknowledgments |
CN103618678A (zh) * | 2013-11-18 | 2014-03-05 | 北京星网锐捷网络技术有限公司 | 自适应多链路聚合的方法、装置及系统 |
US20190361780A1 (en) * | 2018-05-25 | 2019-11-28 | EMC IP Holding Company LLC | Method and approach for pagination over data stream with sliding window |
CN110535827A (zh) * | 2019-07-17 | 2019-12-03 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 实现多连接管理的tcp协议全卸载ip核的方法及系统 |
CN110417650A (zh) * | 2019-08-02 | 2019-11-05 | 广东中兴新支点技术有限公司 | 多链路数据分配方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
汤毅坚: "《计算机局部网 网络原理与性能评价》", 北京:人民邮电出版社, pages: 123 - 127 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9559970B2 (en) | Shortening of service paths in service chains in a communications network | |
US7787454B1 (en) | Creating and/or managing meta-data for data storage devices using a packet switch appliance | |
US10148595B2 (en) | Handling dynamic port/LAG changes without breaking communication in an extended bridge | |
US6687758B2 (en) | Port aggregation for network connections that are offloaded to network interface devices | |
EP3360298B1 (en) | Lag configuration learning in an extended bridge | |
CN110022264B (zh) | 控制网络拥塞的方法、接入设备和计算机可读存储介质 | |
US9185033B2 (en) | Communication path selection | |
US20100150161A1 (en) | Methods and systems for automatic transport path selection for multi-homed entities in stream control transmission protocol | |
CN107770085B (zh) | 一种网络负载均衡方法、设备及系统 | |
WO2019179157A1 (zh) | 一种数据流量处理方法及相关网络设备 | |
JP7050094B2 (ja) | パケット送信方法、プロキシサーバ、およびコンピュータ読取り可能記憶媒体 | |
CN106576108B (zh) | 通信系统中的通信方法和设备及系统 | |
CN106789446B (zh) | 一种节点对等的集群分布式测试系统和方法 | |
US20040267960A1 (en) | Force master capability during multicast transfers | |
CN112398754B (zh) | 数据传输方法、装置、介质、电子设备及网络接入设备 | |
CN112291815A (zh) | 一种mptcp连接建立方法及装置 | |
CN110115011A (zh) | 组播业务处理方法及接入设备 | |
CN113630338A (zh) | 一种处理smb请求的方法、系统、设备及介质 | |
EP2974109B1 (en) | Systems and methods to explicitly realign packets | |
CN107231316B (zh) | 报文的传输方法及装置 | |
WO2020207429A1 (zh) | 报文处理方法、装置及计算机可读存储介质 | |
WO2019127083A1 (zh) | 一种网络限速方法、装置和服务器 | |
JP7123194B2 (ja) | データ送信方法、送信デバイス、データ受信方法、および受信デバイス | |
JP5588481B2 (ja) | ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステム | |
JP6268027B2 (ja) | 通信システム、送信装置、及び通信方法 |
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 |