CN116962301A - 一种数据流保序方法、数据交换装置及网络 - Google Patents

一种数据流保序方法、数据交换装置及网络 Download PDF

Info

Publication number
CN116962301A
CN116962301A CN202210405697.5A CN202210405697A CN116962301A CN 116962301 A CN116962301 A CN 116962301A CN 202210405697 A CN202210405697 A CN 202210405697A CN 116962301 A CN116962301 A CN 116962301A
Authority
CN
China
Prior art keywords
information
node
slices
ordering
flow
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
CN202210405697.5A
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 CN202210405697.5A priority Critical patent/CN116962301A/zh
Priority to PCT/CN2023/082239 priority patent/WO2023202294A1/zh
Publication of CN116962301A publication Critical patent/CN116962301A/zh
Pending legal-status Critical Current

Links

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders

Landscapes

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

Abstract

本申请提供一种数据流保序方法、数据交换装置及网络,涉及通信技术领域,用于在动态负载均衡过程中,减小目的节点的缓存需求和传输延迟,同时避免单个交换节点出现拥塞。该方法包括:当源节点确定目标数据流的数据量大于预设阈值时,将该目标数据流划分为多个流切片;该源节点向多个交换节点中的交换节点发送写数据信息和流切片,写数据信息用于指示该交换节点存储该流切片且不转发该流切片;该目的节点从该源节点或者该多个交换节点获取排序信息,并根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序;该目的节点按照该顺序从该多个交换节点中调度该多个流切片。

Description

一种数据流保序方法、数据交换装置及网络
技术领域
本申请涉及通信技术领域,尤其涉及一种数据流保序方法、数据交换装置及网络。
背景技术
数据交换网络一般采用多级(比如,两级或三级)交换节点的组网模式,为接入网络内的众多服务器(server)提供全连接的网络,将不同服务器之间的数据进行交换。在数据交换网络中,每个交换节点具有一定容量的缓存,该缓存可用于吸收突发的数据流。当一个交换节点的待调度流量超出了该交换节点的交换能力和缓存能力时,则会导致队列头阻和丢包等现象。比如,多个源节点同时向同一目的节点发送数据,由于该目的节点的缓存容量有限,当发送的数据量超出该目的节点的缓存容量时,则会出现拥塞和丢包等现象,从而降低了网络效率、增加时延。
现有技术中,通常是按照动态负载均衡(dynamic load balance,DLB)的方式进行数据流量的交换,具体包括以下三种方式。第一种、对于源节点的多条数据流时,源节点为多条数据流中的每一条数据流分配一个交换路径,通过分配的交换路径传输对应的数据流。第二种、源节点按照数据流中自然存在的时间间隔(gap)将该数据流划分为多个流片段(flowlet),并为该多个流片段分配不同的交换路径,通过分配的交换路径传输对应的流片段。第三种、源节点按照一定长度将数据流划分为多个流切片(flow packets,flowpac),并为该多个流切片分配不同的交换路径,通过分配的交换路径传输对应的流切片,最后由目的节点对接收到的该多个流切片进行保序。
上述第一种方式,虽然目的节点无需进行保序,但是当某一些数据流的数据量较大时,容易出现负载不均衡,而导致单个交换节点拥塞。上述第二种方式,仅适用于数据流中连续的多个流片段之间存在时间间隔的场景,且在时间间隔小于传输延迟的情况下,仍需要目的节点进行保序。上述第三种方式中,目的节点对该多个流切片进行保序时,需要对齐网络中最慢的交换路径,从而延迟较大。
发明内容
本申请提供一种数据流保序方法、数据交换装置及网络,用于在动态负载均衡过中,减小目的节点的缓存需求和传输延迟,同时避免单个交换节点出现拥塞。。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种数据流保序方法,该方法包括:当源节点确定目标数据流的数据量大于预设阈值时,将该目标数据流划分为多个流切片;该源节点向多个交换节点中的交换节点发送写数据信息和该流切片,该写数据信息用于指示该交换节点存储该流切片且不转发该流切片;该源节点向该目标数据流的目的节点发送排序信息,该排序信息用于确定该多个交换节点中存储的该多个流切片的顺序。
在上述技术方案中,该源节点能够在目标数据流的数据量大于预设阈值时,利用数据交换网络中的多个交换节点存储目标数据流的多个流切片,并由源节点向目的节点发送排序信息,这样目的节点可以根据该排序信息确定该多个流切片的顺序并按照该顺序进行调度,而无需在目的节点对该多个流切片进行缓存和排序,从而减小目的节点的缓存需求和传输延迟;此外,将目标数据流的多个流切片分散存储在多个交换节点中,还能够避免单个交换节点出现拥塞。
在第一方面的一种可能的实现方式中,该源节点向该目标数据流的目的节点发送排序信息之前,该方法还包括:该源节点为该多个流切片中的每个流切片分配一个排序标识,一个流切片的排序标识用于指示该流切片在该多个切片流中的顺序;其中,该排序信息包括该多个流切片中的每个流切片的排序标识。可选的,该排序标识包括序列号;或者,该排序标识包括时间戳。上述可能的实现方式中,该源节点通过为该多个流切片分配排序标识,并通过排序信息发送目的节点,可以使得目的节点根据该排序信息确定该多个流切片的顺序,而无需在目的节点对该多个流切片进行缓存和排序,从而减小目的节点的缓存需求和传输延迟。
在第一方面的一种可能的实现方式中,该源节点向多个交换节点中的该交换节点发送写数据信息和该流切片之后,该方法还包括:该源节点接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;该排序信息还包括该节点信息。可选的,该节点信息可以包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)。上述可能的实现方式中,当源节点将目标数据流的多个流切片分别存储在多个交换节点中时,该多个交换节点可以向源节点返回对应存储的流切片的描述信息,以使源节点将多个描述信息发送给目的节点,这样目的节点可以根据该多个描述信息对该多个流切片进行有序调度。
在第一方面的一种可能的实现方式中,该多个交换节点包括该目的节点;或者,该目的节点包括用于存储该排序信息的排序缓存,若该排序缓存的占用率大于预设占用率该多个交换节点不包括该目的节点。上述可能的实现方式,能够避免目的节点因为排序缓存溢出,而导致网络出现拥塞或丢包的问题。
在第一方面的一种可能的实现方式中,该多个交换节点中一个交换节点对应的流切片在该多个流切片中的顺序与该交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,该交换节点对应的距离为该交换节点与第一交换节点之间的距离,该多个距离包括该多个交换节点中每个交换节点与第一交换节点之间的距离。上述可能的实现方式中,能够减小目的节点调度该多个流切片时的路径,以提高目的节点调度该多个流切片的效率。
第二方面,提供一种数据流保序方法,该方法包括:目的节点获取目标数据流中多个流切片的排序信息,该多个流切片分散存储在多个交换节点中;该目的节点根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序;该目的节点按照该顺序从该多个交换节点中调度该多个流切片。
在上述技术方案中,当该源节点利用数据交换网络中的多个交换节点存储目标数据流的多个流切片时,目的节点可以获取排序信息,根据该排序信息确定该多个流切片的顺序并按照该顺序进行调度,而无需在目的节点对该多个流切片进行缓存和排序,从而减小目的节点的缓存需求和传输延迟;此外,将目标数据流的多个流切片分散存储在多个交换节点中,还能够避免单个交换节点出现拥塞。
在第二方面的一种可能的实现方式中,该目的节点获取目标数据流中多个流切片的排序信息,包括:该目的节点接收来自该源节点的排序信息,该排序信息包括该多个流切片中的每个流切片的排序标识,该排序标识用于指示该流切片在该多个流切片中的顺序。上述可能的实现方式中,该目的节点可以直接从源节点获取该排序信息。
在第二方面的一种可能的实现方式中,该目的节点获取目标数据流中多个流切片的排序信息,包括:该目的节点接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;该目的节点根据该多个流切片的排序标识,确定该多个流切片的排序信息。上述可能的实现方式中,该目的节点可以直接从多个交换节点获取该排序信息。
在第二方面的一种可能的实现方式中,该排序标识包括序列号;或者,该排序标识包括时间戳。上述可能的实现方式,能够提高源节点为多个流切片分配排序标识的灵活性和多样性,以在不同的数据交换网络中实现数据流中多个流切片的保序。
在第二方面的一种可能的实现方式中,每个描述信息还包括存储对应的流切片的节点信息。该节点信息包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)。
在第二方面的一种可能的实现方式中,该多个交换节点包括该目的节点;或者,该目的节点包括用于存储该排序信息的排序缓存,若该排序缓存的占用率大于预设占用率该多个交换节点不包括该目的节点。上述可能的实现方式,能够避免目的节点因为排序缓存溢出,而导致网络出现拥塞或丢包的问题。
在第二方面的一种可能的实现方式中,该多个交换节点中一个交换节点对应的流切片在该多个流切片中的顺序与该交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,该交换节点对应的距离为该交换节点与第一交换节点之间的距离,该多个距离包括该多个交换节点中每个交换节点与第一交换节点之间的距离。上述可能的实现方式中,能够减小目的节点调度该多个流切片时的路径,以提高目的节点调度该多个流切片的效率。
第三方面,提供一种数据流保序方法,该方法包括:当源节点确定目标数据流的数据量大于预设阈值时,将该目标数据流划分为多个流切片;该源节点向多个交换节点中的该交换节点发送写数据信息和该流切片,该写数据信息用于指示该交换节点存储该流切片且不转发该流切片;该目的节点从该源节点或者该多个交换节点获取排序信息,并根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序;该目的节点按照该顺序从该多个交换节点中调度该多个流切片。
在上述技术方案中,该源节点能够在目标数据流的数据量大于预设阈值时,利用数据交换网络中的多个交换节点存储目标数据流的多个流切片,并由源节点或者多个交换节点向目的节点发送排序信息,这样目的节点可以根据该排序信息确定该多个流切片的顺序并按照该顺序进行调度,而无需在目的节点对该多个流切片进行缓存和排序,从而减小目的节点的缓存需求和传输延迟;此外,将目标数据流的多个流切片分散存储在多个交换节点中,还能够避免单个交换节点出现拥塞。
在第三方面的一种可能的实现方式中,该目的节点从该源节点获取排序信息,包括:该目的节点接收来自该源节点的排序信息,该排序信息包括该多个流切片中的每个流切片的排序标识,该排序标识用于指示该流切片在该多个流切片中的顺序。上述可能的实现方式中,该目的节点可以直接从源节点获取该排序信息。
在第三方面的一种可能的实现方式中,该方法还包括:该源节点接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;该排序信息还包括该节点信息。
在第三方面的一种可能的实现方式中,该目的节点从该多个交换节点获取排序信息,包括:该目的节点接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;该目的节点根据该多个流切片的排序标识,确定该多个流切片的排序信息。上述可能的实现方式中,该目的节点可以直接从多个交换节点获取该排序信息。
在第三方面的一种可能的实现方式中,该排序标识包括序列号;或者,该排序标识包括时间戳。上述可能的实现方式,能够提高源节点为多个流切片分配排序标识的灵活性和多样性,以在不同的数据交换网络中实现数据流中多个流切片的保序。
在第三方面的一种可能的实现方式中,每个描述信息还包括存储对应的流切片的节点信息;该节点信息包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)。
在第三方面的一种可能的实现方式中,该多个交换节点中一个交换节点对应的流切片在该多个流切片中的顺序与该交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,该交换节点对应的距离为该交换节点与第一交换节点之间的距离,该多个距离包括该多个交换节点中每个交换节点与第一交换节点之间的距离。上述可能的实现方式中,能够减小目的节点调度该多个流切片时的路径,以提高目的节点调度该多个流切片的效率。
第四方面,提供一种数据交换装置,该装置作为源节点,包括:处理单元,用于当确定目标数据流的数据量大于预设阈值时,将该目标数据流划分为多个流切片;发送单元,用于向多个交换节点中的该交换节点发送写数据信息和该流切片,该写数据信息用于指示该交换节点存储该流切片且不转发该流切片;该发送单元,还用于向该目标数据流的目的节点发送排序信息,该排序信息用于确定该多个交换节点中存储的该多个流切片的顺序。
在第四方面的一种可能的实现方式中,该处理单元还用于:为该多个流切片中的每个流切片分配一个排序标识,一个流切片的排序标识用于指示该流切片在该多个切片流中的顺序;其中,该排序信息包括该多个流切片中的每个流切片的排序标识。可选的,该排序标识包括序列号;或者,该排序标识包括时间戳。
在第四方面的一种可能的实现方式中,该装置还包括:接收单元,用于接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;该排序信息还包括该节点信息。;该节点信息包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)
在第四方面的一种可能的实现方式中,该多个交换节点包括该目的节点;或者,该目的节点包括用于存储该排序信息的排序缓存,若该排序缓存的占用率大于预设占用率该多个交换节点不包括该目的节点。
第五方面,提供一种数据交换装置,该装置作为目的节点,包括:获取单元,用于获取目标数据流中多个流切片的排序信息,该多个流切片分散存储在多个交换节点中;确定单元,用于根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序;调度单元,用于按照该顺序从该多个交换节点中调度该多个流切片。
在第五方面的一种可能的实现方式中,该获取单元还用于:接收来自该源节点的排序信息,该排序信息包括该多个流切片中的每个流切片的排序标识,该排序标识用于指示该流切片在该多个流切片中的顺序。
在第五方面的一种可能的实现方式中,该获取单元还用于:接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;根据该多个流切片的排序标识,确定该多个流切片的排序信息。可选的,该节点信息包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)。
在第五方面的一种可能的实现方式中,每个描述信息还包括存储对应的流切片的节点信息。可选的,该排序标识包括序列号;或者,该排序标识包括时间戳。
在第五方面的一种可能的实现方式中,该多个交换节点包括该目的节点;或者,该目的节点包括用于存储该排序信息的排序缓存,若该排序缓存的占用率大于预设占用率该多个交换节点不包括该目的节点。
第六方面,提供一种数据交换网络,该数据交换网络包括源节点、多个交换节点和目的节点:该源节点,用于当确定目标数据流的数据量大于预设阈值时,将该目标数据流划分为多个流切片;该源节点,还用于向多个交换节点中的交换节点发送写数据信息和该流切片,该写数据信息用于指示该交换节点存储该流切片且不转发该流切片;该目的节点,用于获取排序信息,并根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序;该目的节点,还用于按照该顺序从该多个交换节点中调度该多个流切片。
在第六方面的一种可能的实现方式中,该目的节点还用于:接收来自该源节点的排序信息,该排序信息包括该多个流切片中的每个流切片的排序标识,该排序标识用于指示该流切片在该多个流切片中的顺序。
在第六方面的一种可能的实现方式中,该源节点还用于:接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;该排序信息还包括该节点信息;该节点信息包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)。
在第六方面的一种可能的实现方式中,该目的节点还用于:接收来自该多个交换节点的多个描述信息,该多个描述信息与该多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;根据该多个流切片的排序标识,确定该多个流切片的排序信息。可选的,该排序标识包括序列号;或者,该排序标识包括时间戳。
在第六方面的一种可能的实现方式中,每个描述信息还包括存储对应的流切片的节点信息。
在本申请的又一方面,提供一种数据交换装置,该数据交换装置包括:处理器、存储器、通信接口和总线,该处理器、该存储器和该通信接口通过总线连接;该存储器用于存储程序代码,当该程序代码被该处理器执行时,使得该数据交换装置执行如第一方面或者第一方面的任一种可能的实现方式所提供的数据流保序方法。
在本申请的又一方面,提供一种数据交换装置,该数据交换装置包括:处理器、存储器、通信接口和总线,该处理器、该存储器和该通信接口通过总线连接;该存储器用于存储程序代码,当该程序代码被该处理器执行时,使得该数据交换装置执行如第二方面或者第二方面的任一种可能的实现方式所提供的数据流保序方法。
在本申请的又一方面,提供一种数据交换装置,该数据交换装置包括:处理器、存储器、通信接口和总线,该处理器、该存储器和该通信接口通过总线连接;该存储器用于存储程序代码,当该程序代码被该处理器执行时,使得该数据交换装置执行如第三方面或者第三方面的任一种可能的实现方式所提供的数据流保序方法。
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序或指令,当该计算机程序或指令被运行时,实现如第一方面或者第一方面的任一种可能的实现方式所提供的数据流保序方法。
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序或指令,当该计算机程序或指令被运行时,实现如第二方面或者第二方面的任一种可能的实现方式所提供的数据流保序方法。
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序或指令,当该计算机程序或指令被运行时,实现如第三方面或者第三方面的任一种可能的实现方式所提供的数据流保序方法。
在本申请的又一方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当计算机程序或指令被运行时,执行上述第一方面或第一方面的任一种可能的实现方式所提供的数据流保序方法。
在本申请的又一方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当计算机程序或指令被运行时,执行上述第二方面或第二方面的任一种可能的实现方式所提供的数据流保序方法。
在本申请的又一方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当计算机程序或指令被运行时,执行上述第三方面或第三方面的任一种可能的实现方式所提供的数据流保序方法。
可以理解地,上述提供的任一种数据交换装置、数据交换网络、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种数据交换网络的结构示意图;
图2为本申请实施例提供的另一种数据交换网络的结构示意图;
图3为本申请实施例提供的又一种数据交换网络的结构示意图;
图4为本申请实施例提供的另一种数据交换网络的示意图;
图5为本申请实施例提供的一种数据流保序方法的流程示意图;
图6为本申请实施例提供的另一种数据流保序方法的流程示意图;
图7为本申请实施例提供的一种多个流切片的传输示意图;
图8为本申请实施例提供的一种多个流切片的存储示意图;
图9为本申请实施例提供的一种多个描述信息的传输示意图;
图10为本申请实施例提供的另一种多个流切片的存储示意图;
图11为本申请实施例提供的一种目的节点调度多个流切片的示意图;
图12为本申请实施例提供的一种源节点的结构示意图;
图13为本申请实施例提供的另一种源节点的结构示意图;
图14为本申请实施例提供的一种交换节点的结构示意图;
图15为本申请实施例提供的另一种交换节点的结构示意图;
图16为本申请实施例提供的一种目的节点的结构示意图;
图17为本申请实施例提供的另一种目的节点的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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中示出了多个交换单元的互连关系仅为示例性的,并不对本申请实施例构成限制。
在上述数据交换网络中,每个交换节点均具有一定的交换能力和一定容量的缓存,当一个交换节点的待调度流量超出了该交换节点的交换能力和缓存能力时,则会导致队列头阻和丢包等现象。目前,通常是按照动态负载均衡(dynamic load balance,DLB)的方式进行数据流量的交换,以避免网络中出现拥塞。
示例性,图4示出了一种源节点S0与目的节点D0之间交换数据的示意图。图4中以该数据交换网络包括源节点S0、多个交换节点(分别表示为A1-A2、B1-B4和C1-C2)、以及目的节点D0,源节点S0分别与A1和A2互连,目的节点D0分别与C1和C2互连,A1分别通过B1和B2与C1互连,A2分别通过B3和B4与C2互连为例进行说明。在数据交换过程中,该数据交换网络中的交换节点可以采用如下三种动态负载均衡的方式。
第一种、对于源节点的多条数据流时,源节点为该多条数据流中的每一条数据流分配一个交换路径,通过分配的交换路径传输对应的数据流。示例性的,结合图4,对于源节点S0的4条数据流(分别表示为f1-f4),源节点S0可以为f1分配交换路径S0-A1-B1-C1-D0、为f2分配交换路径S0-A1-B2-C1-D0、为f3分配交换路径S0-A2-B3-C2-D0、为f4分配交换路径S0-A2-B4-C2-D0,并通过S0-A1-B1-C1-D0将f1传输至目的节点D0、通过S0-A1-B2-C1-D0将f2传输至目的节点D0、通过S0-A2-B3-C2-D0将f3传输至目的节点D0、通过S0-A2-B4-C2-D0将f4传输至目的节点D0。该方式中,目的节点无需进行保序,但是当某一些数据流的数据量较大时,容易出现负载不均衡,而导致单个交换节点拥塞的情况。
第二种、源节点按照数据流中自然存在的时间间隔(gap)将该数据流划分为多个流片段(flowlet),并为该多个流片段分配不同的交换路径,通过分配的交换路径传输对应的流片段。示例性的,结合图4,对于源节点S0的一条数据流f0,源节点S0按照时间间隔将f0划分为四个流片段(分别表示为f0-1、f0-2、f0-3和f0-4),为f0-1分配交换路径S0-A1-B1-C1-D0、为f0-2分配交换路径S0-A1-B2-C1-D0、为f0-3分配交换路径S0-A2-B3-C2-D0、为f0-4分配交换路径S0-A2-B4-C2-D0,并通过S0-A1-B1-C1-D0将f0-1传输至目的节点D0、通过S0-A1-B2-C1-D0将f0-2传输至目的节点D0、通过S0-A2-B3-C2-D0将f0-3传输至目的节点D0、通过S0-A2-B4-C2-D0将f0-4传输至目的节点D0。该方式,仅适用于数据流中连续的多个流片段之间存在时间间隔的场景,且在时间间隔小于传输延迟的情况下,可能会导致后发的流片段先到达目的节点、先发送的流片段后到达目的节点,此时要目的节点仍需要进行保序。
第三种、源节点按照一定长度将数据流划分为多个流切片(flowpac),并为该多个流切片分配不同的交换路径,通过分配的交换路径传输对应的流切片,最后由目的节点对接收到的多个流切片进行保序。示例性的,结合图4,对于源节点S0的一条数据流f1,源节点S0按照固定长度(比如,连续的N个报文)将f1划分为四个流切片(分别表示为f1-1、f1-2、f1-3和f1-4),为f1-1分配交换路径S0-A1-B1-C1-D0、为f1-2分配交换路径S0-A1-B2-C1-D0、为f1-3分配交换路径S0-A2-B3-C2-D0、为f1-4分配交换路径S0-A2-B4-C2-D0,并通过S0-A1-B1-C1-D0将f1-1传输至目的节点D0、通过S0-A1-B2-C1-D0将f1-2传输至目的节点D0、通过S0-A2-B3-C2-D0将f1-3传输至目的节点D0、通过S0-A2-B4-C2-D0将f1-4传输至目的节点D0。该方式中,目的节点对该多个流切片进行保序时,需要对齐网络中最慢的交换路径,即需要接收到所有的多个流切片才能进行保序,从而延迟较大。
基于此,本申请实施例提供一种数据交换网络、以及基于该数据交换网络的数据流保序方法。在该数据交换网络中,任意两个节点(比如,服务器与交换节点、以及交换节点与交换节点)之间的信息传输包括可以包括控制面和数据面,该控制面用于传输控制信令,该数据面用于传输数据,比如,该控制信令可以包括下文中的排序信息、描述信息和调度信息等。该数据面传输的数据可以包括信元、报文和流切片等。在该数据流保序方法中,源节点能够在目标数据流的数据量较大时,利用数据交换网络中的多个交换节点存储目标数据流的多个流切片,并由源节点或者该多个交换节点向目的节点发送排序信息,这样目的节点可以根据该排序信息确定该多个流切片的顺序并按照该顺序进行调度,而无需在目的节点对该多个流切片进行缓存和排序,从而减小目的节点的缓存需求和传输延迟;此外,将目标数据流的多个流切片分散存储在多个交换节点中,还能够避免单个交换节点出现拥塞。
下面对本申请实施例所提供的数据流保序方法进行介绍说明。
图5为本申请实施例提供的一种数据流保序方法的流程示意图,该方法可以应用于上文所提供的任意一种数据交换网络中,该方法包括以下步骤。图6为该数据流保序方法应用于数据交换网络中的一种示例。
S201:当源节点确定目标数据流的数据量大于预设阈值时,将目标数据流划分为多个流切片。
其中,源节点可以为目标数据流的源服务器,也可以为该数据交换网络中该源服务器接入的交换节点。类似的,下文中的目的节点可以为目标数据流的目的服务器,也可以为该数据交换网络中该目的服务器接入的交换节点。
另外,目标数据流可以是该源节点需要交换的多条数据流中数据量大于预设阈值的一条数据流,从而该目标数据流也可以称为大象流。可选的,该目标数据流可以是按照五元组划分得到的数据流,也可以是按照源节点、源端口、目标节点或目的端口中的一个划分得到的数据流,也可以是按照虚拟局域网VLAN划分得到的,本申请实施例对此不作具体限制。上述预设阈值可以是事先设置的,具体可以根据数据交换网络的网络性能和相关配置进行设置,本申请实施例对该预设阈值的具体数值不作具体限制。
再者,该流切片也可以称为数据块(data block),每个流切片中可以包括该目标数据流中连续的多个报文,不同流切片中包括的报文的数量可以相同,也可以不同,本申请实施例对此不作具体限制。
具体的,当源节点需要进行目标数据流的交换时,该源节点可以确定该目标数据流的数据量(比如,根据该目标数据流占用的缓存深度确定、或者该源节点通过计数器统计该目标数据流的报文数量等确定),若该数据量大于预设阈值,该源节点将该目标数据流划分为多个流切片。比如,该源节点按照固定长度的报文数量或信元数量(或者),或者按照变化长度的报文数量或信元数量将该目标数据流划分为多个流切片。再比如,该源节点按照下述多个交换节点中可用于存储该目标数据流的缓存的尺寸,将该目标数据流划分为多个流切片,即该多个流切片的尺寸与该多个交换节点用于存储该目标数据流的缓存的尺寸一致。
示例性的,以图4所示的数据交换网络为例,如图7所示,源节点S0在确定目标数据流f的数据量大于预设阈值时,按照固定长度的报文数量将目标数据流f划分为6个流切片且分别表示为DB1、DB2、DB3、DB4、DB5和DB6。
需要说明的是,该源节点可以在获取到该目标数据流的全部流量后再将该目标数据流划分为多个流切片,也可以在获取该目标数据流的过程中将该目标数据流划分为多个流切片,即该源节点可以在接收到该目标数据流的一部分流量,而未接收全部流量时,就对该目标数据流进行划分。
进一步的,该源节点还可以为该多个流切片中的每个流切片分配一个排序标识,该排序标识可以用于指示对应的流切片在该多个流切片中的位置,该排序标识还可以用于标识对应的流切片。在一种示例中,该排序标识为序列号,比如,该多个流切片包括6个流切片且对应的排序标识分别为SN1-SN6。在另一种示例中,该排序标识为时间戳,比如,该多个流切片包括6个流切片且对应的排序标识分别为TS1-TS6。可选的,该源节点可以将每个流切片的排序标识封装在对应的流切片中。
在一些可能的实施例中,当源节点需要进行目标数据流的交换,且确定该目标数据流的数据量小于或等于预设阈值时,该源节点可以通过一条路径将该目标数据流传输至目的节点,也可以通过本文所提供的数据流保序方法进行传输,本申请实施例对此不作具体限制。
S202:该源节点向多个交换节点中的交换节点发送写数据信息和流切片,该写数据信息用于指示该交换节点存储该流切片且停止转发该流切片。
其中,该多个交换节点(也可以称为缓存节点)可以包括该数据交换网络中的部分交换节点,也可以包括该数据交换网络中的所有交换节点。该多个交换节点可以包括目的节点,也可以不包括目的节点。图6中将该多个交换节点表示为多个缓存节点,源节点在该多个缓存节点中均衡写入流切片,且以该多个交换节点不包括目的节点为例进行说明。
另外,该源节点可以向该多个交换节点中的一个交换节点发送该多个流切片中的至少一个流切片,同时发送给该交换节点的写数据信息可以用于指示该交换节点存储该至少一个流切片,下文中以该源节点向一个交换节点发送一个流切片为例进行说明。可选的,该写数据信息可以包括写数据标识,该写数据标识可以用于指示接收该写数据标识的交换节点在本地存储该流切片且停止转发该流切片。
需要说明的是,停止转发该流切片可以是指接收到该流切片的交换节点在没有接收到用于调度该流切片的调度信息时,该交换节点不向下级的节点发送该流切片。即该交换节点只有接收到用于调度该流切片的调度信息,才能向下级的节点发送该流切片。
具体的,当该源节点划分得到多个流切片时,对于该多个流切片中的每个流切片,该源节点可以向该多个交换节点中的一个交换节点发送写数据信息和该流切片,以通过该写数据信息指示该交换节点存储该流切片且停止转发该流切片。
其中,对于该多个交换节点中的每个交换节点,当该源节点与该交换节点互连时,该源节点可以直接向该交换节点发送该写数据信息和该流切片;当该源节点通过其他交换节点与该交换节点互连时,该源节点可以通过该其他交换节点向该交换节点发送该写数据信息和该流切片。
示例性的,如图7所示,源节点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和对应的写数据信息。图7中仅示出了源节点S0发送的流切片。
可选的,该写数据信息还可以用于指示以下至少一项:该目标数据流的标识、该流切片的排序标识、以及该流切片所包括的报文的标识(比如,序列号)。在一种示例中,若该写数据信息可用于指示该流切片所包括的报文的标识,该写数据信息可以包括:该流切片中第1个报文的序列号和最后一个数据包的序号;或者该流切片中第1个报文的序列号和所包括的报文数量。
进一步的,该多个交换节点中的一个交换节点对应的流切片在该多个流切片中的顺序与该交换节点对应的距离在按照从小到大的顺序排列的多个距离中的顺序一致,该交换节点对应的距离为该交换节点与该目的节点之间的距离,该多个距离包括该多个交换节点与该目的节点之间的距离。示例性的,如图7所示,该多个交换节点包括B1-B4和C1-C2,该多个交换节点与目的节点D0之间的距离按照从小到大的顺序排列依次为C1、C2、B1、B2、B3、B4,这6个流切片的顺序为DB1-DB6,则可以将DB1存储在C1中,将DB2存储在C2中,将DB3存储在B1中,将DB4存储在B2中,将DB5存储在B3中,将DB6存储在B4中。
S203:当该多个交换节点中的交换节点接收到该写数据信息和该流切片时,该交换节点存储该流切片。
对于该多个交换节点中的每个交换节点,当该交换节点接收到写数据信息和该流切片时,该交换节点可以解析该写数据信息,以得到写数据标识,并根据该写数据标识确定该流切片需要进行存储,从而该交换节点可以在本地存储该流切片,比如,将该流切片存储在该交换节点为该目标数据流分配的缓存中,且不将该流切片转发给下级的交换节点。可选的,当该写数据信息还包括该目标数据流的标识、该流切片的排序标识、以及该流切片所包括的报文的标识时,该交换节点解析该写数据信息,也可以对应得到上述信息。
示例性的,结合图7,如图8所示,交换节点C1在接收到DB1和对应的写数据信息时在本地存储DB1,交换节点B1在接收到DB2和对应的写数据信息在本地存储DB2,交换节点B2在接收到DB3和对应的写数据信息时在本地存储DB3,交换节点B3在接收到DB4和对应的写数据信息时在本地存储DB4,交换节点B4在接收到DB5和对应的写数据信息时在本地存储DB5,交换节点C2在接收到DB6和对应的写数据信息时在本地存储DB6。
进一步的,如图6所示,该多个交换节点中的交换节点还可以向目的节点发送所存储的流切片的第一描述信息,第一描述信息包括该流切片的排序标识。可选的,第一描述信息还可以包括该流切片的节点信息,该节点信息可以包括以下信息中的一个或者多个:目标数据流的标识、节点标识、该流切片的存储地址、该流切片的尺寸、该流切片所包括的报文的标识。这样,该目的节点可以接收到多个第一描述信息,该多个第一描述信息与该多个流切片一一对应,从而该目的节点可以根据该多个第一描述信息确定该多个流切片的排序信息,即确定该多个交换节点中的存储的该多个流切片的顺序。
示例性的,结合图8,如图9中的(a)所示,交换节点C1向目的节点D0发送DB1的描述信息,交换节点B1通过C1向目的节点D0发送DB2的描述信息,交换节点B2通过C1向目的节点D0发送DB3的描述信息,交换节点B3通过C2向目的节点D0发送DB4的描述信息,交换节点B4通过C2向目的节点D0发送DB5的描述信息,交换节点C2向目的节点D0发送DB6的描述信息,当目的节点D0接收到DB1-DB6的描述信息时,可以根据DB1-DB6的描述信息确定交换节点B1-B4和C1-C2中存储的该6个流切片的顺序为DB1、DB2、DB3、DB4、DB5、DB6。
可替换的,该源节点可以向目的节点发送排序信息,该排序信息用于指示该多个交换节点中存储的该多个流切片的顺序。比如,该源节点在为该多个流切片分配对应的排序标识之后,可以将该多个流切片的排序标识和该目标数据流的标识携带在该排序信息中发送给目的节点。这样,该目的节点可以根据该排序信息确定该多个交换节点中的存储的该多个流切片的顺序。可选的,该源节点还可以向目的节点发送该多个交换节点的节点信息,该节点信息可以是源节点切分目标数据流和发送该多个流切片时确定的,也可以是该多个交换节点发送的。下面以该节点信息是该多个交换节点发送的为例,该多个交换节点中的交换节点还可以向源节点发送所存储的流切片的第二描述信息,第二描述信息可以包括对应存储该流切片的节点信息,该节点信息可以包括以下信息中的一个或者多个:目标数据流的标识、节点标识(比如,节点的地址)、该流切片的存储地址(该存储地址可以为物理地址或者逻辑地址等)、该流切片的尺寸、该流切片所包括的报文的标识(比如,序列号)。相应的,该源节点可以接收到多个第二描述信息,该多个第二描述信息与该多个流切片一一对应,该源节点还可以向该目的节点发送该多个第二描述信息,比如,该多个第二描述信息可以携带在排序信息中。
示例性的,结合图8,如图9中的(b)所示,交换节点C1向源节点S0发送DB1的描述信息,交换节点B1向源节点S0发送DB2的描述信息,交换节点B2向源节点S0发送DB3的描述信息,交换节点B3向源节点S0发送DB4的描述信息,交换节点B4向源节点S0发送DB5的描述信息,交换节点C2向源节点S0发送DB6的描述信息,源节点S0在接收到DB1-DB6的描述信息后向目的节点D0发送DB1-DB6的排序信息PD1-PD6(PD1-PD6中携带DB1-DB6的排序标识和描述信息,目的节点根据该排序信息PD1-PD6确定交换节点B1-B4和C1-C2中存储的该6个流切片的顺序为DB1、DB2、DB3、DB4、DB5、DB6。
S204:目的节点获取排序信息,并根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序。
在一种可能的实现方式中,当该多个交换节点中的交换节点向该目的节点发送所存储的流切片的第一描述信息,第一描述信息包括该流切片的排序标识时,该目的节点可以接收到多个第一描述信息,该多个第一描述信息与该多个流切片一一对应,从而该目的节点可以根据该多个第一描述信息确定该多个流切片的排序信息,即确定该多个交换节点中的存储的该多个流切片的顺序。图6中以多个缓存节点向目的节点发送描述信息为例进行说明。
在另一种可能的实现方式中,当该源节点向该目的节点发送排序信息时,该目的节点可以根据该排序信息确定该多个交换节点中存储的该多个流切片的顺序。比如,该排序信息包括该多个流切片中的每个流切片的排序标识,该排序标识用于指示该流切片在该多个流切片中的顺序,从而该目的节点可以根据多个流切片的排序标识,确定该多个交换节点中存储的该多个流切片的顺序。
因此,该目的节点可以根据上述两种实现方式中的任意一种获取到该多个流切片的排序信息,并确定该多个交换节点中存储的该多个流切片的顺序。下面对该目的节点确定该多个交换节点中存储的该多个流切片的顺序的详细过程进行举例说明。
在一种示例中,若该排序标识为序列号,则该目的节点在接收到该多个流切片的序列号后,可以按照从小到大(或者从大到小)的顺序对该多个流切片的序列号进行排序,以确定该多个交换节点中的存储的该多个流切片的先后顺序。比如,如图9中的(a)所示,若DB1-DB6的序列号分别为SN1-SN6,该目的节点接收到该多个流切片的序列号的顺序为SN1-SN6-SN3-SN2-SN5-SN4,则该目的节点可以按照从小到大的顺序对该序列号进行排序得到SN1-SN2-SN3-SN4-SN5-SN6。
在另一种示例中,若该排序标识为时间戳,则在源节点或者该多个交换节点发送该多个流切片的时间戳的过程中,任一交换节点可以对接收到的至少两个流切片的时间戳进行排序,并将排序后的时间戳发送给下级交换节点,这样目的节点在接收到该多个流切片的时间戳后,仅需对上一级节点的传输造成的乱序进行排序,而无需对传输路径中的所有交换节点造成的时间戳的乱序进行排序。比如,如图9中的(a)所示,若DB1-DB6的时间戳分别为TS1-TS6,则:交换节点C1向目的节点D0发送TS1;交换节点C2向目的节点D0发送TS6;交换节点B1通过路径B1-C1-D0发送TS2,交换节点B2通过路径B2-C1-D0发送TS3,交换节点C1在接收到TS2和TS3时对其进行排序得到TS2-TS3,并转发TS2-TS3给目的节点D0;交换节点B3通过路径B3-C2-D0发送TS4,交换节点B4通过路径B4-C2-D0发送TS5,交换节点C2在接收到TS3和TS4时对其进行排序得到TS4-TS5,并转发TS4-TS5给目的节点D0;此时,目的节点D0接收到的该多个流切片的时间戳的顺序为TS1-TS6-(TS2-TS3)-(TS4-TS5),则该目的节点可以将其排序为TS1-TS2-TS3-TS4-TS5-TS6。
可选的,该目的节点还可以根据来自该多个交换节点的多个第一描述信息或者来自源节点的排序信息或多个第二描述信息,确定每个流切片对应的报文描述信息,该报文描述信息可用于确定该多个流切片中每个流切片所包括的报文的数量和/或对应的报文的顺序等。
进一步的,该目的节点可以包括排序缓存,该排序缓存可以是该目的节点分配的用于存储不同数据流的排序信息的缓存,该排序缓存也可以称为排序通道。具体的,当该目的节点接收到目标数据流的多个流切片的排序信息时,该目的节点可以将该排序信息存储在该排序通道中,并在该排序通道中对该多个流切片的排序标识(比如,序列号)进行排序,以确定该多个交换节点中存储的该多个流切片的顺序。
可选的,当该排序缓存的占有率大于预设占有率时,该目的节点可以向该源节点发送指示信息,该指示信息可以用于指示该源节点停止向该目的节点发送该目标数据流的流切片。这样,当该源节点接收到该指示信息时,该源节点可以在S202中不向该目的节点发送流切片,也即是S202中的多个交换节点不包括该目的节点。上述图7-图9均以该目的节点的排序缓存的占有率大于预设占有率,该多个交换节点不包括该目的节点为例进行说明。
在一些可能的实施例中,该目的节点可以基于滑动窗口的排序缓存对目标数据流的多个流切片进行保序。示例性的,该目的节点维护容量有限的排序缓存,并及时通告源节点或交换节点该排序缓存的可用容量,从而源节点或交换节点可以根据该可用容量向该目的节点发送对应尺寸的排序信息。由于流切片的排序信息的尺寸是远远小于与流切片的尺寸的,从而该目的节点中的缓存在用作排序缓存时,可以存储更大数量的流切片的排序信息,且不易造成排序缓存的溢出。
此外,若源节点未接收到该指示信息,源节点可以在S202中向目的节点发送流切片,也即是S202中的多个交换节点包括该目的节点。示例性的,如图10所示,源节点S0可以将该目标数据流划分为7个流切片且分别表示为DB1-DB7,并向D0发送DB1,向C1发送DB2,向C2发送DB3,向B1发送DB4,向B2发送DB5,向B3发送DB6,向B4发送DB7,以将DB1-DB7分别存储在节点D0、C1、C2、B1、B2、B3和B4中。
S205:该目的节点按照该顺序向该多个交换节点中的交换节点发送调度信息,该调度信息用于调度该交换节点中存储的流切片。
当该目的节点需要调度该目标数据流的该多个流切片时,该目的节点可以在保证吞吐量的情况下,按照该多个流切片的顺序,依次通过调度信息调度该多个流切片,以使该目的节点按照该多个流切片的顺序依次获取到该多个流切片,即通过调度信息来保证目的节点接收该多个流切片的顺序。在一种实施例中,对于该多个交换节点中的每个交换节点,该目的节点可以生成对应的调度信息(比如,该调度信息为读命令),并向该交换节点发送的该调度信息,该调度信息可以包括该交换节点的标识、以及调度的流切片在该交换节点中的存储地址等。图6中以该调度信息为读命令为例进行说明。
可选的,对于任意一个交换节点,当该目的节点通过调度信息从该交换节点中读取对应的流切片时,该目的节点可以通过一次调度来获取该流切片,也可以通过多次调度来获取该流切片。当该目的节点通过多次调度来获取该流切片时,该目的节点每次发送的调度信息还可以用于指示当前调度的数据量,或者用于指示当前调度的报文的标识等。
具体的,对于该多个交换节点中的每个交换节点,当该目的节点与该交换节点互连时,该目的节点可以直接向该交换节点发送该调度信息;当该目的节点通过其他交换节点与该交换节点互连时,该目的节点可以通过其他交换节点向该交换节点发送该调度信息。
示例性的,结合图7-图9,如图11所示,该目的节点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。
在实际应用中,针对数据量大于预设阈值的数据流,该目的节点可以创建一个基于源节点的请求链表,基于该请求链表对多个源节点的数据流进行公平调度。此外,该目的节点还可以按照不同的调度层次来调度数据流,比如按照出端口、队列优先级、数据流和缓存池链表等来进行调度,该缓存池链表可以用于指示在不同交换节点中存储在同一数据流的多个流切片的顺序和存储位置。
S206:当该多个交换节点中的一个交换节点接收到该调度信息时,该交换节点向该目的节点发送对应的流切片。
当该多个交换节点中的一个交换节点接收到对应的调度信息时,该交换节点可以根据调度信息从本地中读取对应的流切片,并将该流切片发送给该目的节点,以使目的节点接收到该流切片。当该目的节点按照该多个流切片的顺序接收该多个流切片时,该目的节点可以在接收到每个流切片时,按照一定带宽或速率向外输出该流切片,以输出该多个流切片,从而完成该目的数据流的交换。
可选的,对于任意一个交换节点,当该目的节点通过一次调度来获取该流切片时,该交换节点可以根据调度信息从本地获取整个流切片,并将该流切片发送给该目的节点;当该目的节点通过多次调度来获取该流切片时,该交换节点可以根据调度信息通过多次发送,以将该流切片发送给该目的节点。
对于该多个交换节点中的任意一个交换节点,当该目的节点与该交换节点互连时,该交换节点可以直接向该目的节点发送该流切片;当该目的节点通过其他交换节点与该交换节点互连时,该交换节点可以通过其他交换节点向该目的节点发送该流切片。
在本申请实施例中,该源节点能够在目标数据流的数据量大于预设阈值时,利用数据交换网络中的多个交换节点存储目标数据流的多个流切片,并由源节点或者该多个交换节点向目的节点发送排序信息,这样目的节点可以根据该排序信息确定该多个流切片的顺序并按照该顺序进行调度,而无需在目的节点对该多个流切片进行缓存和排序,从而减小目的节点的缓存需求和传输延迟;此外,将目标数据流的多个流切片分散存储在多个交换节点中,还能够避免单个交换节点出现拥塞。
上述主要从各个节点之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个网元,例如源节点、交换节点和目的节点等,为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对源节点、交换节点和目的节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明:
在采用集成的单元的情况下,图12示出了上述实施例中所涉及的数据交换装置的一种可能的结构示意图。该数据交换装置可以为源节点或者源节点内置的芯片,该数据交换装置包括:处理单元301和发送单元302。其中,处理单元301用于支持该数据交换装置执行方法实施例中的S201、以及为流切片分配排序标识的步骤;发送单元302支持该数据交换装置执行方法实施例中S202、和/或向目的节点发送排序信息的步骤。可选的,该数据交换装置还可以包括接收单元303,接收单元303用于支持该数据交换装置接收多个描述信息的步骤。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用硬件实现的基础上,本申请中的处理单元301可以为数据交换装置的处理器,发送单元302可以为该数据交换装置的发送器,接收单元303可以为该数据交换装置的接收器,发送器通常可以和接收器集成在一起用作收发器,具体的收发器还可以称为通信接口。
图13所示,为本申请的实施例提供的上述实施例中所涉及的数据交换装置的一种可能的逻辑结构示意图。该数据交换装置可以为源节点或者源节点内置的芯片,该数据交换装置包括:处理器312和通信接口313。处理器312用于对该数据交换装置动作进行控制管理,例如,处理器312用于支持该数据交换装置执行方法实施例中的S201,为流切片分配排序标识的步骤,和/或用于本文所描述的技术的其他过程。此外,该数据交换装置还可以包括存储器311和总线314,处理器312、通信接口313以及存储器311通过总线314相互连接;通信接口313用于支持该数据交换装置进行通信;存储器311用于存储该数据交换装置的程序代码和数据。
其中,处理器312可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线314可以是外设部件互连标准(peripheralcomponent interconnect,PCI)总线或扩展工业标准结构(extended industry standardarchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在采用集成的单元的情况下,图14示出了上述实施例中所涉及的数据交换装置的一种可能的结构示意图。该数据交换装置可以为交换节点或者交换节点内置的芯片,该数据交换装置包括:接收单元401和处理单元402。其中,接收单元401用于支持该数据交换装置执行方法实施例中接收写数据信息和流切片、以及接收调度信息的步骤;处理单元402支持该数据交换装置执行方法实施例中的S203。可选的,该数据交换装置还可以包括发送单元403,发送单元403用于支持该数据交换装置执行上述实施例中的S206、和/或发送描述信息的步骤。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用硬件实现的基础上,本申请中的处理单元403可以为数据交换装置的处理器,接收单元401可以为该数据交换装置的接收器,发送单元403可以为该数据交换装置的发送器,发送器通常可以和接收器集成在一起用作收发器,具体的收发器还可以称为通信接口。
图15所示,为本申请的实施例提供的上述实施例中所涉及的数据交换装置的一种可能的逻辑结构示意图。该数据交换装置可以为目的节点或者目的节点内置的芯片,该数据交换装置包括:处理器412和通信接口413。处理器412用于对该数据交换装置动作进行控制管理,例如,处理器412用于支持该数据交换装置执行方法实施例中的S203,和/或用于本文所描述的技术的其他过程。此外,该数据交换装置还可以包括存储器411和总线414,处理器412、通信接口413以及存储器411通过总线414相互连接;通信接口413用于支持该数据交换装置进行通信;存储器411用于存储该数据交换装置的程序代码和数据。
其中,处理器412可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线414可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在采用集成的单元的情况下,图16示出了上述实施例中所涉及的数据交换装置的一种可能的结构示意图。该数据交换装置可以为目的节点或者目的节点内置的芯片,该数据交换装置包括:获取单元501、确定单元502和调度单元503。其中,获取单元501用于支持该数据交换装置执行方法实施例的S204中获取排序信息的步骤;确定单元502用于支持该数据交换装置执行方法实施例的S204中确定该多个流切片的顺序的步骤;调度单元503用于执行该数据交换装置执行方法实施例中的S205。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用硬件实现的基础上,本申请中的确定单元502可以为数据交换装置的处理器,获取单元501和调度单元503可以为该数据交换装置的收发器,该收发器通常包括发送器和接收器,具体的收发器还可以称为通信接口。
图17所示,为本申请的实施例提供的上述实施例中所涉及的数据交换装置的一种可能的逻辑结构示意图。该数据交换装置可以为目的节点或者目的节点内置的芯片,该数据交换装置包括:处理器512和通信接口513。处理器512用于对该数据交换装置动作进行控制管理,例如,处理器512用于支持该数据交换装置执行方法实施例的S204中确定该多个流切片的顺序的步骤,和/或用于本文所描述的技术的其他过程。此外,该数据交换装置还可以包括存储器511和总线514,处理器512、通信接口513以及存储器511通过总线514相互连接;通信接口513用于支持该数据交换装置进行通信;存储器511用于存储该数据交换装置的程序代码和数据。
其中,处理器512可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线514可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请的另一实施例中,还提供一种数据交换网络,该数据交换网络包括源节点、交换节点和目的节点。其中,源节点可以为上述装置实施例中所提供的源节点,用于支持源节点执行方法实施例中源节点的步骤;和/或,交换节点为上述装置实施例所提供的交换节点,用于支持交换节点执行方法实施例中交换节点的步骤;和/或,目的节点为上述装置实施例所提供的目的节点,用于支持目的节点执行方法实施例中目的节点的步骤。
本申请装置实施例的源节点、交换节点和目的节点可分别对应于本申请方法实施例中的源节点、交换节点和目的节点。并且,源节点、交换节点和目的节点的各个模块和其它操作和/或功能分别为了实现上述方法实施例的相应流程,为了简洁,本申请方法实施例的描述可以适用于该装置实施例,在此不再赘述。
本申请装置实施例的有益效果可参考上述对应的方法实施例中的有益效果,此处不再赘述。另外,本申请装置实施例中相关内容的描述也可以参考上述对应的方法实施例。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的另一实施例中,还提供一种可读存储介质,可读存储介质中存储有计算机执行指令,当一个设备(可以是单片机,芯片等)或者处理器执行上述方法实施例所提供的数据流保序方法中源节点的步骤。前述的可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的另一实施例中,还提供一种可读存储介质,可读存储介质中存储有计算机执行指令,当一个设备(可以是单片机,芯片等)或者处理器执行上述方法实施例所提供的数据流保序方法中交换节点的步骤。前述的可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的另一实施例中,还提供一种可读存储介质,可读存储介质中存储有计算机执行指令,当一个设备(可以是单片机,芯片等)或者处理器执行上述方法实施例所提供的数据流保序方法中目的节点的步骤。前述的可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备上述方法实施例所提供的数据流保序方法中源节点的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备上述方法实施所提供的数据流保序方法中交换节点的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备上述方法实施所提供的数据流保序方法中目的节点的步骤。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (36)

1.一种数据流保序方法,其特征在于,所述方法包括:
当源节点确定目标数据流的数据量大于预设阈值时,将所述目标数据流划分为多个流切片;
所述源节点向多个交换节点中的所述交换节点发送写数据信息和所述流切片,所述写数据信息用于指示所述交换节点存储所述流切片且不转发所述流切片;
所述源节点向所述目标数据流的目的节点发送排序信息,所述排序信息用于确定所述多个交换节点中存储的所述多个流切片的顺序。
2.根据权利要求1所述的方法,其特征在于,所述源节点向所述目标数据流的目的节点发送排序信息之前,所述方法还包括:
所述源节点为所述多个流切片中的每个流切片分配一个排序标识,一个流切片的排序标识用于指示所述流切片在所述多个切片流中的顺序;
其中,所述排序信息包括所述多个流切片中的每个流切片的排序标识。
3.根据权利要求2所述的方法,其特征在于,所述排序标识包括序列号;或者,所述排序标识包括时间戳。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述源节点向多个交换节点中的所述交换节点发送写数据信息和所述流切片之后,所述方法还包括:
所述源节点接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;
所述排序信息还包括所述节点信息。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述多个交换节点包括所述目的节点;或者,所述目的节点包括用于存储所述排序信息的排序缓存,若所述排序缓存的占用率大于预设占用率所述多个交换节点不包括所述目的节点。
6.一种数据流保序方法,其特征在于,所述方法包括:
目的节点获取目标数据流中多个流切片的排序信息,所述多个流切片分散存储在多个交换节点中;
所述目的节点根据所述排序信息确定所述多个交换节点中存储的所述多个流切片的顺序;
所述目的节点按照所述顺序从所述多个交换节点中获取所述多个流切片。
7.根据权利要求6所述的方法,其特征在于,所述目的节点获取目标数据流中多个流切片的排序信息,包括:
所述目的节点接收来自所述源节点的排序信息,所述排序信息包括所述多个流切片中的每个流切片的排序标识,所述排序标识用于指示所述流切片在所述多个流切片中的顺序。
8.根据权利要求6所述的方法,其特征在于,所述目的节点获取目标数据流中多个流切片的排序信息,包括:
所述目的节点接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;
所述目的节点根据所述多个流切片的排序标识,确定所述多个流切片的排序信息。
9.根据权利要求8所述的方法,其特征在于,每个描述信息还包括存储对应的流切片的节点信息。
10.根据权利要求7-9任一项所述的方法,其特征在于,所述排序标识包括序列号;或者,所述排序标识包括时间戳。
11.根据权利要求6-10任一项所述的方法,其特征在于,所述多个交换节点包括所述目的节点;或者,所述目的节点包括用于存储所述排序信息的排序缓存,若所述排序缓存的占用率大于预设占用率所述多个交换节点不包括所述目的节点。
12.一种数据流保序方法,其特征在于,所述方法包括:
当源节点确定目标数据流的数据量大于预设阈值时,将所述目标数据流划分为多个流切片;
所述源节点向多个交换节点中的所述交换节点发送写数据信息和所述流切片,所述写数据信息用于指示所述交换节点存储所述流切片且不转发所述流切片;
所述目的节点从所述源节点或者所述多个交换节点获取排序信息,并根据所述排序信息确定所述多个交换节点中存储的所述多个流切片的顺序;
所述目的节点按照所述顺序从所述多个交换节点中调度所述多个流切片。
13.根据权利要求12所述的方法,其特征在于,所述目的节点从所述源节点获取排序信息,包括:
所述目的节点接收来自所述源节点的排序信息,所述排序信息包括所述多个流切片中的每个流切片的排序标识,所述排序标识用于指示所述流切片在所述多个流切片中的顺序。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
所述源节点接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;
所述排序信息还包括所述节点信息。
15.根据权利要求12所述的方法,其特征在于,所述目的节点从所述多个交换节点获取排序信息,包括:
所述目的节点接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;
所述目的节点根据所述多个流切片的排序标识,确定所述多个流切片的排序信息。
16.根据权利要求15所述的方法,其特征在于,每个描述信息还包括存储对应的流切片的节点信息。
17.根据权利要求13-16任一项所述的方法,其特征在于,所述排序标识包括序列号;或者,所述排序标识包括时间戳。
18.一种数据交换装置,其特征在于,所述装置作为源节点,包括:
处理单元,用于当确定目标数据流的数据量大于预设阈值时,将所述目标数据流划分为多个流切片;
发送单元,用于向多个交换节点中的所述交换节点发送写数据信息和所述流切片,所述写数据信息用于指示所述交换节点存储所述流切片且不转发所述流切片;
所述发送单元,还用于向所述目标数据流的目的节点发送排序信息,所述排序信息用于确定所述多个交换节点中存储的所述多个流切片的顺序。
19.根据权利要求18所述的装置,其特征在于,所述处理单元还用于:
为所述多个流切片中的每个流切片分配一个排序标识,一个流切片的排序标识用于指示所述流切片在所述多个切片流中的顺序;
其中,所述排序信息包括所述多个流切片中的每个流切片的排序标识。
20.根据权利要求19所述的装置,其特征在于,所述排序标识包括序列号;或者,所述排序标识包括时间戳。
21.根据权利要求18-20任一项所述的装置,其特征在于,所述装置还包括:
接收单元,用于接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;
所述排序信息还包括所述节点信息。
22.根据权利要求18-21任一项所述的装置,其特征在于,所述多个交换节点包括所述目的节点;或者,所述目的节点包括用于存储所述排序信息的排序缓存,若所述排序缓存的占用率大于预设占用率所述多个交换节点不包括所述目的节点。
23.一种数据交换装置,其特征在于,所述装置作为目的节点,包括:
获取单元,用于获取目标数据流中多个流切片的排序信息,所述多个流切片分散存储在多个交换节点中;
确定单元,用于根据所述排序信息确定所述多个交换节点中存储的所述多个流切片的顺序;
调度单元,用于按照所述顺序从所述多个交换节点中调度所述多个流切片。
24.根据权利要求23所述的装置,其特征在于,所述获取单元还用于:
接收来自所述源节点的排序信息,所述排序信息包括所述多个流切片中的每个流切片的排序标识,所述排序标识用于指示所述流切片在所述多个流切片中的顺序。
25.根据权利要求23所述的装置,其特征在于,所述获取单元还用于:
接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;
根据所述多个流切片的排序标识,确定所述多个流切片的排序信息。
26.根据权利要求25所述的装置,其特征在于,每个描述信息还包括存储对应的流切片的节点信息。
27.根据权利要求24-26任一项所述的装置,其特征在于,所述排序标识包括序列号;或者,所述排序标识包括时间戳。
28.根据权利要求23-27任一项所述的装置,其特征在于,所述多个交换节点包括所述目的节点;或者,所述目的节点包括用于存储所述排序信息的排序缓存,若所述排序缓存的占用率大于预设占用率所述多个交换节点不包括所述目的节点。
29.一种数据交换网络,其特征在于,所述数据交换网络包括源节点、多个交换节点和目的节点:
所述源节点,用于当确定目标数据流的数据量大于预设阈值时,将所述目标数据流划分为多个流切片;
所述源节点,还用于向多个交换节点中的所述交换节点发送写数据信息和所述流切片,所述写数据信息用于指示所述交换节点存储所述流切片且不转发所述流切片;
所述目的节点,用于获取排序信息,并根据所述排序信息确定所述多个交换节点中存储的所述多个流切片的顺序;
所述目的节点,还用于按照所述顺序从所述多个交换节点中调度所述多个流切片。
30.根据权利要求29所述的数据交换网络,其特征在于,所述目的节点还用于:
接收来自所述源节点的排序信息,所述排序信息包括所述多个流切片中的每个流切片的排序标识,所述排序标识用于指示所述流切片在所述多个流切片中的顺序。
31.根据权利要求30所述的数据交换网络,其特征在于,所述源节点还用于:
接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括存储对应的流切片的节点信息;
所述排序信息还包括所述节点信息。
32.根据权利要求29所述的数据交换网络,其特征在于,所述目的节点还用于:
接收来自所述多个交换节点的多个描述信息,所述多个描述信息与所述多个流切片一一对应,每个描述信息包括对应的流切片的排序标识;
根据所述多个流切片的排序标识,确定所述多个流切片的排序信息。
33.根据权利要求32所述的数据交换网络,其特征在于,每个描述信息还包括存储对应的流切片的节点信息。
34.根据权利要求30-33任一项所述的数据交换网络,其特征在于,所述排序标识包括序列号;或者,所述排序标识包括时间戳。
35.一种数据交换装置,其特征在于,所述数据交换装置包括:处理器、存储器、通信接口和总线,所述处理器、所述存储器和所述通信接口通过总线连接;所述存储器用于存储程序代码,当所述程序代码被所述处理器执行时,使得所述装置执行权利要求1-17任一项所述的数据流保序方法。
36.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,当所述计算机程序或指令被运行时,实现如权利要求1-17任一项所述的数据流保序方法。
CN202210405697.5A 2022-04-18 2022-04-18 一种数据流保序方法、数据交换装置及网络 Pending CN116962301A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210405697.5A CN116962301A (zh) 2022-04-18 2022-04-18 一种数据流保序方法、数据交换装置及网络
PCT/CN2023/082239 WO2023202294A1 (zh) 2022-04-18 2023-03-17 一种数据流保序方法、数据交换装置及网络

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210405697.5A CN116962301A (zh) 2022-04-18 2022-04-18 一种数据流保序方法、数据交换装置及网络

Publications (1)

Publication Number Publication Date
CN116962301A true CN116962301A (zh) 2023-10-27

Family

ID=88419093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210405697.5A Pending CN116962301A (zh) 2022-04-18 2022-04-18 一种数据流保序方法、数据交换装置及网络

Country Status (2)

Country Link
CN (1) CN116962301A (zh)
WO (1) WO2023202294A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024114361A1 (zh) * 2022-12-01 2024-06-06 华为技术有限公司 一种数据传输方法和节点

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10498654B2 (en) * 2015-12-28 2019-12-03 Amazon Technologies, Inc. Multi-path transport design
CN108243256B (zh) * 2018-01-19 2020-08-04 网宿科技股份有限公司 一种数据存储方法、编码设备及解码设备
CN113691459A (zh) * 2020-05-19 2021-11-23 华为技术有限公司 基于标识报文的数据传输方法及装置
CN114189474A (zh) * 2020-09-14 2022-03-15 华为技术有限公司 数据传输方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024114361A1 (zh) * 2022-12-01 2024-06-06 华为技术有限公司 一种数据传输方法和节点

Also Published As

Publication number Publication date
WO2023202294A1 (zh) 2023-10-26

Similar Documents

Publication Publication Date Title
US11799764B2 (en) System and method for facilitating efficient packet injection into an output buffer in a network interface controller (NIC)
US20070268903A1 (en) System and Method for Assigning Packets to Output Queues
US7227841B2 (en) Packet input thresholding for resource distribution in a network switch
US7406041B2 (en) System and method for late-dropping packets in a network switch
CN101299721B (zh) 交换网报文交换方法和交换装置
US7633861B2 (en) Fabric access integrated circuit configured to bound cell reorder depth
CN101572673B (zh) 扩展交换带宽的分布式包交换系统和分布式包交换方法
US20070268926A1 (en) System and Method for Allocating Memory Resources in a Switching Environment
US7650413B2 (en) Managing shared memory resources in a high-speed switching environment
WO2020047074A1 (en) Sending data using a plurality of credit pools at the receivers
US20040215903A1 (en) System and method of maintaining high bandwidth requirement of a data pipe from low bandwidth memories
CN115622952A (zh) 资源调度方法、装置、设备及计算机可读存储介质
CN116962301A (zh) 一种数据流保序方法、数据交换装置及网络
CN111835652B (zh) 一种数据流的虚拟通道的设置方法及装置
US7245617B2 (en) Queuing packets written to memory for switching
CN112005528B (zh) 一种数据交换方法、数据交换节点及数据中心网络
EP3579507B1 (en) Dynamic scheduling methods, platform, system and switch apparatus.
EP4443845A1 (en) Data exchange method and apparatus
CN116755624A (zh) 基于fc设备多分区独立缓存的通信方法与系统
EP1521411B1 (en) Method and apparatus for request/grant priority scheduling
JP4852138B2 (ja) 高速交換環境でマルチキャスティングするシステム、方法及び論理
CN112804166B (zh) 一种报文收发方法、装置及存储介质
US20240364636A1 (en) Data exchange method and apparatus
WO2022147762A1 (zh) 一种数据包排序方法及装置
US9282045B2 (en) Information processing method, information processing circuit, and information processing apparatus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication