CN108965121A - 传输数据的方法、主机和交换机 - Google Patents
传输数据的方法、主机和交换机 Download PDFInfo
- Publication number
- CN108965121A CN108965121A CN201710359609.1A CN201710359609A CN108965121A CN 108965121 A CN108965121 A CN 108965121A CN 201710359609 A CN201710359609 A CN 201710359609A CN 108965121 A CN108965121 A CN 108965121A
- Authority
- CN
- China
- Prior art keywords
- path
- host
- slice
- interchanger
- index
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- 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
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2466—Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- 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/33—Flow control; Congestion control using forward notification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
Abstract
本发明实施例中提供了一种传输数据的方法,该方法包括:第一主机在第一数据流的第一切片的每个报文中添加第一索引,该第一索引用于交换机在该第一主机到第二主机的多条可用路径中确定该第一索引对应的第一路径;向该交换机发送该第一数据流的第一切片,该第一切片的最后一个报文是该第一主机根据转发该第一切片的第一路径的路径状况信息确定的,以便该交换机通过所述第一路径向该第二主机转发该第一切片。在本发明实施例中,该第一主机通过在第一数据流的每个切片中增加索引,能够知道每个切片的传输路径的路径状况信息,进而能够避免该第一数据流的实际传输路径与主机侧拥塞窗口指示的路径不一致的问题。
Description
技术领域
本发明实施例涉及通信领域,并且更具体地,涉及一种传输数据的方法、主机和交换机。
背景技术
目前,互联网数据正以***性的方式增长。例如,新浪微博在中国的注册用户数量已经破3亿,腾讯(Tencent)的即时通讯工具活跃用户达到7.1亿,脸谱(Facebook)全球用户数量正逼近10亿。根据国际数据公司发布的报告(Digital Universe Study 2011),全球信息总量每过两年就会增长一倍。大数据的出现正迫使企业不断提升自身以数据中心为平台的数据处理能力。
多年的研究及实践发现,基于克劳斯(Clos)架构的数据中心网络比传统的树形架构拓扑有着更好的扩展性,更多的等价路径数优势,且在Clos架构下,可以采用相同规格的设备来构建数据中心网络,而不再需要昂贵的汇聚设备,这些优势使得Clos架构在业界得到了越来越广泛的部署。
现有技术中,基于Clos架构的数据中心网络可以采用传统的等价多路径(equal-cost multi-path,ECMP)哈希(hash)机制进行数据传输。其中,哈希是一种散列机制,具体地,指将M个输入数据通过计算后散列到N个对应结果上的方法。然而,传统ECMP hash机制是基于流进行hash的。也就是说,一条流会严格对应一条路径。这样对于每条流来说,网络中都会存在多条转发路径,使得多个流在同时转发的情况下,不同流会被发送到同一条转发路径上,使该转发路径出现拥塞。
例如,如图1所示,四条流(flow)A、B、C、D分别从不同的源转发到不同的目的,流A与流B在左边第一个中间层设备处出现本地冲突(local collision),流C与流D可在左边第二个最高层设备处出现下游冲突(downstream collision)。
为了解决上述问题,思科提出了基于流切片(flowlet)实施的用于数据中心的分布式拥塞感知负载均衡方案(Distributed Congestion-aware Load Balancing forDatacenters,CONGA),取代了传统的基于流进行hash的负载均衡方式,相比于flow来的更为精细。而按照CONGA的flowlet机制,每条流均可以分散到至少两条转发路径上,以达到更佳的负载均衡效果。
但是,由于CONGA机制是在交换机上实施的,仅在负载均衡选路决策上采用flowlet,而发送方(主机)仍然是基于flow进行拥塞控制的,会导致实际传输路径的拥塞状态与发送方拥塞窗口不一致的问题,进而降低了数据的传输效率。
例如,如图2所示,flow A从源交换机L0到目的交换机L1可以通过两条路径传输,分别是L0-S0-L1与L0-S1-L1,其中,L0-S0-L1对应的链路带宽为10Gbps,L0-S1-L1对应的链路带宽为1Gbps;发送方发出的flow A可以被切分为flowlet A1与flowlet A2;发送方在发出flow A的同时,会通过速率控制算法控制flow A的发送速率,并根据实施探测到的路径丢包状况进行速率调整;发送方首先以1Gbps的速率发送flow A的flowlet A1,L0通过CONGA算法选择路径L0-S1-L1转发flowlet A1;发送方发现本次传输的flow A流量没有发生拥塞,于是增加流的速率,例如以2Gbps的速率发送flow A的flowlet A2;L0继续运行CONGA,此时路径L0-S0-L1的路径拥塞程度低于路径L0-S1-L1的拥塞程度,因此,按照CONGA算法,L0选择通过路径L0-S0-L1转发flowlet A2;然而,由于路径L0-S0-L1的可用带宽为1Gbps,而flowlet 2的2Gbps速率超过了L0-S0-L1的带宽,L0-S0-L1将出现拥塞,会丢弃flowlet A2中的部分报文。
通过以上分析可以发现,由于CONGA机制是在交换机上实施的,并且仅在负载均衡选路决策时采用flowlet,而主机侧是基于flow进行拥塞控制的,即,主机侧不知道flow A的实际传输路径。换句话说,主机侧拥塞窗口指示的是flowlet A1的L0-S1-L1的拥塞状况,而flowlet A2的实际传输路径是L0-S0-L1,出现flow A的实际传输路径与主机侧拥塞窗口指示的该flow A的传输路径不一致的问题,进一步地,导致主机侧的拥塞窗口不能准确的指示flow A的实际传输路径的拥塞状态,进而影响数据的传输效率。
发明内容
本申请提供了一种传输数据的方法、主机和交换机,能够在等价多路径的场景下,有效提高数据的传输效率。
第一方面,提供了一种传输数据的方法,所述方法包括:
第一主机在第一数据流的第一切片的每个报文中添加第一索引,所述第一索引用于交换机在所述第一主机到第二主机的多条可用路径中确定所述第一索引对应的第一路径;
所述第一主机向所述交换机发送所述第一数据流的第一切片,所述第一切片的最后一个报文是所述第一主机根据转发所述第一切片的第一路径的路径状况信息确定的,所述第一切片包括所述第一索引,以便所述交换机通过所述第一路径向所述第二主机转发所述第一切片。
在本发明实施例中,在第一主机需要向第二主机发送第一数据流时,该第一主机通过在第一数据流的每个切片中增加索引,能够知道每个切片的传输路径的路径状况信息,并根据当前切片的传输路径的路径状况信息,确定是否将该第一数据流再次切片,能够避免该第一数据流的实际传输路径与主机侧拥塞窗口指示的路径不一致的问题,进而有效保证了数据的传输效率。
在一些可能的实现方式中,所述方法还包括:
所述第一主机在所述第一路径的路径状况信息显示第一路径处于拥塞状态时,结束发送所述第一切片,且在所述第一切片之后,在所述第一数据流的第二切片的每个报文中添加第二索引,所述第二索引用于所述交换机在所述多条可用路径中确定所述第二索引对应的第二路径,所述第二路径与所述第一路径不同;
所述第一主机向所述交换机发送所述第二切片,以便所述交换机通过所述第二路径向所述第二主机转发所述第二切片。
本发明实施例的数据传输的方法,通过仅在所述第一路径的路径状况信息显示第一路径处于拥塞状态时,才结束发送所述第一切片,使得该第一主机能够最大限度的降低该第一数据流的切片数。
在一些可能的实现方式中,所述方法还包括:
所述第一主机在发送预定长度的所述第二切片后,根据所述第一路径的路径状况信息和所述第二路径的路径状况信息,结束发送所述第二切片或者继续发送所述第二切片。
在一些可能的实现方式中,所述第一主机在发送预定长度的所述第二切片后,根据所述第一路径的路径状况信息和所述第二路径的路径状况信息,结束发送所述第二切片或者继续发送所述第二切片,包括:
所述第一主机在所述第一路径的路径状况信息显示所述第一路径没有处于拥塞状态时,结束发送所述第二切片;
所述方法还包括:
所述第一主机在所述第二切片之后,在所述第一数据流的第三切片的每个报文中添加所述第一索引;
所述第一主机向所述交换机发送第三切片,所述第三切片包括所述第一索引,以便所述交换机通过所述第一路径向所述第二主机转发所述第三切片。
在一些可能的实现方式中,所述第一主机在发送预定长度的所述第二切片后,根据所述第一路径的路径状况信息和所述第二路径的路径状况信息,结束发送所述第二切片或者继续发送所述第二切片,包括:
所述第一主机在所述第一路径的路径状况信息显示第一路径处于拥塞状态且所述第二路径的路径状况信息显示第二路径没有处于拥塞状态时,继续发送所述第二切片。
在一些可能的实现方式中,所述第一主机在发送预定长度的所述第二切片后,根据所述第一路径的路径状况信息和所述第二路径的路径状况信息,结束发送所述第二切片或者继续发送所述第二切片,包括:
所述第一主机在所述第一路径的路径状况信息显示第一路径处于拥塞状态且所述第二路径的路径状况信息显示所述第二路径处于拥塞状态时,结束发送所述第二切片;
所述方法还包括:
所述第一主机在所述第二切片之后,在所述第一数据流的第三切片的每个报文中添加第三索引,所述第二索引用于所述交换机在所述多条可用路径中确定所述第三索引对应的第三路径,所述第一路径、所述第二路径和所述第三路径互不相同;
所述第一主机向所述交换机发送第三切片,所述第三切片包括所述第三索引,以便所述交换机在所述第三路径上向所述第二主机转发所述第三切片。
在一些可能的实现方式中,所述第一主机在第一数据流的第一切片的每个报文中添加第一索引之前,所述方法还包括:
所述第一主机获取所述多条可用路径的总数,以便于所述第一主机根据所述多条可用路径的总数确定在所述第一数据流中能够添加的索引数量。
在一些可能的实现方式中,所述第一主机获取所述多条可用路径的总数,包括:
所述第一主机向所述交换机发送第一传输控制协议TCP链接请求报文,所述TCP链接请求报文包括所述第一请求消息,所述第一请求消息用于请求获取所述多条可用路径的总数,使得所述交换机在所述第一TCP链接请求报文中添加所述多条可用路径的总数,生成需要向所述第二主机发送的第二TCP链接请求报文;
所述第一主机接收所述交换机转发的所述第二TCP链接请求报文的响应报文,所述响应报文包括所述多条可用路径的总数。
在一些可能的实现方式中,所述第一主机在第一数据流的第二切片的每个报文中添加第二索引之前,所述方法还包括:
所述第一主机接收所述第二主机对应的服务器发送的所述第一路径的路径状况信息。
在一些可能的实现方式中,所述路径状况信息包括往返时延RTT和/或显性拥塞通知ECN。
第二方面,提供了一种传输数据的方法,所述方法包括:
交换机接收第一主机发送的第一数据流的第一切片,所述第一切片的最后一个报文是所述第一主机根据转发所述第一切片的第一路径的路径状况信息确定的,所述第一切片包括第一索引,所述第一索引用于交换机在所述第一主机到第二主机的多条可用路径中确定所述第一索引对应的第一路径;
所述交换机通过所述第一路径向第二主机转发所述第一切片。
在一些可能的实现方式中,所述交换机通过所述第一路径向第二主机转发所述第一切片之前,所述方法还包括:
所述交换机建立对应关系表,所述对应关系表用于记录所述多条可用路径中每条可用路径对应的索引;
所述交换机根据所述对应关系表和所述第一索引,确定所述第一路径。
在一些可能的实现方式中,所述方法还包括:
所述交换机结束接收所述第一切片,且在所述第一切片之后,接收所述第一主机发送的所述第一数据流的第二切片,所述第二切片包括第二索引,所述第二索引用于所述交换机在所述多条可用路径中确定所述第二索引对应的第二路径,所述第二路径与所述第一路径不同;
所述交换机通过所述第二路径向第二主机转发所述第二切片。
在一些可能的实现方式中,所述方法还包括:
所述交换机在接收预定长度的所述第二切片后,结束接收所述第二切片或者继续接收所述第二切片。
在一些可能的实现方式中,所述交换机接收第一主机发送的第一数据流的第一切片之前,所述方法还包括:
所述交换机接收所述第一主机发送的第一传输控制协议TCP链接请求报文,所述TCP链接请求报文包括所述第一请求消息,所述第一请求消息用于请求获取所述第一主机到所述第二主机的多条可用路径的总数,以便于所述第一主机根据所述多条可用路径的总数确定在所述第一数据流中能够添加的索引数量;
所述交换机在所述第一TCP链接请求报文中添加所述多条可用路径的总数,形成第二TCP链接请求报文;
所述交换机向所述第二主机发送所述第二TCP链接请求报文;
所述交换机接收所述第二主机发送的所述第二TCP链接请求报文的响应报文,所述响应报文包括所述多条可用路径的总数;
所述交换机向所述第一主机发送所述响应报文。
在一些可能的实现方式中,交换机可以通过轮询调度RR的方式重新确定传输路径,并在重新确定的传输路径上向第二主机转发该第一切片。
第三方面,提供了一种主机,所述主机包括:
处理单元,用于在第一数据流的第一切片的每个报文中添加第一索引,所述第一索引用于交换机在所述第一主机到第二主机的多条可用路径中确定所述第一索引对应的第一路径;
收发单元,用于向所述交换机发送所述第一数据流的第一切片,所述第一切片的最后一个报文是所述第一主机根据转发所述第一切片的第一路径的路径状况信息确定的,所述第一切片包括所述第一索引,以便所述交换机通过所述第一路径向所述第二主机转发所述第一切片。
该第三方面的主机能够实现第一方面的方法及其各实现方式。
第四方面,提供了一种主机,所述主机包括:
处理器,用于在第一数据流的第一切片的每个报文中添加第一索引,所述第一索引用于交换机在所述第一主机到第二主机的多条可用路径中确定所述第一索引对应的第一路径;
端口,用于在所述处理器控制下向所述交换机发送所述第一数据流的第一切片,所述第一切片的最后一个报文是所述第一主机根据转发所述第一切片的第一路径的路径状况信息确定的,所述第一切片包括所述第一索引,以便所述交换机通过所述第一路径向所述第二主机转发所述第一切片。
该第四方面的交换机能够实现第一方面的方法及其各实现方式。
第五方面,提供了一种交换机,所述交换机包括:
第一收发单元,用于接收第一主机发送的第一数据流的第一切片,所述第一切片的最后一个报文是所述第一主机根据转发所述第一切片的第一路径的路径状况信息确定的,所述第一切片包括第一索引,所述第一索引用于交换机在所述第一主机到第二主机的多条可用路径中确定所述第一索引对应的第一路径;
第二收发单元,用于通过所述第一路径向第二主机转发所述第一切片。
第六方面,提供了一种交换机,所述交换机包括处理器,第一端口和第二端口,所述处理器用于:
控制所述第一端口接收第一主机发送的第一数据流的第一切片,所述第一切片的最后一个报文是所述第一主机根据转发所述第一切片的第一路径的路径状况信息确定的,所述第一切片包括第一索引,所述第一索引用于交换机在所述第一主机到第二主机的多条可用路径中确定所述第一索引对应的第一路径;
控制所述第二端口通过所述第一路径向所述第二主机转发所述第一切片。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,所述程序使得主机执行上述第一方面或第一方面中的任一种可能的实现方式中的方法。
第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,所述程序使得交换机执行上述的第二方面或第二方面中的任一种可能的实现方式中的方法。
第九方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
附图说明
图1是现有Clos架构下的路径拥塞示意图;
图2是CONGA方案的数据传输方法的示意图;
图3是2级3阶段Clos架构的示意性结构图;
图4是3级5阶段Clos架构的示意性结构图;
图5是根据本发明实施例的数据传输方法的示意图;
图6是CONGA方案的流的示意性结构图;
图7是根据本发明实施例的数据传输方法的另一示意图;
图8是根据本发明实施例的主机的示意性框图;
图9是根据本发明实施例的主机的另一示意性框图;
图10是根据本发明实施例的交换机的示意性框图;
图11是根据本发明实施例的交换机的另一示意性框图。
具体实施方式
下面将结合附图,对Clos架构进行介绍。
Clos是由查尔斯克劳斯(Charles Clos)在1953年为了解决电话网中的无阻塞交换问题所提出的一种网络架构,Clos网络的主要特点是:每一级交换节点都和下一级的所有交换机有连接;每一级交换节点和下一级的一个交换节点之间有且只有一条连接。通常采用级(tier)和阶段(stage)对Clos架构进行描述,其中,tier指的是网络的层次数;stage可以理解为从网络的任意一个输入到任意一个输出路径上的设备数。
例如,如图3所示,该Clos架构是一个2级(2-tier)3阶段(3-stage)的Clos架构的示例。该Clos架构包括最高层设备和最底层设备。其中,最底层设备也可以称为leaf,最高层设备也可以称为spine。Clos架构下,最底层的设备也可以称为边缘交换机(edgeSwitch),最高层的设备也可以称为核心交换机(core Switch)等。
应理解,图3仅是Clos架构的示例性描述,不应对本发明适用的Clos架构造成限定。也就是说,本发明使用的Clos架构可以是任一级与任一阶段的Clos架构,如4级7阶段等。例如,如图4所示,该Clos架构是一个3级(3-tier)5阶段(5-stage)的Clos架构的示例。该Clos架构包括最高层设备、中间层设备和最底层设备。其中,中间层设备也可以称为汇聚设备(aggregation,简称:Agg)。
本发明实施例的数据传输的方法,在第一主机需要向第二主机发送第一数据流时,该第一主机确定该第一数据流的传输路径,并在该第一数据流中添加索引指示交换机该第一数据流的传输路径,能够避免该第一数据流的实际传输路径与主机侧拥塞窗口指示的路径不一致的问题,进而有效保证了数据的传输效率。
图5是本发明实施例的传输数据的方法100的示意性流程图。
如图5所示,该方法100包括:
110,第一主机在第一数据流的第一切片的每个报文中添加第一索引。
120,第一主机向交换机发送该第一数据流的第一切片。
130,交换机通过所述第一路径,向第二主机转发该第一切片。
具体而言,第一主机在第一数据流的第一切片的每个报文中添加第一索引,该第一索引用于使该第一主机连接的交换机在该第一主机到第二主机的多条可用路径中确定该第一索引对应的第一路径;该第一主机向该交换机发送该第一数据流的第一切片,该第一切片的最后一个报文是该第一主机根据转发该第一切片的第一路径的路径状况信息确定的,以便该交换机通过所述第一路径向该第二主机转发该第一切片。
应理解,本发明实施例中的第一索引用于使该交换机在该多条可用路径中确定该第一索引对应的第一路径,也就是说,该第一索引可以是路径标识、端口号,也可以是其它形式的标识,只要这个标识能够起到标识该第一路径的作用即可,本发明实施例不做具体限定。
在110中,第一主机在第一数据流的第一切片的每个报文中添加第一索引,所述第一索引用于使所述第一主机连接的交换机在该第一主机到第二主机的多条可用路径中确定该第一索引对应的第一路径。这样,就可以确保第一主机的拥塞窗口指示的路径状况为第一索引对应的路径的状况,即添加第一索引的第一切片对应的第一路径的路径状况。也就是说,第一主机能够根据该第一切片的实际传输路径控制拥塞。
可选地,第一主机可以在五元组外增加索引标识(identifier,ID)字段。
在本发明实施例中,该第一数据流可以为用特定的五元组(五个关键字段)唯一标识的一组TCP/IP报文。例如,某用户从网际互连协议(Internet Protocol,IP)地址为202.100.1.2的主机向IP地址为100.1.1.2的网页服务器发起超文本传输协议(Hyper TextTransfer Protocol,HTTP,)访问,这是一条传输控制协议(Transmission ControlProtocol,TCP)流,该TCP流的另外两个五元组字段是源TCP端口20000,目的TCP端口8080。换句话说,通过五元组(202.100.1.2+100.1.1.2+TCP+20000+8080)可用于惟一标识网络中传递的这条TCP流。
应理解,上述仅仅是对第一数据流的示例性说明,本发明实施例对第一数据流的具体内容不做限定。
在本发明实施例中,由于第一主机在第一数据流中添加的索引是用于使交换机在上述多条可用路径中确定该第一索引对应的第一路径,因此,针对第一主机来说,在添加索引之前需要知道可以添加几种不同的索引。
可选地,在该第一主机在第一数据流的第一切片的每个报文中添加第一索引之前,该第一主机需要获取该第一主机到第二主机的可用路径的总数,以便于该第一主机根据该多条可用路径的总数确定在该第一数据流中能够添加的索引数量。
例如,第一主机可以基于交换机发送ECMP等价路径列表,感知到网络中端到端的等价路径。可以理解,上述ECMP等价路径列表可以是交换机中存储的第一主机到第二主机的上述多条可用路径的列表。这样,能够使得第一主机完成对该多条可用路径数量的探测。
当该第一主机获取该第一主机到第二主机的可用路径的总数时,具体地,该第一主机向该交换机发送第一TCP链接请求报文,该TCP链接请求报文包括该第一请求消息,该第一请求消息用于请求获取上述多条可用路径的总数,使得该交换机在该第一TCP链接请求报文中添加上述多条可用路径的总数,生成需要向该第二主机发送的第二TCP链接请求报文;该第一主机接收该交换机转发的该第二TCP链接请求报文的响应报文,该响应报文包括上述多条可用路径的总数。
例如,如图7所示,Clos架构中包括最高层设备、最底层设备、第一主机(10.0.0.2/8)和第二主机(40.0.0.2/8),最底层设备包括交换机L1(10.0.0.1/8)和交换机L2(40.0.0.1/8),最高层设备包括交换机S1(20.0.0.1/8)和交换机S2(30.0.0.1/8),则第一主机到第二主机的可用路径为2条,分别为P10-P11-P21-P22-P41-P40,以及P10-P12-P31-P32-P42-P40。
结合图7来说,交换机L1收到第一主机发送的一条新的TCP SYN流,通过路由查找交换机L1到第二主机的下一跳的等价路径;识别出等价路径总数2,并标记在报文特定字段,作为标签(tag)发送到第二主机;如果第二主机支持识别该特定字段,则第二主机通过TCP ACK报文的特定字段携带该tag,并将携带该tag的TCP ACK报文送回给第一主机;第一主机收到该携带该tag的TCP ACK报文,从该特定字段中提取该tag,得到从自己到第二主机的整网等价路径数。
也就是说,该交换机接收该第一主机发送的第一传输控制协议TCP链接请求报文,该TCP链接请求报文包括该第一请求消息,该第一请求消息用于请求获取该第一主机到该第二主机的多条可用路径的总数;该交换机在该第一TCP链接请求报文中添加上述多条可用路径的总数,形成第二TCP链接请求报文;该交换机向该第二主机发送该第二TCP链接请求报文;该交换机接收该第二主机发送的该第二TCP链接请求报文的响应报文,该响应报文包括上述多条可用路径的总数;该交换机向该第一主机发送该响应报文。
应注意,在本发明实施例中,第一主机可以基于交换机发送的ECMP等价路径的通告,感知到网络中端到端的等价路径。但本发明实施例对获取上述多条可用路径的实现方式不做具体限定。
例如,该第一主机还可以直接向leaf交换机发送一个用于请求上述多条可用路径的请求消息,该交换机在接收到该消息后,直接向该第一主机发送该请求消息的响应消息,用于告知第一主机上述多条可用路径。
可选地,在该第一主机在第一数据流的第二切片的每个报文中添加第二索引之前,该第一主机还需要获取第一路径的路径状况信息。具体而言,第一主机向第二主机发送一个报文后,第二主机会向第一主机回复一个响应报文,这个响应报文中包括传输该报文的路径的路径状况信息。本发明实施例中,对第一主机来说,第一主机可以根据该当前路径的路径状况信息进行切片。
例如,该第一主机接收该第二主机对应的服务器发送的该第一路径的路径状况信息,并根据该第一路径的路径状况信息对该第一数据流进行切片。
需要注意的是,在CONGA方案中,每个leaf交换机上可以建立路径矩阵表,该路径矩阵表可以代表该leaf交换机到其它leaf交换机的所有可达路径,以及每个可达路径的拥塞程度,该路径矩阵表也可以称为路径拥塞程度表(congestion-to-leaf)。
例如,路径矩阵表中的每一行可以表示一个leaf交换机,路径矩阵表中的列可以表示leaf交换机对应的所有上联端口。例如,若一台leaf交换机有48个端口,其中24个端口用于上联spine交换机,整网有100台leaf交换机,那么每台leaf交换机上的路径表的大小可以为100*24。路径矩阵表中的值是路径的拥塞程度。比如,一个路径的物理带宽是10Gbps,当前承载流量为5Gbps,则路径的拥塞程度为5/10=0.5。
特别地,当Clos架构是2级Clos架构时,leaf交换机的上联端口和目的交换机确定后,转发路径也是唯一确定的。
也就是说,在CONGA方案中,leaf交换机收到数据流时,根据其目的地址可以确定查找路径矩阵表的哪一行;再通过查找该行的所有列,可以得出从所有上联端口到目的交换机的拥塞程度排行,从而可以选择拥塞程度最低的出端口(路径)转发,避免拥塞。
具体而言,源leaf交换机(source leaf)检测flowlet,若当前报文属于新的flowlet,则在路径矩阵表中查找目的leaf交换机;根据目的leaf交换机找到可转发的所有出端口;根据出端口的拥塞程度进行比较,选择其中路径拥塞程度最低的端口转发;如果表内容为空,或初始时尚未建立起到目的leaf交换机的拥塞程度信息,则从可供转发的多个出端口中随机选择一个。若当前报文属于上一个flowlet,则找到该上一个flowlet对应的出端口转发。
由此可以看出,CONGA的本质思想其实是源leaf交换机将一条流(flow)切成多个flowlet,不同的flowlet走不同的路径,从而实现不同大小的flow更精细化地负载均衡的效果。
换句话说,在CONGA方案中,源leaf交换机将不同的flowlet哈希到不同路径,主机侧是基于flow进行拥塞控制的,由此会出现flow的实际传输路径与主机侧拥塞窗口指示的该flow的传输路径不一致的问题,进一步地,导致主机侧的拥塞窗口不能准确的指示flow的实际传输路径的拥塞状态,进而影响数据的传输效率。
然而,在本发明实施例中,在第一主机需要向第二主机发送第一数据流时,该第一主机通过在第一数据流的每个切片中增加索引,使得该第一主机能够知道每个切片中索引对应的传输路径的路径状况信息。换句话说,该第一主机可以通过索引对应的切片和索引对应的传输路径的路径状况信息,避免该第一数据流的实际传输路径与主机侧拥塞窗口指示的路径不一致的问题,进而有效保证了数据的传输效率。
120,第一主机向与所述第一主机连接的交换机发送该第一数据流的第一切片。
具体而言,该第一主机向该交换机发送该第一数据流的第一切片,该第一切片的最后一个报文是该第一主机根据转发该第一切片的第一路径的路径状况信息确定的,该第一切片包括该第一索引,以便该交换机通过所述第一路径向该第二主机转发该第一切片。
也就是说,在本发明实施例中,该第一主机在该第一路径的路径状况信息显示处于拥塞状态时结束该第一切片的发送,若在第一数据流发送完之前,该第一路径的路径状况信息一直显示该第一路径没有拥塞,则不需要对该第一数据流切片,该第一数据流即为该第一切片,若在第一数据发送过程中,该第一路径的路径状况信息显示该第一路径处于拥塞状态,该需要对该第一数据流再次切片,则该第一数据流可能会包括多个切片。
具体而言,第一主机向第二主机发送一个报文后,第二主机会向第一主机回复一个响应报文,这个响应报文中包括传输该报文的路径的路径状况信息。本发明实施例中,该第一切片包括至少一个报文。
其中,本发明实施例中的交换机可以是Clos架构下的任一leaf交换机。
需要注意的是,CONGA方案是基于流flowlet对数据进行传输,flowlet可以理解为在一条TCP流内的一段报文,一般性地,若前后两个报文到达的时间差大于一个配置的值(如500微秒)则可判为后一个报文为一个新flowlet的第一个报文;若前面两个报文达到的时间差小于该配置的值(如500微秒),则这判定两个报文属于同一个flowlet。具体地,如图6所示,流(flow)A包含2个流切片,分别是A1和A2,其中,A1和A2之间的间隔(Gap)大于一个配置的值。
然而,在本发明实施例中,第一主机通过第一路径的路径状况信息判定用于发送该第一切片的路径是否处于拥塞状态,进而确定第一切片的结束发送时刻,最终达到动态切片的目的,进而最大程度地避免路径拥塞。
此外,第一主机根据路径拥塞状况对第一数据流进行动态切片,能够有效减少该第一数据流的切片次数。
在本发明实施例中,一方面,第一主机通过在第一数据流的每个切片中增加索引,实现对该第一数据流进行切片,能够最大程度的避免单流切片情况下传输层的拥塞窗口与实际的路径拥塞状况不匹配(mismatch)的问题。另一方面,该第一主机根据该第一数据流中的第一切片对应的第一路径的拥塞状况实现动态切片,能够有效保证该第一数据流在路径状况较好的路径中传输,有效提高了传输效率。
在本发明实施例中,第一主机在该第一路径的路径状况信息显示该第一路径处于拥塞状态时结束该第一切片,然后通过第二路径发送第二切片。也就是说,第一主机需要实时或者非实时(周期)地检测第一路径的路径状态。
可选地,本发明实施例中的路径状况信息可以包括往返时延(round-trip time,RTT)和/或显性拥塞通知(explicit congestion notification,ECN)等参数。
例如,第一主机可以根据该第一路径的RTT和/或ECN等参数,确定该第一路径的路径状态。其中,RTT是一个重要的性能指标,表示从发送端发送数据开始,到发送端接收到来自接收端的确认消息(接收端接收到数据后便立即发送确认消息),总共经历的时延。对于ECN,通常,一个支持ECN的主机发送数据包时数据包中的ECN字段为01或者10,如果路径上的路由器支持ECN并且经历拥塞,该路由器会将ECN字段的值修改为11,如果该字段已经被设置为11,那么下游路由器不会修改该字段的值。
例如,若该第一路径的RTT超过设定的阈值和/或报文的ECN字段被修改时,确定该第一路径的路径状况信息显示该第一路径处于拥塞状态,则该第一主机结束该第一切片,即第一主机进行切片操作,将该第一数据流的后续报文作为第二切片,重新在上述多条可用路径中为该第二切片选择新路径。
下面对在第一路径的路径状况信息显示第一路径处于拥塞状态,即结束第一切片之后,本发明实施例的数据传输的方法进行说明。
可选地,该第一主机在该第一路径的路径状况信息显示第一路径处于拥塞状态时,结束发送该第一切片,且在该第一切片之后,在该第一数据流的第二切片的每个报文中添加第二索引,该第二索引用于该交换机在上述多条可用路径中确定该第二索引对应的第二路径,该第一路径与该第二路径不同;该第一主机向该交换机发送第二切片,以便该交换机通过所述第二路径向该第二主机转发该第二切片。
换句话说,该交换机在该第一切片之后,接收该第一主机发送的该第一数据流的第二切片,该第二切片包括第二索引;该交换机通过所述第二路径,向第二主机转发该第二切片。
本发明实施例的数据传输的方法,只有在所述第一路径的路径状况信息显示第一路径处于拥塞状态时,才结束发送所述第一切片,使得该第一主机能够最大限度的降低该第一数据流的切片数。
作为一个实施例,可选地,该第一主机可以在该第二路径的路径状况信息显示所述第二路径处于拥塞状态时结束发送该第二切片。
作为另一个实施例,可选地,该第一主机在发送预定长度的该第二切片后,根据该第一路径的路径状况信息和该第二路径的路径状况信息,结束发送该第二切片或者继续发送该第二切片。例如,该第一主机也可以在发送64KB的该第二切片后,根据该第二路径的路径状况信息,结束发送该第二切片或者继续发送该第二切片。应理解,该预定长度可以是预设的任一值。
换句话说,该交换机在接收预定长度的该第二切片后,结束接收该第二切片或者继续接收该第二切片。
例如,该第一主机在该第一路径的路径状况信息显示第一路径没有处于拥塞状态时,结束发送该第二切片;该第一主机在该第二切片之后,在该第一数据流的第三切片的每个报文中添加该第一索引;该第一主机向该交换机发送该第一数据流的该第三切片,该第三切片包括该第一索引,以便该交换机通过所述第一路径向该第二主机转发该第三切片。
又例如,该第一主机在该第一路径的路径状况信息显示第一路径处于拥塞状态且该第二路径的路径状况信息显示第二路径没有处于拥塞状态时,继续发送该第二切片。
又例如,该第一主机在该第一路径的路径状况信息显示第一路径处于拥塞状态且该第二路径的路径状况信息显示第二路径处于拥塞状态时,结束发送该第二切片;该第一主机在该第二切片之后,在该第一数据流的第三切片的每个报文中添加第三索引,该第三索引用于该交换机在上述多条可用路径中确定该第三索引对应的第三路径,该第一路径、该第二路径和该第三路径互不相同;该第一主机向该交换机发送第三切片,该第三切片包括该第三索引,以便该交换机在该第三路径上向该第二主机转发该第三切片。
应理解,在本发明实施例中,第一主机可以根据当前路径的路径状况信息,确定结束发送当前的切片,即根据数据流的当前传输路径的路径状况信息对该数据流进行动态切片;也可以以预定的长度对数据流进行静态切片,还可以以动态和静态结合的方式对数据流进行切片,本发明实施例不做具体限定。
130,所述交换机通过所述第一路径,向第二主机转发该第一切片。
具体而言,交换机接收第一主机发送的第一数据流的第一切片,以便所述交换机通过所述第一路径向所述第二主机转发所述第一切片,该第一切片包括第一索引,该第一索引用于交换机在该第一主机到第二主机的多条可用路径中确定该第一索引对应的第一路径,该交换机通过所述第一路径,向第二主机转发该第一切片。
可选地,所述交换机通过所述第一路径向第二主机转发所述第一切片之前,所述交换机建立对应关系表,所述对应关系表用于记录所述多条可用路径中每条可用路径对应的索引;所述交换机根据所述对应关系表和所述第一索引,确定所述第一路径。
应理解,在本发明实施例中,交换机可以建立上述对应关系表,然后基于该对应关系表转发该第一切片。交换机也可以通过其它方式转发该第一切片。
例如,在2级Clos架构时,该交换机在接收到第一切片后,可以直接建立第一切片与ECMP出端口的映射关系表,根据该映射关系表转发后续切片。结合图7来说,交换机在接收到包括第一索引的第一切片后,建立第一索引和出端口P11的映射关系。可选地,交换机可以一次性建立每个ECMP出端口与索引之间的映射关系,也可以在接收到新的切片后,根据切片中的索引建立索引与ECMP出端口之间的映射关系。
又例如,交换机可以通过轮询调度(round-robin,RR),重新确定传输路径,并在重新确定的传输路径上向第二主机转发该第一切片等。
应理解,RR仅为示例性说明,可选地,RR包括:加权轮询(weight RR,WRR)、差额轮询(defict RR,DRR)和紧急轮询(urgency-based RR,URR)。
还应注意,本发明实施例的方法可以由传统Windows/Linux操作***内核代码的网络处理部分(network stack)执行,也可以直接由主机执行。上述网络处理部分例如可以是Linux***TCP/IP协议栈功能模块、云或虚拟化操作***(VMware、Xen或Openstack)的TCP/IP协议栈功能模块等。
基于与上述方法同样的发明构思,本发明实施例还提供了一种主机,图8是本发明实施例的主机200的示意性框图。
如图8所示,该主机200包括:
处理单元210,用于在第一数据流的第一切片的每个报文中添加第一索引,该第一索引用于交换机在该第一主机到第二主机的多条可用路径中确定该第一索引对应的第一路径;
收发单元220,用于向该交换机发送该第一数据流的第一切片,该第一切片的最后一个报文是该第一主机根据转发该第一切片的第一路径的路径状况信息确定的,以便该交换机通过所述第一路径向该第二主机转发该第一切片。
可选地,该处理单元210还用于:
在该第一路径的路径状况信息显示第一路径处于拥塞状态时,结束发送该第一切片,在该第一数据流的第二切片的每个报文中添加第二索引,该第二索引用于该交换机在上述多条可用路径中确定该第二索引对应的第二路径,该第一路径与该第二路径不同,其中,该收发单元220还用于:
向该交换机发送该第二切片,以便该交换机通过所述第二路径向该第二主机转发该第二切片。
可选地,该处理单元210还用于:
在发送预定长度的该第二切片后,根据该第一路径的路径状况信息和该第二路径的路径状况信息,结束发送该第二切片或者继续发送该第二切片。
可选地,该处理单元210具体用于:
在该第一路径的路径状况信息显示所述第一路径没有处于拥塞状态时,结束发送该第二切片;在该第二切片之后,在该第一数据流的第三切片的每个报文中添加该第一索引;其中,该收发单元220还用于:
向该交换机发送该第三切片,该第三切片包括该第一索引,以便该交换机通过所述第一路径向该第二主机转发该第三切片。
可选地,该处理单元210具体用于:
在该第一路径的路径状况信息显示第一路径处于拥塞状态且该第二路径的路径状况信息显示第二路径没有处于拥塞状态时,继续发送该第二切片。
可选地,该处理单元210具体用于:
在该第一路径的路径状况信息显示第一路径处于拥塞状态且该第二路径的路径状况信息显示所述第二路径处于拥塞状态时,结束发送该第二切片;在该第二切片之后,在该第一数据流的第三切片的每个报文中添加第三索引,该第二索引用于该交换机在上述多条可用路径中确定该第三索引对应的第三路径,该第一路径、该第二路径和该第三路径互不相同;其中,该收发单元220还用于:
向该交换机发送该第三切片,该第三切片包括该第三索引,以便该交换机在该第三路径上向该第二主机转发该第三切片。
可选地,该收发单元220还用于:
在第一数据流的第一切片的每个报文中添加第一索引之前,该第一主机获取上述多条可用路径的总数。
可选地,该收发单元220具体用于:
向该交换机发送第一传输控制协议TCP链接请求报文,该TCP链接请求报文包括该第一请求消息,该第一请求消息用于请求获取上述多条可用路径的总数,使得该交换机在该第一TCP链接请求报文中添加上述多条可用路径的总数,生成需要向该第二主机发送的第二TCP链接请求报文;接收该交换机转发的该第二TCP链接请求报文的响应报文,该响应报文包括上述多条可用路径的总数。
可选地,该收发单元220还用于:
在第一数据流的第二切片的每个报文中添加第二索引之前,接收服务器发送的第一路径的路径状况信息。
可选地,该路径状况信息包括往返时延RTT和/或显性拥塞通知ECN。
应注意,本发明实施例中,处理单元210可以由处理器实现,收发单元220可由处理器控制通信端口实现。
如图9所示,主机300可以包括处理器310、端口320和存储器330。其中,存储器330可以用于存储处理器310执行的代码、指令等。
作为示例而非限定,处理器310、端口320、存储器330之间通过例如,总线等方式实现通信连接。
基于与上述方法同样的发明构思,本发明实施例还提供了一种交换机,图10是本发明实施例的交换机400的示意性框图。
如图10所示,该交换机400包括第一收发单元410和第二收发单元420。
该交换机包括第一收发单元410,该第一收发单元410用于:
第一收发单元410,用于接收第一主机发送的第一数据流的第一切片,该第一切片的最后一个报文是该第一主机根据转发该第一切片的第一路径的路径状况信息确定的,该第一切片包括第一索引,该第一索引用于交换机在该第一主机到第二主机的多条可用路径中确定该第一索引对应的第一路径;
第二收发单元420,用于通过所述第一路径,向第二主机转发该第一切片。
可选地,该交换机还包括处理单元,该处理单元用于:
建立对应关系表,该对应关系表用于记录该多条可用路径中每条可用路径对应的索引;
根据该对应关系表和该第一索引,确定该第一路径。
可选地,该第一收发单元410还用于:
且在该第一切片之后,接收该第一主机发送的该第一数据流的第二切片,该第二切片包括第二索引,该第二索引用于该交换机在上述多条可用路径中确定该第二索引对应的第二路径,该第一路径与该第二路径不同。
其中,该第二收发单元420还用于:通过所述第二路径,向第二主机转发该第二切片。
可选地,该第一收发单元410还用于:
在接收预定长度的该第二切片后,结束接收该第二切片或者继续接收该第二切片。
可选地,该第一收发单元410还用于:
接收第一主机发送的第一数据流的第一切片之前,接收该第一主机发送的第一传输控制协议TCP链接请求报文,该TCP链接请求报文包括该第一请求消息,该第一请求消息用于请求获取该第一主机到该第二主机的多条可用路径的总数;在该第一TCP链接请求报文中添加上述多条可用路径的总数,形成第二TCP链接请求报文;其中,该第二收发单元420还用于:向该第二主机发送该第二TCP链接请求报文;接收该第二主机发送的该第二TCP链接请求报文的响应报文,该响应报文包括上述多条可用路径的总数;向该第一主机发送该响应报文。
应注意,本发明实施例中,第一收发单元410和第二收发单元420可由处理器控制不同的端口实现,处理单元可以由处理器实现。
如图11所示,交换机500可以包括处理器510、多个通信端口520和存储器530。其中,存储器530可以用于存储处理器510执行的代码、指令等。
作为示例而非限定,处理器510、通信端口520、存储器530之间通过例如,总线等方式实现通信连接。
需要说明的是,处理器执行的方法与前述方法实施例的内容一致,不再赘述。
应注意,上述处理器可能是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件、分立硬件组件。
可以理解,本发明实施例中,存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的***和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,在本发明实施例和所附权利要求书中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明实施例。
例如,本发明实施例中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。具体地,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
又例如,在本发明实施例和所附权利要求书中所使用的单数形式的“一种”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。
又例如,在本发明实施例中可能采用术语第一、第二、第三等来描述各种切片、索引和主机,但这些切片、索引和主机不应限于这些术语。这些术语仅用来将切片、索引和主机彼此区分开。
以上内容,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。
Claims (28)
1.一种传输数据的方法,其特征在于,所述方法包括:
第一主机在第一数据流的第一切片的每个报文中添加第一索引,所述第一索引用于使所述第一主机连接的交换机在所述第一主机到第二主机的多条可用路径中确定所述第一索引对应的第一路径;
所述第一主机向所述交换机发送所述第一数据流的第一切片,所述第一切片的最后一个报文是所述第一主机根据转发所述第一切片的第一路径的路径状况信息确定的,以便所述交换机通过所述第一路径向所述第二主机转发所述第一切片。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一主机在所述第一路径的路径状况信息显示第一路径处于拥塞状态时,结束发送所述第一切片;
在所述第一数据流的第二切片的每个报文中添加第二索引,所述第二索引用于使所述交换机在所述多条可用路径中确定所述第二索引对应的第二路径,所述第二路径与所述第一路径不同;
所述第一主机向所述交换机发送所述第二切片,以便所述交换机通过所述第二路径向所述第二主机转发所述第二切片。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一主机在发送预定长度的所述第二切片后,根据所述第一路径的路径状况信息和所述第二路径的路径状况信息,结束发送所述第二切片或者继续发送所述第二切片。
4.根据权利要求3所述的方法,其特征在于,所述第一主机在发送预定长度的所述第二切片后,根据所述第一路径的路径状况信息和所述第二路径的路径状况信息,结束发送所述第二切片或者继续发送所述第二切片,包括:
所述第一主机在所述第一路径的路径状况信息显示所述第一路径没有处于拥塞状态时,结束发送所述第二切片;
所述方法还包括:
所述第一主机在所述第二切片之后,在所述第一数据流的第三切片的每个报文中添加所述第一索引;
所述第一主机向所述交换机发送所述第三切片,以便所述交换机通过所述第一路径向所述第二主机转发所述第三切片。
5.根据权利要求3所述的方法,其特征在于,所述第一主机在发送预定长度的所述第二切片后,根据所述第一路径的路径状况信息和所述第二路径的路径状况信息,结束发送所述第二切片或者继续发送所述第二切片,包括:
所述第一主机在所述第一路径的路径状况信息显示第一路径处于拥塞状态且所述第二路径的路径状况信息显示第二路径没有处于拥塞状态时,继续发送所述第二切片。
6.根据权利要求3所述的方法,其特征在于,所述第一主机在发送预定长度的所述第二切片后,根据所述第一路径的路径状况信息和所述第二路径的路径状况信息,结束发送所述第二切片或者继续发送所述第二切片,包括:
所述第一主机在所述第一路径的路径状况信息显示第一路径处于拥塞状态且所述第二路径的路径状况信息显示所述第二路径处于拥塞状态时,结束发送所述第二切片;
所述方法还包括:
所述第一主机在所述第二切片之后,在所述第一数据流的第三切片的每个报文中添加第三索引,所述第三索引用于使所述交换机在所述多条可用路径中确定所述第三索引对应的第三路径,所述第一路径、所述第二路径和所述第三路径互不相同;
所述第一主机向所述交换机发送所述第三切片,以便所述交换机在所述第三路径上向所述第二主机转发所述第三切片。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一主机在第一数据流的第一切片的每个报文中添加第一索引之前,所述方法还包括:
所述第一主机获取所述多条可用路径的总数,以便于所述第一主机根据所述多条可用路径的总数确定在所述第一数据流中能够添加的索引数量。
8.根据权利要求7所述的方法,其特征在于,所述第一主机获取所述多条可用路径的总数,包括:
所述第一主机向所述交换机发送第一传输控制协议TCP链接请求报文,所述TCP链接请求报文包括第一请求消息,所述第一请求消息用于请求获取所述多条可用路径的总数,使得所述交换机在所述第一TCP链接请求报文中添加所述多条可用路径的总数,生成需要向所述第二主机发送的第二TCP链接请求报文;
所述第一主机接收所述交换机转发的所述第二TCP链接请求报文的响应报文,所述响应报文包括所述多条可用路径的总数。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述第一主机在所述第一数据流的第二切片的每个报文中添加第二索引之前,所述方法还包括:
所述第一主机通过所述交换机接收所述第二主机对应的服务器发送的所述第一路径的路径状况信息。
10.一种传输数据的方法,其特征在于,所述方法包括:
交换机接收第一主机发送的第一数据流的第一切片,所述第一切片的最后一个报文是所述第一主机根据转发所述第一切片的第一路径的路径状况信息确定的,所述第一切片的每个报文包括第一索引,所述第一索引用于使所述交换机在所述第一主机到第二主机的多条可用路径中确定所述第一索引对应的第一路径;
所述交换机通过所述第一路径向第二主机转发所述第一切片。
11.根据权利要求10所述的方法,其特征在于,所述交换机通过所述第一路径向第二主机转发所述第一切片之前,所述方法还包括:
所述交换机建立对应关系表,所述对应关系表用于记录所述多条可用路径中每条可用路径对应的索引;
所述交换机根据所述对应关系表和所述第一索引,确定所述第一路径。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
所述交换机接收所述第一主机发送的所述第一数据流的第二切片,所述第二切片的每个报文包括第二索引,所述第二索引用于所述交换机在所述多条可用路径中确定所述第二索引对应的第二路径,所述第二路径与所述第一路径不同;
所述交换机通过所述第二路径向第二主机转发所述第二切片。
13.根据权利要求10至12中任一项所述的方法,其特征在于,所述交换机接收第一主机发送的第一数据流的第一切片之前,所述方法还包括:
所述交换机接收所述第一主机发送的第一传输控制协议TCP链接请求报文,所述TCP链接请求报文包括所述第一请求消息,所述第一请求消息用于请求获取所述第一主机到所述第二主机的多条可用路径的总数,以便于所述第一主机根据所述多条可用路径的总数确定在所述第一数据流中能够添加的索引数量;
所述交换机在所述第一TCP链接请求报文中添加所述多条可用路径的总数,形成第二TCP链接请求报文;
所述交换机向所述第二主机发送所述第二TCP链接请求报文;
所述交换机接收所述第二主机发送的所述第二TCP链接请求报文的响应报文,所述响应报文包括所述多条可用路径的总数;
所述交换机向所述第一主机发送所述响应报文。
14.一种主机,其特征在于,所述主机包括:
处理单元,用于在第一数据流的第一切片的每个报文中添加第一索引,所述第一索引用于交换机在所述第一主机到第二主机的多条可用路径中确定所述第一索引对应的第一路径;
收发单元,用于向所述交换机发送所述第一数据流的第一切片,所述第一切片的最后一个报文是所述第一主机根据转发所述第一切片的第一路径的路径状况信息确定的,所述第一切片包括所述第一索引,以便所述交换机通过所述第一路径向所述第二主机转发所述第一切片。
15.根据权利要求14所述的主机,其特征在于,所述处理单元还用于:
在所述第一路径的路径状况信息显示第一路径处于拥塞状态时,结束发送所述第一切片;
在所述第一切片之后,在所述第一数据流的第二切片的每个报文中添加第二索引,所述第二索引用于所述交换机在所述多条可用路径中确定所述第二索引对应的第二路径,所述第二路径与所述第一路径不同,其中,所述收发单元还用于:
向所述交换机发送所述第二切片,以便所述交换机通过所述第二路径向所述第二主机转发所述第二切片。
16.根据权利要求15所述的主机,其特征在于,所述处理单元还用于:
在发送预定长度的所述第二切片后,根据所述第一路径的路径状况信息和所述第二路径的路径状况信息,结束发送所述第二切片或者继续发送所述第二切片。
17.根据权利要求16所述的主机,其特征在于,所述处理单元具体用于:
在所述第一路径的路径状况信息显示所述第一路径没有处于拥塞状态时,结束发送所述第二切片;
在所述第二切片之后,在所述第一数据流的第三切片的每个报文中添加所述第一索引;
其中,所述收发单元还用于:
向所述交换机发送第三切片,所述第三切片包括所述第一索引,以便所述交换机通过所述第一路径向所述第二主机转发所述第三切片。
18.根据权利要求16所述的主机,其特征在于,所述处理单元具体用于:
在所述第一路径的路径状况信息显示第一路径处于拥塞状态且所述第二路径的路径状况信息显示第二路径没有处于拥塞状态时,继续发送所述第二切片。
19.根据权利要求16所述的主机,其特征在于,所述处理单元具体用于:
在所述第一路径的路径状况信息显示第一路径处于拥塞状态且所述第二路径的路径状况信息显示所述第二路径处于拥塞状态时,结束发送所述第二切片;
在所述第二切片之后,在所述第一数据流的第三切片的每个报文中添加第三索引,所述第二索引用于所述交换机在所述多条可用路径中确定所述第三索引对应的第三路径,所述第一路径、所述第二路径和所述第三路径互不相同;
其中,所述收发单元还用于:
向所述交换机发送第三切片,所述第三切片包括所述第三索引,以便所述交换机在所述第三路径上向所述第二主机转发所述第三切片。
20.根据权利要求14至19中任一项所述的主机,其特征在于,所述收发单元还用于:
在第一数据流的第一切片的每个报文中添加第一索引之前,获取所述多条可用路径的总数,以便于所述第一主机根据所述多条可用路径的总数确定在所述第一数据流中能够添加的索引数量。
21.根据权利要求20所述的主机,其特征在于,所述收发单元具体用于:
向所述交换机发送第一传输控制协议TCP链接请求报文,所述TCP链接请求报文包括所述第一请求消息,所述第一请求消息用于请求获取所述多条可用路径的总数,使得所述交换机在所述第一TCP链接请求报文中添加所述多条可用路径的总数,生成需要向所述第二主机发送的第二TCP链接请求报文;
接收所述交换机转发的所述第二TCP链接请求报文的响应报文,所述响应报文包括所述多条可用路径的总数。
22.根据权利要求14至21中任一项所述的主机,其特征在于,所述收发单元还用于:
在第一数据流的第二切片的每个报文中添加第二索引之前,通过所述交换机接收所述第二主机对应的服务器发送的所述第一路径的路径状况信息。
23.一种交换机,其特征在于,所述交换机包括:
第一收发单元,用于接收第一主机发送的第一数据流的第一切片,所述第一切片的最后一个报文是所述第一主机根据转发所述第一切片的第一路径的路径状况信息确定的,所述第一切片包括第一索引,所述第一索引用于交换机在所述第一主机到第二主机的多条可用路径中确定所述第一索引对应的第一路径;
第二收发单元,用于通过所述第一路径向所述第二主机转发所述第一切片。
24.根据权利要求23所述的交换机,其特征在于,所述交换机还包括处理单元,所述处理单元用于:
建立对应关系表,所述对应关系表用于记录所述多条可用路径中每条可用路径对应的索引;
根据所述对应关系表和所述第一索引,确定所述第一路径。
25.根据权利要求23或24所述的交换机,其特征在于,所述第一收发单元还用于:
接收所述第一主机发送的所述第一数据流的第二切片,所述第二切片包括第二索引,所述第二索引用于所述交换机在所述多条可用路径中确定所述第二索引对应的第二路径,所述第二路径与所述第一路径不同;
所述第二收发单元还用于通过所述第二路径向所述第二主机转发所述第二切片。
26.根据权利要求23至25中任一项所述的交换机,其特征在于,
所述第一收发单元还用于:
接收第一主机发送的第一数据流的第一切片之前,接收所述第一主机发送的第一传输控制协议TCP链接请求报文,所述TCP链接请求报文包括所述第一请求消息,所述第一请求消息用于请求获取所述第一主机到所述第二主机的多条可用路径的总数,以便于所述第一主机根据所述多条可用路径的总数确定在所述第一数据流中能够添加的索引数量;
在所述第一TCP链接请求报文中添加所述多条可用路径的总数,形成第二TCP链接请求报文;
所述第二收发单元还用于:
向所述第二主机发送所述第二TCP链接请求报文;
接收所述第二主机发送的所述第二TCP链接请求报文的响应报文,所述响应报文包括所述多条可用路径的总数;
所述第一收发单元还用于:向所述第一主机发送所述响应报文。
27.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序,所述程序被执行时使得主机执行权利要求1至9中任一项所述的传输数据的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序,所述程序被执行时使得交换机执行权利要求10至13中任一项所述的传输数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710359609.1A CN108965121B (zh) | 2017-05-19 | 2017-05-19 | 传输数据的方法、主机和交换机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710359609.1A CN108965121B (zh) | 2017-05-19 | 2017-05-19 | 传输数据的方法、主机和交换机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108965121A true CN108965121A (zh) | 2018-12-07 |
CN108965121B CN108965121B (zh) | 2021-06-01 |
Family
ID=64462122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710359609.1A Active CN108965121B (zh) | 2017-05-19 | 2017-05-19 | 传输数据的方法、主机和交换机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108965121B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111817973A (zh) * | 2020-06-28 | 2020-10-23 | 电子科技大学 | 一种数据中心网络负载的均衡方法 |
WO2021254307A1 (zh) * | 2020-06-16 | 2021-12-23 | 华为技术有限公司 | 确定报文发送路径的方法及装置 |
CN114097206A (zh) * | 2019-05-14 | 2022-02-25 | 威睿公司 | 基于切片的网络中的拥塞避免 |
US11588733B2 (en) | 2019-05-14 | 2023-02-21 | Vmware, Inc. | Slice-based routing |
US11595315B2 (en) | 2019-05-14 | 2023-02-28 | Vmware, Inc. | Quality of service in virtual service networks |
US11902080B2 (en) | 2019-05-14 | 2024-02-13 | Vmware, Inc. | Congestion avoidance in a slice-based network |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102006225A (zh) * | 2010-11-19 | 2011-04-06 | 华为技术有限公司 | 网络拥塞处理方法及装置 |
CN102498694A (zh) * | 2009-09-14 | 2012-06-13 | 日本电气株式会社 | 通信***、转发节点、路径管理服务器、通信方法和程序 |
US20140064082A1 (en) * | 2012-08-31 | 2014-03-06 | Derek Man-Kit Yeung | Congestion mitigation and avoidance |
CN104579961A (zh) * | 2013-10-11 | 2015-04-29 | ***通信集团公司 | 数据报文的调度方法及装置 |
CN105873162A (zh) * | 2016-06-20 | 2016-08-17 | 沈阳化工大学 | 一种基于多路径的无线传感器网络数据流量分流路由方法 |
CN105933232A (zh) * | 2016-03-29 | 2016-09-07 | 东北大学 | 支持多业务数据传输需求的多径传输控制终端及方法 |
CN106059941A (zh) * | 2016-07-14 | 2016-10-26 | 电子科技大学 | 一种消除链路拥塞的骨干网络流量调度方法 |
CN106357547A (zh) * | 2016-09-08 | 2017-01-25 | 重庆邮电大学 | 一种基于流切片的软件定义网络拥塞控制算法 |
-
2017
- 2017-05-19 CN CN201710359609.1A patent/CN108965121B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102498694A (zh) * | 2009-09-14 | 2012-06-13 | 日本电气株式会社 | 通信***、转发节点、路径管理服务器、通信方法和程序 |
CN102006225A (zh) * | 2010-11-19 | 2011-04-06 | 华为技术有限公司 | 网络拥塞处理方法及装置 |
US20140064082A1 (en) * | 2012-08-31 | 2014-03-06 | Derek Man-Kit Yeung | Congestion mitigation and avoidance |
CN104579961A (zh) * | 2013-10-11 | 2015-04-29 | ***通信集团公司 | 数据报文的调度方法及装置 |
CN105933232A (zh) * | 2016-03-29 | 2016-09-07 | 东北大学 | 支持多业务数据传输需求的多径传输控制终端及方法 |
CN105873162A (zh) * | 2016-06-20 | 2016-08-17 | 沈阳化工大学 | 一种基于多路径的无线传感器网络数据流量分流路由方法 |
CN106059941A (zh) * | 2016-07-14 | 2016-10-26 | 电子科技大学 | 一种消除链路拥塞的骨干网络流量调度方法 |
CN106357547A (zh) * | 2016-09-08 | 2017-01-25 | 重庆邮电大学 | 一种基于流切片的软件定义网络拥塞控制算法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114097206A (zh) * | 2019-05-14 | 2022-02-25 | 威睿公司 | 基于切片的网络中的拥塞避免 |
US11588733B2 (en) | 2019-05-14 | 2023-02-21 | Vmware, Inc. | Slice-based routing |
US11595315B2 (en) | 2019-05-14 | 2023-02-28 | Vmware, Inc. | Quality of service in virtual service networks |
US11902080B2 (en) | 2019-05-14 | 2024-02-13 | Vmware, Inc. | Congestion avoidance in a slice-based network |
WO2021254307A1 (zh) * | 2020-06-16 | 2021-12-23 | 华为技术有限公司 | 确定报文发送路径的方法及装置 |
CN111817973A (zh) * | 2020-06-28 | 2020-10-23 | 电子科技大学 | 一种数据中心网络负载的均衡方法 |
CN111817973B (zh) * | 2020-06-28 | 2022-03-25 | 电子科技大学 | 一种数据中心网络负载的均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108965121B (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108965121A (zh) | 传输数据的方法、主机和交换机 | |
CN114073052B (zh) | 用于基于切片的路由的***、方法及计算机可读介质 | |
EP3624408B1 (en) | Method for generating forwarding table entry, controller, and network device | |
CN109691037B (zh) | 用于数据中心负载均衡的方法和*** | |
US9608938B2 (en) | Method and system for tracking and managing network flows | |
CN113382442B (zh) | 报文传输方法、装置、网络节点及存储介质 | |
CN111953604B (zh) | 一种为业务流提供业务服务的方法和装置 | |
CN108462646B (zh) | 一种报文处理方法及装置 | |
CN102792646B (zh) | 通信***、控制装置、通信方法 | |
KR101317969B1 (ko) | 링크 애그리게이션 방법 및 노드 | |
CN107078963B (zh) | 虚拟可扩展局域网中的路由追踪 | |
CN108667681A (zh) | 用于多路径路由的路由跟踪 | |
CN111630817B (zh) | 一种路由方法及设备 | |
US10693790B1 (en) | Load balancing for multipath group routed flows by re-routing the congested route | |
US10263861B2 (en) | Multi-path aware tracing and probing functionality at service topology layer | |
CN112671641B (zh) | 报文转发方法及装置 | |
EP2880550B1 (en) | Connection mesh in mirroring asymmetric clustered multiprocessor systems | |
CN102447638A (zh) | 负载均衡的方法及转发设备 | |
Luo et al. | Enhancing responsiveness and scalability for OpenFlow networks via control-message quenching | |
Cheng et al. | Application-aware SDN routing for big data networking | |
KR102455886B1 (ko) | 서비스 기능 체이닝 혼잡 피드백 | |
CN111585911B (zh) | 数据中心网络流量负载的均衡方法 | |
WO2015039616A1 (zh) | 一种报文处理方法及设备 | |
CN116319535A (zh) | 路径切换方法、装置、网络设备、以及网络*** | |
US8625624B1 (en) | Self-adjusting load balancing among multiple fabric ports |
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 |