CN110391991A - 一种流量控制的方法及相关装置 - Google Patents
一种流量控制的方法及相关装置 Download PDFInfo
- Publication number
- CN110391991A CN110391991A CN201810349910.9A CN201810349910A CN110391991A CN 110391991 A CN110391991 A CN 110391991A CN 201810349910 A CN201810349910 A CN 201810349910A CN 110391991 A CN110391991 A CN 110391991A
- Authority
- CN
- China
- Prior art keywords
- client
- initial value
- period
- window
- flow control
- 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.)
- Granted
Links
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/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- 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/39—Credit based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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
-
- 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/12—Avoiding congestion; Recovering from congestion
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2466—Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2475—Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
-
- 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/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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/55—Push-based network services
-
- 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/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种流量控制的方法及相关装置。当服务端接收到客户端发送的发布报文时,服务端查询客户端的流控窗口的窗口值,并比较窗口值和预设的窗口门限;当窗口值等于窗口门限时,拒绝接收发布报文;当窗口值大于窗口门限时,将窗口值递减预设值,并处理发布报文。在客户端需要向服务端发送发布报文时,客户端查询客户端的流控窗口的窗口值,并比较窗口值和预设的窗口门限;当窗口值等于窗口门限时,暂停向服务端发送发布报文;当窗口值大于窗口门限时,将窗口值递减预设值,并向服务端发送发布报文。本申请能够避免客户端和服务端之间传输消息时,客户端发送消息的速度太快,导致服务端无法及时处理客户端发送的消息,无法正常通信的问题。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种流量控制的方法及相关装置。
背景技术
消息队列遥测传输(Message Queue Telemetry Transport,MQTT)协议是一个客户端-服务端架构的发布/订阅模式的消息传输协议,具有轻巧、开放、简单、规范、易于实现等特点。MQTT协议可以应用到很多场景,如机器与机器的通信,以及物联网环境(Internetof Things,IoT)等等。
MQTT协议运行在传输控制协议(Transmission Control Protocol,TCP)/网络协议(Internet Protocol,IP)、或其它提供了有序、可靠、双向连接的网络连接上。但是目前MQTT协议并没有流量控制(流控)的机制,这就使得客户端和服务端之间传输消息时,如果发送方发送消息的速度太快,则会导致接收方在接收消息过程中因处理能力限制、消息拥塞等原因而无法及时处理发送方发送的消息从而使客户端和服务端之间无法进行正常通信。
发明内容
本申请提供了一种流量控制的方法及相关装置,能够避免客户端和服务端之间传输消息时,如果发送方发送消息的速度太快,导致接收方无法及时处理发送方发送的消息,使客户端和服务端之间无法进行正常通信的问题。
第一方面,本申请提供了一种流量控制的方法。当服务端接收到客户端发送的发布报文时,所述服务端查询所述客户端的流控窗口的窗口值。所述服务端比较所述窗口值和预设的窗口门限。当所述窗口值等于所述窗口门限时,所述服务端拒绝接收所述发布报文。当所述窗口值大于所述窗口门限时,所述服务端将所述窗口值递减预设值,并处理所述发布报文。
本申请实施例中,服务端存储客户端的流控窗口的窗口值,服务端通过客户端的流控窗口的窗口值可以控制接收客户端发送的发布报文,实现对客户端的流量控制。从而可以避免因客户端发送报文的速度太快或数量太多导致服务端无法及时处理,使客户端和服务端之间无法进行正常通信的问题。
结合第一方面,在第一方面的第一种可能的实施方式中,还包括:所述服务端接收所述客户端发送的连接请求报文,所述连接请求报文包括所述客户端的流控窗口的第一初始值和所述客户端的流控窗口的第一恢复周期,所述第一恢复周期表示所述客户端的流控窗口恢复为所述第一初始值的周期;当所述第一初始值和所述第一恢复周期满足预设条件时,所述服务端存储所述第一初始值和所述第一恢复周期,并向所述客户端发送第一连接确认报文,其中,所述第一连接确认报文包括所述第一初始值和所述第一恢复周期,所述第一连接确认报文表示所述客户端的流控窗口的初始值为所述第一初始值,以及所述客户端的流控窗口的恢复周期为所述第一恢复周期;当所述第一初始值和所述第一恢复周期不满足所述预设条件,所述服务端确定所述客户端的流控窗口的第二初始值和所述客户端的流控窗口的第二恢复周期;所述服务端存储所述第二初始值和所述第二恢复周期;所述服务端向所述客户端发送第二连接确认报文,其中,所述第二连接确认报文包括所述第二初始值和所述第二恢复周期,所述第二连接确认报文表示所述客户端的流控窗口的初始值为所述第二初始值,以及所述客户端的流控窗口的恢复周期为所述第二恢复周期。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,在所述服务端向所述客户端发送第一连接确认报文之后,所述方法还包括:所述服务端根据所述第一恢复周期将所述客户端的流控窗口的值设置为所述第一初始值。
结合第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,还包括:所述服务端接收所述客户端发送的第一心跳报文,所述第一心跳报文包括所述客户端的流控窗口的第三初始值和所述客户端的流控窗口的第三恢复周期;所述第三初始值用于更新所述第一初始值,所述第三恢复周期用于更新所述第一恢复周期;当所述第三初始值和第三恢复周期满足所述预设条件时,所述服务端存储所述第三初始值和第三恢复周期,并向所述客户端发送第二心跳报文,所述第二心跳报文包括所述第三初始值和第三恢复周期;当所述第三初始值和第三恢复周期不满足所述预设条件时,所述服务端确定第四初始值和第四恢复周期,并向所述客户端发送第三心跳报文,所述第三心跳报文包括所述第四初始值和第四恢复周期。
结合第一方面的第一种可能的实施方式,在第一方面的第四种可能的实施方式中,在所述服务端向所述客户端发送第二连接确认报文之后,还包括:所述服务端根据所述第二恢复周期将所述客户端的流控窗口的值设置为所述第二初始值。
第二方面,本申请提供了一种流量控制的方法。在客户端需要向服务端发送发布报文时,所述客户端查询所述客户端的流控窗口的窗口值;所述客户端比较所述窗口值和预设的窗口门限;当所述窗口值等于所述窗口门限时,所述客户端暂停向所述服务端发送所述发布报文;当所述窗口值大于所述窗口门限时,所述客户端将所述窗口值递减预设值,并向所述服务端发送所述发布报文。
本申请实施例中,客户端存储其自身的流控窗口的窗口值,通过该窗口值可以控制是否向服务端发送发布报文,实现对客户端的流量控制,从而可以避免因客户端发送报文的速度太快或数量太多导致服务端无法及时处理,使客户端和服务端之间无法进行正常通信的问题。
结合第二方面,在第二方面的第一种可能的实施方式中,所述客户端向所述服务端发送连接请求报文,所述连接请求报文包括所述客户端的流控窗口的第一初始值和所述客户端的流控窗口的第一恢复周期,所述第一恢复周期表示所述客户端的流控窗口恢复为所述第一初始值的周期;所述客户端接收所述服务端发送的第一连接确认报文,所述第一连接确认报文包括所述第一初始值和第一恢复周期,所述第一连接确认报文表示所述客户端的流控窗口的初始值为所述第一初始值,以及所述客户端的流控窗口的恢复周期为所述第一恢复周期;
所述客户端确定所述第一初始值为所述客户端的流控窗口的初始值,所述第一恢复周期为所述客户端的流控窗口的恢复周期;所述客户端存储所述第一窗口值和所述第一恢复周期。
结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,在所述客户端存储所述第一窗口值和所述第一恢复周期之后,还包括:所述客户端根据所述第一恢复周期将所述客户端的流控窗口的值设置为所述第一初始值。
结合第二方面的第一种可能的实施方式或第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,还包括:所述客户端向所述服务端发送第一心跳报文,所述第一心跳报文包括所述客户端的流控窗口的第三初始值和所述客户端的流控窗口的第三恢复周期,所述第三初始值用于更新所述第一初始值,所述第三恢复周期用于更新所述第一恢复周期;当所述客户端接收到包括所述第三初始值和所述第三恢复周期的第二心跳报文时,根据所述第三初始值更新所述第一初始值,根据所述第三恢复周期更新所述第一恢复周期,所述第二心跳报文为所述服务端在接受所述第三初始值和所述第三恢复周期时发送的;当所述客户端接收到包括第四初始值和第四恢复周期的第三心跳报文时,根据所述第四初始值更新所述第一初始值,根据所述第四恢复周期更新所述第一恢复周期,所述第三心跳报文为所述服务端在不接受所述第三初始值和所述第三恢复周期时发送的。
结合第二方面,在第二方面的第四种可能的实施方式中,还包括:所述客户端向所述服务端发送连接请求报文,所述连接请求报文包括所述客户端的流控窗口的第一初始值和所述客户端的流控窗口的第一恢复周期,所述第一恢复周期表示所述客户端的流控窗口恢复为所述第一初始值的周期;所述客户端接收所述服务端发送的第二连接确认报文,所述第二连接确认报文包括所述第二初始值和第二恢复周期,所述第二连接确认报文表示所述客户端的流控窗口的初始值为所述第二初始值,以及所述客户端的流控窗口的恢复周期为所述第二恢复周期;所述客户端确定所述第二初始值为所述客户端的流控窗口的初始值,所述第二恢复周期为所述客户端的流控窗口的恢复周期;所述客户端存储所述第二窗口值和所述第二恢复周期。
结合第二方面的第四种可能的实施方式,在第二方面的第五种可能的实施方式中,在所述客户端存储所述第二窗口值和所述第二恢复周期之后,还包括:
所述客户端根据所述第二恢复周期将所述客户端的流控窗口的值设置为所述第二初始值。
第三方面,本申请提供了一种流量控制的装置,包括用于实现本申请第一方面及第一方面的各实现方式中的方法的功能单元。
第四方面,本申请提供了一种流量控制的装置,包括用于实现本申请第二方面及第二方面的各实现方式中的方法的功能单元。
第五方面,本申请提供了一种流量控制的系统,包括如第三方面或第三方面的任一种实施方式所述的流量控制的装置和如第四方面或第四方面的任一种实施方式所述的流量控制的装置。
第六方面,本申请提供了一种流量控制的设备,包括:处理器和存储器;
所述存储器用于存储计算机程序代码,所述计算机程序代码包括指令;
所述处理器用于执行所述指令,以使所述数据传输的设备实现如第一方面或第一方面的任一种实施方式所述的流量控制的方法。
第七方面,本申请提供了另一种流量控制的设备,包括:处理器和存储器;
所述存储器用于存储计算机程序代码,所述计算机程序代码包括指令;
所述处理器用于执行所述指令,以使所述数据传输的设备用于执行如第二方面或第二方面的任一种实施方式所述的流量控制的方法。
第八方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如第一方面或第一方面的任一种实施方式所述的流量控制的方法。
第九方面,本申请提供了另一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如第二方面或第二方面的任一种实施方式所述的流量控制的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1是根据本申请实施例提供的网络架构示意图;
图2是根据本申请实施例提供的一种服务端的示意结构图;
图3是根据本申请实施例提供的一种客户端的示意结构图;
图4是根据本申请实施例提供的一种流量控制的方法的示意性流程图;
图5是根据本申请实施例提供的一种流量控制的装置的示意框图;
图6是根据本申请实施例提供的又一种流量控制的装置的示意框图;
图7是根据本申请实施例提供的再一种流量控制的装置的示意框图;
图8是根据本申请实施例提供的另一种流量控制的装置的示意框图;
图9是根据本申请实施例提供的一种流量控制的设备的示意框图。
具体实施方式
在不冲突的情况下,本申请中的各实施例及各实施例中的不同特征可以相互组合。
本申请实施例适用于服务端和客户端之间通过MQTT协议传输数据的网络架构。图1为本申请实施例适用的一种网络架构示意图。如图1所示,MQTT服务器101作为服务端,传感器(sensor)103、传感器104、传感器105和物联网终端106为客户端。客户端可以直接连接服务端,例如传感器105和物联网终端106,两个设备与MQTT服务器101直接连接。客户端还可以通过网关与服务端连接,例如传感器103和传感器104,两者通过物联网网关102与MQTT服务器101连接。物联网网关102,为传感器103和传感器104的接入网关,可以是由一个桥梁(bridge)模式的MQTT服务器,也可以是一个MQTT客户端。传感器(sensor)103、传感器104、传感器105和物联网终端106用于采集数据,并通过MQTT协议发送给MQTT服务器101,MQTT服务器101接收数据后进行处理。
本申请实施例中,为了对客户端和服务端之间进行流控,服务端和客户端均设置客户端的流控窗口。流控窗口的初始值可以表示客户端在一个周期内可以发送报文的数量,或者可以表示客户端在一个周期内可以接收报文的大小等等。服务端接收客户端发送的一个报文后,对应该客户端的流控窗口的窗口值需要递减预设值,以表示本周期内可以接收该客户端发送报文的准确值。客户端发送的一个报文后,需将流控窗口的窗口值需要递减预设值,以表示本周期内可以发送报文的准确值。如果流控窗口的初始值可以表示客户端在一个周期内可以发送报文的数量,则预设值通常设置为1;如果流控窗口的初始值可以表示客户端在一个周期内可以发送报文的大小,则预设值通常设置为一个报文的大小。本申请实施例中以客户端的流控窗口的初始值表示客户端在一个周期内可以发送报文的数量为例进行说明。
此外,服务端和客户端还设置流控窗口的窗口值的恢复周期,服务端和客户端可以根据恢复周期,通过定时器装置周期性的将流控窗口的窗口值设置为初始值,例如服务端和客户端中可以设置计时定时器模块,用于对流动窗口的恢复周期进行计时,并在计时达到一个恢复周期时将流控窗口恢复为初始值。恢复周期的值可以根据实际应用场景进行设置,例如设置为10秒。如果设置恢复周期为10秒,流控窗口的初始值为100个,则可以表示服务端和客户端在10秒内最多可以接收100个报文。
服务端通常会与多个客户端通信,而各客户端的流控窗口的初始值和恢复周期可以不同,所以服务端对应各客户端的流控窗口的初始值和恢复周期也可以不同,服务端中可以存储各客户端和该客户端的流控窗口之间的对应关系。客户端中存储其自身的流控窗口。客户端存储的流控窗口与服务端存储的该客户端的流控窗口相同。客户端和服务端均通过存储的流控窗口对客户端进行流控。
服务端和客户端之间对流控窗口的初始值和恢复周期可以进行协商和更新。例如,服务端和客户端可以在建立连接时,通过建立连接的报文来协商确定流控窗口的初始值和流控窗口的恢复周期。服务端和客户端在数据传输过程中,可以通过心跳报文来协商更新流控窗口的初始值和流控窗口的恢复周期。
本申请实施例中,可以对建立连接的报文(如连接请求报文和连接确认报文)和心跳报文进行扩展,以使其中携带用于协商或更新的流控参数,如流控窗口的初始值和流控窗口的恢复周期。例如,可以扩展各报文中可变包头的属性字段,增加Receive Maximum属性字段来存储流控窗口的初始值,增加流量控制周期(traffic control period)字段来存储流控窗口的恢复周期。
客户端和服务端中还可以设置窗口门限,窗口门限的值一般小于流控窗口的初始值。在客户端发送报文时,如果客户端判断其流控窗口的窗口值等于窗口门限,则需要暂停发送报文的操作,待该窗口值恢复初始值后再执行发送报文的操作,从而实现对客户端的流控;在服务端接收报文时,如果服务端存储该客户端的流控窗口的窗口值等于窗口门限,则需要拒绝接收该客户端发送的报文,以实现对该客户端的流量控制。通常窗口门限的值设置为0。
服务端可以包括多个模块,例如,如图2所示,访问控制(ACL)模块、会话管理器(session manager)模块、订阅管理器(subscribe manager)模块、报文管理器(packetmanager)模块、定时器模块,各模块之间可以彼此通信。本申请实施例中,可以在会话管理器模块中添加流控服务(FlowCtrl Service)功能,并增强定时器模块、报文管理器模块中发布服务(PUBLISH Service)、连接服务(CONNECT Service)、连接确认服务(CONNACKService)、心跳服务(PINGREQ Service、PINGRESP Service)的功能,以实现本申请实施例中的流量控制。
ACL模块用于负责客户端接入认证与操作鉴权。具体包括:客户端与服务端建立连接时,提供客户端的用户名密码或证书,ACL模块对客户端进行认证,客户端认证通过后把客户端的会话保存在会话管理器模块中;客户端在执行发布、订阅等操作时,ACL模块对操作执行鉴权,例如,ACL模块需要校验客户端对发布、订阅的主题是否有访问(读、写)的权限,如果没有权限则拒绝该操作,否则转到对应的模块执行该操作处理;以及通过ACL模块中持久化模块对消息、会话、客户端的参数等信息的持久化。
定时器模块,用于实现服务端的定时任务。例如,对客户端会话的心跳参数(keepalive)、超时参数(timeout)进行计时任务,对已释放资源的回收操作等等。本申请实施例中,定时器模块还可以包括对FlowCtrl Service中窗口值的定时恢复初始值的操作,以确保服务端与客户端之间消息正常收发,达到流控的目的。
会话管理器模块,负责对客户端会话的管理。例如,当客户端与服务端断连后重连时,只要会话管理器模块存储的该客户端会话在有效期内,会话管理器模块可以根据该客户端会话恢复客户端的订阅,并重新向客户端下发断连期间新的消息。会话管理器模块中FlowCtrl Service作为流控机制的接口,可以保存流控参数(如各流控窗口的初始值、各流控窗口的恢复周期)及其实时计数数据(如各窗口值);会话管理器模块中会话服务用于创建与客户端的连接实例,保存连接参数及实时变量、消息链表等。
订阅管理器模块负责处理客户端的订阅请求,并将各客户端的订阅请求保存为订阅树,从而将各客户端会话与报文之间建立连接关系,在发布报文时可以通过订阅树匹配到指定的客户端,以便于将报文发给指定的客户端。
报文管理器模块用于处理服务端接收到的报文,并对报文进行分析,根据MQTT协议解析报文类型并进行相应的处理。其中对连接(CONNECT)、发布(PUBLISH-IN)、心跳(PING)类型的报文操作进行处理。
服务端接收客户端发起的连接请求报文后,调用会话管理接口,建立会话实例,用于保存客户端与服务端之间的连接。本申请实施例中,在连接请求报文的可变包头中增加Receive Maximum属性字段来携带流控窗口的初始值,增加流量控制周期字段来携带流控窗口的恢复周期。
服务端接收来自客户端的发布报文后,根据订阅树将该发布报文转发给订阅消息的客户端。本申请实施例中,每当服务端接入到一个发布报文时,可以调用FlowCtrlService将服务端存储该客户端的流控窗口的窗口值减预设值。并且当服务端接收到一个发布报文时,如果服务端判定该客户端的流控窗口的窗口值等于窗口门限,则服务端将拒绝接收该客户端的发布报文,待定时器模块中计时达到一个恢复周期,将该客户端流控窗口的窗口值恢复后再恢复接收该客户端的发布报文。
服务端接收来自客户端的心跳请求报文(PINGREQ),然后需要回复心跳响应报文(PINGRESP)用以保持与客户端之间连接,上述心跳请求报文和心跳响应报文可以统称为心跳报文。本申请实施例中,服务端和客户端可以在心跳报文中增加属性字段,以用于服务端和客户端之间协商、或交换客户端的流控窗口的初始值的恢复周期。例如,在连接心跳报文的可变包头中增加Receive Maximum属性字段来携带客户端的流控窗口的初始值,增加流量控制周期字段来携带客户端的流控窗口的恢复周期。
服务端通过连接确认报文回复客户端发起的连接请求。本申请实施例中,可以在连接确认报文的可变包头中增加属性字段,以用于服务端和客户端之间协商、或交换客户端的流控窗口的初始值和流控窗口的恢复周期。例如,在连接确认报文的可变包头中增加Receive Maximum属性字段来携带客户端的流控窗口的初始值,增加流量控制周期(traffic control period)字段来携带客户端的流控窗口的恢复周期。
客户端可以包括多个模块,例如,如图3所示,可以包括连接服务模块、报文管理器模块、定时器模块。本申请实施例中,可以添加流控服务功能,并增强定时器模块、连接服务模块、报文管理器模块中发布服务、心跳请求服务(PINGREQ Service)、心跳响应服务(PINGRESP Service)的功能,以实现本申请实施例中的流量控制。
连接服务模块用于客户端向服务端请求建立连接。本申请实施例中,可以在连接请求报文的可变包头中增加属性字段,以用于服务端和客户端之间协商、或交换客户端的流控窗口的初始值和恢复周期。例如,在连接请求报文的可变包头中增加Receive Maximum属性字段来携带客户端的流控窗口的初始值,增加流量控制周期字段来携带客户端的流控窗口的恢复周期。
定时器模块,用于执行客户端定时任务,定时发送心跳报文,以保持与服务端之间的连接。本申请实施例中,定时器模块需要根据客户端的流控窗口的恢复周期定时将该流控窗口恢复为流控窗口的初始值。定时器模块中心跳服务(PINGREQ Service和PINGRESPService)用于通过心跳报文保持与服务端之间的连接,还可以根据需求用于服务端和客户端之间协商更新客户端的流控窗口的初始值和流控窗口的恢复周期。例如,在连接心跳报文的可变包头中增加Receive Maximum属性字段来携带客户端的流控窗口的初始值,增加流量控制周期字段来携带客户端的流控窗口的恢复周期。
对于报文管理器模块中发布服务功能,本申请实施例中,客户端向服务端发布消息时,每发布一个报文前,需要检查客户端的流控窗口的窗口值是否大于窗口门限。如果客户端的流控窗口的窗口值大于窗口门限,则将该窗口值减预设值并发送该报文;否则,客户端暂停发送该报文,待定时器模块中计时达到一个恢复周期,将该窗口值恢复到初始值后再发送该报文。
本申请一实施例提供了一种流量控制的方法,可以用于图1所示网络架构,如图4所示,该方法包括以下步骤。
201,在客户端需要向服务端发送发布报文时,客户端查询客户端的流控窗口的窗口值。
其中,客户端存储客户端的流控窗口的窗口值。客户端在向服务端发送发布报文时,需要判断其此时是否可以发送发布报文,也就是需要比较该客户端的流控窗口的窗口值和预设的窗口门限,来确定该客户端此时是否可以发送发布报文,所以需要查询该客户端的流控窗口的窗口值。客户端的流控窗口的窗口值是可能是初始值,也可以能是根据发送发布报文的情况调整后的窗口值。
202,客户端比较窗口值和预设的窗口门限。
其中,客户端比较客户端的流控窗口的窗口值和预设的窗口门限,以判断当前是否可以向该服务端发送发布报文。
203,当窗口值等于窗口门限时,客户端暂停向服务端发送发布报文。
其中,通过步骤202的比较,确定客户端的流控窗口的窗口值等于窗口门限时,则可以确定此时该客户端不可以向服务端发送发布报文,所以此时客户端暂停发送发布报文。后续客户端可以实时监测其流控窗口的窗口值,待其流控窗口的窗口值恢复初始值后,再发送发布报文。
204,当窗口值大于窗口门限时,客户端将窗口值递减预设值,并向服务端发送发布报文。
其中,通过步骤202的比较,确定客户端的流控窗口的窗口值等于窗口门限时,可以确定此时该客户端可以向服务端发送发布报文,所以此时客户端可以将发布报文发送给服务端。同时,客户端需要将客户端的流控窗口的窗口值递减预设值,以准确的记录客户端向服务端发送发布报文的数量,从而准确的确定该客户端可以发送发布报文的数量,以实现对客户端的流控。
205,当服务端接收到客户端发送的发布报文时,服务端查询客户端的流控窗口的窗口值。
其中,服务端存储每个客户端的流控窗口的窗口值。当服务端接收到客户端发送的发布报文时,服务端需要查询服务器存储的该客户端的流控窗口的窗口值,以确定此时服务端是否可以正常处理该客户端发送的发布报文。
206,服务端比较窗口值和预设的窗口门限。
其中,服务端比较服务器存储的该客户端的流控窗口的窗口值和预设的窗口门限,以判断当前是否可以接收该客户端发送的发布报文。
207,当窗口值等于窗口门限时,服务端拒绝接收发布报文。
通过步骤206的比较,服务端确定该客户端的流控窗口的窗口值等于窗口门限时,服务端可以确定此时其不可以接收该客户端发送的发布报文,所以此时服务端拒绝接收该客户端发送的发布报文。服务端拒绝接收发布报文的方式可以为丢弃接收到的发布报文,或者向客户端回复拒绝接收发布报文的消息。
208,当窗口值大于窗口门限时,服务端将窗口值递减预设值,并处理发布报文。
其中,通过步骤206的比较,确定服务器存储的该客户端的流控窗口的窗口值大于窗口门限时,服务端可以确定此时可以接收该客户端发送的发布报文,所以此时服务端可以处理发布报文。同时,服务端需要将该客户端的流控窗口的窗口值递减预设值,以准确的记录还可以接收该客户端发送的发布报文的数量,以实现对客户端的流控。
本申请实施例中,服务端和客户端均存储客户端的流控窗口的窗口值,服务端通过客户端的流控窗口的窗口值控制接收该客户端的发布报文的数量,客户端通过客户端的流控窗口的窗口值控制发送给服务端的发布报文的数量,从而实现对客户端的流量控制。如此本申请实施例可以通过对客户端的流控避免因客户端发送报文的速度太快或数量太多导致服务端无法及时处理,使客户端和服务端之间无法进行正常通信的问题。
本申请实施例的一种实施方式中,由于服务端和客户端需要存储客户端的流控窗口的窗口值,所以服务端和客户端之间需要协商确定客户端的流控窗口的初始值,以及客户端的流控窗口的恢复周期。例如,服务端和客户端之间可以通过连接建立过程来确定客户端的流控窗口的初始值,以及客户端的流控窗口的恢复周期。具体方式可以为如下过程。
A,客户端可以向服务端发送连接请求报文,连接请求报文包括客户端的流控窗口的第一初始值和客户端的流控窗口的第一恢复周期。
其中,客户端与服务端之间建立连接时会向服务端发送连接请求报文。第一恢复周期表示客户端的流控窗口恢复为第一初始值的周期。第一初始值和第一恢复周期的值可以预先设置,具体值可以根据实际场景来确定。
B,服务端接收客户端发送的连接请求报文后,可以判断第一初始值和第一恢复周期是否满足预设条件。服务端中可以预设初始值的允许范围和恢复周期的允许范围,预设条件可以设置为初始值和恢复周期均处于对应的允许范围内。在服务端接收连接请求报文后,通过判断第一初始值和第一恢复周期是否均处于对应的允许范围内来确定第一初始值和第一恢复周期是否满足预设条件。
C,当服务端判定第一初始值和第一恢复周期满足预设条件时,服务端可以确定第一初始值可以作为客户端的流动窗口的初始值,以及第一恢复周期可以作为客户端的流动窗口的恢复周期,所以需要存储第一初始值和第一恢复周期,以实现后续对客户端进行流控。同时服务端向客户端发送第一连接确认报文。第一连接确认报文包括第一初始值和第一恢复周期。第一连接确认报文表示客户端的流控窗口的初始值为所述第一初始值,以及所述客户端的流控窗口的恢复周期为所述第一恢复周期,服务端向客户端发送第一连接确认报文表示接受客户端的流控窗口的初始值为所述第一初始值,以及所述客户端的流控窗口的恢复周期为所述第一恢复周期。
需要说明的是,服务端存储了客户端的流控窗口的第一初始值和客户端的流控窗口的第一恢复周期后,可以通过服务端中定时器模块以计时等方式记录客户端的流控窗口的恢复周期,进而在与客户端数据传输过程中可以根据第一恢复周期将客户端的流控窗口的窗口值设置为第一初始值。
D,当第一初始值和第一恢复周期不满足预设条件时,服务端需要重新确定满足预设条件的初始值和恢复周期,即确定出客户端的流控窗口的第二初始值和客户端的流控窗口的第二恢复周期,并且服务端需要存储确定的第二初始值和第二恢复周期,以实现后续对客户端进行流控。同时服务端向客户端发送第二连接确认报文,第二连接确认报文包括第二初始值和第二恢复周期。第二连接确认报文表示第二连接确认报文表示所述客户端的流控窗口的初始值为所述第二初始值,以及所述客户端的流控窗口的恢复周期为所述第二恢复周期。服务端向客户端发送第二连接确认报文,表示不接受客户端的流控窗口的初始值为所述第一初始值,以及不接受所述客户端的流控窗口的恢复周期为所述第一恢复周期,并且该服务端确定的该客户端的流控窗口的初始值为所述第二初始值,以及该客户端的流控窗口的恢复周期为所述第二恢复周期。
需要说明的是,服务端存储了客户端的流控窗口的第二初始值和客户端的流控窗口的第二恢复周期后,可以通过服务端中定时器模块以计时等方式记录客户端的流控窗口的恢复周期为该第二恢复周期,进而在与客户端数据传输过程中可以根据第二恢复周期将客户端的流控窗口的窗口值设置为第二初始值。
E,对于客户端而言,当客户端接收所述服务端发送的第一连接确认报文时,根据第一连接确认报文中包括的第一初始值和第一恢复周期,可以确定服务端接受第一初始值作为客户端的流控窗口的初始值,以及第一恢复周期作为客户端的流控窗口的恢复周期,所以客户端确定所述第一初始值为所述客户端的流控窗口的初始值,所述第一恢复周期为所述客户端的流控窗口的恢复周期。并对第一初始值和第一恢复周期进行存储,以实现后续对客户端进行流控。
需要说明的是,客户端存储了该客户端的流控窗口的第一初始值和该客户端的流控窗口的第一恢复周期后,可以通过客户端中定时器模块以计时等方式记录客户端的流控窗口的恢复周期,进而在与服务端数据传输过程中可以根据第一恢复周期将该客户端的流控窗口的窗口值设置为第一初始值。
F,对于客户端而言,当客户端接收所述服务端发送的第二连接确认报文时,客户端根据第二连接确认报文中包括的第二初始值和第二恢复周期,可以确定服务端不接受第一初始值作为客户端的流控窗口的初始值,以及第一恢复周期作为客户端的流控窗口的恢复周期,并且客户端通过第二连接确认报文确定服务端重新确定了客户端的流控窗口的初始值和客户端的流控窗口的恢复周期,即第二初始值和第二恢复周期。所以客户端确定所述第二初始值为所述客户端的流控窗口的初始值,所述第二恢复周期为所述客户端的流控窗口的恢复周期。并且客户端存储该第二初始值和第二恢复周期,以实现后续对客户端进行流控。
需要说明的是,客户端存储了该客户端的流控窗口的第二初始值和该客户端的流控窗口的第二恢复周期后,可以通过客户端中定时器模块以计时等方式记录客户端的流控窗口的恢复周期,进而在与服务端数据传输过程中可以根据第二恢复周期将该客户端的流控窗口的窗口值设置为第二初始值。
本申请实施例中通过上述过程,客户端和服务端在连接建立的过程中确定出客户端的流控窗口的初始值和流控窗口的恢复周期,从而可以在数据传输过程中确定客户端的流控窗口的窗口值,以便于实现对客户端的流控。
本申请实施例的又一种实施方式中,客户端和服务端在数据传输过程中,由于网络状态变化、传输数据量变化等原因,客户端需要更新流控窗口的初始值和恢复周期,此时客户端和服务端之间通过心跳报文来更新流控窗口的初始值和恢复周期。
例如,在上述实施方式中步骤E之后,客户端与服务端之间确定出第一初始值为客户端的流控窗口的初始值,以及第一恢复周期为客户端的流控窗口的恢复周期。后续需要更新流控窗口的初始值和恢复周期时,可以执行如下过程:客户端向服务端发送的第一心跳报文,第一心跳报文包括客户端的流控窗口的第三初始值和客户端的流控窗口的第三恢复周期,第三初始值用于更新第一初始值,第三恢复周期用于更新第一恢复周期;当第三初始值和第三恢复周期满足预设条件时,服务端存储第三初始值和第三恢复周期,并向客户端发送第二心跳报文,第二心跳报文包括第三初始值和第三恢复周期;当第三初始值和第三恢复周期不满足预设条件时,服务端确定第四初始值和第四恢复周期,并向客户端发送第三心跳报文,第三心跳报文包括第四初始值和第四恢复周期;当客户端接收到包括第三初始值和第三恢复周期的第二心跳报文时,客户端根据第三初始值更新第一初始值,根据第三恢复周期更新第一恢复周期,第二心跳报文为服务端在接受所述第三初始值和所述第三恢复周期时发送的;当客户端接收到包括第四初始值和第四恢复周期的第三心跳报文时,客户端根据第四初始值更新第一初始值,根据第四恢复周期更新第一恢复周期,第三心跳报文为服务端在不接受所述第三初始值和所述第三恢复周期时发送的。
客户端确定出用于更新第一初始值的第三初始值和用于更新第一恢复周期的第三恢复周期后,需与服务端之间协商后才可以启用,所以客户端通过第一心跳报文将第三初始值和第三恢复周期发送给服务端。
服务端接收第一心跳报文后,判断第三初始值和第三恢复周期是否满足预设条件。如果第三初始值和第三恢复周期满足预设条件,则服务端接受第三初始值和第三恢复周期,存储第三初始值和第三恢复周期,来更新第一初始值和第一恢复周期,即将客户端的流动窗口的初始值更新为第三初始值,将客户端的流动窗口的恢复周期更新为第三恢复周期。并且如果第三初始值和第三恢复周期满足预设条件,服务端向客户端发送第二心跳报文,第二心跳报文中包括第三初始值和第三恢复周期,用于通知客户端使用第三初始值更新第一初始值,以及使用第三恢复周期更新第一恢复周期。如果第三初始值和第三恢复周期不满足预设条件,则服务端不接受第三初始值和第三恢复周期,需要确定满足预设条件的第四初始值和第四恢复周期,然后存储第四初始值和第四恢复周期,以便来更新第一初始值和第一恢复周期,即将客户端的流动窗口的初始值更新为第四初始值,将客户端的流动窗口的恢复周期更新为第四恢复周期。并且如果第三初始值和第三恢复周期不满足预设条件,服务端向客户端发送第三心跳报文,第三心跳报文中包括第四初始值和第四恢复周期,用于通知客户端使用第四初始值更新第一初始值,以及使用第四恢复周期更新第一恢复周期。
客户端在发送第一心跳报文后,会接收服务端的反馈。如果客户端接收到包括第三初始值和第三恢复周期的第二心跳报文,则可以确定服务端接受第三初始值来更新第一初始值,以及接受第三恢复周期来更新第一恢复周期,如此客户端可以根据第三初始值更新第一初始值,根据第三恢复周期更新第一恢复周期,即将客户端的流动窗口的初始值更新为第三初始值,将客户端的流动窗口的恢复周期更新为第三恢复周期。如果客户端接收到包括第四初始值和第四恢复周期的第二心跳报文,则可以确定服务端不接受第三初始值来更新第一初始值,以及不接受第三恢复周期来更新第一恢复周期,并且确定了第四初始值来更新第一初始值,以及确定了第四恢复周期来更新第一恢复周期,如此客户端可以根据第四初始值更新第一初始值,根据第四恢复周期更新第一恢复周期,即将客户端的流动窗口的初始值更新为第四初始值,将客户端的流动窗口的恢复周期更新为第四恢复周期。
再例如,在上述实施方式中步骤F之后,客户端与服务端之间确定出第二初始值为客户端的流控窗口的初始值,以及第二恢复周期为客户端的流控窗口的恢复周期。后续需要更新流控窗口的初始值和恢复周期时,可以执行如下过程:客户端向服务端发送的第一心跳报文,第一心跳报文包括客户端的流控窗口的第五初始值和客户端的流控窗口的第五恢复周期,第五初始值用于更新第二初始值,第五恢复周期用于更新第二恢复周期;当第五初始值和第五恢复周期满足预设条件时,服务端存储第五初始值和第五恢复周期,并向客户端发送第二心跳报文,第二心跳报文包括第五初始值和第五恢复周期;当第五初始值和第五恢复周期不满足预设条件时,服务端确定第六初始值和第六恢复周期,并向客户端发送第三心跳报文,第三心跳报文包括第六初始值和第六恢复周期;当客户端接收到包括第五初始值和第五恢复周期的第二心跳报文时,根据第五初始值更新第二初始值,根据第五恢复周期更新第二恢复周期,第二心跳报文为服务端在接受第五初始值和第五恢复周期时发送的;当客户端接收到包括第六初始值和第六恢复周期的第三心跳报文时,根据第六初始值更新第二初始值,根据第六恢复周期更新第二恢复周期,第二心跳报文为服务端在接受所述第五初始值和所述第五恢复周期时发送的。
客户端确定出用于更新第一初始值的第五初始值和用于更新第一恢复周期的第五恢复周期后,需与服务端之间协商后才可以启用,所以客户端通过第一心跳报文将第五初始值和第五恢复周期发送给服务端。
服务端接收第一心跳报文后,判断第五初始值和第五恢复周期是否满足预设条件。如果第五初始值和第五恢复周期满足预设条件,则服务端接受第五初始值和第五恢复周期,存储第五初始值和第五恢复周期,来更新第二初始值和第二恢复周期,即将客户端的流动窗口的初始值更新为第五初始值,将客户端的流动窗口的恢复周期更新为第五恢复周期。并且如果第五初始值和第五恢复周期满足预设条件,服务端向客户端发送第二心跳报文,第二心跳报文中包括第五初始值和第五恢复周期,用于通知客户端使用第五初始值更新第二初始值,以及使用第五恢复周期更新第二恢复周期。如果第五初始值和第五恢复周期不满足预设条件,则服务端不接受第五初始值和第五恢复周期,需要确定满足预设条件的第六初始值和第六恢复周期,然后存储第六初始值和第六恢复周期,以便来更新第二初始值和第二恢复周期,即将客户端的流动窗口的初始值更新为第六初始值,将客户端的流动窗口的恢复周期更新为第六恢复周期。并且如果第五初始值和第五恢复周期不满足预设条件,服务端向客户端发送第三心跳报文,第三心跳报文中包括第六初始值和第六恢复周期,用于通知客户端使用第六初始值更新第二初始值,以及使用第六恢复周期更新第二恢复周期。
客户端在发送第一心跳报文后,会接收服务端的反馈。如果客户端接收到包括第五初始值和第五恢复周期的第二心跳报文,则可以确定服务端接受第五初始值来更新第二初始值,以及接受第五恢复周期来更新第二恢复周期,如此客户端可以根据第五初始值更新第二初始值,根据第五恢复周期更新第二恢复周期,即将客户端的流动窗口的初始值更新为第五初始值,将客户端的流动窗口的恢复周期更新为第五恢复周期。如果客户端接收到包括第六初始值和第六恢复周期的第三心跳报文,则可以确定服务端不接受第五初始值来更新第二初始值,以及不接受第五恢复周期来更新第二恢复周期,并且确定了第六初始值来更新第二初始值,以及确定了第六恢复周期来更新第二恢复周期,如此客户端可以根据第六初始值更新第二初始值,根据第六恢复周期更新第二恢复周期,即将客户端的流动窗口的初始值更新为第六初始值,将客户端的流动窗口的恢复周期更新为第六恢复周期。
本申请实施例中,服务端和客户端之间通过心跳报文可以实现对流动窗口的初始值和恢复周期的更新,使服务端和客户端之间可以实时调整客户端的流动窗口,进而保证对客户端流控的合理性。
图5是根据本申请实施例提供的一种流量控制的装置300的示意性框图,该装置300为服务端,例如MQTT服务端101。如图5所示,该流量控制的装置300包括:
查询单元301,用于当接收到客户端发送的发布报文时,查询所述的客户端的流控窗口的窗口值;
比较单元302,用于比较所述窗口值和预设的窗口门限;
通信单元303,用于当所述窗口值等于所述窗口门限时,拒绝接收所述发布报文;当所述窗口值大于所述窗口门限时,将所述窗口值递减所述预设值,并处理所述发布报文。
本申请实施例中,装置300存储客户端的流控窗口的窗口值,装置300通过客户端的流控窗口的窗口值可以控制接收客户端发送的发布报文,实现对客户端的流量控制。从而可以避免因客户端发送报文的速度太快或数量太多导致装置300无法及时处理,使客户端和装置300之间无法进行正常通信的问题。
图6是根据本申请实施例提供的又一种流量控制的装置300的示意性框图。
可以理解的是,所述通信单元303,还用于接收所述客户端发送的连接请求报文,所述连接请求报文包括所述客户端的流控窗口的第一初始值和所述客户端的流控窗口的第一恢复周期,所述第一恢复周期表示所述客户端的流控窗口恢复为所述第一初始值的周期;
如图6所示,所述装置300还可以包括:
存储单元304,用于当所述第一初始值和所述第一恢复周期满足预设条件时,存储所述第一初始值和所述第一恢复周期;
所述通信单元303,还用于向所述客户端发送第一连接确认报文,其中,所述第一连接确认报文包括所述第一初始值和所述第一恢复周期,所述第一连接确认报文表示所述客户端的流控窗口的初始值为所述第一初始值,以及所述客户端的流控窗口的恢复周期为所述第一恢复周期;
如图6所示,所述装置300还可以包括:
确定单元305,用于当所述第一初始值和所述第一恢复周期不满足所述预设条件,确定所述客户端的流控窗口的第二初始值和所述客户端的流控窗口的第二恢复周期;
所述存储单元304,还用于存储所述第二初始值和所述第二恢复周期;
所述通信单元303,还用于向所述客户端发送第二连接确认报文,其中,所述第二连接确认报文包括所述第二初始值和所述第二恢复周期,所述第二连接确认报文表示所述客户端的流控窗口的初始值为所述第二初始值,以及所述客户端的流控窗口的恢复周期为所述第二恢复周期。
可以理解的是,如图6所示,所述装置300还可以包括:
设置单元306,用于根据所述第一恢复周期将所述客户端的流控窗口的值设置为所述第一初始值。
可以理解的是,所述通信单元303,还用于接收所述客户端发送的第一心跳报文,所述第一心跳报文包括所述客户端的流控窗口的第三初始值和所述客户端的流控窗口的第三恢复周期;所述第三初始值用于更新所述第一初始值,所述第三恢复周期用于更新所述第一恢复周期;
所述存储单元304,还用于当所述第三初始值和第三恢复周期满足所述预设条件时,存储所述第三初始值和第三恢复周期;
所述通信单元303,还用于向所述客户端发送第二心跳报文,所述第二心跳报文包括所述第三初始值和第三恢复周期;
所述确定单元305,还用于当所述第三初始值和第三恢复周期不满足所述预设条件时,确定第四初始值和第四恢复周期;
所述通信单元303,还用于向所述客户端发送第三心跳报文,所述第三心跳报文包括所述第四初始值和第四恢复周期。
可以理解的是,设置单元306,用于根据所述第二恢复周期将所述客户端的流控窗口的值设置为所述第二初始值。
根据本申请实施例的流量控制的装置300,可对应于根据本申请实施例的流量控制的方法中的执行主体,并且流量控制的装置300中的各个模块分别为了实现图4所示方法中服务端所执行的相应流程,为了简洁,在此不再赘述。
图7是根据本申请实施例提供的再一种流量控制的装置400的示意性框图。该装置400为客户端,例如传感器103、传感器104、传感器105和物联网终端106中的任意一个。如图7所示,该流量控制的装置400包括:
查询单元401,用于在需要向服务端发送发布报文时,查询所述客户端的流控窗口的窗口值;
比较单元402,用于比较所述窗口值和预设的窗口门限;
通信单元403,用于当所述窗口值等于所述窗口门限时,暂停向所述服务端发送所述发布报文;当所述窗口值大于所述窗口门限时,将所述窗口值递减预设值,并向所述服务端发送所述发布报文。
本申请实施例中,装置400存储其自身的流控窗口的窗口值,通过该窗口值可以控制是否向服务端发送发布报文,实现对装置400的流量控制,从而可以避免因装置400发送报文的速度太快或数量太多导致服务端无法及时处理,使装置400和服务端之间无法进行正常通信的问题。
图8是根据本申请实施例提供的另一种流量控制的装置400的示意性框图。
可以理解的是,所述通信单元403,还用于向所述服务端发送连接请求报文,所述连接请求报文包括所述客户端的流控窗口的第一初始值和所述客户端的流控窗口的第一恢复周期,所述第一恢复周期表示所述客户端的流控窗口恢复为所述第一初始值的周期;
所述通信单元403,还用于接收所述服务端发送的第一连接确认报文,所述第一连接确认报文包括所述第一初始值和第一恢复周期,所述第一连接确认报文表示所述客户端的流控窗口的初始值为所述第一初始值,以及所述客户端的流控窗口的恢复周期为所述第一恢复周期;
如图8所示,所述装置400还可以包括:
确定单元404,用于确定所述第一初始值为所述客户端的流控窗口的初始值,所述第一恢复周期为所述客户端的流控窗口的恢复周期;
存储单元405,用于存储所述第一窗口值和所述第一恢复周期。
可以理解的是,如图8所示,所述装置400还可以包括:
设置单元406,用于根据所述第一恢复周期将所述客户端的流控窗口的值设置为所述第一初始值。
可以理解的是,所述通信单元403,还用于向所述服务端发送第一心跳报文,所述第一心跳报文包括所述客户端的流控窗口的第三初始值和所述客户端的流控窗口的第三恢复周期,所述第三初始值用于更新所述第一初始值,所述第三恢复周期用于更新所述第一恢复周期;
如图8所示,所述装置400还可以包括:
更新单元407,用于当接收到包括所述第三初始值和所述第三恢复周期的第二心跳报文时,根据所述第三初始值更新所述第一初始值,根据所述第三恢复周期更新所述第一恢复周期,所述第二心跳报文为所述服务端在接受所述第三初始值和所述第三恢复周期时发送的;
所述更新单元407,还用于当接收到包括第四初始值和第四恢复周期的第三心跳报文时,根据所述第四初始值更新所述第一初始值,根据所述第四恢复周期更新所述第一恢复周期,所述第三心跳报文为所述服务端在不接受所述第三初始值和所述第三恢复周期时发送的。
可以理解的是,所述通信单元403,还用于向所述服务端发送连接请求报文,所述连接请求报文包括所述客户端的流控窗口的第一初始值和所述客户端的流控窗口的第一恢复周期,所述第一恢复周期表示所述客户端的流控窗口恢复为所述第一初始值的周期;
所述通信单元403,还用于接收所述服务端发送的第二连接确认报文,所述第二连接确认报文包括所述第二初始值和第二恢复周期,所述第二连接确认报文表示所述第二初始值所述客户端的流控窗口的初始值为所述第二初始值,以及所述客户端的流控窗口的恢复周期为所述第二恢复周期;
如图8所示,所述装置400还可以包括:
确定单元404,用于确定所述第二初始值为所述客户端的流控窗口的初始值,所述第二恢复周期为所述客户端的流控窗口的恢复周期;
存储单元405,用于存储所述第二窗口值和所述第二恢复周期。
可以理解的是,如图8所示,所述装置400还可以包括:
设置单元406,用于根据所述第二恢复周期将所述客户端的流控窗口的值设置为所述第二初始值。
根据本申请实施例的流量控制的装置400,可对应于根据本申请实施例的流量控制的方法中的执行主体,并且流量控制的装置400中的各个模块分别为了实现图4所示方法中客户端所执行的相应流程,为了简洁,在此不再赘述。
图9是根据本申请实施例的一种流量控制的设备500的示意性框图。如图9所示,设备500包括处理器501、存储器502和通信接口503,通信接口503用于与外部设备通信。
处理器501可以包括中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或其组合。处理器501还可以进一步包括硬件芯片,例如专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器501中的各电路可以是独立的,也可以集成在一个或多个芯片中。
存储器501可以是独立的器件也可以集成在处理器501中。存储器501可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器501也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flashmemory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)。存储器501还可以包括上述种类的存储器的任意组合。
存储器502可以用于存储各流控窗口的初始值和各流控窗口的恢复周期;可选地,存储器502还用于存储计算机程序指令,处理器501执行所述存储器502存储的计算机程序指令,实现上面图4所示的方法。
通信接口503可以为可以是无线接口或有线接口。其中,无线接口可以是蜂窝移动网络接口,无线局域网(WLAN)接口等。有线接口可以是以太网接口,例如或光接口或电接口。
设备500还可以包括总线504,总线504用于连接处理器501、存储器502和通信接口503,使处理器501、存储器502和通信接口503通过总线504进行相互通信。
在一个实施方式中,所述存储器502用于存储程序代码,所述处理器501用于调用所述程序代码以实现图4中由服务端执行的功能和步骤。
在又一个实施方式中,所述存储器502用于存储程序代码,所述处理器501用于调用所述程序代码以实现图4中由客户端执行的功能和步骤。
本申请实施例还提供了一种流量控制的系统,包括如图5或图6所述的流量控制的装置300和如图7或图8所述的流量控制的装置400。
在上述实施例中,可以全部或部分地通过软件、硬件或者其组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、双绞线、光纤)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,光盘)、或者半导体介质(例如固态硬盘)等。
Claims (22)
1.一种流量控制的方法,其特征在于,包括:
当服务端接收到客户端发送的发布报文时,所述服务端查询所述客户端的流控窗口的窗口值;
所述服务端比较所述窗口值和预设的窗口门限;
当所述窗口值等于所述窗口门限时,所述服务端拒绝接收所述发布报文;
当所述窗口值大于所述窗口门限时,所述服务端将所述窗口值递减预设值,并处理所述发布报文。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述服务端接收所述客户端发送的连接请求报文,所述连接请求报文包括所述客户端的流控窗口的第一初始值和所述客户端的流控窗口的第一恢复周期,所述第一恢复周期表示所述客户端的流控窗口恢复为所述第一初始值的周期;
当所述第一初始值和所述第一恢复周期满足预设条件时,所述服务端存储所述第一初始值和所述第一恢复周期,并向所述客户端发送第一连接确认报文,其中,所述第一连接确认报文包括所述第一初始值和所述第一恢复周期,所述第一连接确认报文表示所述客户端的流控窗口的初始值为所述第一初始值,以及所述客户端的流控窗口的恢复周期为所述第一恢复周期;
当所述第一初始值和所述第一恢复周期不满足所述预设条件,所述服务端确定所述客户端的流控窗口的第二初始值和所述客户端的流控窗口的第二恢复周期;
所述服务端存储所述第二初始值和所述第二恢复周期;
所述服务端向所述客户端发送第二连接确认报文,其中,所述第二连接确认报文包括所述第二初始值和所述第二恢复周期,所述第二连接确认报文表示所述客户端的流控窗口的初始值为所述第二初始值,以及所述客户端的流控窗口的恢复周期为所述第二恢复周期。
3.根据权利要求2所述的方法,其特征在于,在所述服务端向所述客户端发送第一连接确认报文之后,所述方法还包括:
所述服务端根据所述第一恢复周期将所述客户端的流控窗口的值设置为所述第一初始值。
4.根据权利要求2或3所述的方法,其特征在于,还包括:
所述服务端接收所述客户端发送的第一心跳报文,所述第一心跳报文包括所述客户端的流控窗口的第三初始值和所述客户端的流控窗口的第三恢复周期;所述第三初始值用于更新所述第一初始值,所述第三恢复周期用于更新所述第一恢复周期;
当所述第三初始值和第三恢复周期满足所述预设条件时,所述服务端存储所述第三初始值和第三恢复周期,并向所述客户端发送第二心跳报文,所述第二心跳报文包括所述第三初始值和第三恢复周期;
当所述第三初始值和第三恢复周期不满足所述预设条件时,所述服务端确定第四初始值和第四恢复周期,并向所述客户端发送第三心跳报文,所述第三心跳报文包括所述第四初始值和第四恢复周期。
5.根据权利要求2所述的方法,其特征在于,在所述服务端向所述客户端发送第二连接确认报文之后,还包括:
所述服务端根据所述第二恢复周期将所述客户端的流控窗口的值设置为所述第二初始值。
6.一种流量控制的方法,其特征在于,包括:
在客户端需要向服务端发送发布报文时,所述客户端查询所述客户端的流控窗口的窗口值;
所述客户端比较所述窗口值和预设的窗口门限;
当所述窗口值等于所述窗口门限时,所述客户端暂停向所述服务端发送所述发布报文;
当所述窗口值大于所述窗口门限时,所述客户端将所述窗口值递减预设值,并向所述服务端发送所述发布报文。
7.根据权利要求6所述的方法,其特征在于,还包括:
所述客户端向所述服务端发送连接请求报文,所述连接请求报文包括所述客户端的流控窗口的第一初始值和所述客户端的流控窗口的第一恢复周期,所述第一恢复周期表示所述客户端的流控窗口恢复为所述第一初始值的周期;
所述客户端接收所述服务端发送的第一连接确认报文,所述第一连接确认报文包括所述第一初始值和第一恢复周期,所述第一连接确认报文表示所述客户端的流控窗口的初始值为所述第一初始值,以及所述客户端的流控窗口的恢复周期为所述第一恢复周期;
所述客户端确定所述第一初始值为所述客户端的流控窗口的初始值,所述第一恢复周期为所述客户端的流控窗口的恢复周期;
所述客户端存储所述第一窗口值和所述第一恢复周期。
8.根据权利要求7所述的方法,其特征在于,在所述客户端存储所述第一窗口值和所述第一恢复周期之后,还包括:
所述客户端根据所述第一恢复周期将所述客户端的流控窗口的值设置为所述第一初始值。
9.根据权利要求7或8所述的方法,其特征在于,还包括:
所述客户端向所述服务端发送第一心跳报文,所述第一心跳报文包括所述客户端的流控窗口的第三初始值和所述客户端的流控窗口的第三恢复周期,所述第三初始值用于更新所述第一初始值,所述第三恢复周期用于更新所述第一恢复周期;
当所述客户端接收到包括所述第三初始值和所述第三恢复周期的第二心跳报文时,根据所述第三初始值更新所述第一初始值,根据所述第三恢复周期更新所述第一恢复周期,所述第二心跳报文为所述服务端在接受所述第三初始值和所述第三恢复周期时发送的;
当所述客户端接收到包括第四初始值和第四恢复周期的第三心跳报文时,根据所述第四初始值更新所述第一初始值,根据所述第四恢复周期更新所述第一恢复周期,所述第三心跳报文为所述服务端在不接受所述第三初始值和所述第三恢复周期时发送的。
10.根据权利要求6所述的方法,其特征在于,还包括:
所述客户端向所述服务端发送连接请求报文,所述连接请求报文包括所述客户端的流控窗口的第一初始值和所述客户端的流控窗口的第一恢复周期,所述第一恢复周期表示所述客户端的流控窗口恢复为所述第一初始值的周期;
所述客户端接收所述服务端发送的第二连接确认报文,所述第二连接确认报文包括所述第二初始值和第二恢复周期,所述第二连接确认报文表示所述客户端的流控窗口的初始值为所述第二初始值,以及所述客户端的流控窗口的恢复周期为所述第二恢复周期;
所述客户端确定所述第二初始值为所述客户端的流控窗口的初始值,所述第二恢复周期为所述客户端的流控窗口的恢复周期;
所述客户端存储所述第二窗口值和所述第二恢复周期。
11.根据权利要求10所述的方法,其特征在于,在所述客户端存储所述第二窗口值和所述第二恢复周期之后,还包括:
所述客户端根据所述第二恢复周期将所述客户端的流控窗口的值设置为所述第二初始值。
12.一种流量控制的装置,所述装置为服务端,其特征在于,包括:
查询单元,用于当接收到客户端发送的发布报文时,查询所述的客户端的流控窗口的窗口值;
比较单元,用于比较所述窗口值和预设的窗口门限;
通信单元,用于当所述窗口值等于所述窗口门限时,拒绝接收所述发布报文;当所述窗口值大于所述窗口门限时,将所述窗口值递减所述预设值,并处理所述发布报文。
13.根据权利要求12所述的装置,其特征在于,所述通信单元,还用于接收所述客户端发送的连接请求报文,所述连接请求报文包括所述客户端的流控窗口的第一初始值和所述客户端的流控窗口的第一恢复周期,所述第一恢复周期表示所述客户端的流控窗口恢复为所述第一初始值的周期;
所述装置还包括:
存储单元,用于当所述第一初始值和所述第一恢复周期满足预设条件时,存储所述第一初始值和所述第一恢复周期;
所述通信单元,还用于向所述客户端发送第一连接确认报文,其中,所述第一连接确认报文包括所述第一初始值和所述第一恢复周期,所述第一连接确认报文表示所述客户端的流控窗口的初始值为所述第一初始值,以及所述客户端的流控窗口的恢复周期为所述第一恢复周期;
所述装置还包括:
确定单元,用于当所述第一初始值和所述第一恢复周期不满足所述预设条件,确定所述客户端的流控窗口的第二初始值和所述客户端的流控窗口的第二恢复周期;
所述存储单元,还用于存储所述第二初始值和所述第二恢复周期;
所述通信单元,还用于向所述客户端发送第二连接确认报文,其中,所述第二连接确认报文包括所述第二初始值和所述第二恢复周期,所述第二连接确认报文表示所述客户端的流控窗口的初始值为所述第二初始值,以及所述客户端端流控窗口的恢复周期为所述第二恢复周期。
14.根据权利要求13所述的装置,其特征在于,还包括:
设置单元,用于根据所述第一恢复周期将所述客户端的流控窗口的值设置为所述第一初始值。
15.根据权利要求13或14所述的装置,其特征在于,所述通信单元,还用于接收所述客户端发送的第一心跳报文,所述第一心跳报文包括所述客户端的流控窗口的第三初始值和所述客户端的流控窗口的第三恢复周期;所述第三初始值用于更新所述第一初始值,所述第三恢复周期用于更新所述第一恢复周期;
所述存储单元,还用于当所述第三初始值和第三恢复周期满足所述预设条件时,存储所述第三初始值和第三恢复周期;
所述通信单元,还用于向所述客户端发送第二心跳报文,所述第二心跳报文包括所述第三初始值和第三恢复周期;
所述确定单元,还用于当所述第三初始值和第三恢复周期不满足所述预设条件时,确定第四初始值和第四恢复周期;
所述通信单元,还用于向所述客户端发送第三心跳报文,所述第三心跳报文包括所述第四初始值和第四恢复周期。
16.根据权利要求13所述的装置,其特征在于,还包括:
设置单元,用于根据所述第二恢复周期将所述客户端的流控窗口的值设置为所述第二初始值。
17.一种流量控制的装置,所述装置为客户端,其特征在于,包括:
查询单元,用于在需要向服务端发送发布报文时,查询所述客户端的流控窗口的窗口值;
比较单元,用于比较所述窗口值和预设的窗口门限;
通信单元,用于当所述窗口值等于所述窗口门限时,暂停向所述服务端发送所述发布报文;当所述窗口值大于所述窗口门限时,将所述窗口值递减预设值,并向所述服务端发送所述发布报文。
18.根据权利要求17所述的装置,其特征在于,所述通信单元,还用于向所述服务端发送连接请求报文,所述连接请求报文包括所述客户端的流控窗口的第一初始值和所述客户端的流控窗口的第一恢复周期,所述第一恢复周期表示所述客户端的流控窗口恢复为所述第一初始值的周期;
所述通信单元,还用于接收所述服务端发送的第一连接确认报文,所述第一连接确认报文包括所述第一初始值和第一恢复周期,所述第一连接确认报文表示所述客户端的流控窗口的初始值为所述第一初始值,以及所述客户端的流控窗口的恢复周期为所述第一恢复周期;所述装置还包括:
确定单元,用于确定所述第一初始值为所述客户端的流控窗口的初始值,所述第一恢复周期为所述客户端的流控窗口的恢复周期;
存储单元,用于存储所述第一窗口值和所述第一恢复周期。
19.根据权利要求18所述的装置,其特征在于,还包括:
设置单元,用于根据所述第一恢复周期将所述客户端的流控窗口的值设置为所述第一初始值。
20.根据权利要求17或18所述的装置,其特征在于,所述通信单元,还用于向所述服务端发送第一心跳报文,所述第一心跳报文包括所述客户端的流控窗口的第三初始值和所述客户端的流控窗口的第三恢复周期,所述第三初始值用于更新所述第一初始值,所述第三恢复周期用于更新所述第一恢复周期;
所述装置还包括:
更新单元,用于当接收到包括所述第三初始值和所述第三恢复周期的第二心跳报文时,根据所述第三初始值更新所述第一初始值,根据所述第三恢复周期更新所述第一恢复周期,所述第二心跳报文为所述服务端在接受所述第三初始值和所述第三恢复周期时发送的;
所述更新单元,还用于当接收到包括第四初始值和第四恢复周期的第三心跳报文时,根据所述第四初始值更新所述第一初始值,根据所述第四恢复周期更新所述第一恢复周期,所述第三心跳报文为所述服务端在不接受所述第三初始值和所述第三恢复周期时发送的。
21.根据权利要求17所述的装置,其特征在于,所述通信单元,还用于向所述服务端发送连接请求报文,所述连接请求报文包括所述客户端的流控窗口的第一初始值和所述客户端的流控窗口的第一恢复周期,所述第一恢复周期表示所述客户端的流控窗口恢复为所述第一初始值的周期;
所述通信单元,还用于接收所述服务端发送的第二连接确认报文,所述第二连接确认报文包括所述第二初始值和第二恢复周期,所述第二连接确认报文表示所述第二初始值所述客户端的流控窗口的初始值为所述第二初始值,以及所述客户端的流控窗口的恢复周期为所述第二恢复周期;
所述装置还包括:
确定单元,用于确定所述第二初始值为所述客户端的流控窗口的初始值,所述第二恢复周期为所述客户端的流控窗口的恢复周期;
存储单元,用于存储所述第二窗口值和所述第二恢复周期。
22.根据权利要求21所述的装置,其特征在于,还包括:
设置单元,用于根据所述第二恢复周期将所述客户端的流控窗口的值设置为所述第二初始值。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810349910.9A CN110391991B (zh) | 2018-04-18 | 2018-04-18 | 一种流量控制的方法及相关装置 |
PCT/CN2019/082346 WO2019201159A1 (zh) | 2018-04-18 | 2019-04-12 | 一种流量控制的方法及相关装置 |
EP19787585.9A EP3780519A4 (en) | 2018-04-18 | 2019-04-12 | PROCEDURE FOR TRAFFIC CONTROL AND RELATED DEVICE |
US17/072,695 US11444880B2 (en) | 2018-04-18 | 2020-10-16 | Traffic control method and related apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810349910.9A CN110391991B (zh) | 2018-04-18 | 2018-04-18 | 一种流量控制的方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110391991A true CN110391991A (zh) | 2019-10-29 |
CN110391991B CN110391991B (zh) | 2022-04-29 |
Family
ID=68240398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810349910.9A Active CN110391991B (zh) | 2018-04-18 | 2018-04-18 | 一种流量控制的方法及相关装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11444880B2 (zh) |
EP (1) | EP3780519A4 (zh) |
CN (1) | CN110391991B (zh) |
WO (1) | WO2019201159A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134758A (zh) * | 2020-09-22 | 2020-12-25 | 上海茂声智能科技有限公司 | 弱网环境监测和通信会话重连的方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
UA80102C2 (en) * | 2001-12-05 | 2007-08-27 | Qualcomm Inc | Method (variets) and control system of flow between base station controller and base transmit-receiving station, device for computer control. |
US20100329114A1 (en) * | 2009-06-26 | 2010-12-30 | Chesson Gregory L | Aggregate transport control |
CN102355462A (zh) * | 2011-10-09 | 2012-02-15 | 大唐移动通信设备有限公司 | 一种实现tcp传输的方法及装置 |
CN104052653A (zh) * | 2014-06-23 | 2014-09-17 | 广东天波信息技术股份有限公司 | 一种基于mqtt实现状态呈现的方法 |
US20160248871A1 (en) * | 2015-02-20 | 2016-08-25 | Convida Wireless, Llc | Message bus service directory |
CN106254468A (zh) * | 2016-08-08 | 2016-12-21 | 博识峰云(深圳)信息技术有限公司 | 一种用于智能后视镜的控制系统及方法 |
US20190342223A1 (en) * | 2018-05-02 | 2019-11-07 | Citrix Systems, Inc. | System and method to optimize workflow |
US11036368B1 (en) * | 2019-03-29 | 2021-06-15 | Snap Inc. | Messaging system with message transmission user interface |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044406A (en) * | 1997-04-08 | 2000-03-28 | International Business Machines Corporation | Credit-based flow control checking and correction method |
TW477133B (en) * | 2000-04-01 | 2002-02-21 | Via Tech Inc | Method for solving network congestion and Ethernet switch controller using the same |
US6990073B1 (en) * | 2001-03-28 | 2006-01-24 | Lsi Logic Corporation | Data packet congestion management technique |
US9544238B2 (en) * | 2015-03-11 | 2017-01-10 | Nicira, Inc. | Reducing network congestion by preferentially dropping packets sent by high bandwidth sources |
KR20180047124A (ko) * | 2016-10-31 | 2018-05-10 | 삼성에스디에스 주식회사 | 패킷 전송 방법 및 그 장치 |
US10645181B2 (en) * | 2016-12-12 | 2020-05-05 | Sap Se | Meta broker for publish-subscribe-based messaging |
US10708360B2 (en) * | 2017-03-14 | 2020-07-07 | Infiswift Technologies, Inc. | Method for transport agnostic communication between internet of things client and broker |
-
2018
- 2018-04-18 CN CN201810349910.9A patent/CN110391991B/zh active Active
-
2019
- 2019-04-12 WO PCT/CN2019/082346 patent/WO2019201159A1/zh unknown
- 2019-04-12 EP EP19787585.9A patent/EP3780519A4/en active Pending
-
2020
- 2020-10-16 US US17/072,695 patent/US11444880B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
UA80102C2 (en) * | 2001-12-05 | 2007-08-27 | Qualcomm Inc | Method (variets) and control system of flow between base station controller and base transmit-receiving station, device for computer control. |
US20100329114A1 (en) * | 2009-06-26 | 2010-12-30 | Chesson Gregory L | Aggregate transport control |
CN102355462A (zh) * | 2011-10-09 | 2012-02-15 | 大唐移动通信设备有限公司 | 一种实现tcp传输的方法及装置 |
CN104052653A (zh) * | 2014-06-23 | 2014-09-17 | 广东天波信息技术股份有限公司 | 一种基于mqtt实现状态呈现的方法 |
US20160248871A1 (en) * | 2015-02-20 | 2016-08-25 | Convida Wireless, Llc | Message bus service directory |
CN106254468A (zh) * | 2016-08-08 | 2016-12-21 | 博识峰云(深圳)信息技术有限公司 | 一种用于智能后视镜的控制系统及方法 |
US20190342223A1 (en) * | 2018-05-02 | 2019-11-07 | Citrix Systems, Inc. | System and method to optimize workflow |
US11036368B1 (en) * | 2019-03-29 | 2021-06-15 | Snap Inc. | Messaging system with message transmission user interface |
Non-Patent Citations (2)
Title |
---|
OASIS MESSAGE QUEUING TELEMETRY TRANSPORT MQTT TC: "Committee Specification Draft 01 /Public Review Draft 01", 《MQTT VERSION 5.0》 * |
马 跃, 孙 翱, 贾军营等: "MQTT 协议在移动互联网即时通信中的应用", 《计算机系统应用》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134758A (zh) * | 2020-09-22 | 2020-12-25 | 上海茂声智能科技有限公司 | 弱网环境监测和通信会话重连的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3780519A4 (en) | 2021-05-26 |
EP3780519A1 (en) | 2021-02-17 |
US20210036960A1 (en) | 2021-02-04 |
WO2019201159A1 (zh) | 2019-10-24 |
CN110391991B (zh) | 2022-04-29 |
US11444880B2 (en) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3440824B1 (en) | Edge server and method of operating an edge server | |
EP2924574B1 (en) | Unified data ingestion adapter for migration of industrial data to a cloud platform | |
CN110535965A (zh) | 一种数据处理方法及装置、存储介质 | |
CN109314710A (zh) | 用于通信网络中的服务质量监测、策略执行和计费的系统和方法 | |
EP1701506B1 (en) | Method and system for transmission control protocol (TCP) traffic smoothing | |
US20090222573A1 (en) | System and method for application layer resource traffic control | |
US10044618B2 (en) | Limitation of signaling messages to a policy controller of a network | |
JP2010500837A (ja) | 遠隔通信ネットワークにおける情報転送の最適化方法 | |
CN112769598B (zh) | 一种网络通信系统及其通信实现方法 | |
CN108111333A (zh) | 一种基于web的流量限制方法及系统 | |
CN108605292A (zh) | 电力知悉式网络通信 | |
CN108512634A (zh) | 一种数据处理的方法及相关设备 | |
CN110391991A (zh) | 一种流量控制的方法及相关装置 | |
KR102123314B1 (ko) | 단방향 데이터 전달기법을 적용한 mms 기반의 산업용 사물인터넷 플랫폼 | |
CN113032410A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN102014058B (zh) | 一种上行流量的调度方法及装置 | |
Lee et al. | Toward industrial IoT: Integrated architecture of an OPC UA synergy platform | |
CN107122237B (zh) | 数据通信方法及装置 | |
CN112039746A (zh) | 一种工业控制网络系统 | |
Elgazzar | Perspectives on M2M protocols | |
Sempere et al. | Multimedia applications in industrial networks: Integration of image processing in profibus | |
Nougnanke et al. | Learning-based incast performance inference in software-defined data centers | |
US20150223260A1 (en) | Dynamically Delayed Delivery of Content in a Network | |
WO2019000980A1 (zh) | 一种控制方法、相关设备以及系统 | |
CN108667630A (zh) | 一种计费方法、相关设备和系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |