CN116527593B - 网络流量拥塞控制方法及相关装置 - Google Patents
网络流量拥塞控制方法及相关装置 Download PDFInfo
- Publication number
- CN116527593B CN116527593B CN202310804322.0A CN202310804322A CN116527593B CN 116527593 B CN116527593 B CN 116527593B CN 202310804322 A CN202310804322 A CN 202310804322A CN 116527593 B CN116527593 B CN 116527593B
- Authority
- CN
- China
- Prior art keywords
- network card
- type operation
- message
- terminal network
- sending
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000004044 response Effects 0.000 claims abstract description 262
- 230000005540 biological transmission Effects 0.000 claims abstract description 129
- 238000012545 processing Methods 0.000 claims description 31
- 238000004891 communication Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000003993 interaction Effects 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] 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/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种网络流量拥塞控制方法及相关装置,应用于第一终端网卡,包括:通过第一发送窗口向第二终端网卡发送第一类型操作的请求报文和/或第二类型操作的响应报文;接收来自第二终端网卡的目标响应报文;根据目标响应报文调整第一发送窗口,得到第二发送窗口;通过第二发送窗口向第二终端网卡发送第一类型操作的请求报文和/或第二类型操作的响应报文。如此,可以通过调整单个发送窗口来控制第一终端网卡在发送方向上的整体流量,避免了算法误识别的问题,简化了算法的流程,降低了算法实现的复杂度。
Description
技术领域
本申请属于新一代信息技术产业中的数字信息的传输技术领域,具体涉及一种网络流量拥塞控制方法及相关装置。
背景技术
两个终端设备的网卡(Network. Interface Card,NIC)基于远程直接内存访问(Remote Direct Memory Access,RDMA)进行数据交互时,对网络引入大流量的操作包括发送操作(Send)、写入操作(Write)和读取操作(Read)。其中,对于Send操作和Write操作而言,请求端网卡向响应端网卡发送Send/Write请求报文,响应端网卡会按照原始协议回复Send/Write响应报文,RDMA协议引擎利用接收的响应报文完成Send操作和Write操作,该过程的网络流量主要体现在请求端网卡所发送的Send/Write请求报文上,即请求端网卡在发送方向上具有大流量操作;对于读取操作而言,请求端网卡向响应端网卡发送Read请求报文,响应端网卡会按照原始协议回复Read响应报文,RDMA协议引擎利用接收的响应报文完成Read操作,该过程的网络流量主要体现在响应端网卡所发送的Read响应报文上,即请求端网卡在接收方向上具有大流量操作。
为了避免网络拥塞丢包带来性能损失,现有技术中采用的拥塞控制算法是通过检测请求端网卡接收Send/Write响应报文的时间和频率来控制Send/Write请求报文的发送速率,以及通过检测请求端网卡接收Read响应报文的时间和频率来控制Read请求报文的发送速率,进而实现控制响应端网卡发送Read响应报文的速率。本申请发明人经过大量实验发现,现有技术存在算法误识别的问题:当请求端网卡在发送Send/Write请求报文之前,发送了一个需要读取大量数据的Read请求报文,那么响应端网卡会持续回复Read响应报文,直到Read响应报文回复完成后才会回复Send/Write响应报文,导致在请求端网卡看来,由于长时间未接收到Send/Write响应报文,导致请求端网卡误认为Send/Write操作在发送方向上存在网络拥塞,进而限制了发送速率,带宽利用率会有较大损失。除此之外,现有技术中的网络拥塞控制算法将Send/Write操作和Read操作区分考虑,增加了算法实现的复杂度。
发明内容
本申请提供了一种网络流量拥塞控制方法及相关装置,以期解决现有拥塞控制算法中的误识别问题,降低算法的复杂度。
第一方面,本申请实施例提供了一种网络流量拥塞控制方法,应用于第一终端网卡,所述第一终端网卡与第二终端网卡通信连接,所述方法包括:
通过第一发送窗口向所述第二终端网卡发送第一类型操作的请求报文和/或第二类型操作的响应报文,所述第一发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第一发送速率,所述第一类型操作是指所述第一终端网卡在发送方向上产生网络流量的请求操作,所述第二类型操作是指所述第一终端网卡在发送方向上产生网络流量的响应操作;
接收来自所述第二终端网卡针对所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的目标响应报文;
根据所述目标响应报文调整所述第一发送窗口,得到第二发送窗口,所述第二发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第二发送速率;
通过所述第二发送窗口向所述第二终端网卡发送所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。
第二方面,本申请实施例提供了一种网络流量拥塞控制方法,应用于第二终端网卡,所述第二终端网卡与第一终端网卡通信连接,所述方法包括:
接收所述第一终端网卡通过第一发送窗口发送的第一类型操作的请求报文和/或第二类型操作的响应报文,所述第一发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第一发送速率,所述第一类型操作是指所述第一终端网卡在发送方向上产生网络流量的请求操作,所述第二类型操作是指所述第一终端网卡在发送方向上产生网络流量的响应操作;
根据所述第一类型操作的请求报文和/或所述第二类型操作的响应报文生成目标响应报文,并向所述第一终端网卡发送所述目标响应报文,所述目标响应报文用于指示所述第一终端网卡将所述第一发送窗口调整为第二发送窗口,所述第二发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第二发送速率;
接收所述第一终端网卡通过所述第二发送窗口发送的所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。
第三方面,本申请实施例提供了一种网络流量拥塞控制装置,应用于第一终端网卡,所述第一终端网卡与第二终端网卡通信连接,所述装置包括:第一发送单元,用于通过第一发送窗口向所述第二终端网卡发送第一类型操作的请求报文和/或第二类型操作的响应报文,所述第一发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第一发送速率,所述第一类型操作是指所述第一终端网卡在发送方向上产生网络流量的请求操作,所述第二类型操作是指所述第一终端网卡在发送方向上产生网络流量的响应操作;第一接收单元,用于接收来自所述第二终端网卡针对所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的目标响应报文;第一处理单元,用于根据所述目标响应报文调整所述第一发送窗口,得到第二发送窗口,所述第二发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第二发送速率;第二发送单元,用于通过所述第二发送窗口向所述第二终端网卡发送所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。
第四方面,本申请实施例提供了一种网络流量拥塞控制装置,应用于第二终端网卡,所述第二终端网卡与第一终端网卡通信连接,所述装置包括:第二接收单元,用于接收所述第一终端网卡通过第一发送窗口发送的第一类型操作的请求报文和/或第二类型操作的响应报文,所述第一发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第一发送速率,所述第一类型操作是指所述第一终端网卡在发送方向上产生网络流量的请求操作,所述第二类型操作是指所述第一终端网卡在发送方向上产生网络流量的响应操作;第二处理单元,用于根据所述第一类型操作的请求报文和/或所述第二类型操作的响应报文生成目标响应报文,并向所述第一终端网卡发送所述目标响应报文,所述目标响应报文用于指示所述第一终端网卡将所述第一发送窗口调整为第二发送窗口,所述第二发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第二发送速率;第三接收单元,用于接收所述第一终端网卡通过所述第二发送窗口发送的所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。
第五方面,本申请实施例提供了一种网卡,包括处理器、存储器以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如本申请实施例第一方面或第二方面中的步骤的指令。
第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序/指令,所述计算机程序/指令被处理器执行时实现本申请实施例第一方面或第二方面中的步骤。
可以看出,本申请实施例中,将第一终端网卡在发送方向上能够产生大流量的报文进行统一考虑,通过第二终端网卡突破原有协议回复统一、特殊的目标响应报文来调整第一终端网卡在发送方向上的整体发送速率,从而通过调整单个发送窗口控制第一终端网卡在发送方向上的整体流量。如此,避免了算法的误识别问题,并且由于将产生大流量的报文进行了统一考虑,简化了算法的流程,降低了网络流量拥塞控制算法实现的复杂度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种通信系统的结构框图;
图2是本申请实施例提供的一种网络流量拥塞控制方法的流程示意图;
图3a是本申请实施例提供的一种采用现有技术中的网络流量拥塞控制方案的数据交互例图;
图3b是本申请实施例提供的一种采用本申请中的网络流量拥塞控制方法的数据交互例图;
图4是本申请实施例提供的另一种网络流量拥塞控制方法的流程示意图;
图5是本申请实施例提供的一种终端设备网卡的系统架构图;
图6a是本申请实施例提供的一种应用于第一终端网卡的网络流量拥塞控制装置的功能单元组成框图;
图6b是本申请实施例提供的另一种应用于第一终端网卡的网络流量拥塞控制装置的功能单元组成框图;
图7a是本申请实施例提供的一种应用于第二终端网卡的网络流量拥塞控制装置的功能单元组成框图;
图7b是本申请实施例提供的另一种应用于第二终端网卡的网络流量拥塞控制装置的功能单元组成框图;
图8是本申请实施例提供的一种终端设备网卡的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
请参阅图1,图1是本申请实施例提供的一种通信系统的结构框图。如图1所示,所述通信系统10包括第一终端网卡11和第二终端网卡12,所述第一终端网卡11和所述第二终端网卡12通信连接,从而实现网卡之间的数据交互。其中,第一终端和第二终端均是数据中心网络中的终端设备,数据中心网络中的终端设备可以通过RDMA进行数据交换,从而使一个终端设备可以利用网卡通过网络从另一个终端设备的内存中读取或者向另一个终端设备的内存中写入或发送数据,无需终端设备的中央处理器(Central Processing Unit,CPU)和操作系统的参与,可以消除数据在用户空间和内核空间复制的开销,解决网络传输中客户端与主机端数据处理的时延问题。
下面介绍本申请实施例提供的一种网络流量拥塞控制方法。
请参阅图2,图2是本申请实施例提供的一种网络流量拥塞控制方法的流程示意图,所述方法应用于如图1所示的第一终端网卡11中,如图2所示,所述方法包括:
步骤201,通过第一发送窗口向所述第二终端网卡发送第一类型操作的请求报文和/或第二类型操作的响应报文。
其中,所述第一发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第一发送速率,所述第一类型操作是指所述第一终端网卡在发送方向上产生网络流量的请求操作,所述第二类型操作是指所述第一终端网卡在发送方向上产生网络流量的响应操作。所述第一类型操作具体可以是指Send操作或者Write操作,所述第一类型操作的请求报文具体可以是Send请求报文或者Write请求报文,所述第二类型操作具体可以是指Read操作,所述第二类型操作的响应报文具体可以是Read响应报文。
其中,当第一终端网卡发送的是Send/Write请求报文时,第一终端是请求端的身份,此时,Send/Write操作的大流量出现在第一终端网卡的发送方向上;当第一终端网卡发送的是Read响应报文时,第一终端是响应端的身份,即第二终端网卡发送了Read请求,第一终端网卡回复了Read响应,此时,Read操作的大流量出现在第一终端网卡的发送方向上。也就是说,在本申请实施例中,只需要考虑第一终端网卡在发送方向上能够产生大流量的报文(例如,Send/Write请求报文和/或Read响应报文),并基于这些报文对发送方向上的流量进行控制,而不需要考虑第一终端是请求端的身份还是响应端的身份,也不需要将Send/Write操作和Read操作区分考虑,可以有效降低算法实现的复杂度。
步骤202,接收来自所述第二终端网卡针对所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的目标响应报文。
其中,所述目标响应报文是所述第二终端网卡在接收到所述第一类型操作的请求报文和/或所述第二类型操作的响应报文后生成的特殊的响应报文,第一终端网卡可以解析目标响应报文中的数据信息,进而判断发送方向的网络路径是否拥塞,从而进行相应的调整。
需要说明的是,在现有技术中,终端设备网卡在接收到Send/Write请求报文时,会按照原始协议回复Send/Write响应报文,在接收到Read响应报文时,会按照原始协议直接执行Read操作,在此规则下会造成网络拥塞控制中的误识别问题。而在本申请实施例中,第二终端网卡可以突破原始协议,针对第一终端网卡发送过来的Send请求报文、Write请求报文、Read响应报文统一回复一种特殊的响应报文,即目标响应报文,以便于第一终端网卡可以统一控制发送方向上的网络流量,避免误识别问题。
进一步地,第二终端网卡还可以利用突破原始协议的优势,在接收到第一终端网卡发送的Send/Write请求报文和/或Read响应报文后立即生成目标响应报文,并以最高优先级的传输顺位向第一终端网卡回复目标响应报文,所述最高优先级的传输顺位是指,当第二终端网卡的报文传输队列中存在多个待传输的业务报文,且生成了目标响应报文,则会优先传输目标响应报文,在目标响应报文传输完毕后,再传输其他待传输的业务报文。在本示例中,第二终端网卡可以在接收到Send/Write请求报文和/或Read响应报文后立即生成目标响应报文,并以最快的速度进行回复,提高了网络流量拥塞控制算法的运算效率。
步骤203,根据所述目标响应报文调整所述第一发送窗口,得到第二发送窗口。
其中,所述第二发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第二发送速率,即发送数据的发送窗口是同一个,只不过由于网络拥塞调整了相关参数,使得发送窗口限制的发送速率发生了变化,从而控制发送方向上的整体网络流量。可以理解的是,若目标响应报文指示第一终端网卡在发送方向上的网络路径并未发生拥塞,则无需调整发送窗口的相关参数,继续使用第一发送窗口发送数据。
在一个可能的示例中,所述根据所述目标响应报文调整所述第一发送窗口,得到第二发送窗口,包括:计算所述目标响应报文在当前次传输过程中的目标传输时间和目标传输频率;根据所述目标传输时间和所述目标传输频率调整所述第一发送窗口,得到第二发送窗口。
其中,由于目标响应报文中的数据信息反应的是第一终端网卡在发送方向上的网络路径的拥塞程度,一般情况下,传输时间越长、传输频率越低表明网络路径的拥塞程度越高,因此可以通过计算目标响应报文在传输过程中的传输事件和传输频率来估算发送方向上的网络路径的拥堵情况,并基于目标响应报文的传输事件和传输频率调整第一发送窗口的相关参数,得到能够控制网络流量的第二发送窗口。
可见,本示例中,第一终端网卡可以通过计算接收到目标响应报文的时间和频率来调整第一发送窗口,进而控制第一终端网卡在发送方向的整体速率,这样的网络流量拥塞控制算法不存在算法误识别问题,且利用了同一个发送窗口进行控制,简化了算法实现的复杂度。
在一个可能的示例中,所述根据所述目标传输时间和所述目标传输频率调整所述第一发送窗口,得到第二发送窗口,包括:根据所述目标传输时间和所述目标传输频率查询预设的映射关系表,得到目标窗口大小值,所述预设的映射关系表包括多个数据组和与所述多个数据组一一对应的多个窗口大小值,所述数据组包括传输时间和传输频率,所述窗口大小值关联于所述第一终端网卡在发送方向上的整体发送速率;将所述第一发送窗口的窗口大小值调整为所述目标窗口大小值,得到所述第二发送窗口。
其中,第一终端网卡调整的第一发送窗口的相关参数具体可以是第一发送窗口的窗口大小值,窗口大小值直接决定了发送方向上的整体发送速率,窗口值越大,数据的发送速率就越大,相同时间内引发的网络流量也就越大,窗口值越小,数据的发送速率就越小,相同时间内引发的网络流量也就越小。因此,可以通过控制发送窗口的窗口大小值来控制发送方向上的整体发送速率,进而控制发送方向上的网络流量,以解决网络拥塞问题。可以理解的是,所述预设的映射关系表可以是基于历史实验数据制成并预存起来的映射关系表,在第一终端网卡需要使用时可以直接调用,提高算法的运算效率。
可见,本示例中,第一终端网卡可以通过查询预存的映射关系表得到目标窗口大小值,再将第一发送窗口的窗口大小值调整为目标窗口大小值得到第二发送窗口,从而实现了对发送窗口的调整,控制了第一终端网卡在发送方向上的整体发送速率,同时提高算法的运算效率。
步骤204,通过所述第二发送窗口向所述第二终端网卡发送所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。
其中,第一终端网卡在通过第二发送窗口继续发送Send/Write请求报文或者Read响应报文后,可以继续执行上述步骤,即通过第二终端网卡回复的目标响应报文持续检测发送方向上是否存在网络拥塞,如果存在则继续执行相关算法调整第二发送窗口,以保证网络传输的稳定性。
下面通过附图介绍本申请实施例提供的网络流量拥塞控制方法的有益效果。
请参阅图3a,图3a是本申请实施例提供的一种采用现有技术中的网络流量拥塞控制方案的数据交互例图。如图3a所示,第一终端的网卡A向第二终端的网卡B发送Read请求报文,网卡B作出回应,向网卡A发送Read响应报文,引发网卡B到网卡A的网络路径的流量增加,可能造成网卡B至网卡A的网络路径拥塞;同理,网卡A向网卡B发送Send/Write请求报文,引发网卡A至网卡B路径的流量增加,可能造成网卡A至网卡B的网络路径拥塞。如果在网卡A发送Send/Write请求报文之前发送的Read请求是需要读取大量数据的操作,那么网卡B在回复Read响应报文时会持续回复,直到Read响应报文发送完成后才会发送针对Send/Write请求报文的Send/Write响应报文,此时,在网卡A看来是长时间未接收到Send/Write响应报文的,导致网卡A会误认为网卡A到网卡B的网络路径是拥塞的,进而限制Send/Write请求报文的发送速率,损失带宽利用率。并且从图3a中可以看出,由于现有算法将Send/Write操作和Read操作区分考虑,导致网卡A和网卡B的交互流程较为繁琐,增加了算法实现的复杂度。
请参阅图3b,图3b是本申请实施例提供的一种采用本申请中的网络流量拥塞控制方法的数据交互例图。如图3b所示,第一终端的网卡A向第二终端的网卡B发送Send/Write请求报文或Read响应报文,只考虑引发网卡A至网卡B路径流量增加的情况,并通过网卡B回复对应的目标响应报文,基于目标响应报文来控制网卡A至网卡B方向的发送速率,由于进行了统一考虑,因此不会出现上述的误识别问题。并且从图3b中可以看出,网卡A和网卡B的交互流程相对简单,降低了算法实现的复杂度。
可见,本申请实施例中,第一终端网卡先通过第一发送窗口向第二终端网卡发送第一类型操作的请求报文和/或第二类型操作的响应报文,再接收第二终端网卡发送的目标响应报文,然后根据目标响应报文调整第一发送窗口,得到第二发送窗口,最后通过第二发送窗口发送后续的第一类型操作的请求报文和/或第二类型操作的响应报文。如此,能够避免现有网络拥塞控制算法中的误识别问题,并且由于将能够在发送方向上产生大流量的报文进行了统一考虑,通过同一个发送窗口进行控制,简化了算法的流程,降低了拥塞控制算法实现的复杂度。
下面介绍本申请实施例提供的另一种网络流量拥塞控制方法。
请参阅图4,图4是本申请实施例提供的另一种网络流量拥塞控制方法的流程示意图,所述方法应用于如图1所示的第二终端网卡12中,如图4所示,所述方法包括:
步骤401,接收所述第一终端网卡通过第一发送窗口发送的第一类型操作的请求报文和/或第二类型操作的响应报文。
其中,所述第一发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第一发送速率,所述第一类型操作是指所述第一终端网卡在发送方向上产生网络流量的请求操作,所述第二类型操作是指所述第一终端网卡在发送方向上产生网络流量的响应操作。所述第一类型操作具体可以是指Send操作或者Write操作,所述第一类型操作的请求报文具体可以是Send请求报文或者Write请求报文,所述第二类型操作具体可以是指Read操作,所述第二类型操作的响应报文具体可以是Read响应报文。
其中,当第二终端网卡接收到的是Send/Write请求报文时,第一终端是请求端的身份,第二终端网卡是响应端的身份,此时,Send/Write操作的大流量出现在第一终端网卡的发送方向上;当第二终端网卡接收到的是Read响应报文时,第一终端是响应端的身份,第二终端是请求端的身份,即第二终端网卡发送了Read请求,第一终端网卡回复了Read响应,此时,Read操作的大流量出现在第一终端网卡的发送方向上。也就是说,在本申请实施例中,只需要考虑第一终端网卡在发送方向上能够产生大流量的报文(例如,Send/Write请求报文和/或Read响应报文),并基于这些报文对第一终端网卡发送方向上的流量进行控制,而不需要考虑第一终端是请求端的身份还是响应端的身份,也不需要将Send/Write操作和Read操作区分考虑,可以有效降低算法实现的复杂度。
在一个可能的示例中,所述接收所述第一终端网卡通过第一发送窗口发送的第一类型操作的请求报文和/或第二类型操作的响应报文,包括:接收所述第一终端网卡通过所述第一发送窗口发送的多个优选请求报文和/或多个优选响应报文,所述多个优选请求报文是所述第一终端网卡按照预设优先级顺序从所述第一类型操作的请求报文中筛选出来的,所述多个优选响应报文是所述第一终端网卡按照预设优先级顺序从所述第二类型操作的响应报文中筛选出来的。
其中,所述预设优先级顺序用于指示传输队列中的各个报文的发送机会,选择优先级较高的优选报文进行发送,可以使得第二终端网卡快速接收并响应,加速目标响应报文的发出,提高算法效率。
可见,本示例中,第二终端网卡可以接收第一终端网卡发送的优选请求报文和/或优选响应报文,以加快目标响应报文的发出速度,提高了网络流量拥塞控制算法的运算效率。
步骤402,根据所述第一类型操作的请求报文和/或所述第二类型操作的响应报文生成目标响应报文,并向所述第一终端网卡发送所述目标响应报文。
其中,所述目标响应报文用于指示所述第一终端网卡将所述第一发送窗口调整为第二发送窗口,所述第二发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第二发送速率。
需要说明的是,在现有技术中,终端设备网卡在接收到Send/Write请求报文时,会按照原始协议回复Send/Write响应报文,在接收到Read响应报文时,会按照原始协议直接执行Read操作,在此规则下会造成网络拥塞控制中的误识别问题。而在本申请实施例中,第二终端网卡可以突破原始协议,针对第一终端网卡发送过来的Send请求报文、Write请求报文、Read响应报文统一回复一种特殊的响应报文,即目标响应报文,以便于第一终端网卡可以统一控制发送方向上的网络流量,避免误识别问题。
在一个可能的示例中,所述根据所述第一类型操作的请求报文和/或所述第二类型操作的响应报文生成目标响应报文,并向所述第一终端网卡发送所述目标响应报文,包括:按照接收时间的先后顺序依次对所述第一类型操作的请求报文和/或所述第二类型操作的响应报文执行如下操作:若检测到当前处理的报文包含目标标识信息,则将所述当前处理的报文标记为参考报文,所述目标标识信息是指报文中携带有效信息的部分;当所述参考报文的数量达到预设数量时,生成所述预设数量个参考报文对应的目标响应报文;通过报文传输队列向所述第一终端网卡发送所述预设数量个参考报文对应的目标响应报文;重复上述步骤,直至所述第二终端网卡接收到的第一类型操作的请求报文和/或第二类型操作的响应报文全部处理完成。
其中,所述目标标识信息具体可以是指报文中的payload字段,指代该报文在数据传输中所欲传输的实际信息,即有效信息。当第二终端网卡每接收预设数量个带有payload字段的Send/Write请求报文或者Read响应报文,就会根据该预设数量个报文生成一个目标响应报文并发送给第一终端网卡,以指示第一终端网卡调整发送窗口。可以理解的是,第二终端网卡在生成一个目标响应报文之后,还可以继续接收报文、检测报文中的payload字段并计数,当携带有payload字段的报文数量再次达到预设数量时,再次生成一个目标响应报文并发送到第一终端网卡,以指示第一终端网卡再次根据目标响应报文所指示的网络拥塞情况调整发送窗口。
可见,本示例中,第二终端网卡可以通过每接收预设数量个参考报文,就生成并发送目标响应报文的方式来向第一终端网卡传输目标响应报文,以指示第一终端网卡基于目标响应报文调整发送窗口,从而控制第一终端网卡在发送方向上的整体发送速率。如此,可以避免算法的误识别问题,降低算法复杂度。
在一个可能的示例中,所述通过报文传输队列向所述第一终端网卡发送所述预设数量个参考报文对应的目标响应报文,包括:若所述预设数量个参考报文对应的目标响应报文在所述报文传输队列中的传输顺位不是首位,则将所述预设数量个参考报文对应的目标响应报文置于所述报文传输队列的首位,并向所述第一终端网卡发送所述预设数量个参考报文对应的目标响应报文。
其中,为了保证业务报文传输的稳定性,第二终端网卡是按照报文传输队列中限制的报文传输顺序依次向第一终端网卡传输各种业务报文,一般情况下,报文传输队列中的报文的传输顺序是基于先进先出机制进行限制的,即越早产生的报文的传输顺序越靠前。但是,在本示例中,当第二终端网卡产生了目标响应报文后,可以将目标响应报文置于报文传输队列的首位,以最高优先级的传输顺位发送给第一终端网卡,待目标响应报文发送完毕后再以正常的传输顺序发送其他业务报文,如此,可以提高目标响应报文的回复速度,从而加快第一终端网卡的响应速度,提高网络流量拥塞控制算法的运算效率。
可见,本示例中,第二终端网卡以最高优先级的传输顺序向第一终端网卡回复目标响应报文,提高了网络流量拥塞控制算法的运算效率。
步骤403,接收所述第一终端网卡通过所述第二发送窗口发送的所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。
可见,本申请实施例中,第二终端网卡先接收所述第一终端网卡通过第一发送窗口发送的第一类型操作的请求报文和/或第二类型操作的响应报文,然后根据所述第一类型操作的请求报文和/或所述第二类型操作的响应报文生成目标响应报文,并向所述第一终端网卡发送所述目标响应报文,最后接收所述第一终端网卡通过所述第二发送窗口发送的所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。如此,能够避免现有网络拥塞控制算法中的误识别问题,并且由于将能够在第一终端网卡发送方向上产生大流量的报文进行统一考虑,通过同一个发送窗口进行控制,简化了算法的流程,降低了拥塞控制算法实现的复杂度。
请参阅图5,图5是本申请实施例提供的一种终端设备网卡的系统架构图,如图5所示,终端设备网卡的系统架构包括软件系统51和硬件系统52,所述软件系统51包括工作队列511和完成队列512,所述硬件系统52包括发送调度单元521、发送单元522、拥塞控制算法单元523、接收单元524、完成队列元素上报单元525。其中,所述终端设备具体可以是上述实施例中的第一终端网卡,也可以是上述实施例中的第二终端网卡。在依照该系统架构执行本申请实施例提供的网络流量拥塞控制方法时,所述发送调度单元521可以用于从工作队列511中调取多个网络传输队列对QP,并调度不同QP的发送机会,取出优先级最高的QP发送至发送单元522,以便目标响应报文的快速发出。所述发送单元522用于通过发送窗口限制的发送速率发送Send/Write请求报文或者Read响应报文,以及当终端设备为响应端时,还可以用于发送目标响应报文;对应的,所述接收单元524用于接收对端发送的Send/Write请求报文或者Read响应报文,以及接收目标响应报文,以及用于将处理完成的数据发送到完成队列元素上报单元525。所述完成队列元素上报单元525用于将处理完成的数据(Send/Write/Read请求)上报至完成队列512中,从而使得终端设备执行相关操作。当所述终端设备为请求端时,所述拥塞控制算法单元523用于根据目标响应报文调整第一发送窗口的窗口大小值,得到第二发送窗口,并将第二发送窗口发送至发送单元522中,从而达到调整发送方向上的整体发送速率的效果;当所述终端设备为响应端时,所述拥塞控制算法单元523用于根据接收到对端发送的Send/Write请求报文或者Read响应报文生成目标响应报文,并将生成的目标响应报文发送至发送调度单元521,由发送调度单元521对目标响应报文进行初步分析后传输至发送单元522,由发送单元522将目标响应报文发送给对端。
如此,通过软硬结合的系统架构执行本申请实施例提供的网络流量拥塞控制方法,避免了算法的误识别问题,并且由于将产生大流量的报文进行了统一考虑,简化了算法的流程,降低了网络流量拥塞控制算法实现的复杂度。
与上述所示的实施例一致的,请参阅图6a,图6a是本申请实施例提供的一种应用于第一终端网卡的网络流量拥塞控制装置的功能单元组成框图,所述装置应用于如图1所示的第一终端网卡11中,所述应用于第一终端网卡的网络流量拥塞控制装置60包括:第一发送单元601,用于通过第一发送窗口向所述第二终端网卡发送第一类型操作的请求报文和/或第二类型操作的响应报文,所述第一发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第一发送速率,所述第一类型操作是指所述第一终端网卡在发送方向上产生网络流量的请求操作,所述第二类型操作是指所述第一终端网卡在发送方向上产生网络流量的响应操作;第一接收单元602,用于接收来自所述第二终端网卡针对所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的目标响应报文;第一处理单元603,用于根据所述目标响应报文调整所述第一发送窗口,得到第二发送窗口,所述第二发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第二发送速率;第二发送单元604,用于通过所述第二发送窗口向所述第二终端网卡发送所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。
在一个可能的示例中,在所述根据所述目标响应报文调整所述第一发送窗口,得到第二发送窗口方面,所述第一处理单元603具体用于:计算所述目标响应报文在当前次传输过程中的目标传输时间和目标传输频率;根据所述目标传输时间和所述目标传输频率调整所述第一发送窗口,得到第二发送窗口。
在一个可能的示例中,在所述根据所述目标传输时间和所述目标传输频率调整所述第一发送窗口,得到第二发送窗口方面,所述第一处理单元603具体用于:根据所述目标传输时间和所述目标传输频率查询预设的映射关系表,得到目标窗口大小值,所述预设的映射关系表包括多个数据组和与所述多个数据组一一对应的多个窗口大小值,所述数据组包括传输时间和传输频率,所述窗口大小值关联于所述第一终端网卡在发送方向上的整体发送速率;将所述第一发送窗口的窗口大小值调整为所述目标窗口大小值,得到所述第二发送窗口。
可以理解的是,由于方法实施例与装置实施例为相同技术构思的不同呈现形式,因此,本申请中方法实施例部分的内容应同步适配于装置实施例部分,此处不再赘述。
在采用集成的单元的情况下,如图6b所示,图6b是本申请实施例提供的另一种应用于第一终端网卡的网络流量拥塞控制装置的功能单元组成框图。在图6b中,所述应用于第一终端网卡的网络流量拥塞控制装置60包括:第一处理模块62和第一通信模块61。第一处理模块62用于对应用于第一终端网卡的网络流量拥塞控制装置的动作进行控制管理,例如,执行第一发送单元601、第一接收单元602、第一处理单元603和第二发送单元604的步骤,和/或用于执行本文所描述的技术的其它过程。第一通信模块61用于支持应用于第一终端网卡的网络流量拥塞控制装置与其他设备之间的交互。如图6b所示,应用于第一终端网卡的网络流量拥塞控制装置还可以包括第一存储模块63,第一存储模块63用于存储应用于第一终端网卡的网络流量拥塞控制装置的程序代码和数据。
其中,第一处理模块62可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。第一通信模块61可以是收发器、RF电路或通信接口等。第一存储模块63可以是存储器。
其中,上述方法实施例涉及的各场景的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。上述应用于第一终端网卡的网络流量拥塞控制装置60均可执行上述图2所示的网络流量拥塞控制方法。
与上述所示的实施例一致的,请参阅图7a,图7a是本申请实施例提供的一种应用于第二终端网卡的网络流量拥塞控制装置的功能单元组成框图,所述装置应用于如图1所示的第二终端网卡12中,所述应用于第二终端网卡的网络流量拥塞控制装置70包括:第二接收单元701,用于接收所述第一终端网卡通过第一发送窗口发送的第一类型操作的请求报文和/或第二类型操作的响应报文,所述第一发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第一发送速率,所述第一类型操作是指所述第一终端网卡在发送方向上产生网络流量的请求操作,所述第二类型操作是指所述第一终端网卡在发送方向上产生网络流量的响应操作;第二处理单元702,用于根据所述第一类型操作的请求报文和/或所述第二类型操作的响应报文生成目标响应报文,并向所述第一终端网卡发送所述目标响应报文,所述目标响应报文用于指示所述第一终端网卡将所述第一发送窗口调整为第二发送窗口,所述第二发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第二发送速率;第三接收单元703,用于接收所述第一终端网卡通过所述第二发送窗口发送的所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。
在一个可能的示例中,在所述根据所述第一类型操作的请求报文和/或所述第二类型操作的响应报文生成目标响应报文,并向所述第一终端网卡发送所述目标响应报文方面,所述第二处理单元702具体用于:按照接收时间的先后顺序依次对所述第一类型操作的请求报文和/或所述第二类型操作的响应报文执行如下操作:若检测到当前处理的报文包含目标标识信息,则将所述当前处理的报文标记为参考报文,所述目标标识信息是指报文中携带有效信息的部分;当所述参考报文的数量达到预设数量时,生成所述预设数量个参考报文对应的目标响应报文;通过报文传输队列向所述第一终端网卡发送所述预设数量个参考报文对应的目标响应报文;重复上述步骤,直至所述第二终端网卡接收到的第一类型操作的请求报文和/或第二类型操作的响应报文全部处理完成。
在一个可能的示例中,在所述通过报文传输队列向所述第一终端网卡发送所述预设数量个参考报文对应的目标响应报文方面,所述第二处理单元702具体用于:若所述预设数量个参考报文对应的目标响应报文在所述报文传输队列中的传输顺位不是首位,则将所述预设数量个参考报文对应的目标响应报文置于所述报文传输队列的首位,并向所述第一终端网卡发送所述预设数量个参考报文对应的目标响应报文。
可以理解的是,由于方法实施例与装置实施例为相同技术构思的不同呈现形式,因此,本申请中方法实施例部分的内容应同步适配于装置实施例部分,此处不再赘述。
在采用集成的单元的情况下,如图7b所示,图7b是本申请实施例提供的另一种应用于第二终端网卡的网络流量拥塞控制装置的功能单元组成框图。在图7b中,所述应用于第二终端网卡的网络流量拥塞控制装置70包括:第二处理模块72和第二通信模块71。第二处理模块72用于对应用于第二终端网卡的网络流量拥塞控制装置的动作进行控制管理,例如,执行第二接收单元701、第二处理单元702和第三接收单元703的步骤,和/或用于执行本文所描述的技术的其它过程。第二通信模块71用于支持应用于第二终端网卡的网络流量拥塞控制装置与其他设备之间的交互。如图7b所示,应用于第二终端网卡的网络流量拥塞控制装置还可以包括第二存储模块73,第二存储模块73用于存储应用于第二终端网卡的网络流量拥塞控制装置的程序代码和数据。
其中,第二处理模块72可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。第二通信模块71可以是收发器、RF电路或通信接口等。第二存储模块73可以是存储器。
其中,上述方法实施例涉及的各场景的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。上述应用于第二终端网卡的网络流量拥塞控制装置70均可执行上述图4所示的网络流量拥塞控制方法。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
图8是本申请实施例提供的一种终端设备网卡的结构框图。如图8所示,所述终端设备网卡可以包括一个或多个如下部件:处理器801、与处理器801耦合的存储器802,其中存储器802可存储有一个或多个计算机程序,一个或多个计算机程序可以被配置为由一个或多个处理器801执行时实现如上述各实施例描述的方法。所述终端设备网卡可以是指上述实施例中的第一终端网卡和/或第二终端网卡。
处理器801可以包括一个或者多个处理核。处理器801利用各种接口和线路连接整个终端设备网卡内的各个部分,通过运行或执行存储在存储器802内的指令、程序、代码集或指令集,以及调用存储在存储器802内的数据,执行终端设备网卡的各种功能和处理数据。可选地,处理器801可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogicArray,PLA)中的至少一种硬件形式来实现。处理器801可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器801中,单独通过一块通信芯片进行实现。
存储器802可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。存储器802可用于存储指令、程序、代码、代码集或指令集。存储器802可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等。存储数据区还可以存储终端设备网卡在使用中所创建的数据等。
可以理解的是,终端设备网卡可以包括比上述结构框图中更多或更少的结构元件,在此不进行限定。
本申请实施例还提供一种计算机存储介质,其中,其上存储有计算机程序/指令,所述计算机程序/指令被处理器执行时实现如上述方法实施例中记载的任一方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。所述计算机程序产品可以是上述实施例涉及到的应用程序。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端设备网卡,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、磁碟、光盘、易失性存储器或非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)等各种可以存储程序代码的介质。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,可轻易想到变化或替换,均可作各种更动与修改,包含上述不同功能、实施步骤的组合,包含软件和硬件的实施方式,均在本发明的保护范围。
Claims (8)
1.一种网络流量拥塞控制方法,其特征在于,应用于第一终端网卡,所述第一终端网卡与第二终端网卡通信连接,所述方法包括:
通过第一发送窗口向所述第二终端网卡发送第一类型操作的请求报文和/或第二类型操作的响应报文,所述第一发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第一发送速率,所述第一类型操作是指所述第一终端网卡在发送方向上产生网络流量的请求操作,所述第二类型操作是指所述第一终端网卡在发送方向上产生网络流量的响应操作;
接收来自所述第二终端网卡针对所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的目标响应报文,所述目标响应报文是所述第二终端网卡通过以下步骤生成的:按照接收时间的先后顺序依次对所述第一类型操作的请求报文和/或所述第二类型操作的响应报文执行如下操作:若检测到当前处理的报文包含目标标识信息,则将所述当前处理的报文标记为参考报文,所述目标标识信息是指报文中携带有效信息的部分;当所述参考报文的数量达到预设数量时,生成所述预设数量个参考报文对应的目标响应报文;
计算所述目标响应报文在当前次传输过程中的目标传输时间和目标传输频率;根据所述目标传输时间和所述目标传输频率调整所述第一发送窗口,得到第二发送窗口,所述第二发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第二发送速率;
通过所述第二发送窗口向所述第二终端网卡发送所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。
2.根据权利要求1所述方法,其特征在于,所述根据所述目标传输时间和所述目标传输频率调整所述第一发送窗口,得到第二发送窗口,包括:
根据所述目标传输时间和所述目标传输频率查询预设的映射关系表,得到目标窗口大小值,所述预设的映射关系表包括多个数据组和与所述多个数据组一一对应的多个窗口大小值,所述数据组包括传输时间和传输频率,所述窗口大小值关联于所述第一终端网卡在发送方向上的整体发送速率;
将所述第一发送窗口的窗口大小值调整为所述目标窗口大小值,得到所述第二发送窗口。
3.一种网络流量拥塞控制方法,其特征在于,应用于第二终端网卡,所述第二终端网卡与第一终端网卡通信连接,所述方法包括:
接收所述第一终端网卡通过第一发送窗口发送的第一类型操作的请求报文和/或第二类型操作的响应报文,所述第一发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第一发送速率,所述第一类型操作是指所述第一终端网卡在发送方向上产生网络流量的请求操作,所述第二类型操作是指所述第一终端网卡在发送方向上产生网络流量的响应操作;
按照接收时间的先后顺序依次对所述第一类型操作的请求报文和/或所述第二类型操作的响应报文执行如下操作:若检测到当前处理的报文包含目标标识信息,则将所述当前处理的报文标记为参考报文,所述目标标识信息是指报文中携带有效信息的部分;当所述参考报文的数量达到预设数量时,生成所述预设数量个参考报文对应的目标响应报文;通过报文传输队列向所述第一终端网卡发送所述预设数量个参考报文对应的目标响应报文;重复上述步骤,直至所述第二终端网卡接收到的第一类型操作的请求报文和/或第二类型操作的响应报文全部处理完成,所述目标响应报文用于指示所述第一终端网卡计算出所述目标响应报文在当前次传输过程中的目标传输时间和目标传输频率,并根据所述目标传输时间和所述目标传输频率调整所述第一发送窗口,得到第二发送窗口,所述第二发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第二发送速率;
接收所述第一终端网卡通过所述第二发送窗口发送的所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。
4.根据权利要求3所述方法,其特征在于,所述通过报文传输队列向所述第一终端网卡发送所述预设数量个参考报文对应的目标响应报文,包括:
若所述预设数量个参考报文对应的目标响应报文在所述报文传输队列中的传输顺位不是首位,则将所述预设数量个参考报文对应的目标响应报文置于所述报文传输队列的首位,并向所述第一终端网卡发送所述预设数量个参考报文对应的目标响应报文。
5.一种网络流量拥塞控制装置,其特征在于,应用于第一终端网卡,所述第一终端网卡与第二终端网卡通信连接,所述装置包括:
第一发送单元,用于通过第一发送窗口向所述第二终端网卡发送第一类型操作的请求报文和/或第二类型操作的响应报文,所述第一发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第一发送速率,所述第一类型操作是指所述第一终端网卡在发送方向上产生网络流量的请求操作,所述第二类型操作是指所述第一终端网卡在发送方向上产生网络流量的响应操作;
第一接收单元,用于接收来自所述第二终端网卡针对所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的目标响应报文,所述目标响应报文是所述第二终端网卡通过以下步骤生成的:按照接收时间的先后顺序依次对所述第一类型操作的请求报文和/或所述第二类型操作的响应报文执行如下操作:若检测到当前处理的报文包含目标标识信息,则将所述当前处理的报文标记为参考报文,所述目标标识信息是指报文中携带有效信息的部分;当所述参考报文的数量达到预设数量时,生成所述预设数量个参考报文对应的目标响应报文;
第一处理单元,用于计算所述目标响应报文在当前次传输过程中的目标传输时间和目标传输频率;根据所述目标传输时间和所述目标传输频率调整所述第一发送窗口,得到第二发送窗口,所述第二发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第二发送速率;
第二发送单元,用于通过所述第二发送窗口向所述第二终端网卡发送所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。
6.一种网络流量拥塞控制装置,其特征在于,应用于第二终端网卡,所述第二终端网卡与第一终端网卡通信连接,所述装置包括:
第二接收单元,用于接收所述第一终端网卡通过第一发送窗口发送的第一类型操作的请求报文和/或第二类型操作的响应报文,所述第一发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第一发送速率,所述第一类型操作是指所述第一终端网卡在发送方向上产生网络流量的请求操作,所述第二类型操作是指所述第一终端网卡在发送方向上产生网络流量的响应操作;
第二处理单元,用于按照接收时间的先后顺序依次对所述第一类型操作的请求报文和/或所述第二类型操作的响应报文执行如下操作:若检测到当前处理的报文包含目标标识信息,则将所述当前处理的报文标记为参考报文,所述目标标识信息是指报文中携带有效信息的部分;当所述参考报文的数量达到预设数量时,生成所述预设数量个参考报文对应的目标响应报文;通过报文传输队列向所述第一终端网卡发送所述预设数量个参考报文对应的目标响应报文;重复上述步骤,直至所述第二终端网卡接收到的第一类型操作的请求报文和/或第二类型操作的响应报文全部处理完成,所述目标响应报文用于指示所述第一终端网卡计算出所述目标响应报文在当前次传输过程中的目标传输时间和目标传输频率,并根据所述目标传输时间和所述目标传输频率调整所述第一发送窗口,得到第二发送窗口,所述第二发送窗口用于指示所述第一类型操作的请求报文和/或所述第二类型操作的响应报文的第二发送速率;
第三接收单元,用于接收所述第一终端网卡通过所述第二发送窗口发送的所述第一类型操作的请求报文和/或所述第二类型操作的响应报文。
7.一种网卡,其特征在于,包括处理器、存储器以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-4任一项所述方法中的步骤的指令。
8.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1-4任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310804322.0A CN116527593B (zh) | 2023-07-03 | 2023-07-03 | 网络流量拥塞控制方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310804322.0A CN116527593B (zh) | 2023-07-03 | 2023-07-03 | 网络流量拥塞控制方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116527593A CN116527593A (zh) | 2023-08-01 |
CN116527593B true CN116527593B (zh) | 2023-09-19 |
Family
ID=87390697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310804322.0A Active CN116527593B (zh) | 2023-07-03 | 2023-07-03 | 网络流量拥塞控制方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116527593B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116760779A (zh) * | 2023-08-21 | 2023-09-15 | 珠海星云智联科技有限公司 | 网络拥塞控制方法、系统、存储介质和电子设备 |
CN116915721B (zh) * | 2023-09-12 | 2023-12-19 | 珠海星云智联科技有限公司 | 一种拥塞控制方法、装置、计算设备及可读存储介质 |
CN116915722B (zh) * | 2023-09-12 | 2023-12-19 | 珠海星云智联科技有限公司 | 一种网络拥塞调节方法、装置、计算设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120544A (zh) * | 2018-09-30 | 2019-01-01 | 华中科技大学 | 一种数据中心网络中基于主机端流量调度的传输控制方法 |
CN111817977A (zh) * | 2019-04-12 | 2020-10-23 | 华为技术有限公司 | 一种网络拥塞控制方法和装置 |
CN113746744A (zh) * | 2020-05-30 | 2021-12-03 | 华为技术有限公司 | 网络拥塞的控制方法、装置、设备、系统及存储介质 |
WO2022089175A1 (zh) * | 2020-10-29 | 2022-05-05 | 华为技术有限公司 | 网络拥塞控制方法及装置 |
CN115174478A (zh) * | 2022-07-27 | 2022-10-11 | 深圳星云智联科技有限公司 | 一种网络拥塞控制方法及相关装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150281126A1 (en) * | 2014-03-31 | 2015-10-01 | Plx Technology, Inc. | METHODS AND APPARATUS FOR A HIGH PERFORMANCE MESSAGING ENGINE INTEGRATED WITHIN A PCIe SWITCH |
US11638176B2 (en) * | 2019-07-29 | 2023-04-25 | Qualcomm Incorporated | Techniques for controlling admission for sidelink communications |
-
2023
- 2023-07-03 CN CN202310804322.0A patent/CN116527593B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120544A (zh) * | 2018-09-30 | 2019-01-01 | 华中科技大学 | 一种数据中心网络中基于主机端流量调度的传输控制方法 |
CN111817977A (zh) * | 2019-04-12 | 2020-10-23 | 华为技术有限公司 | 一种网络拥塞控制方法和装置 |
CN113746744A (zh) * | 2020-05-30 | 2021-12-03 | 华为技术有限公司 | 网络拥塞的控制方法、装置、设备、系统及存储介质 |
WO2022089175A1 (zh) * | 2020-10-29 | 2022-05-05 | 华为技术有限公司 | 网络拥塞控制方法及装置 |
CN115174478A (zh) * | 2022-07-27 | 2022-10-11 | 深圳星云智联科技有限公司 | 一种网络拥塞控制方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116527593A (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116527593B (zh) | 网络流量拥塞控制方法及相关装置 | |
CN107832329B (zh) | 页面资源获取方法及终端设备 | |
WO2016179968A1 (zh) | 一种队列管理方法、装置及存储介质 | |
EP3159803B1 (en) | Data storage method and network interface card | |
CN112152940B (zh) | 报文处理方法、装置以及系统 | |
WO2022068192A1 (zh) | 一种中继传输调度方法、装置、存储介质及电子设备 | |
CN113641604B (zh) | 一种数据传输方法及系统 | |
CN115964319A (zh) | 远程直接内存访问的数据处理方法及相关产品 | |
CN114513472A (zh) | 网络拥塞控制方法及装置 | |
CN115276920A (zh) | 音频数据处理方法、装置、电子设备及存储介质 | |
WO2021134418A1 (zh) | 一种数据校验方法及装置 | |
CN114285676B (zh) | 智能网卡、智能网卡的网络存储方法和介质 | |
CN113688076B (zh) | 基于epa的数据通信的方法、计算设备和介质 | |
CN109040208B (zh) | 基于多客户端交互的数据同步方法、服务器、系统及介质 | |
CN113452770B (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN111651282B (zh) | 报文处理方法、报文处理装置及电子设备 | |
CN103561477A (zh) | 一种竞争窗口值的更新方法和接入点 | |
CN109756464B (zh) | 一种通信方法及服务器、客户端 | |
CN102984138B (zh) | 一种获取对象的方法、装置和系统 | |
JP2015520528A (ja) | 電子メッセージを送信する方法及びシステム | |
CN111404842B (zh) | 数据传输方法、装置及计算机存储介质 | |
CN113132742B (zh) | 基于队列的双缓冲ai视频传输方法及相关设备 | |
KR100747758B1 (ko) | 무선 인식 시스템의 데이터 충돌 방지 장치 및 그 방법 | |
CN109547980B (zh) | 一种机器类通信中基于分簇和数据缓存的随机接入方法 | |
CN111526075A (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 |