CN113014498B - 一种收发数据的方法及装置 - Google Patents
一种收发数据的方法及装置 Download PDFInfo
- Publication number
- CN113014498B CN113014498B CN201911319930.2A CN201911319930A CN113014498B CN 113014498 B CN113014498 B CN 113014498B CN 201911319930 A CN201911319930 A CN 201911319930A CN 113014498 B CN113014498 B CN 113014498B
- Authority
- CN
- China
- Prior art keywords
- data
- switch
- sending
- sending end
- receiving end
- 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 86
- 238000004891 communication Methods 0.000 claims abstract description 64
- 239000010410 layer Substances 0.000 description 40
- 230000006870 function Effects 0.000 description 25
- 238000004590 computer program Methods 0.000 description 15
- 239000012792 core layer Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 239000000872 buffer Substances 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 125000004122 cyclic group Chemical group 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/39—Credit based
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种收发数据的方法及装置,涉及通信领域,解决了如何在降低接收端的存储开销的情况下,使每条数据流发送一次数据的数据量相同,保障数据流之间的公平性的问题。发送端向接收端发送通知报文,以通知接收端该发送端待发送数据的数据流的个数M,M为大于或等于1的整数。在接收端接收来自发送端的通知报文后,在M个周期的每个周期内向发送端发送一个指示报文,每个指示报文包括一个信用标记,信用标记指示发送端依据第一数据量发送数据,使得发送端根据M个信用标记向接收端发送M个数据流的数据,接收端接收来自发送端的M个数据流的数据,M个数据流中每条数据流的数据的数据量为第一数据量。
Description
技术领域
本申请涉及通信领域,尤其涉及一种收发数据的方法及装置。
背景技术
数据中心(data center)是一个包含多个设备(如:服务器、路由器、交换机)的网络,用于传输、加速、计算和存储数据。发送数据的设备可以称为发送端,接收数据的设备可以称为接收端。在接收端接收到来自多个发送端的报文的情况下,如果每秒接收到的数据量大于该接收端的带宽,可能导致接收端发生网络拥塞。带宽可以是指每秒可传输的比特(bit)数,单位为比特率(bit per second,bps)。比特率越高,每秒传送的数据越多。
通常,接收端可以存储至少一个发送端的每条数据流的信息,根据该接收端的带宽调控每条数据流的发送速率,使每条数据流的发送速率相同,保障了不同数据流之间的公平性,并且,使该接收端接收数据的速率之和小于或等于该接收端的带宽,避免接收端发生网络拥塞。但是,随着数据中心的规模增加,数据流的个数亦随之增加,可能导致接收端待存储的数据流的信息超过接收端的存储容量,这样接收端就无法维护一些数据流的信息。
为了避免接收端无法维护数据流的信息,接收端可以根据预设的时间间隔向每个发送端发送信用标记,该信用标记用于指示发送端依据预设的数据量发送数据,避免接收端发生网络拥塞。但是,发送端可能会向接收端发送多个数据流的数据,对于每条数据流,发送端可以根据预设的数据量调控发送数据的数据量,使所有数据流发送一次数据的数据量之和等于预设的数据量。在这种情况下,由于不同的发送端的数据流的个数存在差异,导致不同发送端之间的数据流发送一次数据的数据量可能不同,在这种情况下,无法保障不同发送端之间的数据流的公平性。
因此,如何在降低接收端的存储开销的情况下,使每条数据流发送一次数据的数据量相同,保障数据流之间的公平性是一个亟待解决的问题。
发明内容
本申请提供一种收发数据的方法及装置,解决了如何在降低接收端的存储开销的情况下,使每条数据流发送一次数据的数据量相同,保障数据流之间的公平性的问题。
第一方面,本申请提供了一种接收数据的方法,该方法可应用于接收端设备,或者该方法可应用于可以支持接收端设备实现该方法的通信装置,例如该通信装置包括芯片系统。
接收端接收来自第一发送端的通知报文后,在M个周期的每个周期内向发送端发送一个指示报文,每个指示报文包括一个信用标记,信用标记指示发送端依据第一数据量发送数据,以便于发送端根据M个信用标记向接收端发送M个数据流的数据,接收端接收来自发送端的M个数据流的数据,M个数据流中每条数据流的数据的数据量为第一数据量。通知报文包括第一发送端待发送数据的数据流的个数M,M为大于或等于1的整数。
本申请提供的接收数据的方法,接收端通过接收来自发送端的通知报文,获知发送端待发送数据的数据流的个数。由于接收端无需存储发送端的每个数据流的信息,只需存储每个发送端的数据流的个数,从而,有效地降低了接收端的存储开销。另外,接收端根据待发送数据的数据流的个数向发送端发送信用标记,控制发送端的发送速率,使得发送端根据信用标记指示的数据量发送每个数据流的数据,从而,使每条数据流发送一次数据的数据量相同,保障数据流之间的公平性。
在一种可能的实现方式中,在接收端接收来自第一发送端的通知报文之后,接收端根据M更新第一数值;或者,将M存为第一数值;其中,第一数值指示接收端存储的第一发送端向接收端发送的数据流的个数。从而,接收端通过存储发送端的数据流的个数降低了接收端的存储开销。
在另一种可能的实现方式中,通知报文还包括第一发送端的剩余数据量,接收端根据第一发送端的剩余数据量更新第二数值,第二数值指示接收端存储的第一发送端的剩余数据量;或者,将剩余数据量存为第二数值,第二数值指示接收端存储的第一发送端的剩余数据量;第一发送端的剩余数据量为第一发送端向接收端待发送数据的剩余数据量。从而,接收端通过存储发送端向接收端待发送数据的剩余数据量,进一步确定是否需要给发送端发送信用标记。
在另一种可能的实现方式中,当接收到的第一发送端的剩余数据量为0时,接收端删除存储的第一发送端的信息。由于第一发送端的剩余数据量为0,所以接收端无需向第一发送端发送信用标记。如果接收端仍调度第一发送端,会增加接收端调度其他发送端,并向其他发送端发送信用标记的时延。因此,接收端删除存储的第一发送端的信息,能够减少接收端调度其他发送端的时延。
在另一种可能的实现方式中,接收端接收来自第二发送端的数据,确定接收到的来自第二发送端的数据的数据量;当第二数据量与第三数据量之差大于预设数据量时,向第二发送端发送停止报文,其中,停止报文指示第二发送端停止发送数据,第三数据量是根据接收端的带宽和多个发送端的数据流的个数确定的,多个发送端包括第一发送端和第二发送端。在第二发送端无法识别信用标记的情况下,接收端可以统计来自第二发送端的数据的数据量,若来自第二发送端的数据的数据量和来自第一发送端的数据的数据量大于接收端的处理数据的能力,接收端可以向第二发送端发送停止报文,指示第二发送端停止发送数据,避免接收端接收过多的来自第二发送端的数据的数据量,发生网络拥塞。
第二方面,本申请提供了一种发送数据的方法,该方法可应用于发送端设备,或者该方法可应用于可以支持发送端设备实现该方法的通信装置,例如该通信装置包括芯片系统。
发送端向接收端发送通知报文,告知接收端发送端待发送数据的数据流的个数M,随后,发送端接收来自接收端的M个指示报文,根据M个信用标记向接收端发送M个数据流的数据,M个数据流中每条数据流的数据的数据量为第一数据量。其中,M个指示报文中的每个指示报文包括一个信用标记,信用标记指示发送端依据第一数据量发送数据,M为大于或等于1的整数。
本申请提供的发送数据的方法,发送端通过向接收端发送通知报文,使得接收端获知发送端待发送数据的数据流的个数。由于接收端无需存储发送端的每个数据流的信息,只需存储每个发送端的数据流的个数,从而有效地降低了接收端的存储开销。另外,接收端根据待发送数据的数据流的个数向发送端发送信用标记,使得发送端根据信用标记指示的数据量发送每个数据流的数据,从而,使每条数据流发送一次数据的数据量相同,保障数据流之间的公平性。
在一种可能的实现方式中,通知报文还包括发送端的剩余数据量,发送端的剩余数据量为发送端向接收端待发送数据的剩余数据量。从而,以便于接收端通过存储发送端向接收端待发送数据的剩余数据量,进一步确定是否需要给发送端发送信用标记。
在另一种可能的实现方式中,方法还包括:发送端确定接收端的信用标记的个数是否大于0;若信用标记的个数大于0,发送端向接收端发送通知报文。从而,发送端根据信用标记指示的数据量发送每个数据流的数据,使每条数据流发送一次数据的数据量相同,保障数据流之间的公平性。
在另一种可能的实现方式中,在发送端接收来自接收端的M个指示报文之后,发送端更新发送端存储的接收端的信用标记的个数。从而,发送端通过及时更新信用标记的个数,根据信用标记发送数据。
第三方面,本申请还提供了一种通信装置,其有益效果可以参见第一方面的描述。所述通信装置具有实现上述第一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,本申请还提供了一种通信装置,其有益效果可以参见第二方面的描述。所述通信装置具有实现上述第二方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第五方面,本申请提供了一种通信装置,该通信装置可以为上述方法中的接收端设备,或者为设置在接收端设备中的芯片。该通信装置包括通信接口/接口电路以及处理器,可选的,还包括存储器。其中,该存储器用于存储计算机程序或指令,处理器与存储器、通信接口/接口电路耦合,当处理器执行所述计算机程序或指令时,使通信装置执行上述方法中由接收端设备所执行的方法。
第六方面,本申请提供了一种通信装置,该通信装置可以为上述方法中的发送端设备,或者为设置在发送端设备中的芯片。该通信装置包括通信接口/接口电路以及处理器,可选的,还包括存储器。其中,该存储器用于存储计算机程序或指令,处理器与存储器、通信接口/接口电路耦合,当处理器执行所述计算机程序或指令时,使通信装置执行上述方法中由发送端设备所执行的方法。
第七方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被运行时,可以实现上述各方面中由接收端设备执行的方法。
第八方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被运行时,可以实现上述各方面中由发送端设备执行的方法。
第九方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于实现上述各方面的方法中接收端设备的功能。在一种可能的设计中,所述芯片系统还包括存储器,用于保存程序指令和/或数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
第十方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于实现上述各方面的方法中发送端设备的功能。在一种可能的设计中,所述芯片系统还包括存储器,用于保存程序指令和/或数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
第十一方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序被运行时,可以实现上述各方面中由接收端设备执行的方法。
第十二方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序被运行时,可以实现上述各方面中由发送端设备执行的方法。
本申请中,接收端设备、发送端设备和通信装置的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
附图说明
图1为本申请一实施例提供的一种数据中心网络的架构示意图;
图2为本申请一实施例提供的一种接收和发送数据的方法的流程图;
图3为本申请一实施例提供的接收数据的场景示意图;
图4为本申请一实施例提供的一种接收数据的方法的流程图;
图5为本申请一实施例提供的一种发送数据的方法的流程图;
图6为本申请一实施例提供的调度交换机的示意图;
图7为本申请一实施例提供的调度交换机的示意图;
图8为本申请一实施例提供的调度交换机的示意图;
图9为本申请一实施例提供的一种接收和发送数据的方法的流程图;
图10为本申请一实施例提供的发送数据的场景示意图;
图11为本申请一实施例提供的一种发送数据的方法的流程图;
图12为本申请一实施例提供的调度交换机的示意图;
图13为本申请一实施例提供的调度交换机的示意图;
图14为本申请一实施例提供的调度交换机的示意图;
图15为本申请一实施例提供的一种接收和发送数据的方法的流程图;
图16为本申请一实施例提供的一种通信装置的结构示意图;
图17为本申请一实施例提供的一种通信装置的结构示意图;
图18为本申请一实施例提供的一种通信装置的结构示意图。
具体实施方式
本申请说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
数据中心网络拓扑可以是一个三层网络拓扑或者二层网络拓扑,三层网络拓扑可以分为核心层、汇聚层和接入层,二层网络拓扑可以分为核心层(又称为骨干spine层)和接入层(又称为叶子leaf层)。
核心层是数据中心网络的高速交换主干层,用于将数据中心与数据中心之外的设备(如:外部运营商设备)连接。核心层可以包括具有高带宽(如:千兆以上带宽)的交换机和路由器。核心层具有如下至少一个特性:可靠性、高效性、冗余性、容错性、可管理性、适应性、低延时性等。核心层的路由连接在数据中心网络中起到十分关键的作用,一般可以通过多台设备的冗余连接来实现数据中心网络的可靠性。
汇聚层是接入层和核心层的“中介”,用于在工作站(如:终端设备或服务器)发出的数据进入核心层前汇聚数据,以减轻核心层的负荷。汇聚层可以包括支持三层交换技术和虚拟局域网(Virtual Local Area Network,VLAN)的交换机和路由器。
接入层与工作站相连,用于向本地网段提供工作站接入。接入层可以包括不支持VLAN和三层交换技术的交换机和路由器,也可以包括支持VLAN和三层交换技术的交换机和路由器。
示例的,图1是本申请的实施例应用的数据中心网络的架构示意图,该数据中心网络由接入层的接入设备、汇聚层的汇聚设备和核心层的核心设备所组成。接入设备连接工作站,工作站包括服务器和终端设备。如图1所示,该数据中心网络100包括核心层110、汇聚层120和接入层130。核心层110包括交换机111和路由器112。汇聚层120包括交换机121、交换机122、路由器123和路由器124。接入层130包括交换机131、交换机132、交换机133和交换机134。
其中,交换机111和路由器112均连接互联网(Internet)。交换机121、交换机122、路由器123和路由器124均与交换机111相连接。交换机121、交换机122、路由器123和路由器124均与路由器112相连接。交换机131分别与交换机121和交换机122相连。交换机132分别与交换机121和交换机122相连。交换机133分别与路由器123和路由器124相连。交换机134分别与路由器123和路由器124相连。工作站141和工作站142分别与交换机131连接。工作站143和工作站144分别与交换机132连接。工作站145和工作站146分别与交换机133连接。工作站147和工作站148分别与交换机134连接。工作站可以是服务器或终端设备,不予限定。
图1只是示意图,该数据中心网络中还可以包括其它设备,如还可以包括设备管理服务器。这些服务器用于管理所有交换机和路由器,确保它们正常工作,在图1中未画出。本申请的实施例对数据中心网络中包括的交换机、路由器和工作站的数量不做限定。另外,图1中所示的交换机、路由器和工作站间的连接方式只是一种示意性说明,在实际应用中,交换机、路由器和工作站还可以采用其他方式连接,本申请不予限定。
数据中心网络中的每个设备既可以作为发送端发送数据,也可以作为接收端接收数据。一个发送端可以向多个接收端发送数据。一个接收端也可以接收多个发送端发送的数据。比如,数据存储在多台服务器中,某一台服务器获取该数据时,可以向多台服务器发送数据查询请求,从多台服务器中获取该数据。多台服务器查询到数据后,向发出数据查询请求的服务器反馈相关的数据。为了避免接收端发生网络拥塞,可以根据接收端的带宽控制发送端的发送速率,使接收端接收数据的速率之和小于或等于该接收端的带宽。但是,每个发送端的数据流的个数存在差异,如何保障每条数据流的发送速率相同,保障不同发送端之间的数据流的公平性是一个亟待解决的问题。
为了解决在降低接收端的存储开销的情况下,使每条数据流发送一次数据的数据量相同,保障数据流之间的公平性问题,本申请实施例提供一种收发数据的方法。发送端向接收端发送通知报文,通知接收端该发送端待发送数据的数据流的个数M,M为大于或等于1的整数。在接收端接收来自发送端的通知报文后,在M个周期的每个周期内向发送端发送一个指示报文,每个指示报文包括一个信用标记,信用标记指示发送端依据第一数据量发送数据,以便于发送端根据M个信用标记向接收端发送M个数据流的数据,接收端接收来自发送端的M个数据流的数据,M个数据流中每条数据流的数据的数据量为第一数据量。
本申请实施例提供的收发数据的方法,接收端通过接收来自发送端的通知报文,获知发送端待发送数据的数据流的个数。由于接收端无需存储发送端的每个数据流的信息,仅存储发送端的数据流的个数,有效地降低了接收端的存储开销。另外,接收端根据待发送数据的数据流的个数向发送端发送信用标记,使得发送端根据信用标记指示的数据量发送每个数据流的数据,从而,使每条数据流发送一次数据的数据量相同,保障数据流之间的公平性,也使得接收端接收数据的速率之和小于或等于该接收端的带宽,避免接收端发生网络拥塞。
本申请实施例提供的收发数据的方法策略可以部署在数据中心网络中的汇聚层120和接入层130中的每个设备上,或者,部署在每个工作站上。同一层中的设备间可以采用该策略接收和发送数据,不同层间的设备可以采用传统技术接收和发送数据。例如,接入层130中的设备根据五元组中的目的网络协议(Internet Protocol,IP)地址和目的端口号查询存储的转发表,向汇聚层120中的设备转发数据。在一些实施例中,本申请实施例提供的收发数据的方法策略主要部署在接入层130中的设备。
例如,如图1所示,交换机131可以作为发送端,交换机132可以作为接收端,交换机131和交换机132间可以采用该策略接收和发送数据,其中,交换机131和交换机132通过交换机121连接,即交换机131和交换机132间可以通过交换机121传输数据。
又例如,如图1所示,交换机132可以作为发送端,交换机133可以作为接收端,交换机132和交换机133间可以采用该策略接收和发送数据。其中,交换机132和交换机133通过核心层110中的设备和汇聚层120中的设备连接,即交换机132和交换机133间通过核心层110中的设备和汇聚层120中的设备传输数据。比如,交换机132和交换机133间通过交换机122、交换机111和路由器123传输数据。
又例如,交换机131既可以作为发送端,也可以作为接收端,交换机131自己可以采用该策略接收和发送数据。
可选的,数据中心网络中的一个设备可以接收同一层中的其他设备发送的数据。例如,交换机131可以接收交换机132、交换机133和交换机134发送的数据。数据中心网络中的一个设备可以向同一层中的其他设备发送数据。例如,交换机131可以向交换机132、交换机133和交换机134发送数据。
应理解,核心层110、汇聚层120和接入层130中的设备用于转发数据,发出数据的设备和接收数据的设备是工作站。目的IP地址和目的端口号是指接收数据的工作站的IP地址和端口号。例如,工作站141可以是发出数据的源设备,工作站145可以是接收数据的目的设备。
接下来,结合附图对本申请实施例的实施方式进行详细描述。
图2为本申请实施例提供的一种接收和发送数据的方法的流程图。在这里假设工作站141向工作站145发送数据,工作站141可以是发出数据的源设备,工作站145可以是接收数据的目的设备。发送端为交换机131和接收端为交换机133为例进行说明。如图2所示,该方法可以包括:
S201、交换机131向交换机133发送通知报文。
通知报文包括交换机131向交换机133待发送数据的数据流的个数M,M为大于或等于1的整数。
可理解的,交换机131向交换机133待发送数据的数据流的个数可以是1条,也可以是2条或者更多。例如,当M=1时,表示交换机131向交换机133待发送数据的数据流的个数为1;当M=2时,表示交换机131向交换机133待发送数据的数据流的个数为2。
在一些实施例中,该通知报文可以是控制报文。例如,控制报文可以是交换机131与交换机133初始建立连接时,发送的建立连接通告报文,比如,该控制报文可以是同步报文(synchronization,SYN)。又例如,控制报文可以是确认报文(acknowledge,ACK)等等。
在另一些实施例中,该通知报文可以是数据报文。该数据报文包括交换机131向交换机133发送的与业务相关的数据。该数据报文可以是修改后的数据报文。可选的,控制报文可以是包括控制指令数据的报文,控制报文不包括与业务相关的数据。通知报文还可以是其他报文,不予限定。
可选的,通知报文还包括交换机131的剩余数据量,交换机131的剩余数据量为交换机131向交换机133待发送数据的剩余数据量,从而,以便于交换机133获知交换机131是否还有向交换机133发送的数据。
通知报文还可以包括源端口号、目的端口号、源IP地址、目的IP地址和传输层协议(如:传输控制协议(Transmission Control Protocol,TCP))。源端口号可以是工作站141的端口号。目的端口号可以是工作站145的端口号。源IP地址可以是工作站141的IP地址。目的IP地址可以是工作站145的IP地址。
可选的,数据中心网络中的设备可以通过端口号来区分不同的数据流。例如,交换机133可以根据源端口号区分不同的数据流。
可选的,交换机131可以根据工作站145的IP地址和工作站145的端口号查询转发表,确定转发通知报文的路径。
例如,交换机131可以根据工作站145的IP地址和工作站145的端口号查询交换机131存储的转发表,确定向交换机121转发通知报文。
交换机121可以根据工作站145的IP地址和工作站145的端口号查询交换机121存储的转发表,确定向交换机111转发通知报文。
交换机111可以根据工作站145的IP地址和工作站145的端口号查询交换机111存储的转发表,确定向路由器123转发通知报文。
路由器123可以根据工作站145的IP地址和工作站145的端口号查询路由器123存储的转发表,确定向交换机133转发通知报文。
上述交换机131向交换机133发送通知报文的路径只是举例说明,实际应用中还可以由其他路径,不予限定。
S202、交换机133接收来自交换机131的通知报文。
通知报文包括交换机131待发送数据的数据流的个数M和剩余数据量,M为大于或等于1的整数。
在一些实施例中,交换机133可以接收来自多个发送端的通知报文,交换机133可以存储每个发送端的数据流的个数和剩余数据量,以便于交换机133根据发送端的数据流的个数向发送端反馈信用标记。
在一种可能的设计中,交换机133可以为每个发送端配置一个虚拟输出队列(virtual output queue,VOQ),区分不同发送端的信息。发送端VOQ用于接收端(如:交换机133)区分不同发送端的信息。示例的,如图3所示,交换机133接收来自交换机131、交换机132和交换机134的通知报文。交换机133可以配置发送端VOQ1、发送端VOQ2和发送端VOQ3。发送端VOQ1用于存储交换机131的信息。发送端VOQ2用于存储交换机132的信息。发送端VOQ3用于存储交换机134的信息。
可选的,交换机133接收到通知报文后,可以根据发送端的地址确定发送端VOQ的标识,将发送端的信息存储到发送端VOQ的标识指示的发送端VOQ中。例如,交换机133可以根据交换机131的地址确定发送端VOQ1的标识,将交换机131的信息存储到发送端VOQ1。交换机133可以根据交换机132的地址确定发送端VOQ2的标识,将交换机132的信息存储到发送端VOQ2。交换机133可以根据交换机134的地址确定发送端VOQ3的标识,将交换机134的信息存储到发送端VOQ3。
发送端的信息可以包括发送端的地址、发送端VOQ的标识、第一数值和第二数值。第一数值指示交换机133存储的发送端向交换机133发送的数据流的个数。第二数值指示交换机133存储的发送端向交换机133待发送数据的剩余数据量。可理解的,发送端向交换机133待发送数据的剩余数据量为发送端向交换机133发送的数据流的总的剩余数据量。例如,发送端向交换机133发送的数据流的个数为3,发送端向交换机133待发送数据的剩余数据量为3条数据流的总的剩余数据量。其中,剩余数据量的单位可以为字节(byte)。
可选的,发送端的信息的对应关系可以以表格的形式呈现,表中的每一行可以称为表项,每个表项用于存储一个发送端的信息。发送端的信息还可以包括序号和发送端名称。可选的,表中可以不包括第一数值和第二数值。发送端的第一数值和第二数值可以存储在对应的发送端VOQ中。
示例的,表1呈现了发送端的信息的对应关系。
表1
序号 | 发送端名称 | 发送端的地址 | 发送端VOQ的标识 | 第一数值 | 第二数值 |
1 | 交换机131 | 192.168.0.4 | VOQ1_1 | 2 | 1000 |
2 | 交换机132 | 192.168.0.5 | VOQ1_2 | 5 | 5000 |
3 | 交换机134 | 192.168.0.6 | VOQ1_3 | 4 | 3000 |
… | … | … | … | … | … |
由表1可知,VOQ1表示发送端的VOQ。VOQ1_1可以表示交换机131的VOQ的标识。交换机131的地址可以是192.168.0.4。交换机131的地址192.168.0.4与交换机131的VOQ的标识VOQ_1具有对应关系。交换机131向交换机133发送的数据流的个数为2;交换机131向交换机133待发送数据的剩余数据量为1000字节。
VOQ1_2可以表示交换机132的VOQ的标识。交换机132的地址可以是192.168.0.5。交换机132的地址192.168.0.5与交换机132的VOQ的标识VOQ_2具有对应关系。交换机132向交换机133发送的数据流的个数为5;交换机132向交换机133待发送数据的剩余数据量为5000字节。
VOQ1_3可以表示交换机134的VOQ的标识。交换机134的地址可以是192.168.0.6。交换机134的地址192.168.0.3与交换机134的VOQ的标识VOQ_3具有对应关系。交换机134向交换机133发送的数据流的个数为4;交换机134向交换机133待发送数据的剩余数据量为3000字节。
需要说明的是,表1只是以表格的形式示意发送端的信息的对应关系在存储设备中的存储形式,并不是对发送端的信息的对应关系在存储设备中的存储形式的限定,当然,发送端的信息的对应关系在存储设备中的存储形式还可以以其他的形式存储,本申请实施例对此不做限定。
可选的,在交换机133接收来自发送端的通知报文后,可以根据通知报文包含的内容更新发送端的信息的对应关系表。示例的,如图4所示,交换机133接收来自交换机131的通知报文后,还可以执行S401至S405。
S401、交换机133确定是否存储有交换机131的信息。
若交换机133确定存储有交换机131的信息,执行S402;若交换机133确定未存储交换机131的信息,表示交换机133第一次接收到交换机131发送的数据,且交换机131的剩余数据量不为0,执行S405。
S402、交换机133确定接收到的交换机131的剩余数据量是否为0。
若交换机133确定接收到的交换机131的剩余数据量不为0,执行S403;若交换机133确定接收到的交换机131的剩余数据量为0,表示交换机131没有向交换机133待发送的数据,执行S404。
可理解的,交换机131的剩余数据量为交换机131向交换机133待发送数据的剩余数据量。
S403、交换机133根据交换机131待发送数据的数据流的个数M更新第一数值,以及根据交换机131待发送数据的数据流的剩余数据量更新第二数值。
可选的,交换机133根据交换机131待发送数据的数据流的个数M更新交换机131表项的第一数值。假设交换机133存储的交换机131的第一数值为2,接收到的交换机131待发送数据的数据流的个数为3,交换机131的第一数值更新为3。
可选的,交换机133根据交换机131待发送数据的数据流的剩余数据量更新交换机131表项的第二数值。假设交换机133存储的交换机131的第二数值为1000字节,接收到的交换机131待发送数据的数据流的剩余数据量为2000字节,交换机131的第二数值更新为2000字节。
S404、交换机133删除存储的交换机131的信息。
交换机133删除存储的交换机131的表项的信息,即可以删除存储的交换机131的名称、地址、VOQ的标识、待发送数据的数据流的个数和剩余数据量。示例的,如表2所示,为删除了表1中的交换机131的表项的信息的表。
表2
序号 | 发送端名称 | 发送端的地址 | 发送端VOQ的标识 | 第一数值 | 第二数值 |
1 | 交换机132 | 192.168.0.5 | VOQ1_2 | 5 | 5000 |
2 | 交换机134 | 192.168.0.6 | VOQ1_3 | 4 | 3000 |
… | … | … | … | … | … |
S405、交换机133将交换机131待发送数据的数据流的个数M存为第一数值,以及将交换机131待发送数据的数据流的剩余数据量存为第二数值。
可选的,交换机133将交换机131待发送数据的数据流的个数M存为交换机131表项的第一数值。假设交换机133接收到的交换机131待发送数据的数据流的个数为3,将交换机131的第一数值存为3。
可选的,交换机133将交换机131待发送数据的数据流的剩余数据量存为交换机131表项的第二数值。假设交换机133接收到的交换机131待发送数据的数据流的剩余数据量为2000字节,将交换机131的第二数值存为2000字节。
在交换机133首次接收到发送端发送的数据,可以在表1中新增表项,新增发送端的信息。示例的,交换机133首次接收到交换机131发送的数据,交换机133可以配置交换机131的表项。如表3所示,在表3中新增交换机131的信息的对应关系,以便于交换机133可以根据交换机131的地址确定交换机131的标识,存储交换机131待发送数据的个数和剩余数据量。
表3
序号 | 发送端名称 | 发送端的地址 | 发送端VOQ的标识 | 第一数值 | 第二数值 |
1 | 交换机132 | 192.168.0.5 | VOQ1_2 | 5 | 5000 |
2 | 交换机134 | 192.168.0.6 | VOQ1_3 | 4 | 3000 |
3 | 交换机131 | 192.168.0.4 | VOQ1_1 | 2 | 1000 |
… | … | … | … | … | … |
在另一些实施例中,若交换机133确定未存储交换机131的信息,且交换机131的剩余数据量为0,交换机133无需新增交换机131的表项。
在一种可能的设计中,交换机133可以采用循环方式调度发送端,根据发送端的数据流的个数向发送端反馈信用标记。发送端的数据流的个数越多,向发送端反馈信用标记的越多。
例如,发送端的信息的对应关系表的表项中记录有发送端的数据流的个数,交换机133可以采用循环方式调度发送端的信息的对应关系表中记录的表项,根据发送端的数据流的个数向发送端反馈信用标记。
又例如,发送端VOQ中记录有发送端的数据流的个数,交换机133可以采用循环方式调度发送端VOQ,根据发送端的数据流的个数向发送端反馈信用标记。可选的,交换机133可以根据发送端的信息的对应关系表中记录的表项循环调度发送端VOQ。
如图5所示,交换机133调度到一个发送端后,可以执行S501至S502。这里以第i发送端为例进行说明,第i发送端可以是发送端的信息的对应关系表中任意一个发送端。
S501、交换机133在Xi个周期内向第i发送端发送Xi个指示报文。
Xi可以表示第i发送端的待发送数据流的数据流的个数。交换机133在Xi个周期的每个周期内发送一个指示报文。每个指示报文包括一个信用标记,信用标记指示第i发送端依据第一数据量发送数据。第一数据量可以是预先配置的。数据中心网络中的每个设备均预先配置第一数据量,以便于设备根据信用标记指示的第一数据量发送数据。
在一些实施例中,周期、第一数据量和交换机133的带宽满足公式(1)。
C=D/BW (1)
其中,C表示周期,D表示第一数据量,BW表示交换机133的带宽。
S502、交换机133调度第i+1发送端。
交换机133在Xi+1个周期内向第i+1发送端发送Xi+1个指示报文。Xi+1可以表示第i+1发送端的待发送数据流的数据流的个数。
可理解的,交换机133调度第i发送端和第i+1发送端之间间隔了Xi个周期。
示例的,如图6所示,交换机133依次调度交换机131的VOQ、交换机132的VOQ和交换机134的VOQ,依此循环。当交换机133调度到交换机131时,执行S203。
可选的,若发送端的信息的对应关系表中新增了表项,交换机133增加调度发送端VOQ的个数。例如,如图7所示,假设数据中心网络的接入层130还包括交换机135,交换机135分别与汇聚层120中的设备和工作站连接,发送端的信息的对应关系表中新增交换机135的信息的对应关系,交换机133依次调度交换机131的VOQ、交换机132的VOQ、交换机134的VOQ和交换机135的VOQ,依此循环。
可选的,若发送端的信息的对应关系表中删除了表项,交换机133减少调度发送端VOQ的个数。例如,如图8所示,减少交换机134的信息的对应关系,交换机133依次调度交换机131的VOQ和交换机132的VOQ,依此循环。
S203、交换机133在M个周期内向交换机131发送M个指示报文,每个指示报文包括一个信用标记。
交换机133在M个周期的每个周期内向交换机131发送一个指示报文。信用标记指示交换机131依据第一数据量发送数据。
S204、交换机131接收来自交换机133的M个指示报文。
在一些实施例中,交换机131可以以交换机133发送指示报文的周期接收指示报文,即在M个周期的每个周期内接收来自交换机133的一个指示报文。
在另一些实施例中,由于数据中心网络存在某些质量问题,交换机131可能不按周期接收交换机133发送的指示报文,交换机131接收来自交换机133的M个指示报文的时间间隔可能不同。
可选的,如图9所示,在交换机131接收来自交换机133的M个指示报文之后,方法还包括S901。
S901、交换机131更新交换机131存储的交换机133的信用标记的个数。
在一些实施例中,交换机131接收到来自交换机133的一个信用标记,就对交换机133的信用标记的个数加一。
S205、交换机131根据M个信用标记向交换机133发送M个数据流的数据。
交换机131可以根据M个信用标记向交换机133发送M个数据流中每个数据流的数据,或者向交换机133发送M个数据流中部分数据流的数据,不予限定。交换机131向交换机133待发送数据的数据流的剩余数据量的减少量满足公式(2)。
E=A1*D (2)
其中,E表示减少量,A1表示交换机131向交换机133发送数据的信用标记的个数,D表示第一数据量。
在一些实施例中,交换机131可以轮询交换机133的M个数据流,每次轮询到一个数据流,根据一个信用标记发送一次数据,发送的数据的数据量为第一数据量。
S206、交换机133接收来自交换机131的M个数据流的数据。
交换机133可以根据交换机131发送M个数据流的数据的周期接收M个数据流的数据,即在在M个周期的每个周期内接收来自交换机131的一个数据流的数据,M个数据流中每条数据流的数据的数据量为第一数据量。
在另一些实施例中,由于数据中心网络存在某些质量问题,交换机133可能不按周期接收交换机131发送的数据,交换机133接收来自交换机131的M个数据流的数据的时间间隔可能不同。
从而,交换机133通过接收来自交换机131的通知报文,获知交换机131待发送数据的数据流的个数。由于交换机133无需存储交换机131的每个数据流的信息,存储交换机131的数据流的个数,有效地降低了交换机133的存储开销。另外,交换机133根据待发送数据的数据流的个数向交换机131发送信用标记,使得交换机131根据信用标记指示的数据量发送每个数据流的数据,从而,使每条数据流发送一次数据的数据量相同,保障数据流之间的公平性,也使得交换机133接收数据的速率之和小于或等于该交换机133的带宽,避免交换机133发生网络拥塞。
在另一些实施例中,由于交换机131可以向多个接收端发送数据,如果将发往不同接收端的数据流全排在一个队列,这样可能发生“队头阻塞”的现象。比如第一个数据流的数据量特别多,第二个数据流的数据量特别少,在第一个数据流的数据发送完成后,再发送第二个数据流的数据,因此,第二个数据流的数据被阻塞。例如,第一个数据流可以是交换机131向交换机133发送数据对应的数据流。第二个数据流可以是交换机131向交换机134发送数据对应的数据流。
在一种可能的设计中,交换机131可以为每个接收端配置一个VOQ,区分发往不同接收端的数据流的数据。接收端VOQ用于发送端(如:交换机131)区分不同接收端的数据流的数据。示例的,如图10所示,交换机131向交换机132、交换机133和交换机134发送数据,交换机131可以配置接收端VOQ1、接收端VOQ2和接收端VOQ3。接收端VOQ1用于缓存发往交换机132的数据。接收端VOQ2用于缓存发往交换机133的数据。接收端VOQ3用于缓存发往交换机134的数据。
从而,交换机131依据接收端VOQ对发往不同接收端的数据进行划分,将发往不同接收端的数据缓存在接收端对应的VOQ内,发往不同接收端的数据在不同接收端VOQ内排队,避免发生“队头阻塞”的现象。
可选的,交换机131生成数据后,可以根据接收端的地址确定接收端VOQ的标识,将发往接收端的数据缓存到接收端VOQ的标识指示的接收端VOQ中。例如,交换机131可以根据交换机132的地址确定接收端VOQ1的标识,将发往交换机132的数据缓存到接收端VOQ1。交换机131可以根据交换机133的地址确定接收端VOQ2的标识,将发往交换机133的数据缓存到接收端VOQ2。交换机131可以根据交换机134的地址确定接收端VOQ3的标识,将发往交换机134的数据缓存到接收端VOQ3。
接收端的地址与接收端VOQ的标识的对应关系可以以表格的形式呈现,即表4呈现了接收端的地址与接收端VOQ的标识的对应关系。
表4
序号 | 接收端 | 接收端的地址 | 接收端VOQ的标识 |
1 | 交换机132 | 192.168.0.1 | VOQ2_1 |
2 | 交换机133 | 192.168.0.2 | VOQ2_2 |
3 | 交换机134 | 192.168.0.3 | VOQ2_3 |
… | … | … | … |
由表4可知,VOQ2表示接收端的VOQ。VOQ2_1可以表示交换机132的VOQ的标识。交换机132的地址可以是192.168.0.1。交换机132的地址192.168.0.1与交换机132的VOQ的标识VOQ2_1具有对应关系。
VOQ2_2可以表示交换机133的VOQ的标识。交换机133的地址可以是192.168.0.2。交换机133的地址192.168.0.2与交换机133的VOQ的标识VOQ2_2具有对应关系。
VOQ2_3可以表示交换机134的VOQ的标识。交换机134的地址可以是192.168.0.3。交换机134的地址192.168.0.3与交换机134的VOQ的标识VOQ2_3具有对应关系。
需要说明的是,表4只是以表格的形式示意接收端的地址与接收端VOQ的标识的对应关系在存储设备中的存储形式,并不是对接收端的地址与接收端VOQ的标识的对应关系在存储设备中的存储形式的限定,当然,接收端的地址与接收端VOQ的标识的对应关系在存储设备中的存储形式还可以以其他的形式存储,本申请实施例对此不做限定。
可选的,表4中的每一行可以称为表项。在交换机131初次生成了发往接收端的数据流,可以在表4中新增表项,新增接收端的地址与接收端VOQ的标识的对应关系。示例的,假设数据中心网络的接入层130还包括交换机135,交换机131生成发往交换机135的数据流的数据,交换机131可以配置接收端VOQ4,接收端VOQ4用于缓存发往交换机135的数据。如表5所示,在表4中新增交换机135的地址和交换机135的VOQ4的标识的对应关系,以便于交换机131可以根据交换机135的地址确定接收端VOQ4的标识,将发往交换机135的数据缓存到接收端VOQ4。
表5
序号 | 接收端 | 接收端的地址 | 接收端VOQ的标识 |
1 | 交换机132 | 192.168.0.1 | VOQ2_1 |
2 | 交换机133 | 192.168.0.2 | VOQ2_2 |
3 | 交换机134 | 192.168.0.3 | VOQ2_3 |
4 | 交换机135 | 192.168.0.4 | VOQ2_4 |
… | … | … | … |
由表5可知,VOQ2_4可以表示交换机135的VOQ的标识。交换机135的地址可以是192.168.0.4。交换机135的地址192.168.0.4与交换机135的VOQ的标识VOQ_4具有对应关系。
可选的,在交换机131将表4中的接收端的数据发送完成后,交换机131可以删除该接收端对应的表项。示例的,交换机131发往交换机134的数据发送完成,交换机131删除交换机134的表项,如表6所示,为删除交换机134的表项的表。
表6
序号 | 接收端 | 接收端的地址 | 接收端VOQ的标识 |
1 | 交换机132 | 192.168.0.1 | VOQ2_1 |
2 | 交换机133 | 192.168.0.2 | VOQ2_2 |
… | … | … | … |
在一种可能的设计中,交换机131可以采用循环方式调度接收端VOQ,发送接收端VOQ缓存的数据。可选的,交换机131可以根据接收端的地址与接收端VOQ的标识的对应关系表中记录的表项循环调度接收端VOQ。
在一些实施例中,如图11所示,交换机131调度到一个接收端VOQ,可以执行S1101至S1103,即根据信用标记发送该接收端VOQ的数据。这里以第i接收端VOQ为例进行说明,第i接收端VOQ可以是接收端的地址与接收端VOQ的标识的对应关系表中任意一个接收端VOQ。
S1101、交换机131确定第i接收端的信用标记的个数是否大于0。
若交换机131确定第i接收端的信用标记的个数大于0,执行S1102;若交换机131确定第i接收端的信用标记的个数等于0,不允许发送第i接收端VOQ内的数据,执行S1103。
S1102、交换机131根据Xi个信用标记向第i接收端发送数据。
在一些实施例中,交换机131根据信用标记指示的第一数据量向第i接收端发送数据报文,数据报文的数据量为第一数据量。数据报文包括交换机131待发送数据的数据流的个数。
可选的,交换机131每发送一次数据,信用标记的个数就减一,以便于交换机131根据剩余的信用标记发送数据。
S1103、交换机131调度第i+1接收端。
交换机131确定第i+1接收端的信用标记的个数是否大于0,从而,确定是否发送第i+1接收端VOQ内的数据。
可理解的,交换机131调度第i接收端和第i+1接收端之间间隔了Xi个周期。
示例的,在交换机131向交换机133发送通知报文前,交换机131可以确定交换机133的信用标记的个数是否大于0,若交换机131确定交换机133的信用标记的个数大于0,交换机131向交换机133发送通知报文;若交换机131确定交换机133的信用标记的个数等于0,调度其他接收端。
示例的,如图12所示,交换机131依次调度交换机132的VOQ、交换机133的VOQ和交换机134的VOQ,依此循环。
可选的,若接收端的地址与接收端VOQ的标识的对应关系表中新增了表项,交换机131增加调度接收端VOQ的个数。例如,如图13所示,假设数据中心网络的接入层130还包括交换机135,接收端的地址与接收端VOQ的标识的对应关系表中新增交换机135的地址和交换机135的VOQ4的标识的对应关系,交换机131依次调度交换机132的VOQ、交换机133的VOQ、交换机134的VOQ和交换机135的VOQ,依此循环。
可选的,若接收端的地址与接收端VOQ的标识的对应关系表中删除了表项,交换机131减少调度接收端VOQ的个数。例如,如图14所示,减少交换机134的地址和交换机134的VOQ3的标识的对应关系,交换机131依次调度交换机132的VOQ和交换机133的VOQ,依此循环。
在另一些实施例中,数据中心网络中有些设备可能无法识别信用标记,对于该类设备而言,接收端可以根据接收到的数据的数据量指示发送端停止发送数据。如图15所示,所述方法还包括以下步骤。
S1501、交换机134向交换机133发送数据。
S1502、交换机133接收来自交换机134的数据。
S1503、交换机133确定第二数据量。
交换机133统计接收到的来自交换机134的数据,第二数据量为接收到的来自交换机134的数据的数据量。当第二数据量与第三数据量之差大于预设数据量,或第二数据量与第三数据量之差的绝对值大于预设数据量时,执行S1504。
第三数据量是根据交换机133的带宽和多个发送端的数据流的个数确定的。在一些实施例中,第三数据量可以满足公式(3)。
F=BW*(K/L) (3)
其中,F表示第三数据量,BW表示交换机133的带宽,K表示交换机134的数据流的个数,L表示向交换机133发送数据的所有发送端的数据流的个数,可以包括交换机134的数据流的个数和交换机131的数据流的个数。
S1504、交换机133向交换机134发送停止报文。
停止报文指示交换机134停止发送数据。
S1505、交换机134接收来自交换机133的停止报文,停止向交换机133发送数据。
从而,在交换机134无法识别信用标记的情况下,交换机133可以统计来自交换机134的数据的数据量,若来自交换机134的数据的数据量和来自交换机131的数据的数据量大于交换机133的处理数据的能力,交换机133可以向交换机134发送停止报文,指示交换机134停止发送数据,避免交换机133接收过多的来自交换机134的数据的数据量,发生网络拥塞。
可以理解的是,为了实现上述实施例中功能,交换机包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
图16、图17和图18为本申请的实施例提供的可能的通信装置的结构示意图。这些通信装置可以用于实现上述方法实施例中交换机的功能,因此也能实现上述方法实施例所具备的有益效果。
如图16所示,本申请实施例提供了一种通信装置1600,该通信装置1600可以是如图1所示的交换机131,还可以是应用于交换机131的模块(如芯片)。该通信装置1600包括接收单元1610、发送单元1620、处理单元1630。通信装置1600用于实现上述图2、图9、图11或图15中所示的方法实施例中交换机131的功能。
当通信装置1600用于实现图2所示的方法实施例中交换机131的功能时:接收单元1610用于执行S204;发送单元1620用于执行S201和S205。
当通信装置1600用于实现图9所示的方法实施例中交换机131的功能时:接收单元1610用于执行S204;发送单元1620用于执行S201和S205,处理单元1630用于执行S901。
当通信装置1600用于实现图11所示的方法实施例中交换机131的功能时:发送单元1620用于执行S1102,处理单元1630用于执行S1101和S1103。
当通信装置1600用于实现图15所示的方法实施例中交换机131的功能时:接收单元1610用于执行S204;发送单元1620用于执行S201和S205,处理单元1630用于执行S901。
有关上述接收单元1610、发送单元1620、处理单元1630更详细的描述可以直接参考图2、图9、图11或图15所示的方法实施例中相关描述直接得到。
如图17所示,本申请实施例提供了一种通信装置1700,该通信装置1700可以是如图1所示的交换机133,还可以是应用于交换机133的模块(如芯片)。该通信装置1700包括第一接收单元1710、第一发送单元1720、第一处理单元1730、第二接收单元1740、第二发送单元1750和第二处理单元1760。通信装置1700用于实现上述图2、图4、图5、图9或图15中所示的方法实施例中交换机133的功能。
当通信装置1700用于实现图2所示的方法实施例中交换机133的功能时:第一接收单元1710用于执行S202和S206,第一发送单元1720用于执行S203。
当通信装置1700用于实现图4所示的方法实施例中交换机133的功能时:第一接收单元1710用于执行S202;第一处理单元1730用于执行S401至S405。
当通信装置1700用于实现图5所示的方法实施例中交换机133的功能时:第一发送单元1720用于执行S501;第一处理单元1730用于执行S502。
当通信装置1700用于实现图9所示的方法实施例中交换机133的功能时:第一接收单元1710用于执行S202和S206,第一发送单元1720用于执行S203。
当通信装置1700用于实现图15所示的方法实施例中交换机133的功能时:第一接收单元1710用于执行S202和S206,第一发送单元1720用于执行S203。
当通信装置1700用于实现图15所示的方法实施例中交换机133的功能时:第二接收单元1740用于执行S1502,第二处理单元1760用于执行S1503,第二发送单元1750用于执行S1504。
有关上述处理单元1710和收发单元1720更详细的描述可以直接参考图2、图4、图5、图9或图15所示的方法实施例中相关描述直接得到。
如图18所示,通信装置1800包括处理器1810和接口电路1820。处理器1810和接口电路1820之间相互耦合。可以理解的是,接口电路1820可以为收发器或输入输出接口。可选的,通信装置1800还可以包括存储器1830,用于存储处理器1810执行的指令或存储处理器1810运行指令所需要的输入数据或存储处理器1810运行指令后产生的数据。
当通信装置1800用于实现图2、图4、图5、图9、图11或图15所示的方法时,处理器1810用于执行上述处理单元1630、第一处理单元1730或第二处理单元1760的功能,接口电路1820用于执行上述接收单元1610、发送单元1620、第一接收单元1710、第一发送单元1720、第二接收单元1740或第二发送单元1750的功能。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。
Claims (20)
1.一种接收数据的方法,其特征在于,包括:
接收端接收来自第一发送端的通知报文,所述通知报文包括所述第一发送端待发送数据的数据流的个数M,M为大于或等于1的整数;
所述接收端在M个周期内向所述第一发送端发送M个指示报文,一个所述周期内发送一个所述指示报文,每个指示报文包括一个信用标记,所述信用标记指示所述第一发送端依据第一数据量发送数据;
所述接收端接收来自所述第一发送端的M个数据流的数据,所述M个数据流中每条数据流的数据的数据量为所述第一数据量。
2.根据权利要求1所述的方法,其特征在于,在所述接收端接收来自第一发送端的通知报文之后,所述方法还包括:
所述接收端根据所述M更新第一数值,所述第一数值指示所述接收端存储的所述第一发送端向所述接收端发送的数据流的个数;
或者,
将所述M存为第一数值,所述第一数值指示所述接收端存储的所述第一发送端向所述接收端发送的数据流的个数。
3.根据权利要求2所述的方法,其特征在于,所述通知报文还包括所述第一发送端的剩余数据量,所述方法还包括:
所述接收端根据所述第一发送端的剩余数据量更新第二数值,所述第二数值指示所述接收端存储的所述第一发送端的剩余数据量;
或者,
将所述剩余数据量存为第二数值,所述第二数值指示所述接收端存储的所述第一发送端的剩余数据量;
所述第一发送端的剩余数据量为所述第一发送端向所述接收端待发送数据的剩余数据量。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当接收到的所述第一发送端的剩余数据量为0时,所述接收端删除存储的所述第一发送端的信息。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
所述接收端接收来自第二发送端的数据;
所述接收端确定第二数据量,所述第二数据量为接收到的来自所述第二发送端的数据的数据量;
当所述第二数据量与第三数据量之差大于预设数据量时,向所述第二发送端发送停止报文,所述停止报文指示所述第二发送端停止发送数据,所述第三数据量是根据所述接收端的带宽和多个发送端的数据流的个数确定的,所述多个发送端包括所述第一发送端和所述第二发送端。
6.一种发送数据的方法,其特征在于,包括:
发送端向接收端发送通知报文,所述通知报文包括所述发送端待发送数据的数据流的个数M,M为大于或等于1的整数;
所述发送端接收来自所述接收端的M个指示报文,所述M个指示报文中的每个指示报文包括一个信用标记,所述信用标记指示所述发送端依据第一数据量发送数据;
所述发送端根据所述M个信用标记向所述接收端发送M个数据流的数据,所述M个数据流中每条数据流的数据的数据量为所述第一数据量。
7.根据权利要求6所述的方法,其特征在于,所述通知报文还包括所述发送端的剩余数据量,所述发送端的剩余数据量为所述发送端向所述接收端待发送数据的剩余数据量。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
所述发送端确定所述接收端的所述信用标记的个数是否大于0;
若所述信用标记的个数大于0,所述发送端向所述接收端发送所述通知报文。
9.根据权利要求6或7所述的方法,其特征在于,在所述发送端接收来自所述接收端的M个指示报文之后,所述方法还包括:
所述发送端更新所述发送端存储的所述接收端的信用标记的个数。
10.一种通信装置,其特征在于,所述通信装置为接收端,包括:
第一接收单元,用于接收来自第一发送端的通知报文,所述通知报文包括所述第一发送端待发送数据的数据流的个数M,M为大于或等于1的整数;
第一发送单元,还用于在M个周期内向所述第一发送端发送M个指示报文,一个所述周期内发送一个所述指示报文,每个指示报文包括一个信用标记,所述信用标记指示所述第一发送端依据第一数据量发送数据;
所述第一接收单元,还用于接收来自所述第一发送端的M个数据流的数据,所述M个数据流中每条数据流的数据的数据量为所述第一数据量。
11.根据权利要求10所述的通信装置,其特征在于,所述装置还包括第一处理单元,其中,
所述第一处理单元,用于根据所述M更新第一数值,所述第一数值指示所述接收端存储的所述第一发送端向所述接收端发送的数据流的个数;
或者,
将所述M存为第一数值,所述第一数值指示所述接收端存储的所述第一发送端向所述接收端发送的数据流的个数。
12.根据权利要求11所述的通信装置,其特征在于,所述通知报文还包括所述第一发送端的剩余数据量,所述第一处理单元还用于:
根据所述第一发送端的剩余数据量更新第二数值,所述第二数值指示所述接收端存储的所述第一发送端的剩余数据量;
或者,
将所述剩余数据量存为第二数值,所述第二数值指示所述接收端存储的所述第一发送端的剩余数据量;
所述第一发送端的剩余数据量为所述第一发送端向所述接收端待发送数据的剩余数据量。
13.根据权利要求12所述的通信装置,其特征在于,
当接收到的所述第一发送端的剩余数据量为0时,所述第一处理单元还用于删除存储的所述第一发送端的信息。
14.根据权利要求10-13中任一项所述的通信装置,其特征在于,所述通信装置还包括第二接收单元、第二发送单元和第二处理单元,
所述第二接收单元用于接收来自第二发送端的数据;
所述第二处理单元,用于确定第二数据量,所述第二数据量为接收到的来自所述第二发送端的数据的数据量;
所述第二发送单元,用于当所述第二数据量与第三数据量之差大于预设数据量时,向所述第二发送端发送停止报文,所述停止报文指示所述第二发送端停止发送数据,所述第三数据量是根据所述接收端的带宽和多个发送端的数据流的个数确定的,所述多个发送端包括所述第一发送端和所述第二发送端。
15.一种通信装置,其特征在于,所述通信装置为发送端,包括:
发送单元,用于向接收端发送通知报文,所述通知报文包括所述发送端待发送数据的数据流的个数M,M为大于或等于1的整数;
接收单元,用于接收来自所述接收端的M个指示报文,所述M个指示报文中的每个指示报文包括一个信用标记,所述信用标记指示所述发送端依据第一数据量发送数据;
所述发送单元,还用于根据所述M个信用标记向所述接收端发送M个数据流的数据,所述M个数据流中每条数据流的数据的数据量为所述第一数据量。
16.根据权利要求15所述的通信装置,其特征在于,所述通知报文还包括所述发送端的剩余数据量,所述发送端的剩余数据量为所述发送端向所述接收端待发送数据的剩余数据量。
17.根据权利要求15或16所述的通信装置,其特征在于,所述发送单元,用于在所述接收端的所述信用标记的个数大于0时,向所述接收端发送所述通知报文。
18.根据权利要求15或16所述的通信装置,其特征在于,所述装置还包括处理单元,其中,
所述处理单元,用于更新所述发送端存储的所述接收端的信用标记的个数。
19.一种通信装置,其特征在于,包括处理器、存储器和接口电路,所述接口电路用于接收来自所述通信装置之外的其它通信装置的报文并传输至所述处理器,所述存储器用于存储代码指令,使得所述代码指令被所述处理器执行时实现如权利要求1-5中任一项所述的方法。
20.一种通信装置,其特征在于,包括处理器、存储器和接口电路,所述接口电路用于将来自所述处理器的报文发送给所述通信装置之外的其它通信装置,所述存储器用于存储代码指令,使得所述代码指令被所述处理器执行时实现如权利要求6-9中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911319930.2A CN113014498B (zh) | 2019-12-19 | 2019-12-19 | 一种收发数据的方法及装置 |
PCT/CN2020/117403 WO2021120764A1 (zh) | 2019-12-19 | 2020-09-24 | 一种收发数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911319930.2A CN113014498B (zh) | 2019-12-19 | 2019-12-19 | 一种收发数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113014498A CN113014498A (zh) | 2021-06-22 |
CN113014498B true CN113014498B (zh) | 2025-03-11 |
Family
ID=76381568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911319930.2A Active CN113014498B (zh) | 2019-12-19 | 2019-12-19 | 一种收发数据的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113014498B (zh) |
WO (1) | WO2021120764A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114978986B (zh) * | 2022-05-13 | 2024-05-14 | 中国联合网络通信集团有限公司 | 一种数据传输方法、装置及存储介质 |
CN119211137B (zh) * | 2024-11-27 | 2025-03-18 | 广州壁仞集成电路有限公司 | 多处理器系统和多处理器系统的流控方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067665A (zh) * | 2018-09-25 | 2018-12-21 | 华为技术有限公司 | 拥塞控制方法和网络设备 |
CN109995664A (zh) * | 2017-12-29 | 2019-07-09 | 华为技术有限公司 | 一种发送数据流的方法、设备和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7474613B2 (en) * | 2002-07-25 | 2009-01-06 | Cisco Technology, Inc. | Methods and apparatus for credit-based flow control |
US11190450B2 (en) * | 2016-06-30 | 2021-11-30 | Intel Corporation | System to monitor and control data in a network |
CN108418767B (zh) * | 2018-02-09 | 2021-12-21 | 华为技术有限公司 | 数据传输方法、设备及计算机存储介质 |
-
2019
- 2019-12-19 CN CN201911319930.2A patent/CN113014498B/zh active Active
-
2020
- 2020-09-24 WO PCT/CN2020/117403 patent/WO2021120764A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109995664A (zh) * | 2017-12-29 | 2019-07-09 | 华为技术有限公司 | 一种发送数据流的方法、设备和系统 |
CN109067665A (zh) * | 2018-09-25 | 2018-12-21 | 华为技术有限公司 | 拥塞控制方法和网络设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2021120764A1 (zh) | 2021-06-24 |
CN113014498A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8553684B2 (en) | Network switching system having variable headers and addresses | |
US7733781B2 (en) | Distributed congestion avoidance in a network switching system | |
US7397809B2 (en) | Scheduling methods for combined unicast and multicast queuing | |
CN106998302B (zh) | 一种业务流量的分配方法及装置 | |
CN112585914B (zh) | 报文转发方法、装置以及电子设备 | |
US9553820B2 (en) | Maintaining packet order in a parallel processing network device | |
WO2019033857A1 (zh) | 报文控制方法及网络装置 | |
US9106593B2 (en) | Multicast flow reordering scheme | |
US10374959B2 (en) | Method for transmitting data in a packet-oriented communications network and correspondingly configured user terminal in said communications network | |
US20080298397A1 (en) | Communication fabric bandwidth management | |
WO2018036173A1 (zh) | 一种网络负载均衡方法、设备及系统 | |
CN113225196B (zh) | 服务等级配置方法以及装置 | |
CN112311685A (zh) | 一种处理网络拥塞的方法以及相关装置 | |
CN113014498B (zh) | 一种收发数据的方法及装置 | |
CN105635000A (zh) | 一种报文存储转发方法和电路及设备 | |
US9172653B2 (en) | Sending request messages to nodes indicated as unresolved | |
US12010023B2 (en) | Network congestion handling method and related apparatus | |
US7990873B2 (en) | Traffic shaping via internal loopback | |
US20120320909A1 (en) | Sending request messages over designated communications channels | |
CN111416776A (zh) | 传输数据的方法和网络设备 | |
WO2019200568A1 (zh) | 一种数据通信方法及装置 | |
CN108924066B (zh) | 报文转发方法和装置 | |
CN108337182A (zh) | 一种报负载分担方法及网络设备 | |
US20200153726A1 (en) | Method and apparatus for dynamic track allocation in a network | |
CN119211151B (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 |