CN114629855A - 信息传输方法、装置、相关设备及存储介质 - Google Patents
信息传输方法、装置、相关设备及存储介质 Download PDFInfo
- Publication number
- CN114629855A CN114629855A CN202011475325.7A CN202011475325A CN114629855A CN 114629855 A CN114629855 A CN 114629855A CN 202011475325 A CN202011475325 A CN 202011475325A CN 114629855 A CN114629855 A CN 114629855A
- Authority
- CN
- China
- Prior art keywords
- window
- information
- frame
- sending
- update
- 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/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- 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/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种信息传输方法、装置、发送端设备、接收端设备和存储介质。其中,方法包括:发送端发送配置(SETTINGS帧);所述SETTINGS帧中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;接收接收端反馈的响应。
Description
技术领域
本申请涉及网络安全领域,尤其涉及一种信息传输方法、装置、相关设备及存储介质。
背景技术
HTTP/2(HTTP/2.0),也即超文本传输协议(HTTP)的2.0版本,是下一代HTTP。HTTP/2的特点之一是多路复用,即多路复用允许同时通过单一的HTTP/2连接发起多重的请求-响应消息,因此HTTP/2可以实现多流(stream)并行而不用依赖建立多个传输控制协议(TCP)连接;具体地,在HTTP/2中,将HTTP通信的基本单位缩小为一个一个的帧(frame),这些frame对应逻辑流中的消息,从而实现一个TCP承载多个HTTP请求。HTTP/2的另一个特点是二进制分帧,在二进制分帧层中,将所有传输的信息分割为更小的消息和frame,并对他们采用二进制格式的编码,并采用HTTP1.x进行封包;其中,HTTP1.x中封包的对应关系是:HTTP1.x的首部信息会被封装到HEADER frame中,而相应的请求体(英文可以表达为Request Body)则会封装到DATA frame里面。
然而,相关技术中,在应用HTTP/2时会由于窗口较小导致判断错误,从而会导致连接出现问题。
发明内容
为解决相关技术问题,本申请实施例提供一种信息传输方法、装置、相关设备及存储介质。
本申请实施例的技术方案是这样实现的:
本申请实施例提供了一种信息传输方法,应用于发送端,包括:
发送配置(SETTINGS)frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;
接收接收端反馈的响应。
上述方案中,所述方法还包括:
发送一个数据DATA frame后的发送窗口小于所述最小窗口时,停止发送数据(DATA)frame。
上述方案中,所述方法还包括:
停止发送DATA frame后,当发送窗口大于或等于所述最小窗口时,重新开始发送DATA frame。
上述方案中,当利用接收到的窗口更新(WINDOW_UPDATE)frame指示的窗口大小增长值修改后的发送窗口大于或等于所述最小窗口时,重新开始发送DATA frame。
上述方案中,所述方法还包括:
当所述第一信息指示的最小窗口小于第一窗口时,产生报警信息。
上述方案中,所述方法还包括:
在所述第一信息指示的最小窗口小于第一窗口时,接收所述接收端发送的流控制错误信息。
上述方案中,所述方法还包括:
接收所述接收端发送的WINDOW_UPDATE frame;接收的WINDOW_UPDATE frame是所述接收端在处理的数据大于或等于所述最小的窗口更新大小时发送的。
上述方案中,所述方法还包括:
当所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,产生报警信息。
上述方案中,所述方法还包括:
在所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,接收所述接收端发送的流控制错误信息。
本申请实施例还提供了一种信息传输方法,应用于接收端,包括:
接收SETTINGS frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;
向发送端反馈响应。
上述方案中,所述方法还包括:
当进行接收并处理的数据大于或等于所述最小的窗口更新大小时,向所述发送端发送WINDOW_UPDATE frame。
上述方案中,所述方法还包括:
当所述第一信息指示的最小窗口小于第一窗口时,向所述发送端发送流控制错误信息。
上述方案中,所述方法还包括:
当所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,向所述发送端发送流控制错误信息。
本申请实施例还提供了一种信息传输装置,包括:
第一发送单元,用于发送SETTINGS frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;
第一接收单元,用于接收接收端反馈的响应。
本申请实施例还提供了一种信息传输装置,包括:
第二接收单元,用于接收SETTINGS frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;
第二发送单元,用于向发送端反馈响应。
本申请实施例还提供了一种发送端设备,包括:第一通信接口及第一处理器;其中,
所述第一处理器,用于通过所述第一通信接口发送SETTINGS frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示的最小窗口;所述第二信息指示最小的窗口更新大小;以及通过所述第一通信接口接收接收端反馈的响应。
本申请实施例还提供了一种接收端设备,包括:第二通信接口及第二处理器;其中,
所述第二处理器,用于通过所述第二通信接口接收SETTINGS frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示的最小窗口;所述第二信息指示最小的窗口更新大小;以及通过所述第二通信接口向发送端反馈响应。
本申请实施例还提供了一种发送端设备,包括:包括:第一处理器和用于存储能够在处理器上运行的计算机程序的第一存储器,
其中,所述第一处理器用于运行所述计算机程序时,执行上述发送端侧任一方法的步骤。
本申请实施例还提供了一种接收端设备,包括:第二处理器和用于存储能够在处理器上运行的计算机程序的第二存储器,
其中,所述第二处理器用于运行所述计算机程序时,执行上述接收端侧任一方法的步骤。
本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述发送端侧任一方法的步骤,或者实现上述接收端侧任一方法的步骤。
本申请实施例提供的信息传输方法、装置、相关设备及存储介质,发送端发送SETTINGS frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;接收端基于接收的SETTINGS frame反馈响应,通过SETTINGS frame对窗口和WINDOW_UPDATE frame携带的窗口更新的最小值进行了设置,能够避免窗口的小增量更新导致的链路拥塞,从而会被误认为拒绝服务攻击,进而避免连接出现问题。
附图说明
图1为本申请实施例一种信息传输的方法流程示意图;
图2为本申请实施例一种SETTINGS frame的帧结构示意图;
图3为本申请实施例一种WINDOW_UPDATE frame的帧结构示意图;
图4为本申请实施例一种DATA frame的帧结构示意图;
图5为本申请实施例一种配置阶段的流程示意图;
图6为本申请实施例一种配置信息及WINDOW_UPDATE frame传输的流程示意图;
图7为本申请实施例第二种信息传输的方法流程示意图;
图8为本申请实施例第二种信息传输的方法流程示意图;
图9为本申请实施例一种信息传输装置结构示意图;
图10为本申请实施例另一种信息传输装置结构示意图;
图11为本申请实施例发送端设备结构示意图;
图12为本申请实施例接收端设备结构示意图;
图13为本申请实施例信息传输系统结构示意图。
具体实施方式
下面结合实施例对本申请再作进一步详细的描述。
在HTTP/2中,对于流量控制,具有以下特征:
(1)流量控制是特定于一个连接的。
(2)流量控制是基于WINDOW_UPDATE frame的;具体地,通过WINDOW_UPDATEframe,接收端(也可以称为接收方)公布自身打算在每个流以及整个连接上分别接收多少字节(bytes)。
(3)流量控制是有方向的,由接收端全面控制。接收端可以为每个流和整个连接设置任意的窗口大小。发送端必须尊重接收端设置的流量控制限制。客户方、服务端和中间代理作为接收端时都独立地公布各自的流量控制窗口,而作为发送端时都遵守对端的流量控制设置。
(4)无论是新流还是整个连接,流量控制窗口的初始值是65535bytes。
(5)frame的类型决定了流量控制是否适用于frame。目前,只有DATA frame服从流量控制,所有其他类型的frame并不消耗流量控制窗口的空间。这保证了重要的控制frame不会被流量控制阻塞。
(6)流量控制不能被禁用,意味着流量控制一直存续于整个传输过程.
然而,相关技术中,仅定义了WINDOW_UPDATE frame的格式和语义,并没有规定接收端如何决定何时发送WINDOW_UPDATE frame、在WINDOW_UPDATE frame中携带什么样的值,也没有规定发送端如何选择发送包,也就是说,未规定更新窗口的配置策略(即未规定WINDOW_UPDATE frame中携带的更新窗口的最小值),导致出现WINDOW_UPDATE frame中携带的更新窗口值的较小和利用WINDOW_UPDATE frame携带的更新窗口值更新后的发送窗口较小的情况,而这种情况可被接收端的安全策略过滤和拦截,导致注册请求失败;同时因频繁的发送WINDOW_UPDATE frame,可能会导致拒绝服务攻击。
基于此,在本申请的各种实施例中,对窗口和WINDOW_UPDATE frame携带的窗口更新的最小值进行设置,能够避免窗口的小增量更新导致的链路拥塞,从而会被误认为拒绝服务攻击。
本申请实施例提供一种信息传输方法,应用于发送端,如图1所示,该方法包括:
步骤101:发送SETTINGS frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;
步骤102:接收接收端反馈的响应。
其中,实际应用时,所述发送端也可以称为发送端设备;相应地,所述接收端也可以称为接收端设备。
在HTTP/2中,一共有10种不同类型的frame;其中,与流量控制和窗口大小调整相关的frame有三种,分别是SETTINGS frame、WINDOW_UPDATE frame和DATA frame。其中,
SETTING frame传递配置信息,这些配置信息将影响着相应数据流的通信过程。通常,在首帧(HEADERS frame)发送之前先发送SETTINGS frame,但是也允许在通信过程中发送SETTINGS frame。实际应用时,可以发送多个SETTINGS frame,多个frame将按序处理,即后接收到的SETTINGS frame中设置的值将覆盖前面接收到的SETTINGS frame中设置的值。由于SETTINGS frame携带的是配置信息,具有高优先级,所以需要接收端发送确认(ACK),以保证每个SETTINGS frame能够正确到达。
图2为SETTINGS frame的帧结构示意图。如图2所示,Length表示载荷(payload)的长度;Type表示frame的类型,Type为0x4时,表明该frame为SETTINGS frame;R表示预留位;Stream Identifier表示该frame属于哪个数据流,即该frame所在数据流的标识;Identifier表示该frame中参数标识;value表示参数对应的值。其中,如图2所示,StreamIdentifier字段之后的内容称为payload
相关技术中,SETTING frame可有以下六种不同类型的配置(即六种不同参数):
SETTINGS_HEADER_TABLE_SIZE(0x1):允许发送端通知接收端首部(header)的最大长度。初始值为4096bytes;
SETTINGS_ENABLE_PUSH(0x2):允许服务端(英文可以表达为server)主动推送消息给客户端(英文可以表达为client)。如果设置了去使能(disable),那么服务端不能发送推送帧(PUSH_PROMISE frame)。具体地,当设置为0时表示允许,当设置为1时表示不允许;
SETTINGS_MAX_CONCURRENT_STREAM(0x3):表明当前连接(connection)可以同时建立stream的最大数目,初始为100;
SETTINGS_INITIAL_WINDOW_SIZE(0x4):表明发送端初始的窗口大小,初始值(value)为2^16-1byte,即65535bytes。
SETTINGS_MAX_FRAME_SIZE(0x5):frame的最大长度。设置DATA frame允许的最大长度,最大不能超过2^24-1byte,即1677715bytes;
SETTINGS_MAX_HEADER_LIST_SIZE(0x6):表示发送端想要接受的header的最大长度。并且这个长度是没有压缩之前的。包括名称(name)、value+每个头部域的32byte。
WINDOW_UPDATE frame用来通知对等端(即发送端)加大流量控制窗口值,WINDOW_UPDATE frame作用于DATA frame,其作用是告诉发送端,接收端还能接收多少byte的数据。如果发送端在发送DATA frame后,发现窗口中能发送的字节数变成负数了,即窗口为负值,那么必须等到接收到一个WINDOW_UPDATE frame,使得窗口大小为正后,才能继续发送DATAframe。
图3为WINDOW_UPDATE frame的帧结构示意图。其中,窗口大小增加(Window SizeIncrement)参数表示当前接收端还能接收的byte大小;Length表示payload的长度;Type表示frame的类型,Type为0x8时,表明该表明该frame是WINDOW_UPDATE frame;R表示预留位;Stream Identifier表示该frame属于哪个数据流,即该frame所在数据流的标识。所述第二信息指示Window Size Increment的最小值。
DATA frame用于传递任意的、可变长的流序列,通常可用来携带HTTP请求和响应的payload内容,DATA frame的长度受Length和发送端窗口大小的控制。DATA frame可采用如图4所示的帧结构。其中,Length表示payload的长度;Type表示frame的类型;R表示预留位;Stream Identifier表示该frame属于哪个数据流,即该frame所在数据流的标识;PadLength表示Padding域的长度;data表示可变长的数据;Padding域填充若干个0x0比特,由padding来控制是否校验。
在步骤101中,实际应用时,每个SETTING frame携带一个信息,即一个SETTINGframe携带第一信息;另一个SETTING frame携带第二信息,且针对每个SETTING frame,接收端都会反馈响应。
也就是说,所述发送端发送第一SETTING frame,第一SETTING frame携带第一信息;并接收所述接收端基于第一SETTING frame反馈的响应;所述发送端发送第二SETTINGframe,第二SETTING frame携带第二信息;并接收所述接收端基于第二SETTING frame反馈的响应。
其中,实际应用时,本申请实施例对第一SETTING frame和第二SETTING frame的发送顺序不作限定,即可以先发送第一SETTING frame,收到响应后再发送第二SETTINGframe;也可以先发送第二SETTING frame,收到响应后再发送第一SETTING frame。
示例性地,对于所述第一信息,可以称为SETTINGS_MINIMUM_WINDOW_SIZE(0x7),表明发送端设定的最小的窗口大小。实际应用时,根据需要(比如带宽、接收端处理能力、接收端并发量等)来设定最小的窗口大小(即设定SETTINGS_MINIMUM_WINDOW_SIZE),比如设置为128bytes。
其中,HTTP/2中的流控制是通过每个发送端(也可以理解为发送方)在每个流上保存一个窗口来实现的。流控制窗口是一个简单的整数值,指示允许发送方传输多少个八进制的数据;因此,它的大小是接收端(也可以理解为接收方)的缓存能力(英文可以表达为buffering capacity)。因此,窗口的大小能够描述的是接收方的缓存能力。因此,这里需要说明的是:本申请实施例中,设置的最小的窗口并不意味着接收端的最小缓存能力,而是人为设置了一个窗口的最小值,可以理解为阈值的作用,并没有特定的物理含义,因此,从这个角度来说,在本申请实施例中,当小于阈值时就会触发一系列的操作。
具体地,基于所述第一信息,发送端发送DATA frame。
更具体地,发送一个DATA frame后的发送窗口小于所述最小窗口时,停止发送DATA frame。
其中,每发送一个DATA frame,发送端的发送窗口(也可以称为窗口)大小就会降低,如果发送端发送完上一个DATA frame后,发送端的发送窗口降低到小于所述第一信息指示的最小窗口,即当发送端的发送窗口小于所述第一信息指示的最小窗口时,此时,发送端的发送窗口可能为正值,也可能为负值,则所述发送端停止发送DATA frame,直至收到WINDOW_UPDATE frame,基于接收的WINDOW_UPDATE frame指示的Window Size Increment的大小调整后的发送窗口大小大于或等于所述最小窗口时,才能重新开始发送DATAframe。
也就是说,停止发送DATA frame后,当发送窗口大于或等于所述最小窗口时,重新开始发送DATA frame。
在一实施例中,当利用接收到的窗口更新WINDOW_UPDATE frame指示的WindowSize Increment值修改后的发送窗口大于或等于所述最小窗口时,重新开始发送DATAframe。
实际应用时,SETTINGS帧是多次设置的,每次携带的第一信息指示的最小窗口不能无限小,以避免出现相关技术的问题。
基于此,在一实施例中,当所述第一信息指示的最小窗口小于第一窗口时,产生报警信息。
其中,实际应用时,所述第一窗口是第一次发送的SETTINGS帧所携带的第一信息指示的最小窗口值,即所述第一窗口是所述发送端第一次发送的最小窗口值。
实际应用时,也可以由接收端来判断所述最小窗口是否合适。
基于此,在一实施例中,该方法还可以包括:
在所述第一信息指示的最小窗口小于第一窗口时,接收所述接收端发送的流控制错误(FLOW_CONTROL_ERROR)信息。
其中,当所述接收端确定所述最小窗口小于第一窗口时,向所述发送端发送FLOW_CONTROL_ERROR信息,即报出FLOW_CONTROL_ERROR错误。
也就是说,所述发送端第一次设置并通过SETTINGS帧发送最小窗口且接收到接收端反馈的响应后,即发送端与接收端第一次协商确定最小窗口后,在后续再次设置SETTINGS帧时,如果SETTINGS帧携带的最小窗口小于第一次协商的最小窗口时,就由发送端产生报警信息或者由接收端报出FLOW_CONTROL_ERROR错误。
示例性地,以客户端为发送端,服务端为接收端为例,描述发送包含第一信息的配置信息的过程。
如图5所示,配置阶段的流程包括:
步骤501:客户端向服务端发送SETTING frame;其中,SETTING frame中的识别码(Identifier)为0x4,表明客户端初始的窗口大小,假设客户端的初始窗口为window C大小;
步骤502:服务端收到SETTING frame后,返回响应,即在SETTING frame的flags设为ACK,并返回给客户端;
步骤503:客户端向服务端发送SETTING frame;其中,SETTING frame中的Identifier为0x7,表明客户端设定的最小的窗口大小;
步骤504:服务端收到SETTING frame后,返回响应,即在SETTING frame的flags设为ACK,并返回给客户端。
实际应用时,频繁地发送WINDOW_UPDATE frame,将会造成计算资源和网络资源的消耗,特定情况下甚至可以引发拒绝服务攻击。在HTTP/2中,规定DATA frame的发送端受接收端窗口大小的控制,发送端发送的DATA frame大小不能超过接收端给出的窗口大小,因此接收端可以通过调整窗口大小控制发送端的数据发送行为。为了避免因类似的攻击,除了设定最小的窗口大小,还可以规定WINDOW_UPDATE frame中的Window Size Increment的最小值,使用SETTING frame进行设定。即发送端发送SETTING frame,SETTING frame携带第二信息。
这里,实际应用时,可以根据需要(比如根据带宽、接收端处理能力、接收端并发量等)设置Window Size Increment的最小值,比如设置最小为128bytes。
示例性地,对于所述第二信息,可以称为SETTINGS_MINIMUM_WINDOW_UPDATE(0x8),表明发送端设定的最小的窗口更新大小,即Window Size Increment的最小值,由发送端决定Window Size Increment最小值的大小。
实际应用时,SETTINGS帧是多次设置的,每次携带的所述Window Size Increment的最小值不能无限小,以避免出现相关技术的问题。
基于此,在一实施例中,当所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,产生报警信息。
实际应用时,也可以由接收端来判断所述最小的窗口更新大小是否合适。
基于此,在一实施例中,该方法还可以包括:
在所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,接收所述接收端发送的FLOW_CONTROL_ERROR信息。
其中,当所述接收端确定指示的最小的窗口更新大小小于第一更新窗口时,向所述发送端发送FLOW_CONTROL_ERROR信息,即报出FLOW_CONTROL_ERROR错误。
也就是说,所述发送端第一次设置并通过SETTINGS帧发送窗口更新大小且接收到接收端反馈的响应后,即发送端与接收端第一次协商确定最小的窗口更新大小(即最小窗口更新值)后,在后续再次设置SETTINGS帧时,如果SETTINGS帧携带的最小窗口更新大小小于第一次协商的最小窗口更新大小时,就由发送端产生报警信息或者由接收端报出FLOW_CONTROL_ERROR错误。
示例性地,以客户端为发送端,服务端为接收端为例,描述发送包含第二信息的配置信息的过程以及发送WINDOW_UPDATE frame的过程。
如图6所示,配置信息以及WINDOW_UPDATE frame传输的过程,包括:
步骤601:客户端向服务端发送SETTING frame;其中,SETTING frame中的识别码(Identifier)为0x8,表明设置Window Size Increment的最小值;
步骤602:服务端收到SETTING frame后,返回响应,即在SETTING frame的flags设为ACK,并返回给客户端;
步骤603:当服务端的上一层(即应用层)累计处理的数据满足Window SizeIncrement的最小值时,服务端向客户端发送WINDOW_UPDATE frame。
此时,客户端当前的窗口等于Window Size Increment+接收到WINDOW_UPDATEframe之前窗口的大小。
其中,在一实施例中,该方法还可以包括:
接收所述接收端发送的WINDOW_UPDATE帧;接收的WINDOW_UPDATE帧是所述接收端在处理的数据大于或等于所述最小的窗口更新大小时发送的。
实际应用时,可以将第一信息和第二信息共同作用,以便能够更好地解决HTTP/2窗口过小的问题。
相应地,本申请实施例还提供了一种信息传输方法,应用于接收端,如图7所示,该方法包括:
步骤701:接收SETTINGS frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;
步骤702:向发送端反馈响应。
其中,所述接收端获知所述最小窗口的目的是让所述接收端知晓所述最小窗口。
所述接收端基于所述第二信息,发送WINDOW_UPDATE frame。具体地,当协议上层(当前协议层为传输层,上层为应用层)一次处理(即一次从传输层取走的数据)的数据小于所述第二信息指示的最小的窗口更新大小,则不允许发送WINDOW_UPDATE frame,需要累加至大于或等于所述第二信息指示的最小的窗口更新大小时,才能够发送一次WINDOW_UPDATE frame,以对流量窗口进行更新。当然,如果协议上层一次处理的数据大于或等于所述第二信息指示的最小的窗口更新大小时,允许发送一次WINDOW_UPDATE frame。也就是说,如果接收端的一次缓存处理能力小于最小窗口更新大小时,则需要不断累积,直到接收端的缓存处理能力达到最小窗口更新大小时,向发送端发送WINDOW_UPDATE frame,以用于更新窗口。
基于此,在一实施例中,该方法还可以包括:
当处理的数据大于或等于所述最小的窗口更新大小时,向所述发送端发送WINDOW_UPDATE frame。
在一实施例中,该方法还可以包括:
当所述第一信息指示的最小窗口小于第一窗口时,向所述发送端发送FLOW_CONTROL_ERROR信息。
在一实施例中,该方法还可以包括:
当所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,向所述发送端发送FLOW_CONTROL_ERROR信息。
本申请实施例还提供了一种信息传输方法,如图8所示,该方法包括:
步骤801:发送端发送SETTINGS frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示所述最小窗口;所述第二信息指示最小的窗口更新大小;
步骤802:接收端基于接收的SETTINGS frame反馈响应。
这里,需要说明的是:发送端和接收端的具体处理过程已在上文详述,这里不再赘述。
本申请实施例提供的信息传输方法,发送端发送SETTINGS frame;所述SETTINGSframe中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;接收端基于接收的SETTINGS frame反馈响应,通过SETTINGS frame对窗口和WINDOW_UPDATE frame携带的窗口更新的最小值进行了设置,能够避免窗口的小增量更新导致的链路拥塞,从而会被误认为拒绝服务攻击,进而避免连接出现问题。
为了实现本申请实施例发送端侧的方法,本申请实施例还提供了一种信息传输装置,设置在发送端上,如图9所示,该装置包括:
第一发送单元901,用于发送SETTINGS frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;
第一接收单元902,用于接收接收端反馈的响应。
其中,在一实施例中,所述第一发送单元901,还用于发送一个数据DATA frame后的发送窗口小于所述最小窗口时,停止发送DATA frame。
在一实施例中,所述第一发送单元901,还用于停止发送DATA frame后,当发送窗口大于或等于所述最小窗口时,重新开始发送DATA frame。
在一实施例中,所述第一发送单元901,还用于当利用接收到的窗口更新WINDOW_UPDATE frame指示的窗口大小增长值修改后的发送窗口大于或等于所述最小窗口时,重新开始发送DATAframe。
在一实施例中,该装置还可以包括:
告警单元,用于当所述第一信息指示的最小窗口小于第一窗口时,产生报警信息。
其中,在一实施例中,所述告警单元,还用于当所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,产生报警信息。
在一实施例中,所述第一接收单元902,还用于在所述第一信息指示的最小窗口小于第一窗口时,接收所述接收端发送的FLOW_CONTROL_ERROR信息。
在一实施例中,所述第一接收单元902,还用于在所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,接收所述接收端发送的FLOW_CONTROL_ERROR信息。
在一实施例中,所述第一接收单元902,还用于接收所述接收端发送的WINDOW_UPDATE帧;接收的WINDOW_UPDATE帧是所述接收端在处理的数据大于或等于所述最小的窗口更新大小时发送的。
实际应用时,所述第一发送单元901和第一接收单元902可由信息传输装置中的处理器结合通信接口实现。
为了实现本申请实施例接收端侧的方法,本申请实施例还提供了一种信息传输装置,设置在接收端上,如图10所示,该装置包括:
第二接收单元1001,用于接收SETTINGS frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;
第二发送单元1002,用于向发送端反馈响应。
其中,在一实施例中,所述第二发送单元1002,还用于当处理的数据大于或等于所述最小的窗口更新大小时,向所述发送端发送WINDOW_UPDATE frame。
在一实施例中,所述第二发送单元1002,还用于当所述第一信息指示的最小窗口小于第一窗口时,向所述发送端发送FLOW_CONTROL_ERROR信息。
在一实施例中,所述第二发送单元1002,还用于当所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,向所述发送端发送FLOW_CONTROL_ERROR信息。
实际应用时,所述第二接收单元1101和第二发送单元1102可由信息传输装置中的处理器结合通信接口实现。
需要说明的是:上述实施例提供的信息传输装置在进行信息传输时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的信息传输装置与信息传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本申请实施例发送端侧的方法,本申请实施例还提供了一种发送端设备,如图11所示,该发送端设备1100包括:
第一通信接口1101,能够与接收端设备进行信息交互;
第一处理器1102,与所述第一通信接口1101连接,以实现与接收端设备进行信息交互,用于运行计算机程序时,执行上述发送端侧一个或多个技术方案提供的方法。而所述计算机程序存储在第一存储器1103上。
具体地,在一实施例中,所述第一处理器1102,用于通过所述第一通信接口1101发送SETTINGS frame;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;以及通过所述第一通信接口接收接收端反馈的响应。
在一实施例中,所述第一处理器1102,还用于通过所述第一通信接口1101发送一个数据DATA frame后的发送窗口小于所述最小窗口时,停止发送DATA frame。
在一实施例中,所述第一处理器1102,还用于停止发送DATA frame后,当发送窗口大于或等于所述最小窗口时,通过所述第一通信接口1101重新开始发送DATA frame。
在一实施例中,所述第一处理器1102,还用于当利用接收到的窗口更新WINDOW_UPDATE frame指示的窗口大小增长值修改后的发送窗口大于或等于所述最小窗口时,通过所述第一通信接口1101重新开始发送DATA frame。
在一实施例中,所述第一处理器1102,还用于当所述第一信息指示的最小窗口小于第一窗口时,产生报警信息。
其中,在一实施例中,所述第一处理器1102,还用于当所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,产生报警信息。
在一实施例中,所述第一处理器1102,还用于在所述第一信息指示的最小窗口小于第一窗口时,通过所述第一通信接口1101接收所述接收端发送的FLOW_CONTROL_ERROR信息。
在一实施例中,所述第一处理器1102,还用于在所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,通过所述第一通信接口1101接收所述接收端发送的FLOW_CONTROL_ERROR信息。
在一实施例中,所述第一处理器1102,还用于通过所述第一通信接口1101接收所述接收端发送的WINDOW_UPDATE帧;接收的WINDOW_UPDATE帧是所述接收端在处理的数据大于或等于所述最小的窗口更新大小时发送的。
需要说明的是:第一处理器1102的具体处理过程可参照上述方法理解。
当然,实际应用时,发送端设备1100中的各个组件通过总线系统1104耦合在一起。可理解,总线系统1104用于实现这些组件之间的连接通信。总线系统1104除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图11中将各种总线都标为总线系统1104。
本申请实施例中的第一存储器1103用于存储各种类型的数据以支持发送端设备1100的操作。这些数据的示例包括:用于在发送端设备1100上操作的任何计算机程序。
上述本申请实施例揭示的方法可以应用于所述第一处理器1102中,或者由所述第一处理器1102实现。所述第一处理器1102可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第一处理器1102中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第一处理器1102可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第一处理器1102可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第一存储器1103,所述第一处理器1102读取第一存储器1103中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,发送端设备1100可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或者其他电子元件实现,用于执行前述方法。
基于上述程序模块的硬件实现,且为了实现本申请实施例接收端设备侧的方法,本申请实施例还提供了一种接收端设备,如图12所示,该接收端设备1200包括:
第二通信接口1201,能够与发送端设备进行信息交互;
第二处理器1202,与所述第二通信接口1201连接,以实现与发送端设备进行信息交互,用于运行计算机程序时,执行上述接收端侧一个或多个技术方案提供的方法。而所述计算机程序存储在第二存储器1203上。
具体地,所述第二处理器1202,用于通过所述第二通信接口1201接收SETTINGSframe;所述SETTINGS frame中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;以及通过所述第二通信接口1201向发送端反馈响应。
其中,在一实施例中,所述第二处理器1202,还用于当处理的数据大于或等于所述最小的窗口更新大小时,通过所述第二通信接口1201向所述发送端发送WINDOW_UPDATEframe。
在一实施例中,所述第二处理器1202,还用于当所述第一信息指示的最小窗口小于第一窗口时,通过所述第二通信接口1201向所述发送端发送FLOW_CONTROL_ERROR信息。
在一实施例中,所述第二处理器1202,还用于当所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,通过所述第二通信接口1201向所述发送端发送FLOW_CONTROL_ERROR信息。
需要说明的是:第二通信接口1201和第二处理器1202的具体处理过程可参照上述方法理解。
当然,实际应用时,接收端设备1200中的各个组件通过总线系统1204耦合在一起。可理解,总线系统1204用于实现这些组件之间的连接通信。总线系统1204除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为总线系统1204。
本申请实施例中的第二存储器1203用于存储各种类型的数据以支持接收端设备1200操作。这些数据的示例包括:用于在接收端设备1200上操作的任何计算机程序。
上述本申请实施例揭示的方法可以应用于所述第二处理器1202中,或者由所述第二处理器1202实现。所述第二处理器1202可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第二处理器1202中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第二处理器1202可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第二处理器1202可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第二存储器1203,所述第二处理器1202读取第二存储器1203中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,接收端设备1200可以被一个或多个ASIC、DSP、PLD、CPLD、FPGA、通用处理器、控制器、MCU、Microprocessor、或其他电子元件实现,用于执行前述方法。
可以理解,本申请实施例的存储器(第一存储器1103、第二存储器1203)可以是易失性存储器或者非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagneticrandom access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,SynchronousStatic Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random AccessMemory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic Random AccessMemory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data RateSynchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
为了实现本申请实施例提供的方法,本申请实施例还提供了一种信息传输系统,如图13所示,该系统包括:发送端设备1301及接收端设备1302。
这里,需要说明的是:所述发送端设备1301及接收端设备1302的具体处理过程已在上文详述,这里不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器1103,上述计算机程序可由发送端设备1100的第一处理器1102执行,以完成前述发送端侧方法所述步骤;再比如包括存储计算机程序的第二存储器1203,上述计算机程序可由接收端设备1200的第二处理器1202执行,以完成前述接收端侧方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
另外,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
Claims (20)
1.一种信息传输方法,其特征在于,应用于发送端,包括:
发送配置SETTINGS帧;所述SETTINGS帧中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;
接收接收端反馈的响应。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
发送一个数据DATA帧后的发送窗口小于所述最小窗口时,停止发送数据DATA帧。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
停止发送DATA帧后,当发送窗口大于或等于所述最小窗口时,重新开始发送DATA帧。
4.根据权利要求2所述的方法,其特征在于,当利用接收到的窗口更新WINDOW_UPDATE帧指示的窗口大小增长值修改后的发送窗口大于或等于所述最小窗口时,重新开始发送DATA帧。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
当所述第一信息指示的最小窗口小于第一窗口时,产生报警信息。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
在所述第一信息指示的最小窗口小于第一窗口时,接收所述接收端发送的流控制错误信息。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
接收所述接收端发送的WINDOW_UPDATE帧;接收的WINDOW_UPDATE帧是所述接收端在处理的数据大于或等于所述最小的窗口更新大小时发送的。
8.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
当所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,产生报警信息。
9.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
在所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,接收所述接收端发送的流控制错误信息。
10.一种信息传输方法,其特征在于,应用于接收端,包括:
接收SETTINGS帧;所述SETTINGS帧中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;
向发送端反馈响应。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当处理的数据大于或等于所述最小的窗口更新大小时,向所述发送端发送WINDOW_UPDATE帧。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
当所述第一信息指示的最小窗口小于第一窗口时,向所述发送端发送流控制错误信息。
13.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
当所述第二信息指示的最小的窗口更新大小小于第一更新窗口时,向所述发送端发送流控制错误信息。
14.一种信息传输装置,其特征在于,包括:
第一发送单元,用于发送SETTINGS帧;所述SETTINGS帧中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;
第一接收单元,用于接收接收端反馈的响应。
15.一种信息传输装置,其特征在于,包括:
第二接收单元,用于接收SETTINGS帧;所述SETTINGS帧中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;
第二发送单元,用于向发送端反馈响应。
16.一种发送端设备,其特征在于,包括:第一通信接口及第一处理器;其中,
所述第一处理器,用于通过所述第一通信接口发送SETTINGS帧;所述SETTINGS帧中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;以及通过所述第一通信接口接收接收端反馈的响应。
17.一种接收端设备,其特征在于,包括:第二通信接口及第二处理器;其中,
所述第二处理器,用于通过所述第二通信接口接收SETTINGS帧;所述SETTINGS帧中携带第一信息或者第二信息;所述第一信息指示最小窗口;所述第二信息指示最小的窗口更新大小;以及通过所述第二通信接口向发送端反馈响应。
18.一种发送端设备,其特征在于,包括:包括:第一处理器和用于存储能够在处理器上运行的计算机程序的第一存储器,
其中,所述第一处理器用于运行所述计算机程序时,执行权利要求1至9任一项所述方法的步骤。
19.一种接收端设备,其特征在于,包括:第二处理器和用于存储能够在处理器上运行的计算机程序的第二存储器,
其中,所述第二处理器用于运行所述计算机程序时,执行权利要求10至13任一项所述方法的步骤。
20.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法的步骤,或者实现权利要求10至13任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011475325.7A CN114629855A (zh) | 2020-12-14 | 2020-12-14 | 信息传输方法、装置、相关设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011475325.7A CN114629855A (zh) | 2020-12-14 | 2020-12-14 | 信息传输方法、装置、相关设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114629855A true CN114629855A (zh) | 2022-06-14 |
Family
ID=81896672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011475325.7A Pending CN114629855A (zh) | 2020-12-14 | 2020-12-14 | 信息传输方法、装置、相关设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114629855A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414942A (zh) * | 2007-10-15 | 2009-04-22 | 株式会社Ntt都科摩 | 一种最小竞争窗口的调整方法及装置 |
CN104753804A (zh) * | 2013-12-31 | 2015-07-01 | 中国移动通信集团公司 | 一种数据流传输控制方法、装置及系统 |
US20200008234A1 (en) * | 2017-04-26 | 2020-01-02 | Huawei Technologies Co., Ltd. | Information Feedback Method and Apparatus |
CN110720199A (zh) * | 2017-06-08 | 2020-01-21 | 瑞典爱立信有限公司 | 针对网络中的套接字组提供协调流控制的方法和网络节点 |
-
2020
- 2020-12-14 CN CN202011475325.7A patent/CN114629855A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414942A (zh) * | 2007-10-15 | 2009-04-22 | 株式会社Ntt都科摩 | 一种最小竞争窗口的调整方法及装置 |
CN104753804A (zh) * | 2013-12-31 | 2015-07-01 | 中国移动通信集团公司 | 一种数据流传输控制方法、装置及系统 |
US20200008234A1 (en) * | 2017-04-26 | 2020-01-02 | Huawei Technologies Co., Ltd. | Information Feedback Method and Apparatus |
CN110720199A (zh) * | 2017-06-08 | 2020-01-21 | 瑞典爱立信有限公司 | 针对网络中的套接字组提供协调流控制的方法和网络节点 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10826830B2 (en) | Congestion processing method, host, and system | |
CN108418767B (zh) | 数据传输方法、设备及计算机存储介质 | |
CN109412946B (zh) | 一种确定回源路径的方法、装置、服务器及可读存储介质 | |
US7471681B2 (en) | Determining network path transmission unit | |
US11489945B2 (en) | TCP packet processing method, toe component, and network device | |
CN110022264B (zh) | 控制网络拥塞的方法、接入设备和计算机可读存储介质 | |
US9967193B2 (en) | Method and system for increasing data flow transmission | |
US20040258076A1 (en) | Setting up a delegated TCP connection | |
US10673778B2 (en) | Transparent and efficient multi-destination TCP communications based on bit indexed explicit replication | |
WO2022042235A1 (zh) | 数据报文发送方法、处理方法、装置、设备及数据报文 | |
CN110875887A (zh) | 一种基于mqtt协议的通信交互方法及通信交互系统 | |
WO2016145964A1 (zh) | 一种实现丢包请求重传的方法、接收装置和发送装置 | |
EP3186959B1 (en) | Enrichment of upper layer protocol content in tcp based session | |
JP2019114947A (ja) | 通信装置、通信装置の制御方法およびプログラム | |
CN107104813B (zh) | 一种信息传输方法、网关及控制器 | |
CN109714135B (zh) | 一种数据包传输方法及装置 | |
CN114629855A (zh) | 信息传输方法、装置、相关设备及存储介质 | |
CN118740748A (zh) | 网络传输方法、可读存储介质及智能设备 | |
CN104378778B (zh) | 物联网中主从站之间进行通信的方法、系统及转换网关 | |
CN111917511B (zh) | 一种数据的接收方法 | |
US9331890B1 (en) | Extending websocket protocol | |
CN116346720A (zh) | 一种传输信息的装置和方法 | |
CN115373755A (zh) | 一种参数配置方法、装置、设备及存储介质 | |
KR102709540B1 (ko) | Sdn 기반 메시지 전송 시스템 및 방법 | |
CN104754014A (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 |