CN117176667A - 流量控制的方法、设备、计算机设备和存储介质 - Google Patents

流量控制的方法、设备、计算机设备和存储介质 Download PDF

Info

Publication number
CN117176667A
CN117176667A CN202311058161.1A CN202311058161A CN117176667A CN 117176667 A CN117176667 A CN 117176667A CN 202311058161 A CN202311058161 A CN 202311058161A CN 117176667 A CN117176667 A CN 117176667A
Authority
CN
China
Prior art keywords
flow control
control frame
buffer area
equipment
module
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
Application number
CN202311058161.1A
Other languages
English (en)
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.)
Shin Lai Zhirong Semiconductor Technology Shanghai Co ltd
Original Assignee
Shin Lai Zhirong Semiconductor Technology Shanghai 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 Shin Lai Zhirong Semiconductor Technology Shanghai Co ltd filed Critical Shin Lai Zhirong Semiconductor Technology Shanghai Co ltd
Priority to CN202311058161.1A priority Critical patent/CN117176667A/zh
Publication of CN117176667A publication Critical patent/CN117176667A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例中提供一种流量控制的方法、设备、计算机设备和存储介质,涉及以太网技术领域。该方法包括:在第一设备的接收缓冲区域的剩余空间小于或等于阈值的情况下,在将正在发送的数据包发送完成之后,所述第一设备将所述接收缓冲区域的剩余空间信息写入流量控制帧;所述第一设备向第二设备发送所述流量控制帧,以指示所述第二设备基于所述流量控制帧控制所述第二设备是否向所述第一设备继续发送数据包。基于该方案,可以减少设备的接收缓冲区域的空间浪费。

Description

流量控制的方法、设备、计算机设备和存储介质
技术领域
本申请涉及以太网技术领域,具体地,涉及一种流量控制的方法、设备、计算机设备和存储介质。
背景技术
通常,在以太网中需要对传输的流量进行控制,以避免流量传输发生冲突,导致传输延时或者数据丢失。
目前,可以使用pause帧对以太网中的设备进行流量控制。当设备A的Rx FIFO(接收缓冲区)的空余空间小于3024byte时,存在Rx FIFO溢出的风险,设备A向设备B发送pauseon帧,指示设备B停止发送数据包;设备B接收到设备A发送的pause on帧开始停止向设备A发送数据包。当设备A的RXFIFO空余空间大于阈值时,确定Rx FIFO溢出风险消除,设备A向设备B发送pause off帧,指示设备B可以继续发送数据包,设备B在接收到pause off帧之后可以继续向设备A发送数据包。
然而,由于数据包不能只发送一部分,需要将数据包发送完成才能停止,设备A在确定Rx FIFO的空余空间小于阈值时,设备A可能已经开始发送一个最大的数据包,需要该最大的数据包发完才能发送pause on帧,在设备B接收到pause on帧的时候,设备B也可能刚刚开始发送一个最大的数据包,必须把当前的数据包发送完成才能停止发送,因此需要预留一个大于2个最大数据包长度的空间,然而实际传输过程中,在设备确定Rx FIFO的空余空间小于阈值时,设备可能不发送数据包,也可能发送较小的数据包,从而导致缓冲空间的浪费。
发明内容
本申请实施例中提供了一种流量控制的方法、设备、计算机设备和存储介质。可以解决设备的接收缓冲区域的空间浪费的问题。
本申请实施例的第一个方面,提供了一种流量控制的方法, 该方法包括:在第一设备的接收缓冲区域的剩余空间小于或等于阈值的情况下,在将正在发送的数据包发送完成之后,所述第一设备将所述接收缓冲区域的剩余空间信息写入流量控制帧;所述第一设备向第二设备发送所述流量控制帧,以指示所述第二设备基于所述流量控制帧控制所述第二设备是否向所述第一设备继续发送数据包。
在本申请一个可选的实施例中,所述第一设备的MAC(media access control,媒体接入控制)层将第一时刻所述第一设备的剩余空间信息写入所述流量控制帧中,所述第一时刻为所述流量控制帧到达MAC层和物理层PHY(Physical,物理)层接口的时刻。
在本申请一个可选的实施例中,所述第一设备将所述接收缓冲区域的剩余空间信息写入流量控制帧的保留域中。
本申请实施例的第二个方面,提供了一种第一设备,所述第一设备包括:写入模块和发送模块;所述写入模块,用于在第一设备的接收缓冲区域的剩余空间小于或等于阈值的情况下,在正在发送的数据包发送完成之后,将所述接收缓冲区域的剩余空间信息写入流量控制帧;所述发送模块,用于向第二设备发送所述流量控制帧,以指示所述第二设备基于设备流量控制帧控制所述第二设备是否向所述第一设备继续发送数据包。
在本申请一个可选的实施例中,写入模块具体为MAC层, MAC层用于将第一时刻所述第一设备的剩余空间信息写入所述流量控制帧中,所述第一时刻为所述流量控制帧到达MAC层和PHY层接口的时刻。
在本申请一个可选的实施例中,写入模块具体用于将所述接收缓冲区域的剩余空间信息写入流量控制帧的保留域中。
本申请实施例的第三个方面,提供了一种流量控制的方法,该方法包括:第二设备接收第一设备发送的流量控制帧,所述流量控制帧为所述第一设备在确定接收缓冲区域的剩余空间小于或等于阈值的情况下发送的,所述流量控制帧指示所述第一设备的接收缓冲区域的剩余空间信息;所述第二设备基于所述流量控制帧指示的所述剩余空间信息确定所述第一设备的实际剩余空间;在所述累计发包与所述第二设备待向所述第一设备发包之和小于实际剩余空间,所述第二设备向所述第一设备继续发送数据包。
在本申请一个可选的实施例中,所述第二设备接收第一设备发送的流量控制帧之后,所述方法还包括:所述第二设备从所述流量控制帧的保留域读取所述剩余空间信息。
在本申请一个可选的实施例中,所述第二设备基于所述剩余空间信息和网络延时信息,确定所述第一设备的接收缓冲区域的实际剩余空间。
在本申请一个可选的实施例中,所述第二设备记录向所述第一设备累计发包值,在所述累计发包值小于所述实际剩余空间的情况下,所述第二设备向所述第一设备继续发送数据包。
本申请实施例的第四个方面,提供了一种第二设备,所述第二设备包括:接收模块、确定模块和发送模块;接收模块,用于接收第一设备发送的流量控制帧,所述流量控制帧为所述第一设备在确定接收缓冲区域的剩余空间小于或等于阈值的情况下发送的,所述流量控制帧指示所述第一设备的接收缓冲区域的剩余空间信息;确定模块,用于基于所述流量控制帧指示的所述剩余空间信息确定所述第一设备的实际剩余空间;发送模块,用于在所述累计发包与所述第二设备待向所述第一设备发包之和小于实际剩余空间,向所述第一设备继续发送数据包。
在本申请一个可选的实施例中,第二设备还包括读取模块;所述读取模块,用于接收模块接收第一设备发送的流量控制帧之后,从所述流量控制帧的保留域读取所述剩余空间信息。
在本申请一个可选的实施例中,确定模块具体用于:基于所述剩余空间信息和网络延时信息,确定所述第一设备的接收缓冲区域的实际剩余空间。
在本申请一个可选的实施例中,所述第二设备还包括记录模块;所述记录模块用于在发送模块向所述第一设备继续发送数据包之后,记录向所述第一设备累计发包值;所述发送模块,还用于在所述记录模块记录的所述累计发包值小于所述实际剩余空间的情况下,所述第二设备向所述第一设备继续发送数据包。
本申请实施例的第五个方面,提供了一种计算机设备,包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上任一项方法的步骤。
本申请实施例的第六个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如上任一项的方法的步骤。
本申请实施例提供的流量控制的方法,首先,在第一设备的接收缓冲区域的剩余空间小于或等于阈值的情况下,在将正在发送的数据包发送完成之后,第一设备将接收缓冲区域的剩余空间信息写入流量控制帧;然后第一设备向第二设备发送流量控制帧,以指示第二设备基于流量控制帧控制第二设备是否向第一设备继续发送数据包。在第二设备接收到第一设备发送的流量控制帧之后,第二设备基于流量控制帧指示的剩余空间信息确定第一设备的实际剩余空间。最后第二设备开始记录向第一设备累计发包的大小,在累计发包与第二设备待向第一设备发包之和小于实际剩余空间,第二设备向第一设备继续发送数据包。即第二设备不是在接收到流量控制帧之后立马停止向第一设备发送数据包,而是可以继续发送数据包,直到累计发送的数据包接近第一设备实际的剩余空间的情况下,第一设备真的快要溢出的时候停止发送数据包,从而可以使得第一设备的RXFIFO基本没有浪费,提高了第一设备的RXFIFO的利用率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一个实施例提供的流量控制的方法的应用场景示意图;
图2为本申请一个实施例提供的流量控制的方法的交互流程图;
图3为本申请一个实施例提供的pause on帧的帧结构示意图
图4为本申请一个实施例提供的第一设备可能的结构示意图;
图5为本申请一个实施例提供的第二设备可能的结构示意图;
图6为本申请一个实施例提供的第二设备可能的结构示意图;
图7为本申请一个实施例提供的计算机设备结构示意图。
具体实施方式
在实现本申请的过程中,发明人发现,目前的流量控制容易浪费设备缓冲区域的存储空间。
针对上述问题,本申请实施例中提供了一种流量控制的方法、设备、计算机设备和存储介质,以减少缓冲区域的存储空间的浪费。
下面将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
以下对本申请实施例提供的流量控制方法的应用环境作简要说明:
请参见图1,本申请实施例提供的一种以太网设备进行流量控制的系统架构示意图,如图1中所示,该架构包括第一设备11和第二设备12,第一设备11和第二设备12通过网线连接,第一设备11和第二设备12之间可以互相发送和接收数据包,其中,第一设备11和第二设备12靠近网线的为MAC层和PHY层,第一设备接收数据包的缓冲区域RXFIFO(FirstInput First Output,先入先出)位于MAC层。
在本申请实施例中,以第一设备接收第二设备发送的数据包的过程中进行的流量控制为例进行说明,实际应用中,第二设备也可以在接收第一设备发送的数据包的过程中进行流量控制,本申请实施例对此不作具体限定。
请参见图2,以下实施例以上述第一设备和第二设备为执行主体进行交互为例,将本申请实施例提供的流量控制的方法应用于上述第一设备和第二设备中,用于对为例进行具体说明。本申请实施例提供的流量控制的方法包括如下步骤201-步骤205:
步骤201、在第一设备的接收缓冲区域的剩余空间小于或等于阈值的情况下,在将正在发送的数据包发送完成之后,第一设备将接收缓冲区域的剩余空间信息写入流量控制帧。
可以理解,剩余空间信息指示接收缓冲区域的剩余空间的大小。
示例性地,流量控制帧可以为pause on帧,即本申请实施例中是将设备的接收缓冲区域的剩余空间大小写入pause on帧中。
可选地,阈值可以与相关技术中pause on帧触发阈值相同,也可以与相关技术中的pause on帧的触发阈值不同,本申请实施例对此不作具体限定。
需要说明的是,在本申请实施例中,以阈值与相关技术中的pause on帧的触发阈值相同为例进行说明,即阈值为3024byte,第一设备在RXFIFO的剩余空间还有3024byte的情况下,可以开始准备发送pause on帧,若当前没有正在发送的数据包,则第一设备可以直接在pause on帧中写入当前的RXFIFO的剩余空间信息,若当前存在正在发送的数据包,则将当前正在发送的数据包发送结束之后,第一设备在pause on帧中写入当前的RXFIFO的剩余空间信息。
步骤202、第一设备向第二设备发送流量控制帧,以指示第二设备基于流量控制帧控制第二设备是否向第一设备继续发送数据包。
步骤203、第二设备接收第一设备发送的流量控制帧。
其中,流量控制帧为第一设备在确定接收缓冲区域的剩余空间小于或等于阈值的情况下发送的,流量控制帧指示第一设备的接收缓冲区域的剩余空间信息。
步骤204、第二设备基于流量控制帧指示的剩余空间信息确定第一设备的实际剩余空间。
步骤205、第二设备开始记录向第一设备累计发包的大小,在累计发包与所述第二设备待向所述第一设备发包之和小于实际剩余空间,第二设备向第一设备继续发送数据包。
需要说明的是,相关技术中,第一设备的RXFIFO必须预留至少大于或等于2个最大数据包的长度,按照最大数据包是1514byte计算,预留空间为3024的FIFO。然而实际应用中,在需要发送pause on的情况下,第一设备正在发送的数据包实际很小,例如64byte,第二设备在接收到pause on帧的时候,第二设备正在发送的数据包也很小,例如64byte,因此实际上仅需要预留128byte的空余空间即可,因此相关技术可以造成3024 byte -128 byte=2986 byte的预留空间的浪费,从概率论的角度,造成浪费的空间平均为2986 byte/2=1448byte。
需要说明的是,若第二设备为其他不支持本申请实施例提供的流量控制方法的设备,则第二设备继续采用相关技术中的流量控制方式。
需要说明的是,在第一设备向第二设备发送流量pause on帧之后,若第一设备的RXFIFO的空闲空间大于安全值,则第一设备可以继续向第二设备发送pause off帧,指示第二设备继续向第一设备发送数据包,即本申请实施例提供的流量控制方法不影响第一设备发送pause off帧,以及第二设备基于pause off帧继续发送的机制。
本申请实施例提供的流量控制的方法中,首先,在第一设备的接收缓冲区域的剩余空间小于或等于阈值的情况下,在将正在发送的数据包发送完成之后,第一设备将接收缓冲区域的剩余空间信息写入流量控制帧;然后第一设备向第二设备发送流量控制帧,以指示第二设备基于流量控制帧控制第二设备是否向第一设备继续发送数据包。在第二设备接收到第一设备发送的流量控制帧之后,第二设备基于流量控制帧指示的剩余空间信息确定第一设备的实际剩余空间。最后第二设备开始记录向第一设备累计发包的大小,在累计发包与第二设备待向第一设备发包之和小于实际剩余空间,第二设备向第一设备继续发送数据包。即第二设备不是在接收到流量控制帧之后立马停止向第一设备发送数据包,而是可以继续发送数据包,直到累计发送的数据包接近第一设备实际的剩余空间的情况下,第一设备真的快要溢出的时候停止发送数据包,从而可以使得第一设备的RXFIFO基本没有浪费,提高了第一设备的RXFIFO的利用率。
在本申请一个可选实施例中,上述步骤201具体可以通过下述的步骤201a执行:
步骤201a:第一设备的MAC层将第一时刻第一设备的剩余空间信息写入流量控制帧中。
其中,第一时刻为流量控制帧到达MAC层和PHY层接口的时刻。
可以理解,在该方案中,在第一设备的剩余空间小于或等于3024byte的情况下,第一设备开始准备发送pause on帧,若第一设备正在发送数据包,则第一设备等待正在发送的数据包发送完成之后向第一设备的MAC层和PHY层,发送pause on帧,若第一设备没有正在发送的数据包,则第一设备直接向第一设备的MAC层和PHY层,发送pause on帧。在pauseon帧到达MAC层和PHY层接口时,第一设备的MAC层将当前时刻第一设备的剩余空间信息写入pause on帧中。
在本申请一个可选实施例中,上述步骤201具体可以通过下述的步骤201b执行,进而,上述步骤203之后,还可以包括下述的步骤206:
步骤201b、第一设备将接收缓冲区域的剩余空间信息写入流量控制帧的保留域中。
步骤206、第二设备从流量控制帧的保留域读取剩余空间信息。
示例性地,图3为本申请实施例提供的一种pause on帧的帧格式示意图,如图3中所示,pause on帧包括6字节的目的地址域、6字节的源地址域、2字节的类型域、2字节的操作参数域、42字节的保留域,以及4字节的校验序列。
可以理解,第一设备可以将RXFIFO的剩余空间信息写入pause on帧的保留域中,只占用了保留域中的几个byte,不会对pause on造成较大的开销,即便第二设备不支持本申请实施例提供的流量控制方法,第二设备也可以继续按照相关技术在接收到pause on帧立即停止向第一设备发送数据包。
在本申请一个可选实施例中,上述步骤204具体可以通过下述的步骤204a执行:
步骤204a、第二设备基于剩余空间信息和网络延时信息,确定第一设备的接收缓冲区域的实际剩余空间。
示例性地,在本申请实施例中网络延时信息为64byte。
需要说明的是,在1000M模式下以太网的1个时钟周期传1个字节,在10/100M模式下,以太网的1个时钟周期传输0.5个字节。以太网的PHY可以为一个模数混合的器件,数据包通过的延迟小,通常几个时钟周期的延迟,网线的传输延迟也在几个时钟周期左右,因此第一设备的以太网PHY的延迟、网线的延迟,以及第二设备的以太网PHY的延迟之和必然在64byte的传输时间内。
可以理解,在第二设备在第二时刻接收到pause on帧之后,从pause on帧的保留域可以确定几个时钟周期之前第一设备的实际RXFIFO的空闲空间为X byte,第二设备使用X byte减去64byte可以确定第二时刻第一设备的实际RXFIFO的空闲空间,其中,64byte用于补偿两个设备的PHY的延迟和网线的延迟。
也就是说,第二设备可以在向第一设备继续发送数据包的情况下记录累计发包的大小,并且确定累计发包的大小和确定的第二时刻第一设备的接收缓冲区域的实际剩余空间的大小为(X-64)byte),即确定累计发包和(X-64)byte的大小关系,在累计发包小于(X-64)byte的情况下,第二设备可以一直给第一设备发送数据包。
基于该方案,可以通过网络延时信息补偿两个设备的PHY的延时和网线传输的延迟,从而使得确定的接收缓冲区域的实际剩余空间更加准确,进而在减少RXFIFO空间的浪费的同时可以减少第一设备RXFIFO溢出的概率。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图4为本申请一个实施例提供的一种第一设备的结构示意图,如图4中所示,第一设备400包括:写入模块401和发送模块402;写入模块401,用于在第一设备的接收缓冲区域的剩余空间小于或等于阈值的情况下,在正在发送的数据包发送完成之后,将接收缓冲区域的剩余空间信息写入流量控制帧;发送模块402,用于向第二设备发送流量控制帧,以指示第二设备基于设备流量控制帧控制第二设备是否向第一设备继续发送数据包。
在本申请一个可选的实施例中,写入模块401具体为MAC层, MAC层用于将第一时刻第一设备的剩余空间信息写入流量控制帧中,第一时刻为流量控制帧到达MAC层和PHY层接口的时刻。
在本申请一个可选的实施例中,写入模块401具体用于将接收缓冲区域的剩余空间信息写入流量控制帧的保留域中。
本申请实施例提供一种第一设备,可以在接收缓冲区域的剩余空间小于或等于阈值的情况下,在正在发送的数据包发送完成之后,将接收缓冲区域的剩余空间信息写入流量控制帧,向第二设备发送流量控制帧,以指示第二设备基于设备流量控制帧控制第二设备是否向第一设备继续发送数据包,可以避免在剩余空间足够接收第二设备发送数据包的情况下,第二设备直接停止发送数据包导致的剩余空间的浪费。
图5为本申请一个实施例提供的一种第二设备的结构示意图,如图5中所示,第二设备500包括:接收模块501、确定模块502、记录模块503和发送模块504;接收模块501,用于接收第一设备发送的流量控制帧,流量控制帧为第一设备在确定接收缓冲区域的剩余空间小于或等于阈值的情况下发送的,流量控制帧指示第一设备的接收缓冲区域的剩余空间信息;确定模块,用于基于流量控制帧指示的剩余空间信息确定第一设备的实际剩余空间;记录模块,用于开始记录后续向所述第一设备累计发包的大小;发送模块,用于在累计发包与第二设备待向第一设备发包之和小于实际剩余空间,向第一设备继续发送数据包。
结合图5,如图6中所示在本申请一个可选的实施例中,第二设备500还包括:读取模块505;读取模块505,用于接收模块501接收第一设备发送的流量控制帧之后,从流量控制帧的保留域读取剩余空间信息。
在本申请一个可选的实施例中,确定模块502具体用于:基于剩余空间信息和网络延时信息,确定第一设备的接收缓冲区域的实际剩余空间。
本申请实施例提供一种第二设备,在接收到第一设备发送的流量控制帧之后,可以从该流量控制帧中读取第一设备的接收缓冲区域的剩余空间信息,确定实际剩余空间,然后可以继续向第一设备发送数据包,直到累计发送的数据包接近上述实际剩余空间的情况下停止发送,从而可以减少第一设备的接收缓冲区域的空间的浪费。
关于上述第一设备和第二设备的具体限定可以参见上文中对于流量控制的方法的限定,在此不再赘述。上述第一设备和第二设备中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种流量控制的方法。包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上流量控制的方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上流量控制的方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种流量控制的方法,应用于第一设备,其特征在于,所述方法包括:
在第一设备的接收缓冲区域的剩余空间小于或等于阈值的情况下,在将正在发送的数据包发送完成之后,所述第一设备将所述接收缓冲区域的剩余空间信息写入流量控制帧;
所述第一设备向第二设备发送所述流量控制帧,以指示所述第二设备基于所述流量控制帧控制所述第二设备是否向所述第一设备继续发送数据包。
2.根据权利要求1所述的方法,其特征在于,所述第一设备将所述接收缓冲区域的剩余空间信息写入流量控制帧,包括:
所述第一设备的媒体访问控制层MAC层将第一时刻所述第一设备的剩余空间信息写入所述流量控制帧中,所述第一时刻为所述流量控制帧到达MAC层和物理层PHY层接口的时刻。
3.根据权利要求1或2所述的方法,其特征在于,所述第一设备将所述接收缓冲区域的剩余空间信息写入流量控制帧,包括:
所述第一设备将所述接收缓冲区域的剩余空间信息写入流量控制帧的保留域中。
4.一种流量控制的方法,应用于第二设备,其特征在于,所述方法包括:
第二设备接收第一设备发送的流量控制帧,所述流量控制帧为所述第一设备在确定接收缓冲区域的剩余空间小于或等于阈值的情况下发送的,所述流量控制帧指示所述第一设备的接收缓冲区域的剩余空间信息;
所述第二设备基于所述流量控制帧指示的所述剩余空间信息确定所述第一设备的实际剩余空间;
开始记录后续向所述第一设备累计发包的大小,在所述累计发包与所述第二设备待向所述第一设备发包之和小于实际剩余空间,所述第二设备向所述第一设备继续发送数据包。
5.根据权利要求4所述的方法,其特征在于,所述第二设备接收第一设备发送的流量控制帧之后,所述方法还包括:
所述第二设备从所述流量控制帧的保留域读取所述剩余空间信息。
6.根据权利要求4或5所述的方法,其特征在于,所述第二设备基于所述流量控制帧指示的所述剩余空间信息确定所述第一设备的实际剩余空间,包括:
所述第二设备基于所述剩余空间信息和网络延时信息,确定所述第一设备的接收缓冲区域的实际剩余空间。
7.一种第一设备,其特征在于,所述第一设备包括:写入模块和发送模块;
所述写入模块,用于在第一设备的接收缓冲区域的剩余空间小于或等于阈值的情况下,在正在发送的数据包发送完成之后,将所述接收缓冲区域的剩余空间信息写入流量控制帧;
所述发送模块,用于向第二设备发送所述流量控制帧,以指示所述第二设备基于设备流量控制帧控制所述第二设备是否向所述第一设备继续发送数据包。
8.一种第二设备,其特征在于,所述第二设备包括:接收模块、确定模块、记录模块和发送模块;
所述接收模块,用于接收所述第一设备发送的流量控制帧,所述流量控制帧为所述第一设备在确定接收缓冲区的剩余空间小于或等于阈值的情况下发送的,所述流量控制帧指示所述第一设备的接收缓冲区域的剩余空间信息;
所述确定模块,用于基于所述流量控制帧指示的所述剩余空间信息确定所述第一设备的实际剩余空间;
所述记录模块,用于开始记录后续向所述第一设备累计发包的大小;
所述发送模块,用于若所述累计发包与所述第二设备待向所述第一设备的发包之和小于所述实际剩余空间,向所述第一设备继续发送数据包。
9.一种计算机设备,包括:包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3或4至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3或4至6中任一项所述的方法的步骤。
CN202311058161.1A 2023-08-22 2023-08-22 流量控制的方法、设备、计算机设备和存储介质 Pending CN117176667A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311058161.1A CN117176667A (zh) 2023-08-22 2023-08-22 流量控制的方法、设备、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311058161.1A CN117176667A (zh) 2023-08-22 2023-08-22 流量控制的方法、设备、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN117176667A true CN117176667A (zh) 2023-12-05

Family

ID=88931030

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311058161.1A Pending CN117176667A (zh) 2023-08-22 2023-08-22 流量控制的方法、设备、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN117176667A (zh)

Similar Documents

Publication Publication Date Title
KR100268565B1 (ko) 다중 처리 시스템에서 타스크를 큐잉하기 위한 시스템 및 방법
US20230259468A1 (en) Multi-core processing system and inter-core communication method therefor, and storage medium
CN103647726A (zh) 一种报文调度方法及装置
US7430618B2 (en) Data transfer control device and electronic equipment
CN110300040A (zh) 一种通信方法及相关设备
CN112559436B (zh) 一种rdma通信设备的上下文访问方法及系统
EP4221141A1 (en) Network congestion control method and apparatus
WO2004019165A2 (en) Method and system for tcp/ip using generic buffers for non-posting tcp applications
CN114143140A (zh) 一种数据传输系统、方法、存储介质及电子设备
CN110161984A (zh) 控制装置、控制系统、控制方法以及存储介质
JP2009502072A (ja) FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法
US20150295860A1 (en) Method and system for remotely configuring an ethernet switch using ethernet packets
US8230137B2 (en) Network processor, reception controller and data reception processing method performing direct memory access transfer
JP5732806B2 (ja) データ転送装置及びデータ転送方法
EP1253520B1 (en) Apparatus for issuing command for high-speed serial interface
CN110990169B (zh) 一种利用共享内存进行进程间字节流通信的结构及方法
CN117176667A (zh) 流量控制的方法、设备、计算机设备和存储介质
US8812764B2 (en) Apparatus installing devices controlled by MDIO or SPI protocol and method to control the same
EP1780976A1 (en) Methods and system to offload data processing tasks
CN116486868A (zh) 计算高速链路(CXL)上的高速非易失性存储器(NVMe)
CN115955441A (zh) 一种基于tsn队列的管理调度方法、装置
US6457072B1 (en) System and method for effectively performing physical direct memory access operations
CN115374043A (zh) 一种基于pcie的通讯协议数据交互方法
US20010018732A1 (en) Parallel processor and parallel processing method
CN114268670A (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