Nothing Special   »   [go: up one dir, main page]

CN111835651A - 数据写入方法、系统、设备及计算机可读存储介质 - Google Patents

数据写入方法、系统、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN111835651A
CN111835651A CN201910318591.XA CN201910318591A CN111835651A CN 111835651 A CN111835651 A CN 111835651A CN 201910318591 A CN201910318591 A CN 201910318591A CN 111835651 A CN111835651 A CN 111835651A
Authority
CN
China
Prior art keywords
size
data
protocol stack
sent
area
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
Application number
CN201910318591.XA
Other languages
English (en)
Other versions
CN111835651B (zh
Inventor
王盛
周全
蔡尚志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN201910318591.XA priority Critical patent/CN111835651B/zh
Priority to US16/635,000 priority patent/US11140089B2/en
Priority to PCT/CN2019/111682 priority patent/WO2020211312A1/en
Publication of CN111835651A publication Critical patent/CN111835651A/zh
Application granted granted Critical
Publication of CN111835651B publication Critical patent/CN111835651B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/196Integration of transport layer protocols, e.g. TCP and UDP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/626Queue scheduling characterised by scheduling criteria for service slots or service orders channel conditions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例提供了一种数据写入方法,该数据写入方法包括:监测是否有待发送数据;如果有所述待发送数据,则获取流量控制参数;根据所述流量控制参数和预设阈值,控制将所述待发送数据写入到协议栈缓存区域中,其中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值。本实施例提供的技术方案,可以确定是否将待发送数据写入至协议栈缓存区域中。

Description

数据写入方法、系统、设备及计算机可读存储介质
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种数据写入方法、系统、设备及计算机可读存储介质。
背景技术
建立在TCP基础之上的HTTP协议是互联网上应用最为广泛的一种网络协议,用于将超文本标记语言(HTML)文档从服务器传送到计算机设备。然而,随着图像,视频和其他多媒体内容的增加,增加的多媒体内容意味着HTML页面变得越来越复杂,使得页面加载时间比以往任何时候都要长。在上述背景下,QUIC(QUIC UDP Internet Connections)传输协议被提出来,其是一种基于UDP的低时延的互联网传输层协议,具有很多的优点,比如减少连接延迟、避免队头阻塞、多路复用等。
QUIC协议实现了流(stream)级别和连接(connection)级别的流量控制。基于上述流量控制,本发明人认为有必要提供一种数据写入方法,使得数据发送端可以基于流量控制确定是否将待发送数据写入至协议栈缓存区域中。
需要说明的是,上述内容并不用于限制申请保护范围。
发明内容
本申请实施例的目的是提供一种数据写入方法、系统、计算机设备及计算机可读存储介质,用于确定是否将待发送数据写入至协议栈缓存区域中,从而避免了计算机设备写入过量的待发送数据到协议栈缓存区域中。
本申请实施例的一个方面提供了一种数据写入方法,所述数据写入方法包括:监测是否有待发送数据;如果有所述待发送数据,则获取流量控制参数;根据所述流量控制参数和预设阈值,控制将所述待发送数据写入到协议栈缓存区域中,其中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值。
优选地,所述流量控制参数包括所述数据接收端的拥塞窗口的拥塞窗口大小。
优选地,所述获取流量控制参数,包括:从协议栈中获取所述拥塞窗口大小;其中,所述拥塞窗口大小基于所述数据接收端反馈的流数据帧更新并被存储在所述协议栈中。
优选地,所述根据所述流量控制参数和预设阈值,控制将所述待发送数据写入到协议栈缓存区域中,包括:根据所述拥塞窗口大小以及预设阈值,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中;其中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述拥塞窗口大小之间的预设比值。
优选地,所述根据所述拥塞窗口大小以及预设阈值,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中,包括:计算所述空闲区域大小和所述拥塞窗口大小之间的实际比例;如果所述实际比例小于所述预设阈值,则判断可以将所述待发送数据写入到所述协议栈缓存区域中;及如果所述实际比例不小于所述预设阈值,则判断不可以将所述待发送数据写入到所述协议栈缓存区域中。
优选地,所述根据所述拥塞窗口大小以及预设阈值,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中,包括:根据所述拥塞窗口大小以及所述预设阈值,将所述协议栈缓存区域的当前缓存区域大小从第一缓存区域大小调整至第二缓存区域大小;及根据所述第二缓存区域大小,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中。
优选地,所述根据所述拥塞窗口大小以及所述预设阈值,将所述协议栈缓存区域的当前缓存区域大小从第一缓存区域大小调整至第二缓存区域大小,包括:计算所述拥塞窗口大小和所述预设阈值的乘积值;及将所述当前缓存区域大小从所述第一缓存区域大小调整至所述第二缓存区域大小,所述第二缓存区域大小等于或约大于所述乘积值。
优选地,所述根据所述第二缓存区域大小,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中,还包括:根据所述第二缓存区域大小和所述协议栈缓存区域中的非空闲区域大小,得到所述协议栈缓存区域中的空闲区域大小,其中,所述非空闲区域大小为所述协议栈缓存区域中的已存储数据的区域大小;比较所述空闲区域大小和所述待发送数据的数据块大小;如果所述空闲区域大小大于所述待发送数据的数据块大小,则判断可以将所述待发送数据写入到所述协议栈缓存区域中;及如果所述空闲区域大小不大于所述待发送数据的数据块大小,则判断不可以将所述待发送数据写入到所述协议栈缓存区域中。
优选地,所述预设阈值为取自范围为2~5中的数值。
优选地,所述协议栈缓存区域包括队列、栈或数独。
本申请实施例的一个方面又提供了一种数据写入系统,其特征在于,所述数据写入系统包括:监测模块,用于监测是否有待发送数据;获取模块,用于如果有所述待发送数据,则获取流量控制参数;控制模块,用于根据所述流量控制参数和预设阈值,控制将所述待发送数据写入到协议栈缓存区域中,其中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现上述数据写入方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行上述数据写入方法的步骤。
本申请实施例的一个方面又提供了一种基于QUIC协议栈的数据写入方法,所述数据写入方法包括:接收应用程序的查询指令;响应于所述查询指令,将QUIC协议栈中的流量控制参数提供至所述应用程序,以使所述应用程序根据所述流量控制参数及预设阈值控制将待发送数据写入到所述QUIC协议栈的协议栈缓存区域中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值。
优选地,所述流量控制参数包括数据接收端的拥塞窗口的拥塞窗口大小。
优选地,还包括获取所述流量控制参数的步骤:接收所述数据接收端反馈的流数据帧;及根据所述流数据帧更新所述拥塞窗口大小,并将更新后的所述拥塞窗口大小存储于所述协议栈中。
本申请实施例的一个方面又提供了一种基于QUIC协议栈的数据写入方法,所述数据写入方法包括:接收应用程序的查询指令;响应于所述查询指令,将QUIC协议栈中的流量控制参数提供至所述应用程序;接收所述应用程序的缓存调整指令,其中,所述缓存调整指令用于指示将所述QUIC协议栈中的当前缓存区域大小从第一缓存区域大小调整至第二缓存区域大小,所述第二缓存区域大小基于所述流量控制参数和预设阈值计算得到,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值;响应于所述缓存调整指令,将所述当前缓存区域大小从所述第一缓存区域大小调整至所述第二缓存区域大小,以使所述应用程序基于所述第二缓存区域大小控制将所述待发送数据写入所述协议栈缓存区域中。
优选的,所述流量控制参数包括数据接收端的拥塞窗口的拥塞窗口大小。
优选的,所述第二缓存区域大小等于或约大于乘积值,所述乘积值通过所述拥塞窗口大小乘以所述预设阈值得到。
优选的,还包括:将所述协议栈缓存区域中的非空闲区域大小提供给所述应用程序,以使所述应用程序根据所述第二缓存区域大小、所述非空闲区域大小以及所述待发送数据的数据块大小判断是否可以将所述待发送数据写入所述协议栈缓存区域中。
优选的,还包括更新所述非空闲区域大小的步骤:接收所述数据接收端反馈的确认信息;及删除所述协议栈缓存区域中与所述确认信息对应的待发送数据,并更新所述非空闲区域大小。
优选的,所述协议栈缓存区域包括队列、栈或数独。
本申请实施例的一个方面又提供了一种基于QUIC协议栈的数据写入系统,所述数据写入系统包括:第一接收模块,用于接收应用程序的查询指令;第一响应模块,用于响应于所述查询指令,将QUIC协议栈中的流量控制参数提供至所述应用程序;第二接收模块,用于接收所述应用程序的缓存调整指令,其中,所述缓存调整指令用于指示将所述QUIC协议栈中的当前缓存区域大小从第一缓存区域大小调整至第二缓存区域大小,所述第二缓存区域大小基于所述流量控制参数和预设阈值计算得到,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值;第二响应模块,用于响应于所述缓存调整指令,将所述当前缓存区域大小从所述第一缓存区域大小调整至所述第二缓存区域大小,以使所述应用程序基于所述第二缓存区域大小控制将所述待发送数据写入所述协议栈缓存区域中。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现上述基于QUIC协议栈的数据写入方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行上述基于QUIC协议栈的数据写入方法的步骤。
本申请实施例提供的数据写入方法、系统、设备及计算机可读存储介质,根据流量控制参数和预设阈值,判断是否可以将待发送数据写入到协议栈缓存区域中,从而可以确定是否将待发送数据写入至协议栈缓存区域中,避免了计算机设备(数据发送端)写入过量的待发送数据到协议栈缓存区域中,减轻了内存压力和机器负担。
附图说明
图1示意性示出了根据本申请实施例一的数据写入方法的应用环境图;
图2示意性示出了根据本申请实施例一的数据写入方法的流程图;
图3为图2中步骤S104的具体流程图;
图4示意性示出了根据本申请实施例一的数据写入方法在某个使用场景下的流程图;
图5示意性示出了根据本申请实施例二的数据写入方法的流程图;
图6为图5中步骤S404的具体流程图;
图7为图5中步骤S408的具体流程图;
图8示意性示出了根据本申请实施例二的数据写入方法在某个使用场景下的流程图;
图9示意性示出了根据本申请实施例三的数据写入方法的流程图;
图10示意性示出了根据本申请实施例四的数据写入方法的流程图;
图11示意性示出了根据本申请实施例五的数据写入系统的框图;
图12示意性示出了根据本申请实施例六的数据写入系统的框图;
图13示意性示出了根据本申请实施例七的数据写入系统的框图;以及
图14示意性示出了根据本申请实施例八的适于实现数据写入方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请实施例,并不用于限定本申请实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
图1示意性示出了根据本申请实施例的数据写入方法的应用环境示意图。在示例性的实施例中,计算机设备2(作为数据发送端)可以通过网络6向数据接收端发送数据。所述计算机设备2可以是服务器、移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)等具有数据发送功能的电子设备。所述数据接收端可以是服务器、机顶盒、移动电话、平板个人计算机、膝上型计算机、智能电视等具有数据接收功能的电子设备。所述网络6可以是因特网。
实施例一
图2示意性示出了根据本申请实施例一的数据写入方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备2为执行主体进行示例性描述。
如图2所示,该数据写入方法可以包括步骤S100~S108,其中:
步骤S100,监测是否有待发送数据。
示例性的:监测应用程序2A是否产生待发送数据,所述待发送数据可以是请求报文或响应报文,所述待发送数据可以用于携带视频、音频、文字、图片等数据内容。
示例性的,所述应用程序2A可以基于HTTP、HTTPS、FTP、SMTP、TELNET等协议的应用层程序,如Web浏览器程序等。
步骤S102,如果有所述待发送数据,则获取流量控制参数。
所述流量控制参数可以用于表示数据接收端4的数据接收能力。
所述流量控制参数可以包括数据接收端4的拥塞窗口(congestion window)的拥塞窗口大小。
在示例性的实施例中,当所述计算机设备2基于QUIC协议与所述数据接收端4通信时,所述拥塞窗口大小基于所述数据接收端4反馈的流数据帧更新并被存储在所述协议栈2C中。
所述流数据帧,可以是MAX_STREAM_DATA帧,其被用在QUIC协议的流量控制中,用于通知数据发送端(即计算机设备2)在指定流上的能够发送的最大数据量。所述流数据帧包括流识别号(Stream ID)、最大流数据(Maximum Stream Data)。
在示例性的实施例中,当所述计算机设备2基于TCP协议与所述数据接收端4通信时,所述拥塞窗口大小基于所述数据接收端4反馈的WINDOW_UPDATE帧更新并被存储在所述协议栈2C中。
所述WINDOW_UPDATE帧,又称窗口更新帧,其被用在TCP协议的流量控制中。
步骤S104,根据所述流量控制参数和预设阈值,控制将所述待发送数据写入到协议栈缓存区域2B中,其中,所述预设阈值为所述协议栈缓存区域2B中的空闲区域大小与所述流量控制参数之间的预设比值。
控制将所述待发送数据写入到协议栈缓存区域2B中,包括:
(1)将所述待发送数据写入到所述协议栈缓存区域2B中。
所述协议栈缓存区域2B可以为队列、栈或数独等。所述队列可以是FIFO(FirstInput First Output,又称为先入先出)队列,环形队列等。
以FIFO队列为例,可以按先后顺序将所述待发送数据复制到所述FIFO队列中,可以按优先级标识将所述待发送数据复制到所述FIFO队列中。所述FIFO队列中的待发送数据可以被协议栈2C取出并被封装为一个或多个数据包,如QUIC数据包、TCP数据包等,这些数据包用于发送至数据接收端4。
(2)限制将所述待发送数据写入到所述协议栈缓存区域2B中。
在示例性的实施例中,当所述流量控制参数为所述拥塞窗口大小时,所述步骤S104进一步包括:根据所述拥塞窗口大小以及预设阈值,判断是否可以将所述待发送数据写入到所述协议栈缓存区域2B中。其中,所述预设阈值为所述协议栈缓存区域2B中的空闲区域大小与所述拥塞窗口大小之间的预设比值。所述预设比例为(包括端点)2~5(包括端点)之间,优选为:2、2.5、3、3.5、4、4.5、5。
在示例性的实施例中,如图3所示,根据所述拥塞窗口大小以及预设阈值,判断是否可以将所述待发送数据写入到所述协议栈缓存区域2B中,进一步包括:S104A1,计算所述空闲区域大小和所述拥塞窗口大小之间的实际比例;S104A2,比较所述实际比例是否小于所述预设阈值,如果是,进入步骤S104A3,否则进入步骤S104A4。步骤S104A3,判断可以将所述待发送数据写入到所述协议栈缓存区域2B中;S104A4,判断不可以将所述待发送数据写入到所述协议栈缓存区域2B中。
图4提供了本实施例在某个使用场景下的使用流程图,该使用场景包括计算机设备2和数据接收端4。所述计算机设备2上安装有处于应用层的应用程序,以及处于传输层的QUIC协议栈。该应用程序,用于接收报文数据或者产生并发送报文数据(如,HTTP响应报文)。具体如下。
步骤S300,在计算机设备2与数据接收端4之间建立QUIC连接,并基于该QUIC连接将报文数据发送到数据接收端4中。
步骤S302,经由应用程序产生新报文数据,即待发送数据。
步骤S304,从QUIC协议栈中获取数据接收端4的拥塞窗口大小。
所述拥塞窗口大小基于所述数据接收端反馈的流数据帧更新并被存储在所述协议栈中。
步骤S306,根据所述拥塞窗口大小以及预设阈值,判断是否可以将所述待发送数据写入到FIFO队列中。如果是,进入步骤S308;否则进入步骤S304。
所述预设阈值为所述FIFO队列的空闲区域大小与所述拥塞窗口大小之间的预设比值。所述预设比例为(包括端点)2~5(包括端点)之间,优选为:2、2.5、3、3.5、4、4.5、5。
步骤S308,将所述待发送数据写入到所述FIFO队列中。
步骤S310,经由QUIC协议栈依据预定规则从FIFO队列中取出预定数量的待发送数据,并将被取出的待发送数据封装为一个或多个QUIC数据包。
示例性的,从FIFO队列的队列列头取出1KB的待发送数据,将该1KB的待发送数据进行封装,如封装为QUIC数据包,然后将该QUIC数据包通过UDP Socket发送到数据接收端4。
步骤S312,经由QUIC协议栈将所述一个或多个QUIC数据包发送到数据接收端4。
步骤S314,所述数据接收端4基于所述一个或多个QUIC数据包,并返回流数据帧和ACK消息;
需要说明的是,流数据帧和ACK消息,可以被同步发送也可以被异步发送,流数据帧并不必然以是否接收到计算机设备2的QUIC数据包为发送依据。
步骤S316,经由QUIC协议栈接收所述流数据帧或ACK消息。
步骤S318,根据所述流数据帧更新所述拥塞窗口大小。
步骤S320,根据ACK消息,从FIFO队列中删除与所述ACK消息对应的待发送数据,并更新FIFO队列中的空闲区域大小。
可知,实施例一所述的数据写入方法,根据流量控制参数和预设阈值,判断是否可以将待发送数据写入到协议栈缓存区域中,从而可以确定是否将待发送数据写入至协议栈缓存区域中,避免了计算机设备2写入过量的待发送数据到协议栈缓存区域中,减轻了内存负担和机器压力。
实施例二
图5示意性示出了根据本申请实施例二的数据写入方法的流程图。该数据写入方法可以包括步骤S400~S410,其中:
步骤S400,监测是否有待发送数据。
具体的:监测应用程序是否产生待发送数据,所述待发送数据可以是请求报文或响应报文。所述应用程序可以基于HTTP、HTTPS、FTP、SMTP、TELNET等协议的应用层程序,如Web浏览器程序等。
步骤S402,如果有所述待发送数据,则获取流量控制参数。
在示例性的实施例中,所述流量控制参数包括所述数据接收端的拥塞窗口的拥塞窗口大小。
在示例性的实施例中,当所述计算机设备2基于QUIC协议与所述数据接收端4通信时,所述拥塞窗口大小基于所述数据接收端4反馈的流数据帧更新并被存储在所述协议栈中。
在示例性的实施例中,当所述计算机设备2基于TCP协议与所述数据接收端4通信时,所述拥塞窗口大小基于所述数据接收端4反馈的WINDOW_UPDATE帧更新并被存储在所述协议栈中。
步骤S404,根据所述流量控制参数以及所述预设阈值,将所述协议栈缓存区域的当前缓存区域大小(Max Buffer Size)从第一缓存区域大小调整至第二缓存区域大小。
在示例性的实施例中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述拥塞窗口大小之间的预设比值。所述预设比例为(包括端点)2~5(包括端点)之间,优选为:2、2.5、3、3.5、4、4.5、5。
在示例性的实施例中,如图6所示,所述步骤S404可以包括:步骤S404A1,计算所述拥塞窗口大小和所述预设阈值的乘积值;步骤S404A2,将所述当前缓存区域大小从所述第一缓存区域大小调整至所述第二缓存区域大小,所述第二缓存区域大小等于或约大于所述乘积值。“约大于”的标准可以根据容错标准确定。所述第一缓存区域大小可以大于、等于或小于所述第二缓存区域大小。
步骤S406,根据所述第二缓存区域大小,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中。如果是,进入步骤S408;如果否,进入步骤S410。
在示例性的实施例中,如图7所示,所述步骤S408可以包括:步骤S408A1,根据所述第二缓存区域大小和所述协议栈缓存区域中的非空闲区域大小,得到所述协议栈缓存区域中的空闲区域大小。其中,所述非空闲区域大小为所述协议栈缓存区域中的已存储数据的区域大小,所述空闲区域大小为所述协议栈缓存区域中的未存储数据的区域大小。步骤S408A2,比较所述空闲区域大小是否大于所述待发送数据的数据块大小。如果是,则进入步骤S408A3,否则进入步骤S408A4。步骤S408A3,判断可以将所述待发送数据写入到所述协议栈缓存区域中。步骤S408A4,判断不可以将所述待发送数据写入到所述协议栈缓存区域中。
步骤S408,将所述待发送数据写入到所述协议栈缓存区域中。
所述协议栈缓存区域可以为队列、栈或数独等。所述队列可以是FIFO(FirstInput First Output,又称为先入先出)队列,环形队列等。
步骤S410,禁止将所述待发送数据写入到所述协议栈缓存区域中,并以预定频率重复执行所述步骤S402~S406,直至进入步骤S408。
图8提供了本实施例在某个使用场景下的使用流程图,该使用场景包括计算机设备2和数据接收端4。所述计算机设备2上安装有处于应用层的应用程序,以及处于传输层的QUIC协议栈。该应用程序,用于接收报文数据或者产生并发送报文数据(如,HTTP响应报文)。具体如下。
步骤S500,在计算机设备2与数据接收端4之间建立QUIC连接,并基于该QUIC连接将报文数据发送到数据接收端4中。
步骤S502,经由应用程序产生新报文数据,即待发送数据。
步骤S504,从QUIC协议栈中获取数据接收端4的拥塞窗口大小。
步骤S506,根据所述拥塞窗口大小以及所述预设阈值,将所述FIFO队列的当前队列大小从第一队列大小调整至第二队列大小。
所述第二队列大小等于所述拥塞窗口大小与所述预设阈值之间的乘积值。所述预设阈值为所述FIFO队列的空闲区域大小与所述拥塞窗口大小之间的预设比值。所述预设比例为(包括端点)2~5(包括端点)之间,优选为:2、2.5、3、3.5、4、4.5、5。
步骤S508,根据所述第二队列大小和FIFO队列中的非空闲区域大小,得到所述FIFO队列中的空闲区域大小。
步骤S510,比较所述空闲区域大小和所述待发送数据的数据块大小。如果所述空闲区域大小大于所述待发送数据的数据块大小,进入步骤S512,否则进入步骤S504。
步骤S512,将所述待发送数据写入到所述FIFO队列中。
步骤S514,经由QUIC协议栈依据预定规则从FIFO队列中取出预定数量的待发送数据,并将被取出的待发送数据封装为一个或多个QUIC数据包。
步骤S516,经由QUIC协议栈将所述一个或多个QUIC数据包发送到数据接收端4。
步骤S518,所述数据接收端4基于所述一个或多个QUIC数据包,并返回流数据帧和ACK消息。
步骤S520,经由QUIC协议栈接收所述流数据帧或ACK消息。
步骤S522,根据所述流数据帧更新所述拥塞窗口大小。
步骤S524,根据ACK消息,从FIFO队列中删除与所述ACK消息对应的待发送数据,并更新FIFO队列中的空闲区域大小。
可知,实施例二所述的数据写入方法,动态调整协议栈缓存区域的当前缓存区域大小,从而避免了以下问题:协议栈缓存区域过小导致的流量控制(Flow Control)不准确的问题,以及协议栈缓存区域过大导致的资源浪费的问题(具体的,协议栈缓存区域过大,会因为流量控制导致待发送数据长时间保留在协议栈缓存区域中,从而导致内存资源浪费及机器压力过大)。
实施例三
图9示意性示出了根据本申请实施例三的数据写入方法的流程图。该数据写入方法可以包括步骤S600~S602,其中:
步骤S600,接收应用程序的查询指令。
所述应用程序处于应用层,所述查询指令为所述应用程序通过调用传输层中指定API的指令,用于请求传输层反馈指定的流量控制参数至所述应用程序。
具体的:
当应用层的应用程序产生待发送数据时,需要将该待发送数据写入到协议栈缓存区域;并通过传输层的协议栈从所述协议栈缓存区域中读取所述待发送数据,将读取的待发送数据封装为一个或多个数据包(如,TCP数据包、QUIC数据包等),并将该一个或多个数据包发送到数据接收端。
当应用层的应用程序产生待发送数据时,需要判断在当前时间节点所述待发送数据是否可以被写入到所述协议栈缓存区域中。当被判断在当前时间节点所述待发送数据不可以被写入到所述协议栈缓存区域中,则限制将所述待发送数据是否可以被写入到所述协议栈缓存区域中。
所述判断步骤依赖于流量控制参数和预设阈值。
其中,所述流量控制参数被保存在传输层中,所述流量控制参数为从数据接收端反馈的参数,如拥塞窗口大小。
在示例性的实施例中,当所述计算机设备2基于QUIC协议与所述数据接收端4通信时,可以通过数据接收端4反馈的流数据帧更新所述拥塞窗口大小。
在示例性的实施例中,当所述计算机设备2基于TCP协议与所述数据接收端4通信时,可以通过数据接收端4反馈的WINDOW_UPDATE帧更新所述拥塞窗口大小。
步骤S602,响应于所述查询指令,将QUIC协议栈中的流量控制参数提供至所述应用程序,以使所述应用程序根据所述流量控制参数及预设阈值控制将待发送数据写入到所述QUIC协议栈的协议栈缓存区域中。
所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值。
实施例四
图10示意性示出了根据本申请实施例四的数据写入方法的流程图。该数据写入方法可以包括步骤S700~S710,其中:
步骤S700,接收应用程序的查询指令。
所述应用程序处于应用层,所述查询指令为所述应用程序通过调用传输层中指定API的指令,用于请求传输层反馈指定的流量控制参数至所述应用程序。
步骤S702,响应于所述查询指令,将QUIC协议栈中的流量控制参数提供至所述应用程序。
所述流量控制参数包括数据接收端的拥塞窗口的拥塞窗口大小。
步骤S704,接收所述应用程序的缓存调整指令,其中,所述缓存调整指令用于指示将所述QUIC协议栈中的当前缓存区域大小从第一缓存区域大小调整至第二缓存区域大小。
所述QUIC协议栈的协议栈缓存区域可以为队列、栈或数独等。
所述第二缓存区域大小基于所述流量控制参数和预设阈值计算得到,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值。示例性的,所述第二缓存区域大小等于或约大于乘积值,所述乘积值通过所述拥塞窗口大小乘以所述预设阈值得到。所述第一缓存区域大小可以大于、等于或小于所述第二缓存区域大小。
步骤S706,响应于所述缓存调整指令,将所述当前缓存区域大小从所述第一缓存区域大小调整至所述第二缓存区域大小,以使所述应用程序基于所述第二缓存区域大小控制将所述待发送数据写入所述协议栈缓存区域中。
在示例性的实施例中,还包括步骤:将所述协议栈缓存区域中的非空闲区域大小提供给所述应用程序,以使所述应用程序根据所述第二缓存区域大小、所述非空闲区域大小以及所述待发送数据的数据块大小判断是否可以将所述待发送数据写入所述协议栈缓存区域中。其中,所述非空闲区域大小为所述协议栈缓存区域中的已存储数据的区域大小。
在示例性的实施例中,还包括更新所述非空闲区域大小的步骤:接收所述数据接收端反馈的确认信息;及删除所述协议栈缓存区域中与所述确认信息对应的待发送数据,并更新所述非空闲区域大小。
实施例五
图11示意性示出了根据本申请实施例五的数据写入系统的框图,该数据写入系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述视频处理系统在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图11所示,该数据写入系统400可以包括监测模块410、获取模块420、控制模块430,其中:
监测模块410,用于监测是否有待发送数据。
获取模块420,用于如果有所述待发送数据,则获取流量控制参数。
控制模块430,用于根据所述流量控制参数和预设阈值,控制将所述待发送数据写入到协议栈缓存区域中,其中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值。
在示例性的实施例中,所述流量控制参数包括所述数据接收端的拥塞窗口的拥塞窗口大小。
在示例性的实施例中,获取模块420,还用于:从协议栈中获取所述拥塞窗口大小。其中,所述拥塞窗口大小基于所述数据接收端反馈的流数据帧更新并被存储在所述协议栈中。
在示例性的实施例中,控制模块430,还用于:根据所述拥塞窗口大小以及预设阈值,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中。其中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述拥塞窗口大小之间的预设比值。
所述根据所述拥塞窗口大小以及预设阈值,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中,包括:计算所述空闲区域大小和所述拥塞窗口大小之间的实际比例;如果所述实际比例小于所述预设阈值,则判断可以将所述待发送数据写入到所述协议栈缓存区域中;及如果所述实际比例不小于所述预设阈值,则判断不可以将所述待发送数据写入到所述协议栈缓存区域中。
在示例性的实施例中,控制模块430,还用于:根据所述拥塞窗口大小以及所述预设阈值,将所述协议栈缓存区域的当前缓存区域大小从第一缓存区域大小调整至第二缓存区域大小;及根据所述第二缓存区域大小,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中。
所述根据所述拥塞窗口大小以及所述预设阈值,将所述协议栈缓存区域的当前缓存区域大小从第一缓存区域大小调整至第二缓存区域大小,包括:计算所述拥塞窗口大小和所述预设阈值的乘积值;及将所述当前缓存区域大小从所述第一缓存区域大小调整至所述第二缓存区域大小,所述第二缓存区域大小等于或约大于所述乘积值。
所述根据所述第二缓存区域大小,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中,还包括:根据所述第二缓存区域大小和所述协议栈缓存区域中的非空闲区域大小,得到所述协议栈缓存区域中的空闲区域大小,其中,所述非空闲区域大小为所述协议栈缓存区域中的已存储数据的区域大小;比较所述空闲区域大小和所述待发送数据的数据块大小;如果所述空闲区域大小大于所述待发送数据的数据块大小,则判断可以将所述待发送数据写入到所述协议栈缓存区域中;及如果所述空闲区域大小不大于所述待发送数据的数据块大小,则判断不可以将所述待发送数据写入到所述协议栈缓存区域中。
在示例性的实施例中,所述预设阈值为取自范围为2~5中的数值。
在示例性的实施例中,所述协议栈缓存区域包括队列、栈或数独。
实施例六
图12示意性示出了根据本申请实施例六的数据写入系统的框图,该数据写入系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述视频处理系统在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图12所示,该数据写入系统500可以包括接收模块510和响应模块520,其中:
接收模块510,用于接收应用程序的查询指令;
响应模块520,用于响应于所述查询指令,将QUIC协议栈中的流量控制参数提供至所述应用程序,以使所述应用程序根据所述流量控制参数及预设阈值控制将待发送数据写入到所述QUIC协议栈的协议栈缓存区域中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值。
在示例性的实施例中,所述流量控制参数包括数据接收端的拥塞窗口的拥塞窗口大小。
在示例性的实施例中,还包括获取模块530,用于:接收所述数据接收端反馈的流数据帧;及根据所述流数据帧更新所述拥塞窗口大小,并将更新后的所述拥塞窗口大小存储于所述协议栈中。
实施例七
图13示意性示出了根据本申请实施例七的数据写入系统的框图,该数据写入系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述视频处理系统在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图13所示,该数据写入系统600可以包括第一接收模块610、第一响应模块620、第二接收模块630和第二响应模块640,其中:
第一接收模块610,用于接收应用程序的查询指令。
第一响应模块620,用于:响应于所述查询指令,将QUIC协议栈中的流量控制参数提供至所述应用程序。示例性的,所述流量控制参数包括数据接收端的拥塞窗口的拥塞窗口大小。
第二接收模块630,用于:接收所述应用程序的缓存调整指令,其中,所述缓存调整指令用于指示将所述QUIC协议栈中的当前缓存区域大小从第一缓存区域大小调整至第二缓存区域大小,所述第二缓存区域大小基于所述流量控制参数和预设阈值计算得到,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值。
所述第二缓存区域大小等于或约大于乘积值,所述乘积值通过所述拥塞窗口大小乘以所述预设阈值得到。
第二响应模块640,用于:响应于所述缓存调整指令,将所述当前缓存区域大小从所述第一缓存区域大小调整至所述第二缓存区域大小,以使所述应用程序基于所述第二缓存区域大小控制将所述待发送数据写入所述协议栈缓存区域中。
在示例性的实施例中,第二响应模块640,还用于:将所述协议栈缓存区域中的非空闲区域大小提供给所述应用程序,以使所述应用程序根据所述第二缓存区域大小、所述非空闲区域大小以及所述待发送数据的数据块大小判断是否可以将所述待发送数据写入所述协议栈缓存区域中。其中,所述非空闲区域大小为所述协议栈缓存区域中的已存储数据的区域大小。
在示例性的实施例中,还包括缓存信息更新模块(未图示),用于:接收所述数据接收端反馈的确认信息;及删除所述协议栈缓存区域中与所述确认信息对应的待发送数据,并更新所述非空闲区域大小。
在示例性的实施例中,所述协议栈缓存区域包括队列、栈或数独。
实施例八
图14示意性示出了根据本申请实施例八的适于实现数据写入方法的计算机设备的硬件架构示意图。本实施例中,计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图12所示,计算机设备2至少包括但不限于:可通过系统总线相互通信链接存储器710、处理器720、网络接口730。其中:
存储器710至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器710可以是计算机设备2的内部存储模块,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器710也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(SmartMedia Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器710还可以既包括计算机设备2的内部存储模块也包括其外部存储设备。本实施例中,存储器710通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如数据写入方法或基于QUIC协议栈的数据写入方法的程序代码等。此外,存储器710还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器720在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器720通常用于控制计算机设备2的总体操作,例如执行与计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,处理器720用于运行存储器710中存储的程序代码或者处理数据。
网络接口730可包括无线网络接口或有线网络接口,该网络接口730通常用于在计算机设备2与其他计算机设备之间建立通信链接。例如,网络接口730用于通过网络将计算机设备2与外部终端相连,在计算机设备2与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图14仅示出了具有部件710-730的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器710中的数据写入方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器720)所执行,以完成本发明。
实施例九
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的数据写入方法或基于QUIC协议栈的数据写入方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的数据写入方法或基于QUIC协议栈的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (25)

1.一种数据写入方法,其特征在于,所述数据写入方法包括:
监测是否有待发送数据;
如果有所述待发送数据,则获取流量控制参数;
根据所述流量控制参数和预设阈值,控制将所述待发送数据写入到协议栈缓存区域中,其中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值。
2.根据权利要求1所述的数据写入方法,其特征在于,所述流量控制参数包括所述数据接收端的拥塞窗口的拥塞窗口大小。
3.根据权利要求2所述的数据写入方法,其特征在于,所述获取流量控制参数,包括:
从协议栈中获取所述拥塞窗口大小;
其中,所述拥塞窗口大小基于所述数据接收端反馈的流数据帧更新并被存储在所述协议栈中。
4.根据权利要求2所述的数据写入方法,其特征在于,所述根据所述流量控制参数和预设阈值,控制将所述待发送数据写入到协议栈缓存区域中,包括:
根据所述拥塞窗口大小以及预设阈值,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中;
其中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述拥塞窗口大小之间的预设比值。
5.根据权利要求4所述的数据写入方法,其特征在于,所述根据所述拥塞窗口大小以及预设阈值,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中,包括:
计算所述空闲区域大小和所述拥塞窗口大小之间的实际比例;
如果所述实际比例小于所述预设阈值,则判断可以将所述待发送数据写入到所述协议栈缓存区域中;及
如果所述实际比例不小于所述预设阈值,则判断不可以将所述待发送数据写入到所述协议栈缓存区域中。
6.根据权利要求4所述的数据写入方法,其特征在于,所述根据所述拥塞窗口大小以及预设阈值,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中,包括:
根据所述拥塞窗口大小以及所述预设阈值,将所述协议栈缓存区域的当前缓存区域大小从第一缓存区域大小调整至第二缓存区域大小;及
根据所述第二缓存区域大小,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中。
7.根据权利要求6所述的数据写入方法,其特征在于,所述根据所述拥塞窗口大小以及所述预设阈值,将所述协议栈缓存区域的当前缓存区域大小从第一缓存区域大小调整至第二缓存区域大小,包括:
计算所述拥塞窗口大小和所述预设阈值的乘积值;及
将所述当前缓存区域大小从所述第一缓存区域大小调整至所述第二缓存区域大小,所述第二缓存区域大小等于或约大于所述乘积值。
8.根据权利要求6所述的数据写入方法,其特征在于,所述根据所述第二缓存区域大小,判断是否可以将所述待发送数据写入到所述协议栈缓存区域中,还包括:
根据所述第二缓存区域大小和所述协议栈缓存区域中的非空闲区域大小,得到所述协议栈缓存区域中的空闲区域大小,其中,所述非空闲区域大小为所述协议栈缓存区域中的已存储数据的区域大小;
比较所述空闲区域大小和所述待发送数据的数据块大小;
如果所述空闲区域大小大于所述待发送数据的数据块大小,则判断可以将所述待发送数据写入到所述协议栈缓存区域中;及
如果所述空闲区域大小不大于所述待发送数据的数据块大小,则判断不可以将所述待发送数据写入到所述协议栈缓存区域中。
9.根据权利要求1所述的数据写入方法,其特征在于,所述预设阈值为取自范围为2~5中的数值。
10.根据权利要求1所述的数据写入方法,其特征在于,所述协议栈缓存区域包括队列、栈或数独。
11.一种数据写入系统,其特征在于,所述数据写入系统包括:
监测模块,用于监测是否有待发送数据;
获取模块,用于如果有所述待发送数据,则获取流量控制参数;
控制模块,用于根据所述流量控制参数和预设阈值,控制将所述待发送数据写入到协议栈缓存区域中,其中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值。
12.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至10任一项所述数据写入方法的步骤。
13.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至10中任一项所述的数据写入方法的步骤。
14.一种基于QUIC协议栈的数据写入方法,其特征在于,所述数据写入方法包括:
接收应用程序的查询指令;
响应于所述查询指令,将QUIC协议栈中的流量控制参数提供至所述应用程序,以使所述应用程序根据所述流量控制参数及预设阈值控制将待发送数据写入到所述QUIC协议栈的协议栈缓存区域中,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值。
15.根据权利要求14所述的基于QUIC协议栈的数据写入方法,其特征在于,所述流量控制参数包括数据接收端的拥塞窗口的拥塞窗口大小。
16.根据权利要求15所述的基于QUIC协议栈的数据写入方法,其特征在于,还包括获取所述流量控制参数的步骤:
接收所述数据接收端反馈的流数据帧;及
根据所述流数据帧更新所述拥塞窗口大小,并将更新后的所述拥塞窗口大小存储于所述协议栈中。
17.一种基于QUIC协议栈的数据写入方法,其特征在于,所述数据写入方法包括:
接收应用程序的查询指令;
响应于所述查询指令,将QUIC协议栈中的流量控制参数提供至所述应用程序;
接收所述应用程序的缓存调整指令,其中,所述缓存调整指令用于指示将所述QUIC协议栈中的当前缓存区域大小从第一缓存区域大小调整至第二缓存区域大小,所述第二缓存区域大小基于所述流量控制参数和预设阈值计算得到,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值;
响应于所述缓存调整指令,将所述当前缓存区域大小从所述第一缓存区域大小调整至所述第二缓存区域大小,以使所述应用程序基于所述第二缓存区域大小控制将所述待发送数据写入所述协议栈缓存区域中。
18.根据权利要求17所述的基于QUIC协议栈的数据写入方法,其特征在于,所述流量控制参数包括数据接收端的拥塞窗口的拥塞窗口大小。
19.根据权利要求18所述的基于QUIC协议栈的数据写入方法,其特征在于,所述第二缓存区域大小等于或约大于乘积值,所述乘积值通过所述拥塞窗口大小乘以所述预设阈值得到。
20.根据权利要求17所述的基于QUIC协议栈的数据写入方法,其特征在于,还包括:
将所述协议栈缓存区域中的非空闲区域大小提供给所述应用程序,以使所述应用程序根据所述第二缓存区域大小、所述非空闲区域大小以及所述待发送数据的数据块大小判断是否可以将所述待发送数据写入所述协议栈缓存区域中。
21.根据权利要求20所述的基于QUIC协议栈的数据写入方法,其特征在于,还包括更新所述非空闲区域大小的步骤:
接收所述数据接收端反馈的确认信息;及
删除所述协议栈缓存区域中与所述确认信息对应的待发送数据,并更新所述非空闲区域大小。
22.根据权利要求17所述的基于QUIC协议栈的数据写入方法,其特征在于,所述协议栈缓存区域包括队列、栈或数独。
23.一种基于QUIC协议栈的数据写入系统,其特征在于,所述数据写入系统包括:
第一接收模块,用于接收应用程序的查询指令;
第一响应模块,用于响应于所述查询指令,将QUIC协议栈中的流量控制参数提供至所述应用程序;
第二接收模块,用于接收所述应用程序的缓存调整指令,其中,所述缓存调整指令用于指示将所述QUIC协议栈中的当前缓存区域大小从第一缓存区域大小调整至第二缓存区域大小,所述第二缓存区域大小基于所述流量控制参数和预设阈值计算得到,所述预设阈值为所述协议栈缓存区域中的空闲区域大小与所述流量控制参数之间的预设比值;
第二响应模块,用于响应于所述缓存调整指令,将所述当前缓存区域大小从所述第一缓存区域大小调整至所述第二缓存区域大小,以使所述应用程序基于所述第二缓存区域大小控制将所述待发送数据写入所述协议栈缓存区域中。
24.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求17至22任一项所述的基于QUIC协议栈的数据写入方法的步骤。
25.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求17至22中任一项所述的基于QUIC协议栈的数据写入方法的步骤。
CN201910318591.XA 2019-04-19 2019-04-19 数据写入方法、系统、设备及计算机可读存储介质 Active CN111835651B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910318591.XA CN111835651B (zh) 2019-04-19 2019-04-19 数据写入方法、系统、设备及计算机可读存储介质
US16/635,000 US11140089B2 (en) 2019-04-19 2019-10-17 Data writing method, system, device and computer-readable storage medium
PCT/CN2019/111682 WO2020211312A1 (en) 2019-04-19 2019-10-17 Data writing method, system, device and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910318591.XA CN111835651B (zh) 2019-04-19 2019-04-19 数据写入方法、系统、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111835651A true CN111835651A (zh) 2020-10-27
CN111835651B CN111835651B (zh) 2022-03-18

Family

ID=72838067

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910318591.XA Active CN111835651B (zh) 2019-04-19 2019-04-19 数据写入方法、系统、设备及计算机可读存储介质

Country Status (3)

Country Link
US (1) US11140089B2 (zh)
CN (1) CN111835651B (zh)
WO (1) WO2020211312A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992651A (zh) * 2021-09-24 2022-01-28 深圳市有方科技股份有限公司 一种基于文件传输协议ftp的下载方法和相关产品
WO2024119720A1 (zh) * 2022-12-05 2024-06-13 网宿科技股份有限公司 数据处理方法、设备及可读存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114189477B (zh) * 2021-10-22 2023-12-26 新华三大数据技术有限公司 一种报文拥塞控制方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938343A (zh) * 2009-06-30 2011-01-05 三星电子株式会社 无线通信系统中的改进的自动重传请求缓存管理技术
CN102201997A (zh) * 2011-06-03 2011-09-28 华为技术有限公司 数据传输控制方法和设备
CN102893577A (zh) * 2010-06-17 2013-01-23 松下电器产业株式会社 数据发送装置及数据发送方法
CN104869073A (zh) * 2014-02-26 2015-08-26 中兴通讯股份有限公司 一种流量控制方法及装置
US20180070263A1 (en) * 2015-02-23 2018-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Supporting Delivery of Data Packets Using Transmission Control Protocol in a Wireless Communication Network
CN108241647A (zh) * 2016-12-23 2018-07-03 北京奇虎科技有限公司 数据处理及查询的方法和装置
WO2018225039A1 (en) * 2017-06-09 2018-12-13 Telefonaktiebolaget Lm Ericsson (Publ) Method for congestion control in a network

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771492A (zh) 2008-12-29 2010-07-07 华为技术有限公司 调整流媒体码率的方法和装置
CN101699795B (zh) * 2009-10-29 2012-07-18 中兴通讯股份有限公司 一种报文拥塞处理方法及系统
US9432274B1 (en) * 2013-11-01 2016-08-30 Google Inc. Intermediary facilitated packet loss recovery
CN109327288B (zh) * 2015-12-14 2023-11-10 华为技术有限公司 数据传输加速方法、装置及系统
US20190021065A1 (en) * 2016-03-01 2019-01-17 Telefonaktiebolaget Lm Ericsson (Publ) Reducing Time Required for Location Lookup When Downlink Packets Arrive By Assisting Preloading of a Location of a Wireless Device Into the IP Advertisement Point (IAP)
CN105827537B (zh) * 2016-06-01 2018-12-07 四川大学 一种基于quic协议的拥塞改进方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938343A (zh) * 2009-06-30 2011-01-05 三星电子株式会社 无线通信系统中的改进的自动重传请求缓存管理技术
CN102893577A (zh) * 2010-06-17 2013-01-23 松下电器产业株式会社 数据发送装置及数据发送方法
CN102201997A (zh) * 2011-06-03 2011-09-28 华为技术有限公司 数据传输控制方法和设备
CN104869073A (zh) * 2014-02-26 2015-08-26 中兴通讯股份有限公司 一种流量控制方法及装置
US20180070263A1 (en) * 2015-02-23 2018-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Supporting Delivery of Data Packets Using Transmission Control Protocol in a Wireless Communication Network
CN108241647A (zh) * 2016-12-23 2018-07-03 北京奇虎科技有限公司 数据处理及查询的方法和装置
WO2018225039A1 (en) * 2017-06-09 2018-12-13 Telefonaktiebolaget Lm Ericsson (Publ) Method for congestion control in a network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王路等: "基于跳到跳信息的卫星网络传输控制协议研究", 《通信学报》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992651A (zh) * 2021-09-24 2022-01-28 深圳市有方科技股份有限公司 一种基于文件传输协议ftp的下载方法和相关产品
CN113992651B (zh) * 2021-09-24 2024-05-14 深圳市有方科技股份有限公司 一种基于文件传输协议ftp的下载方法和相关产品
WO2024119720A1 (zh) * 2022-12-05 2024-06-13 网宿科技股份有限公司 数据处理方法、设备及可读存储介质

Also Published As

Publication number Publication date
CN111835651B (zh) 2022-03-18
US11140089B2 (en) 2021-10-05
WO2020211312A1 (en) 2020-10-22
US20210258261A1 (en) 2021-08-19

Similar Documents

Publication Publication Date Title
CN111835651B (zh) 数据写入方法、系统、设备及计算机可读存储介质
CN111756674B (zh) 网络通信方法、系统、设备及计算机可读存储介质
EP1388792A1 (en) Synchronization message processing method
CN109753207B (zh) 一种信息处理方法及其装置、存储介质
CN109284464B (zh) 页面加载方法及终端、页面响应方法及服务器
CN111490947B (zh) 数据包发送方法、数据包接收方法、系统、设备及介质
CN108833126B (zh) 电子装置、数据链路风险预警方法及存储介质
CN111083180B (zh) 物联网系统、物联网设备联动方法及装置
CN112868265B (zh) 网络资源的管理方法、管理装置、电子设备及存储介质
US8965996B2 (en) Communication apparatus, information processing apparatus, and method for controlling communication apparatus
US20210258386A1 (en) Connection control method and device
CN107465538B (zh) 一种物联网终端迁移方法和网关
CN112672187B (zh) 页面生成方法、装置、计算机设备及可读存储介质
US9729656B2 (en) Information processing apparatus, information processing method, and storage medium storing program
CN117955975A (zh) 文件上传方法和装置
JP2019114947A (ja) 通信装置、通信装置の制御方法およびプログラム
CN112995329A (zh) 一种传输文件方法及系统
CN106790466B (zh) 用于推送的方法、服务器和终端设备
CN109739574A (zh) 数据获取方法与电子设备、标定方法及装置
CN114158104B (zh) 网络选择方法、装置、终端及存储介质
CN108200061B (zh) 视频文件处理方法、应用服务器及计算机可读存储介质
CN113595685A (zh) 数据传输方法及装置、存储介质、终端
CN113037848A (zh) 文件上传方法和系统
CN116915860B (zh) 基于udp的指令传输方法、装置、设备以及介质
JP5652891B2 (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
GR01 Patent grant
GR01 Patent grant