流量控制方法、设备和系统技术方案

技术编号:14360835 阅读:110 留言:0更新日期:2017-01-09 04:03
本发明专利技术实施例公开了一种流量控制方法、设备和系统。该流量控制方法包括:从接收队列获取第一消息数据包,该接收队列中存储由第一设备向第二设备发送的消息数据包;在该接收队列中删除已获取的该第一消息数据包,若该接收队列中存储的消息数据包的个数小于或等于该第一阈值,向该第一设备发送载有信用数据的数据导入指令。第二设备通过数据导入指令直接更新第一设备的内存中的该信用数据,第一设备根据内存中的该信用数据控制其向第二设备发送的数据包的个数上限;从硬件层面完成信用数据的更改,省去了软件层面更改信用数据所需的交互时间,提前了第一设备根据该信用数据控制其向第二设备发送数据包的时间,提高了网络带宽的利用率。

【技术实现步骤摘要】

本专利技术实施例涉及网络领域,尤其涉及流量控制方法、设备和系统
技术介绍
设备之间的消息通信,无论是基于传输控制协议/互联网协议(TransmissionControlProtocol/InternetProtocol,简称TCP/IP)协议还是其他支持通信协议(例如套接字socket接口协议)的消息通信,需将消息封装为数据包,在设备之间交互数据包来实现消息通信;为保证正确接收数据包的概率,确定了流量控制机制,通过该流量控制机制来协调一设备(发送端)向另一设备(接收端)传输数据的速度。流量控制机制中,接收端准备好接收数据时生成载有信用数据(CreditData)的消息,并将该消息封装成数据包(流量控制包),向发送端发送该流量控制包;发送端解析该流量控制包得到载有所述信用数据的消息,进而发送端根据该信用数据确定在下一次收到流量控制包之前可以发送的最大字节数。发送端发送数据包,当发送的数据包具有的字节数达到根据该信用数据确定的最大字节数时,发送端必须等待接收端发送的下一个流量控制包并从该流量控制包解析出下一个信用数据,才能根据下一个信用数据,继续向接收端发送数据包。以队列偶(QueuePair,简称QP)为例,发送端期望向接收端提供业务时,建立一条QP通道,将该业务的数据封装在消息中,在将该消息封装在数据包中,通过该QP通道向接收端发送该数据包;接收端每接收一个来自发送端的数据包,会消耗掉一个接收队列中的一个接收缓冲格,该接收队列由多个接收缓冲格组成。接收缓冲格的数据包被应用程序取走后,可以再次用来接收从发送端发来的数据包,能够用来接收数据包的接收缓冲格被称为可用缓冲格。另外,发送端和接收端还建立了一条用于流量控制的QP通道;接收端,每当其可用缓冲格的数量达到接收队列的一半时,生成载有信用数据的数据包(流量控制包),通过该QP通道并利用QP发送接收操作向发送端传输该流量控制包;进而发送端从该流量控制包中解析出信用数据,根据解析出的信用数据确定最多可向接收端发送的数据包的个数。因此,采用QP通道的方式传输载有信用数据的流量控制包来实现接收端与发送端之间的流量控制,需要较多的软件开销(包括新建立QP通道、接收端的数据包封装、发送端的数据包解析),延迟了发送端获取到信用数据的时间,从而延长了两次根据信用数据控制数据包发送之间间隔的时间,降低了网络带宽的利用率。
技术实现思路
有鉴于此,本专利技术实施例提供了一种流量控制方法、设备和系统,通过远程内存访问指令更改用于流量控制的信用数据,从硬件层面完成信用数据的更改,省去了软件层面更改信用数据所需的交互时间。第一方面,本专利技术实施例提供了一种流量控制方法,所述流量控制方法包括:从接收队列获取第一消息数据包,所述接收队列中存储由第一设备向第二设备发送的消息数据包;在所述接收队列中删除已获取的所述第一消息数据包,若所述接收队列中存储的消息数据包的个数小于或等于所述第一阈值,向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,以使所述第一设备根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限,其中,所述信用数据为所述接收队列期望接收的消息数据包的个数,所述数据导入指令属于远程内存访问指令。结合第一方面,在第一种可能的实现方式中,所述向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,具体为:所述第二设备的内存资源控制器MRC向所述第一设备的MRC发送所述数据导入指令,使得所述第一设备的MRC转发所述数据导入指令至所述第一设备的内存控制器MC,由所述第一设备的MC根据所述数据导入指令将所述信用数据写入所述预设地址。结合第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。第二方面,本专利技术实施例提供了一种第二设备,所述第二设备包括:数据处理模块,用于从接收队列获取第一消息数据包,所述接收队列中存储由第一设备向所述第二设备发送的消息数据包;所述数据处理模块,还用于在所述接收队列中删除已获取的所述第一消息数据包,若所述接收队列中存储的消息数据包的个数小于或等于所述第一阈值,确定信用数据,所述信用数据为所述接收队列期望接收的消息数据包的个数;指令发送模块,用于向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,以使所述第一设备根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限,所述数据导入指令属于远程内存访问指令。结合第二方面,在第一种可能的实现方式中,所述指令发送模块,用于向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,具体为:所述指令发送模块为所述第二设备的内存资源控制器MRC,用于向所述第一设备的MRC发送所述数据导入指令,使得所述第一设备的MRC转发所述数据导入指令至所述第一设备的内存控制器MC,由所述第一设备的MC根据所述数据导入指令将所述信用数据写入所述预设地址。结合第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。第三方面,本专利技术实施例提供了一种流量控制方法,所述流量控制方法包括:接收由第二设备向第一设备发送的数据导入指令,向内存中所述数据导入指令指向的预设地址写入信用数据,其中,所述数据导入指令载有所述信用数据,所述数据导入指令属于远程内存访问指令;根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限。结合第三方面,在第一种可能的实现方式中,所述接收由第二设备向第一设备发送的数据导入指令,向内存中所述数据导入指令指向的预设地址写入信用数据,具体包括:所述第一设备的MRC接收从所述第二设备的MRC发送的所述数据导入指令,转发所述数据导入指令至所述第一设备的内存控制器MC;所述第一设备的MC根据所述数据导入指令向所述预设地址写入所述信用数据。结合第三方面的第一种可能的实现方式或者第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。第四方面,本专利技术实施例提供了一种第一设备,所述第一设备包括:指令接收模块,用于接收由第二设备向第一设备发送的数据导入指令,其中,所述数据导入指令载有信用数据,所述数据导入指令属于远程内存访问指令;指令响应模块,用于向内存中所述数据导入指令指向的预设地址写入所述信用数据;消息数据包限制模块,用于根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限。结合第四方面,在第一种可能的实现方式中,所述指令接收模块为第一设备的内存资源控制器MRC,用于接收从第二设备的MRC发送的数据导入指令,转发所述数据导入指令至所述第一设备的内存控制器MC;所述指令响应模块为所述第一设备的MC,用于根据所述数据导入指令向所述预设本文档来自技高网
...
流量控制方法、设备和系统

【技术保护点】
一种流量控制方法,其特征在于,所述流量控制方法包括:从接收队列获取第一消息数据包,所述接收队列中存储由第一设备向第二设备发送的消息数据包;在所述接收队列中删除已获取的所述第一消息数据包,若所述接收队列中存储的消息数据包的个数小于或等于所述第一阈值,向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,以使所述第一设备根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限,其中,所述信用数据为所述接收队列期望接收的消息数据包的个数,所述数据导入指令属于远程内存访问指令。

【技术特征摘要】
1.一种流量控制方法,其特征在于,所述流量控制方法包括:从接收队列获取第一消息数据包,所述接收队列中存储由第一设备向第二设备发送的消息数据包;在所述接收队列中删除已获取的所述第一消息数据包,若所述接收队列中存储的消息数据包的个数小于或等于所述第一阈值,向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,以使所述第一设备根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限,其中,所述信用数据为所述接收队列期望接收的消息数据包的个数,所述数据导入指令属于远程内存访问指令。2.根据权利要求1所述的方法,其特征在于,所述向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,具体为:所述第二设备的内存资源控制器MRC向所述第一设备的MRC发送所述数据导入指令,使得所述第一设备的MRC转发所述数据导入指令至所述第一设备的内存控制器MC,由所述第一设备的MC根据所述数据导入指令将所述信用数据写入所述预设地址。3.根据权利要求1或2所述的方法,其特征在于,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。4.一种第二设备,其特征在于,所述第二设备包括:数据处理模块,用于从接收队列获取第一消息数据包,所述接收队列中存储由第一设备向所述第二设备发送的消息数据包;所述数据处理模块,还用于在所述接收队列中删除已获取的所述第
\t一消息数据包,若所述接收队列中存储的消息数据包的个数小于或等于所述第一阈值,确定信用数据,所述信用数据为所述接收队列期望接收的消息数据包的个数;指令发送模块,用于向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,以使所述第一设备根据所述预设地址记录的所述信用数据确定向所述第二设备发送的消息数据包的个数上限,所述数据导入指令属于远程内存访问指令。5.根据权利要求4所述的第二设备,其特征在于,所述指令发送模块,用于向所述第一设备发送载有信用数据的数据导入指令,将所述信用数据写入所述第一设备内存中的预设地址,具体为:所述指令发送模块为所述第二设备的内存资源控制器MRC,用于向所述第一设备的MRC发送所述数据导入指令,使得所述第一设备的MRC转发所述数据导入指令至所述第一设备的内存控制器MC,由所述第一设备的MC根据所述数据导入指令将所述信用数据写入所述预设地址。6.根据权利要求4或5所述的第二设备,其特征在于,所述数据导入指令包括:所述第一设备的标识、与所述预设地址对应的物理地址。7.一种流量控制方法,其特征在于,所述流量控制方法包括:接收由第二设备向第一设备发送的数据导入指令,向内存中所述数据导入指令指向的预设地址写入信用数据,其中,所述数据导入指令载有所述信用数据,所述数据导入指令属于远程内存访问指令;根据所述预设地址记录的...

【专利技术属性】
技术研发人员:张乐乐董建波侯锐江涛
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1