CN116418745A - 一种数据交换方法及装置 - Google Patents

一种数据交换方法及装置 Download PDF

Info

Publication number
CN116418745A
CN116418745A CN202210010085.6A CN202210010085A CN116418745A CN 116418745 A CN116418745 A CN 116418745A CN 202210010085 A CN202210010085 A CN 202210010085A CN 116418745 A CN116418745 A CN 116418745A
Authority
CN
China
Prior art keywords
data
node
switching
information
block
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
CN202210010085.6A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210010085.6A priority Critical patent/CN116418745A/zh
Priority to PCT/CN2022/131459 priority patent/WO2023130835A1/zh
Publication of CN116418745A publication Critical patent/CN116418745A/zh
Pending legal-status Critical Current

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/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction

Landscapes

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

Abstract

本申请提供一种数据交换方法及装置,涉及通信技术领域,用于提高数据交换网络的交换效率,降低交换时延。所述方法包括:源节点接收来自第一交换节点的流指示信息,所述流指示信息用于指示目标数据流发生拥塞,第一交换节点是目标数据流的交换路径中的节点;所述源节点向多个交换节点发送多个写数据信息和目标数据流的多个数据块,所述多个写数据信息用于指示所述多个交换节点存储所述多个数据块且停止转发所述多个数据块;所述多个交换节点根据所述多个写数据信息存储所述多个数据块;所述多个交换节点接收来自目的节点的多个调度信息,所述多个调度信息用于调度所述多个数据块;所述多个交换节点向所述目的节点发送所述多个数据块。

Description

一种数据交换方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种数据交换方法及装置。
背景技术
数据交换网络一般采用多级(比如,两级或三级)交换节点的组网模式,为接入网络内的众多服务器(server)提供全连接的网络,将不同服务器之间的数据进行交换。在数据交换网络中,每个交换节点具有一定容量的缓存,该缓存可用于吸收突发的数据流。当一个交换节点的待调度流量超出了该交换节点的交换能力和缓存能力时,则会导致队列头阻和丢包等现象。比如,当多个源节点同时向目的节点的同一个输出端口发送数据包时,由于该输出端口对应的输出队列(也可以称为缓存队列)的缓存容量有限,该输出端口可能出现拥塞现象,导致缓存溢出,从而导致数据丢包等现象。
现有技术中,通常采用显式拥塞通知(explicit congestion notification,ECN)、基于优先级的流量控制(priority-based flow control,PFC)和尾部丢弃(taildrop)来控制数据交换网络中的流量,以避免缓存溢出。其中,ECN可用于实现源节点(比如,服务器或手机等)的流量控制,比如,网络中的交换节点在出现拥塞前通知源节点降低发送速率,以达到降低网络拥塞的效果。PFC可用于实现交换节点间的流量控制,比如,下游交换节点通知上游交换节点停止数据的发送,以避免本地缓存溢出。尾部丢弃是指通过丢弃数据包来降低拥塞的一种方式,比如,某一交换节点在缓存已经占满时直接丢弃新接收到的数据包。
但是,上述几种方式虽然能在一定程度上降低拥塞现象,但是效果不佳,同时也会影响数据交换网络的交换效率,增加交换时延。
发明内容
本申请提供一种数据交换方法及装置,解决了现有技术中数据交换网络的交换效率低、交换时延长的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种数据交换方法,该方法包括:源节点接收来自第一交换节点的流指示信息,该流指示信息用于指示目标数据流发生拥塞,第一交换节点为目标数据流的交换路径中的节点;该源节点向多个交换节点发送多个写数据信息和目标数据流的多个数据块,该多个写数据信息用于指示该多个交换节点存储该多个数据块且停止转发该多个数据块。
在上述技术方案中,当第一交换节点确定目标数据流发生拥塞或者即将拥塞时,第一交换节点可以通知源节点,这样源节点可以将目标数据流的多个数据块分别存储在多个交换节点中,即源节点可以将该多个数据块存储在该多个交换节点构成的更大容量的缓存池中,从而能够提供更大的缓存,降低目标数据流的拥塞、避免头阻,提高对突发流量的吸收能力,进而提高数据的交换效率、降低交换时延。
在第一方面的一种可能的实现方式中,该源节点向多个交换节点发送多个写数据信息和目标数据流的多个数据块之后,该方法还包括:该源节点接收来自该多个交换节点的多个块描述信息,该多个块描述信息与该多个数据块一一对应,每个块描述信息用于指示存储对应的数据块的节点信息,比如存储数据块的节点标识和数据块的存储地址;该源节点根据向目的节点发送该多个块描述信息。可选的,该块描述信息还用于指示对应的数据块包括的数据包的标识;或者,源节点向目的节点发送该多个数据块中每个数据块包括的数据包的标识。上述可能的实现方式中,当源节点将目标数据流的多个数据块分别存储在多个交换节点中时,该多个交换节点可以向源节点返回对应存储的数据块的块描述信息,以使源节点将多个块描述信息发送给目的节点,这样目的节点可以根据该多个块描述信息对该多个数据块进行有序调度。
在第一方面的一种可能的实现方式中,该源节点向多个交换节点发送多个写数据信息和目标数据流的多个数据块之前,该方法还包括:该源节点将该目标数据流中待交换的数据划分为该多个数据块,该多个数据块的数量大于或等于该多个交换节点的数量。上述可能的实现方式中,源节点可以根据实际情况将该目标数据流中待交换的数据划分为该多个数据块,以将数据块分散存储在多个交换节点中。
在第一方面的一种可能的实现方式中,该多个交换节点中一个交换节点对应的数据块在该多个数据块中的顺序与该交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,该交换节点对应的距离为该交换节点与第一交换节点之间的距离,该多个距离包括该多个交换节点中每个交换节点与第一交换节点之间的距离。上述可能的实现方式中,能够减小目的节点调度该多个数据块时的路径,以提高目的节点调度该多个数据块的效率。
第二方面,提供一种数据交换方法,该方法包括:交换节点向源节点发送流指示信息,该流指示信息用于指示目标数据流发生拥塞,该交换节点是该目标数据流的交换路径中的节点;该交换节点接收来自源节点的写数据信息和目标数据流的数据块,该写数据信息用于指示该交换节点存储该数据块且停止转发该数据块;该交换节点根据该写数据信息存储该数据块;该交换节点接收来自目的节点的调度信息,该调度信息用于调度该数据块;该交换节点向该目的节点发送该数据块。
在上述技术方案中,当该交换节点确定目标数据流发生拥塞或者即将拥塞时,该交换节点可以通知源节点,这样源节点可以将目标数据流的多个数据块分别存储在多个交换节点中,即源节点可以将该多个数据块存储在该多个交换节点构成的更大容量的缓存池中,从而能够提供更大的缓存,降低目标数据流的拥塞、避免头阻,提高对突发流量的吸收能力,进而提高数据的交换效率、降低交换时延。
在第二方面的一种可能的实现方式中,该交换节点根据该写数据信息存储该数据块之后,该方法还包括:该交换节点向该目的节点发送该数据块的块描述信息;或者,该交换节点向该源节点发送该数据块的块描述信息;其中,该块描述信息用于指示存储该数据块的节点信息。可选的,该块描述信息还用于指示对应的数据块包括的数据包的标识。上述可能的实现方式中,当源节点将目标数据流的多个数据块分别存储在多个交换节点中时,该多个交换节点中的每个交换节点可以向源节点或者目的节点返回对应存储的数据块的块描述信息,这样目的节点可以根据多个块描述信息对该多个数据块进行有序调度。
第三方面,提供一种数据交换方法,该方法包括:第一交换节点向源节点发送流指示信息,该流指示信息用于指示目标数据流发生拥塞,该第一交换节点是该目标数据流的交换路径中的节点;当该源节点接收到该流指示信息时,向多个交换节点发送多个写数据信息和该目标数据流的多个数据块,该多个写数据信息用于指示该多个交换节点存储该多个数据块且停止转发该多个数据块;该多个交换节点接收该多个写数据信息和该多个数据块,并根据该多个写数据信息存储该多个数据块;目的节点向该多个交换节点发送多个调度信息,该多个调度信息用于调度该多个数据块;该多个交换节点接收该多个调度信息,并根据该多个调度信息向该目的节点发送该多个数据块。
在上述技术方案中,当目标数据流在第一交换节点中发生拥塞或者即将拥塞时,第一交换节点可以通知源节点,这样源节点可以将目标数据流的多个数据块分别存储在多个交换节点中,即源节点可以将该多个数据块存储在该多个交换节点构成的更大容量的缓存池中,这样目的节点可以从该多个交换节点调度对应的数据块,从而使得该数据交换网络能够提供更大的缓存,降低目标数据流的拥塞、避免头阻,提高对突发流量的吸收能力,进而提高数据的交换效率、降低交换时延。
在第三方面的一种可能的实现方式中,该方法还包括:该多个交换节点向该源节点发送多个块描述信息,该多个块描述信息与该多个数据块一一对应,每个块描述信息用于指示存储对应的数据块的节点信息;该源节点接收该多个块描述信息,并向该目的节点发送该多个块描述信息。可替换的,该多个交换节点向该目的节点发送多个块描述信息,每个块描述信息用于指示存储对应的数据块的节点信息。上述可能的实现方式中,当源节点将目标数据流的多个数据块分别存储在多个交换节点中时,该多个交换节点可以向源节点或者目的节点返回对应存储的数据块的块描述信息,这样目的节点可以根据多个块描述信息对该多个数据块进行有序调度。
在第三方面的一种可能的实现方式中,该目的节点向多个交换节点发送多个调度信息之前,该方法还包括:当该目的节点接收到该多个块描述信息时,根据该多个块描述信息确定该多个数据块的调度顺序,该调度顺序用于从该多个交换节点中调度该多个数据块。上述可能的实现方式中,该目的节点可以根据多个块描述信息或者该存储指示信息,对该多个数据块进行有序调度。
在第三方面的一种可能的实现方式中,该方法还包括:该源节点将该目标数据流中待交换的数据划分为该多个数据块,该多个数据块的数量大于或等于该多个交换节点的数量。上述可能的实现方式中,源节点可以根据实际情况将该目标数据流中待交换的数据划分为该多个数据块,以将数据块分散存储在多个交换节点中。
在第三方面的一种可能的实现方式中,该多个交换节点中一个交换节点对应存储的数据块在该多个数据块中的顺序与该交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,该交换节点对应的距离为该交换节点与该第一交换节点之间的距离,该多个距离包括该多个交换节点与该第一交换节点之间的距离。上述可能的实现方式中,能够减小目的节点调度该多个数据块时的路径,以提高目的节点调度该多个数据块的效率。
第四方面,提供一种数据交换装置,该装置作为源节点,包括:接收单元,用于接收来自第一交换节点的流指示信息,该流指示信息用于指示目标数据流发生拥塞,第一交换节点是该目标数据流的交换路径中的节点;发送单元,用于向多个交换节点发送多个写数据信息和该目标数据流的多个数据块,该多个写数据信息用于指示该多个交换节点存储该多个且停止转发该多个数据块。
在第四方面的一种可能的实现方式中,该接收单元还用于:接收来自该多个交换节点的多个块描述信息,该多个块描述信息与该多个数据块一一对应,每个块描述信息用于指示存储对应的数据块的节点信息;该发送单元还用于:向目的节点发送该多个块描述信息。
在第四方面的一种可能的实现方式中,该装置还包括:处理单元,用于将该目标数据流中待交换的数据划分为该多个数据块,该多个数据块的数量大于或等于该多个交换节点的数量。
在第四方面的一种可能的实现方式中,该多个交换节点中一个交换节点对应的数据块在该多个数据块中的顺序与该交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,该交换节点对应的距离为该交换节点与第一交换节点之间的距离,该多个距离包括该多个交换节点中每个交换节点与第一交换节点之间的距离。
第五方面,提供一种数据交换装置,该装置作为交换节点,包括:发送单元,用于向源节点发送流指示信息,该流指示信息用于指示目标数据流发生拥塞,该交换节点是该目标数据流的交换路径中的节点;接收单元,用于接收来自该源节点的写数据信息和目标数据流的数据块,该写数据信息用于指示该交换节点存储该数据块且停止转发该数据块;处理单元,用于根据该写数据信息存储该数据块;该接收单元,还用于接收来自目的节点的调度信息,该调度信息用于调度该数据块;该发送单元,还用于向该目的节点发送该数据块。
在第五方面的一种可能的实现方式中,该发送单元还用于:向该目的节点发送该数据块的块描述信息;或者,向该源节点发送该数据块的块描述信息;其中,该块描述信息用于指示存储该数据块的节点信息。
第六方面,提供一种数据交换网络,该数据交换网络包括源节点、多个交换节点和目的节点,该多个交换节点包括第一交换节点;其中,第一交换节点,用于向该源节点发送流指示信息,该流指示信息用于指示目标数据流发生拥塞,该第一交换节点是该目标数据流的交换路径中的节点;该源节点,用于接收该流指示信息,并向多个交换节点发送多个写数据信息和该目标数据流的多个数据块,该多个写数据信息用于指示该多个交换节点存储该多个数据块且停止转发该多个数据块;该多个交换节点,用于接收该多个写数据信息和该多个数据块,并根据该多个写数据信息存储该多个数据块;该目的节点,用于向该多个交换节点发送多个调度信息,该多个调度信息用于调度该多个数据块;该多个交换节点,还用于接收该多个调度信息,并根据该多个调度信息向该目的节点发送该多个数据块。
在第六方面的一种可能的实现方式中,该多个交换节点还用于:向该源节点发送多个块描述信息,该多个块描述信息与该多个数据块一一对应,每个块描述信息用于指示存储对应的数据块的节点信息;该源节点还用于:接收该多个块描述信息,并向该目的节点发送该多个块描述信息。
在第六方面的一种可能的实现方式中,该多个交换节点还用于:向该目的节点发送该多个块描述信息。
在第六方面的一种可能的实现方式中,该目的节点还用于:接收该多个块描述信息,并根据该多个块描述信息确定该多个数据块的调度顺序,该调度顺序用于从该多个交换节点中调度该多个数据块。
在第六方面的一种可能的实现方式中,该源节点还用于:将该目标数据流中待交换的数据划分为该多个数据块,该多个数据块的数量大于或等于该多个交换节点的数量。
在第六方面的一种可能的实现方式中,该多个交换节点中一个交换节点对应存储的数据块在该多个数据块中的顺序与该交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,该交换节点对应的距离为该交换节点与该第一交换节点之间的距离,该多个距离包括该多个交换节点与该第一交换节点之间的距离。
在本申请的又一方面,提供一种数据交换装置,该数据交换装置包括:处理器、存储器、通信接口和总线,该处理器、该存储器和该通信接口通过总线连接;该存储器用于存储程序代码,当该程序代码被该处理器执行时,使得该数据交换装置执行如第一方面或者第一方面的任一种可能的实现方式所提供的数据交换方法。
在本申请的又一方面,提供一种数据交换装置,该数据交换装置包括:处理器、存储器、通信接口和总线,该处理器、该存储器和该通信接口通过总线连接;该存储器用于存储程序代码,当该程序代码被该处理器执行时,使得该数据交换装置执行如第二方面或者第二方面的任一种可能的实现方式所提供的数据交换方法。
在本申请的又一方面,提供一种数据交换装置,该数据交换装置包括:处理器、存储器、通信接口和总线,该处理器、该存储器和该通信接口通过总线连接;该存储器用于存储程序代码,当该程序代码被该处理器执行时,使得该数据交换装置执行如第三方面或者第三方面的任一种可能的实现方式所提供的数据交换方法。
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序或指令,当该计算机程序或指令被运行时,实现如第一方面或者第一方面的任一种可能的实现方式所提供的数据交换方法。
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序或指令,当该计算机程序或指令被运行时,实现如第二方面或者第二方面的任一种可能的实现方式所提供的数据交换方法。
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序或指令,当该计算机程序或指令被运行时,实现如第三方面或者第三方面的任一种可能的实现方式所提供的数据交换方法。
在本申请的又一方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当计算机程序或指令被运行时,执行上述第一方面或第一方面的任一种可能的实现方式所提供的数据交换方法。
在本申请的又一方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当计算机程序或指令被运行时,执行上述第二方面或第二方面的任一种可能的实现方式所提供的数据交换方方法。
在本申请的又一方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当计算机程序或指令被运行时,执行上述第三方面或第三方面的任一种可能的实现方式所提供的数据交换方方法。
可以理解地,上述提供的任一种数据交换方法的装置、数据交换网络、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种数据交换网络的结构示意图;
图2为本申请实施例提供的另一种数据交换网络的结构示意图;
图3为本申请实施例提供的又一种数据交换网络的结构示意图;
图4为本申请实施例提供的一种数据交换网络中数据流拥塞的示意图;
图5为本申请实施例提供的一种数据交换方法的流程示意图;
图6为本申请实施例提供的另一种数据交换方法的流程示意图;
图7为本申请实施例提供的一种数发送拥塞通告的示意图;
图8为本申请实施例提供的一种在多个交换节点存储多个数据块的示意图;
图9为本申请实施例提供的一种多个交换节点发送块描述信息的示意图;
图10为本申请实施例提供的一种目的节点调度多个数据块的示意图;
图11为本申请实施例提供的一种源节点的结构示意图;
图12为本申请实施例提供的另一种源节点的结构示意图;
图13为本申请实施例提供的一种交换节点的结构示意图;
图14为本申请实施例提供的另一种交换节点的结构示意图;
图15为本申请实施例提供的一种目的节点的结构示意图;
图16为本申请实施例提供的另一种目的节点的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c或a、b和c,其中a、b和c可以是单个,也可以是多个。另外,在本申请的实施例中,“第一”、“第二”等字样并不对数量和次序进行限定。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请提供的技术方案可以应用于多种不同的数据交换网络中。该数据交换网络可以为大型的数据交换网络,也可以为小型的数据交换网络。小型的数据交换网络也可以称为数据交换系统。该数据交换网络可以包括多个交换节点,该交换节点也可以称为节点。在实际应用中,该交换节点可以为交换机或者路由器等交换设备,也可以为交换板或者交换单元(switch element,SE)等。其中,交换板也可以称为交换网卡或者网络接口卡(network interface card,NIC),一个交换板中可以包括一个或者多个交换单元。可选的,该数据交换网络可以包括数据中心网络(dater center network,DCN)、高性能计算(highperformance computing,HPC)网络、云网络、以及单个芯片或者多个芯片合封后的片上网络等。
下面通过图1-图3对该数据交换网络的结构进行举例说明。
图1为本申请实施例提供的一种数据交换网络的结构示意图,该数据交换网络包括三个交换层。参见图1,该数据交换网络包括接入层、汇聚层和核心层,接入层中包括多个接入(access)节点,汇聚层中包括多个汇聚(aggregation)节点,核心层包括多个核心(core)节点,且接入节点的下行端口与需要进行数据流量交换的服务器(server)连接,接入节点的上行端口与汇聚节点的下行端口连接,汇聚节点的上行端口与核心节点连接。
其中,汇聚层和接入层可以被划分为多个群组(pod),一个群组中可以包括多个接入节点和多个汇聚节点,且每个接入节点与多个汇聚节点全连接。与同一个汇聚节点连接的多个核心节点可以称为一个核心(core)平面,每个核心平面分别和各个群组中的不同汇聚节点连接。图1中仅以该数据交换网络包括3个群组,一个群组内包括3个接入节点和4个汇聚节点,每个核心平面包括两个核心节点为例进行说明。图1中的接入节点可以表示为A1~A9,汇聚节点可以表示为B1~B12,核心节点可以表示为C1~C8,3个群组分别表示为P1~P3。
其中,当一个群组内不同接入节点连接的服务器之间进行数据流量交换时,可以通过与接入节点在同一群组内的汇聚节点实现,比如,接入节点A1和接入节点A3连接的服务器需要进行数据流量交换,则接入节点A1可以通过汇聚节点B1将其连接的服务器的数据流发送给接入节点A3。当不同群组内的接入节点连接的服务器之间进行数据流量交换时,可以通过与接入节点在同一群组内的汇聚节点、以及与汇聚节点连接的核心节点实现,比如,接入节点A1和接入节点A5连接的服务器需要进行数据流量交换,则接入节点A1可以将其连接的服务器的数据流发送给汇聚节点B1,由汇聚节点B1转发给核心节点C1,再由C1通过汇聚节点B5发送给接入节点A5。
图2为本申请实施例提供的另一种数据交换网络的结构示意图,该数据交换网络包括两个交换层。参见图2,该数据交换网络包括中继层(也可以称为TOR层)和骨干(spine)层,中继层中包括多个叶子(leaf)节点,骨干层包括多个骨干节点,且叶子节点的下行端口与需要进行数据流量交换的服务器(server)连接,叶子节点的上行端口与该多个骨干节点连接。图2中仅以该数据交换网络包括4个叶子节点和2个骨干节点为例进行说明。图2中的叶子节点可以表示为A1~A4,骨干节点可以表示为C1~C2。
其中,当接入同一叶子节点的两个服务器之间进行数据流量交换时,可以通过该叶子节点来实现,比如,接入叶子节点A1的两个服务器(比如,S1和S2)可以通过叶子节点A1进行数据流量交换。当接入不同叶子节点的两个服务器之间进行数据流量交换时,可以通过该叶子节点和骨干节点来实现,比如,接入叶子节点A1的服务器S1需要与接入叶子节点A2的服务器S3进行数据流量交换时,叶子节点A1可以将来自服务器S1的数据流发送给骨干节点C1,由骨干节点C1将该数据流转发给叶子节点A2。
图3为本申请实施例提供的又一种数据交换网络的结构示意图,该数据交换网络可以为片上网络。参见图3,该数据交换网络包括多个交换芯片,该多个交换芯片中的每个交换芯片包括多个交换单元,该数据交换网络中的所有交换单元可以按照一定方式互连。图3中以该数据交换网络包括4个交换芯片D1-D4,每个交换芯片包括9个交换单元,该数据交换网络中的交换单元分别表示为1-35为例进行说明。
其中,每个交换单元可以具有一个或者多个输入端口、以及一个或者多个输出端口,该输入接口可用于接收外部输入的数据包或信元,该输出端口可用于向外部输出数据包或者信元。该数据交换网络中的多个交换单元之间的互连可用于将每个输入接口接收到的数据包或者信元交换到对应的输出端口。该数据交换网络中的每个交换单元中可以包括至少一个缓存(queue)队列,该至少一个缓存队列可用于缓存不同去往不同输出端口的数据包或者信元。图3中示出了多个交换单元的互连关系仅为示例性的,并不对本申请实施例构成限制。
在上述数据交换网络中,每个交换节点均具有一定的交换能力和一定容量的缓存,当一个交换节点的待调度流量超出了该交换节点的交换能力和缓存能力时,则会导致队列头阻和丢包等现象,从而影响数据交换网络的交换效率,同时也增加交换时延。因此,如何降低数据交换网络中的拥塞是当前亟待解决的一个技术问题。
示例性,图4示出了一种源服务器S0与目标服务器D0之间通过数据交换网络交换数据的示意图。图4中以该数据交换网络包括多个交换节点且分别表示为A1-A2、B1-B4和C1-C2,源服务器S0分别与A1和A2互连,目的服务器D0分别与C1和C2互连,A1分别通过B1和B2与C1互连,A2分别通过B3和B4与C2互连为例进行说明。在该数据交换过程中,若该数据交换网络中的某一交换节点发生拥塞,该数据交换网络可以采用下面几种不同的流量控制方式来降低拥塞。
第一种、通过被动拥塞控制机制来降低拥塞。具体的,若C1出现拥塞,则C1可以通过显式拥塞通知(explicit congestion notification,ECN)方式通知源服务器S0降低发送速率,或者通过基于优先级的流量控制(priority-based flow control,PFC)方式分别通知B1和B2停止数据的发送,或者通过尾部丢弃(tail drop)方式丢弃新接收到的数据包。在实际应用中,针对不同的数据流(该数据流可以通过优先级和端口等进行区分),会采用不同的流量控制方式。例如,针对高优先级的业务的数据流,可采用ECN和PFC的方式;针对低优先级的业务的数据流,可采用ECN和尾部丢弃的方式。
但是,由于工艺和成本等因素,单个交换节点的缓存容量是有限,不可能无限增长,从而在数据量较大时仍会导致拥塞;另外,缓存容量的增长速率远小于端口带宽的增长,这将导致单个交换节点承受突发流量的能力减弱;再者,某一交换节点产生流量控制,可能会扩散整个数据交换网络中,从而进一步带来队列头阻问题。
第二种、通过主动拥塞控制机制来降低拥塞。具体的,源服务器S0可以主动通过探测报文和本地流表等主动探测手段获取链路状态或速率等信息(比如,当C1发生拥塞时可以向源服务器S0返回携带该信息的探测结果);源服务器S0根据该信息直接控制本地数据流的发送速率。其中,该主动拥塞控制机制仅适用于小型的数据交换网络中,这是因为探测报文和本地流表需要占用的一定的带宽和缓存,而大型的数据交换网络中的数据流的数量很大,这样会增加实现难度;此外,该主动拥塞控制机制无法对大量的小数据量的数据流的突发进行控制。因此,主动拥塞控制机制的使用范围受限。
第三种、通过自适应路径控制机制来降低拥塞。具体的,在源服务器S0通过A1、B1和C1向目的服务器D0交换数据流的过程中,若C1处的数据流f发生拥塞,则C1可以通知上游节点将数据流f切换到其他可用路径上(比如,C1通知源服务器S0,源服务器S0将数据流f切换到A2、B4和C2所在的路径)上。其中,该自适应路径控制机制的本质是在轻载网络中,充分利用可用路径的带宽,以提高带宽利用率。该自适应路径控制机制一般适用于HPC且网络有收敛的场景中,且无法解决目的端拥塞的场景。
基于此,本申请实施例提供一种数据交换方法,能够在某一交换节点的某一数据流出现拥塞时,充分利用数据交换网络中多个不同交换节点的缓存来存储该数据流的数据,从而能够降低拥塞,进而提高数据交换网络的交换效率、降低交换时延。也即是,本申请实施例能够将数据交换网络中所有节点的缓存池化,即将网络中所有节点的缓存虚拟成一个大容量的缓存池呈现给用户,从而实现虚拟大缓存能力,提高对突发流量的吸收能力;此外,每个节点可以包括数据面和控制面,该数据面用于传输数据,该控制面用于传输控制信令,从而在不同节点间实现数据和信令的传输。
下面对本申请实施例所提供的数据交换方法进行介绍说明。
图5为本申请实施例提供的一种数据交换方法的流程示意图,该方法可以应用于上文所提供的任意一种数据交换网络中,该方法包括以下步骤。图6为该数据交换方法应用于数据交换网络中的一种示例。
S201:源节点接收来自第一交换节点的流指示信息,该流指示信息用于指示目标数据流发生拥塞。
其中,源节点可以为目标数据流的源服务器,也可以为该数据交换网络中该源服务器接入的交换节点。类似的,下文中的目的节点可以为目标数据流的目的服务器,也可以为该数据交换网络中该目的服务器接入的交换节点。
另外,第一交换节点可以为该数据交换网络中该目标数据流所在的交换路径中的任意一个交换节点。该目标数据流可以是在第一交换节点中发生拥塞或将要发生拥塞的数据流,即该目标数据流可以是第一交换节点确定的数据流,图6中将第一交换节点表示为拥塞节点。该流指示信息可以包括该目标数据流的流标识。可选的,该流指示信息可以携带在拥塞通告中。
再者,第一交换节点可以根据目标数据流在第一交换节点中的传输速率、实时队列长度、队列调度优先级和缓存占用状态等参数中的一个或者多个确定目标数据流发生拥塞。比如,若目标数据流在第一交换节点中的实时队列长度大于预设长度、或者缓存占用状态大于预设占用率,第一交换节点可以确定目标数据流为拥塞流。需要说明的是,第一交换节点确定目标数据流发生拥塞的具体过程可以参见相关技术中的描述,本申请实施例对此不作具体限制。
具体的,在源节点通过该数据交换网络交换该目标数据流的过程中,若该目标数据流所在的交换路径中的第一交换节点确定该目标数据流发生拥塞,则第一交换节点可以向该源节点发送用于指示目标数据流的流指示信息,以使该源节点接收到该流指示信息。当第一交换节点与该源节点互连时,第一交换节点可以直接向该源节点发送该流指示信息;当第一交换节点通过其他交换节点与该源节点互连时,第一交换节点可以通过该其他交换节点向该源节点发送该流指示信息。
示例性的,以图4所示的数据交换网络为例,若源节点为源服务器S0,目标数据流所在的交换路径为S0-A1-B1-C1-D0,第一交换节点为C1,则如图7所示,交换节点C1在确定该目标数据流f为拥塞流时可以向源服务器S0发送拥塞通告,具体可以过程为:交换节点C1向交换节点B1发送用于指示该目标数据流f的拥塞通告,交换节点B1将接收到的该拥塞通告转发给交换节点A1,交换节点A1将该拥塞通告转发给源服务器S0,以使源服务器S0接收到该拥塞通告。
可选的,该数据交换网络中任意两个节点(比如,服务器与交换节点、以及交换节点与交换节点)之间的信息传输包括可以包括控制面和数据面,该控制面用于传输控制信令,该数据面用于传输数据。该控制信令可以包括上述流指示信息和拥塞通告,也可以包括下文中所涉及的块描述信息、存储指示信息和调度信息等。该数据面传输的数据可以包括信元、数据包和数据块(data block,DB)等。
S202:该源节点向多个交换节点发送多个写数据信息和目标数据流的多个数据块,该多个写数据信息用于指示该多个交换节点存储该多个数据块且停止转发该多个数据块。
其中,该多个交换节点(也可以称为缓存节点)可以包括该数据交换网络中的部分交换节点,也可以包括该数据交换网络中的所有交换节点。该多个交换节点可以包括第一交换节点,也可以不包括第一交换节点。图6中将该多个交换节点表示为缓存节点,且以该多个交换节点不包括第一交换节点(即拥塞节点)为例进行说明。
另外,该多个数据块中的每个数据块可以包括一定数量的信元或者数据包。该多个数据块中不同数据块包括的信元或数据包的数量可以相同,也可以不同。不同数据块的长度可以相同,也可以不同;也即是,该多个数据块可以是定长数据块或者变长数据块。
再者,每个写数据信息可以用于指示对应的交换节点存储该多个数据块中的至少一个数据块,即该源节点可以通过向一个交换节点发送一个或者多个数据块,下文中以该源节点向一个交换节点发送一个数据块为例进行说明。可选的,该写数据信息可以包括数据块标识和写数据标识。该数据块标识可以用于标识该数据块,且可以用于指示该数据块在该多个数据块中的位置,比如该数据块标识可以为该数据块的序号。该写数据标识可以用于指示接收该写数据标识的交换节点在本地存储该数据块且停止转发该数据块。
需要说明的是,停止转发该数据块可以是指接收到该数据块的交换节点在没有接收到用于调度该数据块的调度信息时,该交换节点不向下级的节点发送该数据块。即该交换节点只有接收到用于调度该数据块的调度信息,才能向下级的节点发送该数据块。
可选的,该多个数据块可以是该源节点对该目标数据流中待交换的数据划分得到的,该待交换的数据可以是指该源节点中存储的未发送的目标数据流的数据。在一种示例中,该源节点可以将该目标数据流中待交换的数据划分为该多个数据块,该多个数据块中的每个数据块可以对应一个数据块标识,该多个数据块的数量可以大于或等于该多个交换节点的数量相同。
具体的,当该源节点接收到该流指示信息时,该源节点可以将该流指示信息所指示的目标数据流中待交换的数据划分为该多个数据块;对于该多个数据块中的每个数据块,该源节点可以向该多个交换节点中的一个交换节点发送写数据信息和该数据块,以通过该写数据信息指示该交换节点存储该数据块且停止转发该数据块。可选的,该源节点可以按照负载均衡的方式将该多个数据块发送给该多个交换节点。
其中,对于该多个交换节点中的每个交换节点,当该源节点与该交换节点互连时,该源节点可以直接向该交换节点发送该写数据信息;当该源节点通过其他交换节点与该交换节点互连时,该源节点可以通过该其他交换节点向该交换节点发送该写数据信息。
示例性的,以图4所示的数据交换网络为例,若源节点为源服务器S0,该多个交换节点包括B1-B4和C1-C2,如图8所示,源服务器S0可以将该目标数据流中待交换的数据划分为6个数据块且分别表示为DB1-DB6,并按照以下方法将DB1-DB6发送给该多个交换节点:通过A1和B1(或B2)向C1发送DB1和对应的写数据信息,通过A1向B1发送DB2和对应的写数据信息,通过A1向B2发送DB3和对应的写数据信息,通过A2向B3发送DB4和对应的写数据信息,通过A2向B4发送DB5和对应的写数据信息,通过A2和B3(或B4)向C2发送DB6和对应的写数据信息。图8中仅示出了源服务器S0发送的数据块。
可选的,该写数据信息还可以用于指示该数据块中包括的数据包的标识(比如,序号)。在一种示例中,该写数据信息中可以包括该数据块中第1个数据包的序号和最后一个数据包的序号。在另一种示例中,该写数据信息中包括的数据块标识可以与该数据块中包括的数据包的标识有关,以使该数据块标识可用于确定该数据块中包括的数据包的标识。
S203:当该多个交换节点接收到该多个写数据信息和该多个数据块时,该多个交换节点存储该多个数据块。
对于该多个交换节点中的每个交换节点,当该交换节点接收到写数据信息和该多个数据块中的数据块时,该交换节点可以解析该写数据信息,以得到该数据块的标识和写数据标识,并根据该写数据标识确定该数据块需要进行存储,从而该交换节点可以在本地存储该数据块,比如将该数据块存储在缓存中,且不将该数据块转发给下级的交换节点。
S204:该多个交换节点向目的节点发送多个块描述信息,该多个块描述信息与该多个数据块一一对应,每个块描述信息用于指示该存储对应的数据块的节点信息。
其中,该块描述信息可以用于指示存储该数据块的交换节点,还可以用于指示该数据块在该交换节点中的存储地址,该存储地址可以为物理地址或者逻辑地址等。在一种示例中,该块描述信息包括该交换节点的标识、该数据块在该交换节点中的存储地址;进一步的,该块描述信息还可以包括该数据块的标识。可选的,该块描述信息还可以包括该数据块中包括的数据包的标识。
具体的,当该交换节点存储该数据块后,该交换节点可以根据该交换节点的标识、数据块标识、该数据块的存储地址等信息,生成该数据块对应的块描述信息,并将该块描述信息发送给目的节点。当该交换节点与目的节点互连时,该交换节点可以直接向该目的节点发送该块描述信息;当该交换节点通过其他交换节点与目的节点互连时,该交换节点可以通过其他交换节点向该目的节点发送该块描述信息。
可替换的,当该多个交换节点中的每个交换节点生成块描述信息后,该交换节点也可以向源节点发送该块描述信息;当源节点接收到来自该多个交换节点的多个块描述信息后,该源节点可以根据该多个块描述信息向目的节点发送存储指示信息,该存储指示信息用于指示存储该多个数据块的节点信息。该存储指示信息可以是该源节点根据该多个块描述信息确定的,该源节点可以直接将该多个块描述信息携带在该存储指示信息中,也可以对该块描述信息进行处理(比如,该源节点可以将对应数据块包括的数据包的标识携带在块描述信息中)后通过存储指示信息发送给目的节点。
可选的,在该多个交换节点向目的节点发送块描述信息,或者该多个交换节点向源节点发送块描述信息以使源节点向目的节点发送块描述信息的情况下,该源节点也可以单独向该目的节点发送用于指示该多个数据块中每个数据块包括的数据包的包描述信息,该包描述信息可以包括数据包的标识。
示例性的,结合图8,如图9中的(a)所示,该多个交换节点(即B1-B4和C1-C2)向目的节点(即目的服务器D0)发送块描述信息的过程包括:交换节点C1向目的服务器D0发送BD1的块描述信息,交换节点B1通过C1向目的服务器D0发送BD2的块描述信息,交换节点B2通过交换节点C1向目的服务器D0发送BD3的块描述信息,交换节点B3通过交换节点C2向目的服务器D0发送BD4的块描述信息,交换节点B4通过交换节点C2向目的服务器D0发送BD5的块描述信息,交换节点C2向目的服务器D0发送BD6的块描述信息,源服务器S0向目的服务器D0发送该多个数据块对应的包描述信息PD1-PD6。
或者,结合图8,如图9中的(b)所示,该多个交换节点(即B1-B4和C1-C2)向源节点(即源服务器S0)发送块描述信息的过程包括:交换节点C1通过交换节点B1(或B2)向源服务器S0发送BD1的块描述信息,交换节点B1向源服务器S0发送BD2的块描述信息,交换节点B2向源服务器S0发送BD3的块描述信息,交换节点B3向源服务器S0发送BD4的块描述信息,交换节点B4通向源服务器S0发送BD5的块描述信息,交换节点C2通过交换节点B3(或B4)向源服务器S0发送BD6的块描述信息。之后,源服务器S0向目的服务器D0发送存储指示信息,该存储指示信息可以包括BD1-BD6的块描述信息,还可以包括BD1-BD6对应的包描述信息PD1-PD6。
S205:该目的节点接收来自该多个交换节点的多个块描述信息,并根据该多个块描述信息确定该多个数据块的顺序。可替换的,当该多个交换节点向源节点发送块描述信息时,S205具体可以为:该目的节点接收来自该源节点的存储指示信息,该存储指示信息可以包括该多个块描述信息,根据该多个块描述信息确定该多个数据块的顺序。
当该目的节点接收到该多个块描述信息时,该目的节点可以根据该多个块描述信息确定对应的该多个数据块的顺序,即确定该多个数据块在该目标数据流中的顺序。进一步的,该目的节点还可以根据该多个块描述或者存储指示信息确定每个数据块对应的包描述信息,即确定该多个数据块中每个数据包所包括的数据包的数量或对应的数据包的顺序等。
比如,每个块描述信息中包括对应的数据块的序号、以及该数据块所包括的数据包的序号,该目的节点根据该多个块描述信息中数据块的序号确定该多个数据块的顺序,并根据每个数据块所包括的数据包的序号确定该多个数据块中数据包的顺序。
S206:该目的节点向该多个交换节点中的每个交换节点发送调度信息,该调度信息用于调度该交换节点中存储的数据块。
当该目的节点需要调度该目标数据流的该多个数据块时,该目的节点可以在保证吞吐量的情况下,按照该多个数据块的顺序,依次通过调度信息调度该多个数据块,以使该目的节点按照该多个数据块的顺序依次获取到该多个数据块,即通过调度信息来保证目的节点接收该多个数据块的顺序。在一种实施例中,对于该多个交换节点中的每个交换节点,该目的节点向该交换节点发送的该调度信息(比如,该调度信息为读命令)可以包括该交换节点的标识、调度的数据块在该交换节点中的存储地址、以及该数据块的标识等。图6中以该调度信息为读命令为例进行说明。
可选的,对于任意一个交换节点,当该目的节点通过调度信息从该交换节点中读取对应的数据块时,该目的节点可以通过一次调度来获取该数据块,也可以通过多次调度来获取该数据块。当该目的节点通过多次调度来获取该数据块时,该目的节点每次发送的调度信息还可以用于指示当前调度的数据量,或者用于指示当前调度的数据包的标识等。
具体的,对于该多个交换节点中的每个交换节点,当该目的节点与该交换节点互连时,该目的节点可以直接向该交换节点发送该调度信息;当该目的节点通过其他交换节点与该交换节点互连时,该目的节点可以通过其他交换节点向该交换节点发送该调度信息。
示例性的,结合图7,如图10所示,该目的节点(即目的服务器D0)向该多个交换节点(即B1-B4和C1-C2)发送调度信息的过程可以包括:向交换节点C1发送用于调度BD1的读命令RD1,通过交换节点C1向交换节点B1发送用于调度BD2的读命令RD2,通过交换节点C1向交换节点B2发送用于调度BD3的读命令RD3,通过交换节点C2向交换节点B3发送用于调度BD4的读命令RD4,通过交换节点C2向交换节点B4发送用于调度BD5的读命令RD5,向交换节点C1发送用于调度BD6的读命令RD6。
在实际应用中,针对拥塞流,该目的节点可以创建一个基于源节点的请求链表,基于该请求链表对多个源节点的数据流进行公平调度。此外,该目的节点还可以按照不同的调度层次来进行调度数据流,比如按照出端口、队列优先级、数据流和缓存池链表等来进行调度,该缓存池链表可以用于指示在不同交换节点中存储在同一数据流的多个数据块的顺序和存储位置。
S207:当该多个交换节点中的一个交换节点接收到该调度信息时,该交换节点向该目的节点发送对应的数据块。
当该多个交换节点中的一个交换节点接收到对应的调度信息时,该交换节点可以根据调度信息从本地中读取对应的数据块,并将该数据块发送给该目的节点,以使目的节点接收到该数据块。当该目的节点按照该多个数据块的顺序接收该多个数据块时,该目的节点可以在接收到每个数据块时,按照一定带宽或速率向外输出该数据块,以输出该多个数据块,从而完成该目的数据流的交换。
可选的,对于任意一个交换节点,当该目的节点通过一次调度来获取该数据块时,该交换节点可以根据调度信息从本地获取整个数据块,并将该数据块发送给该目的节点;当该目的节点通过多次调度来获取该数据块时,该交换节点可以根据调度信息通过多次发送,以将该数据块发送给该目的节点。
对于该多个交换节点中的任意一个交换节点,当该目的节点与该交换节点互连时,该交换节点可以直接向该目的节点发送该数据块;当该目的节点通过其他交换节点与该交换节点互连时,该交换节点可以通过其他交换节点向该目的节点发送该数据块。
在本申请实施例中,当第一交换节点确定目标数据流发生拥塞时,第一交换节点可以通知源节点,这样源节点可以将目标数据流的多个数据块分别存储在多个交换节点中,即源节点可以将该多个数据块存储在该多个交换节点构成的更大容量的缓存池中,这样目的节点可以从该多个交换节点调度对应的数据块,从而使得该数据交换网络能够提供更大的缓存,降低目标数据流的拥塞、避免头阻,提高对突发流量的吸收能力,进而提高数据的交换效率、降低交换时延。
上述主要从各个节点之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个网元,例如源节点、交换节点和目的节点等,为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对源节点、交换节点和目的节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明:
在采用集成的单元的情况下,图11示出了上述实施例中所涉及的数据交换装置的一种可能的结构示意图。该数据交换装置可以为源节点或者源节点内置的芯片,该数据交换装置包括:接收单元301和发送单元302。其中,接收单元301用于支持该数据交换装置执行方法实施例中的S201和/或接收交换节点发送的块描述信息的步骤;发送单元302支持该数据交换装置执行方法实施例中S202、和/或向目的节点发送存储指示信息的步骤。可选的,该数据交换装置还可以包括处理单元303,处理单元303用于执行该数据交换装置将待交换的数据划分为多个数据块、解析流指示信息、和/或解析块描述信息的步骤。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用硬件实现的基础上,本申请中的处理单元303可以为数据交换装置的处理器,接收单元301可以为该数据交换装置的接收器,发送单元302可以为该数据交换装置的发送器,发送器通常可以和接收器集成在一起用作收发器,具体的收发器还可以称为通信接口。
图12所示,为本申请的实施例提供的上述实施例中所涉及的数据交换装置的一种可能的逻辑结构示意图。该数据交换装置可以为源节点或者源节点内置的芯片,该数据交换装置包括:处理器312和通信接口313。处理器312用于对该数据交换装置动作进行控制管理,例如,处理器312用于支持该数据交换装置执行方法实施例中将待交换的数据划分为多个数据块、解析流指示信息、解析块描述信息的步骤,和/或用于本文所描述的技术的其他过程。此外,该数据交换装置还可以包括存储器311和总线314,处理器312、通信接口313以及存储器311通过总线314相互连接;通信接口313用于支持该数据交换装置进行通信;存储器311用于存储该数据交换装置的程序代码和数据。
其中,处理器312可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线314可以是外设部件互连标准(peripheralcomponent interconnect,PCI)总线或扩展工业标准结构(extended industry standardarchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在采用集成的单元的情况下,图13示出了上述实施例中所涉及的数据交换装置的一种可能的结构示意图。该数据交换装置可以为交换节点或者交换节点内置的芯片,该数据交换装置包括:接收单元401和处理单元402。其中,接收单元401用于支持该数据交换装置执行方法实施例中接收写数据信息、和/或接收调度信息的步骤;处理单元402支持该数据交换装置执行方法实施例中的S203。可选的,该数据交换装置还可以包括发送单元403,发送单元403用于支持该数据交换装置执行上述实施例中发送流指示信息、发送块描述信息、和/或发送数据块的步骤。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用硬件实现的基础上,本申请中的处理单元403可以为数据交换装置的处理器,接收单元401可以为该数据交换装置的接收器,发送单元403可以为该数据交换装置的发送器,发送器通常可以和接收器集成在一起用作收发器,具体的收发器还可以称为通信接口。
图14所示,为本申请的实施例提供的上述实施例中所涉及的数据交换装置的一种可能的逻辑结构示意图。该数据交换装置可以为目的节点或者目的节点内置的芯片,该数据交换装置包括:处理器412和通信接口413。处理器412用于对该数据交换装置动作进行控制管理,例如,处理器412用于支持该数据交换装置执行方法实施例中的S203,和/或用于本文所描述的技术的其他过程。此外,该数据交换装置还可以包括存储器411和总线414,处理器412、通信接口413以及存储器411通过总线414相互连接;通信接口413用于支持该数据交换装置进行通信;存储器411用于存储该数据交换装置的程序代码和数据。
其中,处理器412可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线414可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在采用集成的单元的情况下,图15示出了上述实施例中所涉及的数据交换装置的一种可能的结构示意图。该数据交换装置可以为目的节点或者目的节点内置的芯片,该数据交换装置包括:接收单元501和发送单元502。其中,接收单元501用于支持该数据交换装置执行方法实施例中接收块描述信息或者存储指示信息的步骤;发送单元502支持该数据交换装置执行方法实施例中S206。可选的,该数据交换装置还可以包括处理单元503,处理单元503用于执行该数据交换装置执行方法实施例中的S205。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用硬件实现的基础上,本申请中的处理单元503可以为数据交换装置的处理器,接收单元501可以为该数据交换装置的接收器,发送单元502可以为该数据交换装置的发送器,发送器通常可以和接收器集成在一起用作收发器,具体的收发器还可以称为通信接口。
图16所示,为本申请的实施例提供的上述实施例中所涉及的数据交换装置的一种可能的逻辑结构示意图。该数据交换装置可以为目的节点或者目的节点内置的芯片,该数据交换装置包括:处理器512和通信接口513。处理器512用于对该数据交换装置动作进行控制管理,例如,处理器512用于支持该数据交换装置执行方法实施例中的S205,和/或用于本文所描述的技术的其他过程。此外,该数据交换装置还可以包括存储器511和总线514,处理器512、通信接口513以及存储器511通过总线514相互连接;通信接口513用于支持该数据交换装置进行通信;存储器511用于存储该数据交换装置的程序代码和数据。
其中,处理器512可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线514可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图16中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请的另一实施例中,还提供一种数据交换网络,该数据交换网络包括源节点、交换节点和目的节点。其中,源节点可以为上述装置实施例中所提供的源节点,用于支持源节点执行方法实施例中源节点的步骤;和/或,交换节点为上述装置实施例所提供的交换节点,用于支持交换节点执行方法实施例中交换节点的步骤;和/或,目的节点为上述装置实施例所提供的目的节点,用于支持目的节点执行方法实施例中目的节点的步骤。
本申请装置实施例的源节点、交换节点和目的节点可分别对应于本申请方法实施例中的源节点、交换节点和目的节点。并且,源节点、交换节点和目的节点的各个模块和其它操作和/或功能分别为了实现上述方法实施例的相应流程,为了简洁,本申请方法实施例的描述可以适用于该装置实施例,在此不再赘述。
本申请装置实施例的有益效果可参考上述对应的方法实施例中的有益效果,此处不再赘述。另外,本申请装置实施例中相关内容的描述也可以参考上述对应的方法实施例。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的另一实施例中,还提供一种可读存储介质,可读存储介质中存储有计算机执行指令,当一个设备(可以是单片机,芯片等)或者处理器执行上述方法实施例所提供的数据交换方法中源节点的步骤。前述的可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的另一实施例中,还提供一种可读存储介质,可读存储介质中存储有计算机执行指令,当一个设备(可以是单片机,芯片等)或者处理器执行上述方法实施例所提供的数据交换方法中交换节点的步骤。前述的可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的另一实施例中,还提供一种可读存储介质,可读存储介质中存储有计算机执行指令,当一个设备(可以是单片机,芯片等)或者处理器执行上述方法实施例所提供的数据交换方法中目的节点的步骤。前述的可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备上述方法实施例所提供的数据交换方法中源节点的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备上述方法实施所提供的数据交换方法中交换节点的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备上述方法实施所提供的数据交换方法中目的节点的步骤。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (27)

1.一种数据交换方法,其特征在于,所述方法包括:
源节点接收来自第一交换节点的流指示信息,所述流指示信息用于指示目标数据流发生拥塞,所述第一交换节点是所述目标数据流的交换路径中的节点;
所述源节点向多个交换节点发送多个写数据信息和所述目标数据流的多个数据块,所述多个写数据信息用于指示所述多个交换节点存储所述多个数据块且停止转发所述多个数据块。
2.根据权利要求1所述的方法,其特征在于,所述源节点向多个交换节点发送多个写数据信息和所述目标数据流的多个数据块之后,所述方法还包括:
所述源节点接收来自所述多个交换节点的多个块描述信息,所述多个块描述信息与所述多个数据块一一对应,每个块描述信息用于指示存储对应的数据块的节点信息;
所述源节点向目的节点发送所述多个块描述信息。
3.根据权利要求1或2所述的方法,其特征在于,所述源节点向多个交换节点发送多个写数据信息和所述目标数据流的多个数据块之前,所述方法还包括:
所述源节点将所述目标数据流中待交换的数据划分为所述多个数据块,所述多个数据块的数量大于或等于所述多个交换节点的数量。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述多个交换节点中一个交换节点对应的数据块在所述多个数据块中的顺序与所述交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,所述交换节点对应的距离为所述交换节点与所述第一交换节点之间的距离,所述多个距离包括所述多个交换节点与所述第一交换节点之间的距离。
5.一种数据交换方法,其特征在于,所述方法包括:
交换节点向源节点发送流指示信息,所述流指示信息用于指示目标数据流发生拥塞,所述交换节点是所述目标数据流的交换路径中的节点;
所述交换节点接收来自所述源节点的写数据信息和所述目标数据流的数据块,所述写数据信息用于指示所述交换节点存储所述数据块且停止转发所述数据块;
所述交换节点根据所述写数据信息存储所述数据块;
所述交换节点接收来自目的节点的调度信息,所述调度信息用于调度所述数据块;
所述交换节点向所述目的节点发送所述数据块。
6.根据权利要求5所述的方法,其特征在于,所述交换节点根据所述写数据信息存储所述数据块之后,所述方法还包括:
所述交换节点向所述目的节点发送所述数据块的块描述信息;或者,
所述交换节点向所述源节点发送所述数据块的块描述信息;
其中,所述块描述信息用于指示存储所述数据块的节点信息。
7.一种数据交换方法,其特征在于,所述方法包括:
第一交换节点向源节点发送流指示信息,所述流指示信息用于指示目标数据流发生拥塞,所述第一交换节点是所述目标数据流的交换路径中的节点;
当所述源节点接收到所述流指示信息时,向多个交换节点发送多个写数据信息和所述目标数据流的多个数据块,所述多个写数据信息用于指示所述多个交换节点存储所述多个数据块且停止转发所述多个数据块;
所述多个交换节点接收所述多个写数据信息和所述多个数据块,并根据所述多个写数据信息存储所述多个数据块;
目的节点向所述多个交换节点发送多个调度信息,所述多个调度信息用于调度所述多个数据块;
所述多个交换节点接收所述多个调度信息,并根据所述多个调度信息向所述目的节点发送所述多个数据块。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述多个交换节点向所述源节点发送多个块描述信息,所述多个块描述信息与所述多个数据块一一对应,每个块描述信息用于指示存储对应的数据块的节点信息;
所述源节点接收所述多个块描述信息,并向所述目的节点发送所述多个块描述信息。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述多个交换节点向所述目的节点发送所述多个块描述信息,每个块描述信息用于指示存储对应的数据块的节点信息。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
当所述目的节点接收到所述多个块描述信息时,根据所述多个块描述信息确定所述多个数据块的调度顺序,所述调度顺序用于从所述多个交换节点中调度所述多个数据块。
11.根据权利要求7-10任一项所述的方法,其特征在于,所述方法还包括:
所述源节点将所述目标数据流中待交换的数据划分为所述多个数据块,所述多个数据块的数量大于或等于所述多个交换节点的数量。
12.根据权利要求7-11任一项所述的方法,其特征在于,所述多个交换节点中一个交换节点对应存储的数据块在所述多个数据块中的顺序与所述交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,所述交换节点对应的距离为所述交换节点与所述第一交换节点之间的距离,所述多个距离包括所述多个交换节点与所述第一交换节点之间的距离。
13.一种数据交换装置,其特征在于,所述装置作为源节点,包括:
接收单元,用于接收来自第一交换节点的流指示信息,所述流指示信息用于指示目标数据流发生拥塞,所述第一交换节点是所述目标数据流的交换路径中的节点;
发送单元,用于向多个交换节点发送多个写数据信息和所述目标数据流的多个数据块,所述多个写数据信息用于指示所述多个交换节点存储所述多个数据块且停止转发所述多个数据块。
14.根据权利要求13所述的装置,其特征在于,
所述接收单元,还用于接收来自所述多个交换节点的多个块描述信息,所述多个块描述信息与所述多个数据块一一对应,每个块描述信息用于指示存储对应的数据块的节点信息;
所述发送单元,还用于向目的节点发送所述多个块描述信息。
15.根据权利要求13或14所述的装置,其特征在于,所述装置还包括:
处理单元,用于将所述目标数据流中待交换的数据划分为所述多个数据块,所述多个数据块的数量大于或等于所述多个交换节点的数量。
16.根据权利要求13-15任一项所述的装置,其特征在于,所述多个交换节点中一个交换节点对应的数据块在所述多个数据块中的顺序与所述交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,所述交换节点对应的距离为所述交换节点与所述第一交换节点之间的距离,所述多个距离包括所述多个交换节点中每个交换节点与所述第一交换节点之间的距离。
17.一种数据交换装置,其特征在于,所述装置作为交换节点,包括:
发送单元,用于向源节点发送流指示信息,所述流指示信息用于指示目标数据流发生拥塞,所述交换节点是所述目标数据流的交换路径中的节点;
接收单元,用于接收来自所述源节点的写数据信息和所述目标数据流的数据块,所述写数据信息用于指示所述交换节点存储所述数据块且停止转发所述数据块;
处理单元,用于根据所述写数据信息存储所述数据块;
所述接收单元,还用于接收来自目的节点的调度信息,所述调度信息用于调度所述数据块;
所述发送单元,还用于向所述目的节点发送所述数据块。
18.根据权利要求17所述的装置,其特征在于,所述发送单元还用于:
向所述目的节点发送所述数据块的块描述信息;或者,
向所述源节点发送所述数据块的块描述信息;
其中,所述块描述信息用于指示存储所述数据块的节点信息。
19.一种数据交换网络,其特征在于,所述数据交换网络包括源节点、多个交换节点和目的节点,所述多个交换节点包括第一交换节点;其中,
所述第一交换节点,用于向所述源节点发送流指示信息,所述流指示信息用于指示目标数据流发生拥塞,所述第一交换节点是所述目标数据流的交换路径中的节点;
所述源节点,用于接收所述流指示信息,并向多个交换节点发送多个写数据信息和所述目标数据流的多个数据块,所述多个写数据信息用于指示所述多个交换节点存储所述多个数据块且停止转发所述多个数据块;
所述多个交换节点,用于接收所述多个写数据信息和所述多个数据块,并根据所述多个写数据信息存储所述多个数据块;
所述目的节点,用于向所述多个交换节点发送多个调度信息,所述多个调度信息用于调度所述多个数据块;
所述多个交换节点,还用于接收所述多个调度信息,并根据所述多个调度信息向所述目的节点发送所述多个数据块。
20.根据权利要求19所述的数据交换网络,其特征在于,
所述多个交换节点,还用于向所述源节点发送多个块描述信息,所述多个块描述信息与所述多个数据块一一对应,每个块描述信息用于指示存储对应的数据块的节点信息;
所述源节点,还用于接收所述多个块描述信息,并向所述目的节点发送所述多个块描述信息。
21.根据权利要求19所述的数据交换网络,其特征在于,
所述多个交换节点,还用于向所述目的节点发送所述多个块描述信息。
22.根据权利要求19或20所述的数据交换网络,其特征在于,
所述目的节点,还用于接收所述多个块描述信息,并根据所述多个块描述信息确定所述多个数据块的调度顺序,所述调度顺序用于从所述多个交换节点中调度所述多个数据块。
23.根据权利要求19-22任一项所述的数据交换网络,其特征在于,
所述源节点,还用于将所述目标数据流中待交换的数据划分为所述多个数据块,所述多个数据块的数量大于或等于所述多个交换节点的数量。
24.根据权利要求19-23任一项所述的数据交换网络,其特征在于,所述多个交换节点中一个交换节点对应存储的数据块在所述多个数据块中的顺序与所述交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,所述交换节点对应的距离为所述交换节点与所述第一交换节点之间的距离,所述多个距离包括所述多个交换节点与所述第一交换节点之间的距离。
25.一种数据交换装置,其特征在于,所述数据交换装置包括:处理器、存储器、通信接口和总线,所述处理器、所述存储器和所述通信接口通过总线连接;所述存储器用于存储程序代码,当所述程序代码被所述处理器执行时,使得所述数据交换装置执行权利要求1-4任一项所述的数据交换方法。
26.一种数据交换装置,其特征在于,所述数据交换装置包括:处理器、存储器、通信接口和总线,所述处理器、所述存储器和所述通信接口通过总线连接;所述存储器用于存储程序代码,当所述程序代码被所述处理器执行时,使得所述数据交换装置执行权利要求5-6任一项所述的数据交换方法。
27.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,当所述计算机程序或指令被运行时,实现如权利要求1-12任一项所述的数据交换方法。
CN202210010085.6A 2022-01-05 2022-01-05 一种数据交换方法及装置 Pending CN116418745A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210010085.6A CN116418745A (zh) 2022-01-05 2022-01-05 一种数据交换方法及装置
PCT/CN2022/131459 WO2023130835A1 (zh) 2022-01-05 2022-11-11 一种数据交换方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210010085.6A CN116418745A (zh) 2022-01-05 2022-01-05 一种数据交换方法及装置

Publications (1)

Publication Number Publication Date
CN116418745A true CN116418745A (zh) 2023-07-11

Family

ID=87052007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210010085.6A Pending CN116418745A (zh) 2022-01-05 2022-01-05 一种数据交换方法及装置

Country Status (2)

Country Link
CN (1) CN116418745A (zh)
WO (1) WO2023130835A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000036849A (ja) * 1998-07-17 2000-02-02 Nec Eng Ltd 無手順通信システム及びその無手順通信方法並びにその制御プログラムを記録した記録媒体
CN107786440B (zh) * 2016-08-26 2021-05-11 华为技术有限公司 一种数据报文转发的方法及装置
CN108234320B (zh) * 2016-12-14 2021-07-09 华为技术有限公司 报文传输方法及交换机
US11153211B2 (en) * 2017-12-09 2021-10-19 Intel Corporation Fast data center congestion response
US11323393B2 (en) * 2018-01-25 2022-05-03 Nvidia Corporation System and method for improving network storage accessibility

Also Published As

Publication number Publication date
WO2023130835A1 (zh) 2023-07-13

Similar Documents

Publication Publication Date Title
US9800513B2 (en) Mapped FIFO buffering
EP1779607B1 (en) Network interconnect crosspoint switching architecture and method
US6084856A (en) Method and apparatus for adjusting overflow buffers and flow control watermark levels
AU2003291743B2 (en) Apparatus and method for distributing buffer status information in a switching fabric
CN101227402B (zh) 聚合链路流量分担方法及装置
CA2255418C (en) Ring interface and ring network bus flow control system
US7227841B2 (en) Packet input thresholding for resource distribution in a network switch
US8867559B2 (en) Managing starvation and congestion in a two-dimensional network having flow control
US20020141427A1 (en) Method and apparatus for a traffic optimizing multi-stage switch fabric network
US20030026267A1 (en) Virtual channels in a network switch
EP2442498B1 (en) Method and device for controlling switching network traffic
US20060053117A1 (en) Directional and priority based flow control mechanism between nodes
US20120008623A1 (en) Packet forwarding device
WO2010007339A1 (en) Switching device
EP0860960A2 (en) Flow control for switching
TW200947957A (en) Non-block network system and packet arbitration method thereof
CN114531488A (zh) 一种面向以太网交换器的高效缓存管理系统
CN110177051A (zh) 基于流控技术的数据中心拥塞控制方法
US7990873B2 (en) Traffic shaping via internal loopback
US20060013135A1 (en) Flow control in a switch
CN116418745A (zh) 一种数据交换方法及装置
US20220321478A1 (en) Management of port congestion
CN111434079B (zh) 一种数据通信方法及装置
CN101459598A (zh) 实现分组交换的方法及其系统
EP1521411B1 (en) Method and apparatus for request/grant priority scheduling

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication