CN108989237B - 数据传输的方法和设备 - Google Patents
数据传输的方法和设备 Download PDFInfo
- Publication number
- CN108989237B CN108989237B CN201710403008.6A CN201710403008A CN108989237B CN 108989237 B CN108989237 B CN 108989237B CN 201710403008 A CN201710403008 A CN 201710403008A CN 108989237 B CN108989237 B CN 108989237B
- Authority
- CN
- China
- Prior art keywords
- data stream
- data
- sent
- time interval
- messages
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
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
- 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/196—Integration of transport layer protocols, e.g. TCP and UDP
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2517—Translation of Internet protocol [IP] addresses using port numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/663—Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/14—Two-way operation using the same type of signal, i.e. duplex
- H04L5/1469—Two-way operation using the same type of signal, i.e. duplex using time-sharing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种数据传输的方法和设备,在发送至少一条数据流时,主动为数据流构造子流,从而,打散了数据流,消除了交换网内端口的持续拥塞,负载均衡效果好。该方法包括:根据至少一条待发送的数据流和第一时间间隔,计算第一时长,该第一时间间隔为一个预设值,该至少一条待发送的数据流中不同的数据流具有不同的五元组;发送第一数据流,该第一数据流属于该至少一条待发送的数据流,其中,在第一时间段内发送该第一数据流的多个报文,以及在间隔第二时间间隔之后的第二时间段内发送该第一数据流中的报文,该第一时间段和该第二时间段的时长等于该第一时长,该第二时间间隔大于或者等于该第一时间间隔。
Description
技术领域
本申请涉及通信领域,并且更具体地,涉及一种数据传输的方法和设备。
背景技术
在通信网络中,数据中心(Data Center,DC)网络越来越广泛地被云服务提供商和企业所创建,同时,数据中心网络对网络流量的负载均衡效果直接关系到了用户体验。
在网络流量负载均衡时,会因为网络拥塞而出现丢包现象。网络拥塞丢包主要分为两种情况:一、本地负载不均衡,如等价多路径(Equal Cost Multi-Path,ECMP)、VLB方式,这两种方式只能做到流数的均衡,由于数据流的大小不一,因此无法做到流量的均衡,可能会出现多条大流(Large Flow)映射到同一条链路,导致汇聚流量超过端口容量,引起拥塞;二、由于Leaf交换机各自作负载均衡,可能会出现多个Leaf交换机上去往相同Leaf的多条大流发到同一个Spine交换机,导致下行流量汇聚拥塞。这两种情况的网络拥塞可能导致大流占尽某链路带宽,导致小流(Small Flow)无法转发;几条大流被调度到同一条链路,导致大流本身由于带宽不足引起丢包。
因此,如何克服因网络流量负载不均衡而造成的拥塞和丢包现象,增加数据传输可靠性,是一项亟待解决的问题。
发明内容
本申请提供一种数据传输的方法和设备,能够周期性地为一条数据流的前后两个组报文插入时延,主动构造子流,打散了大流,消除了交换网内端口的持续拥塞,负载均衡效果好,且易于实现,进而,克服了因网络流量负载不均衡而造成的拥塞和丢包现象,增加数据传输的可靠性。
第一方面,本申请实施例提供了一种数据传输的方法,包括:根据至少一条待发送的数据流和第一时间间隔,计算第一时长,该第一时间间隔为一个预设值,该至少一条待发送的数据流中不同的数据流具有不同的五元组;
发送第一数据流,该第一数据流属于该至少一条待发送的数据流,其中,
在第一时间段内发送该第一数据流的多个报文,以及在间隔第二时间间隔之后的第二时间段内发送该第一数据流中的报文,该第一时间段和该第二时间段的时长等于该第一时长,该第二时间间隔大于或者等于该第一时间间隔。
可选地,该数据传输的方法可以由远程直接数据存取(Remote Direct MemoryAccess,RDMA)网卡执行,也可以由接入TOR交换机执行。
因此,在本申请实施例的数据传输的方法中,在发送至少一条数据流时,主动为数据流构造子流,从而,打散了数据流,缓解了交换网内端口的持续拥塞。
进一步地,在交换机支持Flowlet负载均衡功能时,负载均衡效果好,且易于实现。
可选地,在第一方面的一种实现方式中,该方法还包括:
可选地,在第一方面的一种实现方式中,该方法还包括:
在该第二时间间隔内不发送该第一数据流的报文。
在该第二时间间隔内发送该至少一条待发送的数据流中除该第一数据流外的其他数据流的报文。
可选地,在第一方面的一种实现方式中,该第二时间间隔内发送的报文属于不同的数据流。
可选地,在第一方面的一种实现方式中,该方法还包括:
为该第二时间间隔内发送的属于不同的数据流的报文分别设置不同的用户数据协议(User Datagram Protocol,UDP)源端口号或者传输控制协议(Transmission ControlProtocol,TCP)源端口号。
可选地,在第一方面的一种实现方式中,该方法还包括:
为该第一时间段和该第二时间段内发送的报文分别设置不同的UDP源端口号。
可选地,在第一方面的一种实现方式中,该方法还包括:
为一个第一时长内发送的报文设置相同的UDP源端口号。
因此,在本申请实施例的数据传输的方法中,为一条数据流的每个子流设置不同的UDP源端口号,在交换机支持基于五元组散列(Hash)的ECMP负载均衡功能时即可实现了每个子流的负载均衡,进而,克服了因网络流量负载不均衡而造成的拥塞和丢包现象,增加数据传输的可靠性。
可选地,在第一方面的一种实现方式中,该根据该至少一条待发送的数据流和第一时间间隔,计算第一时长,包括:
确定该待发送的数据流的数量;
该第一时长≥该第一时间间隔/(该待发送的数据流的数量-1)。
可选地,在第一方面的一种实现方式中,该确定该待发送的数据流的数量,包括:
在完成一条数据流的发送和/或新增数据流时,更新该待发送的数据流的数量。
可选地,在第一方面的一种实现方式中,该方法还包括:
根据该第一时长,计算一个第一时长内发送的报文数;
该发送第一数据流,包括:
连续发送该第一数据流的与计算得到的报文数相同的多个报文,以及在间隔该第二时间间隔之后连续发送该第一数据流中的报文。
可选地,在第一方面的一种实现方式中,该至少一条待发送的数据流为融合以太网承载的RDMA RoCEv2流。
第二方面,本申请实施例提供了一种数据传输的设备,可以执行第一方面或第一方面的任一可选的实现方式中的方法的模块或者单元。
第三方面,提供了一种数据传输的设备,包括存储器、收发器和处理器,该存储器上存储有可以用于指示执行上述第一方面或其任意可选的实现方式的程序代码,收发器用于在处理器的驱动下执行具体的信号收发,当该代码被执行时,该处理器可以实现方法中设备执行的各个操作。
第四方面,提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码用于指示计算机执行上述第一方面或第一方面的任一种可能的实现方式中的方法的指令。
第五方面,提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
附图说明
图1是使用本申请的数据传输的方法的一种数据中心网络的示意图。
图2是使用本申请的数据传输的方法的另一种数据中心网络的示意图。
图3是本申请一个实施例的数据传输的方法的示意图。
图4是本申请实施例中RoCEv2协议的示意图。
图5是本申请实施例数据传输的一种示意图。
图6是本申请实施例的数据传输的另一种示意图。
图7是本申请实施例的数据传输的再一种示意图。
图8是本申请实施例的数据传输的再一种示意图。
图9是本申请实施例的数据传输过程中端口号设置的一种示意图。
图10是本申请实施例的数据传输过程中端口号设置的另一种示意图。
图11是本申请实施例的数据传输过程中端口号设置的再一种示意图。
图12是根据本申请实施例的一种数据传输的设备的示意性框图。
图13示出了本申请实施例提供的数据传输的设备的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
应理解,本申请的数据传输的方法可以应用于交换机(例如,CLOS网络中的接入TOR交换机),也可以应用于网卡(例如,集成于服务器中的远程直接数据存取网卡),具体地,可以在交换机或者网卡的芯片上实现本申请的方法。以下是以CLOS网络为例来描述使用本申请的数据传输的方法的数据中心网络的,本申请并不对此作任何限制。
图1是使用本申请的数据传输的方法的一种数据中心网络的示意图。如图1所示,该数据中心网络100为二级CLOS网络,具体包括:两种交换机,一种是接入TOR交换机,其下行端口连接服务器,上行端口连接核心SPINE交换机;另一种是SPINE交换机,SPINE交换机用于连接TOR交换机,其中,不同TOR交换机下的服务器通信,流量会经过SPINE交换机。
具体地,服务器之间的数据传输可以通过TOR交换机和SPINE交换机实现。例如,服务器Server#1向Server#3发送第一数据流的报文,首先,Server#1向TOR#1发送该第一数据流的报文;然后,TOR#1可以通过SPINE#1向TOR#3发送该第一数据流的报文,TOR#1也可以通过SPINE#2向TOR#3发送该第一数据流的报文;最后,TOR#3向该第一数据流发送给Server#3的报文。在此第一数据流的发送过程中,可以在TOR#1和TOR#3处实现本申请所述的数据传输的方法,也可以在Server#1和Server#3处实现本申请所述的数据传输的方法。
图2是使用本申请的数据传输的方法的另一种数据中心网络的示意图。如图2所示,该数据中心网络200为三级CLOS网络,具体包括:三种交换机,一种是TOR交换机,其下行端口连接服务器,上行端口连接汇聚AGG交换机;另一种是AGG交换机,其下行端口连接TOR交换机,上行端口连接SPINE交换机;再一种是SPINE交换机,SPINE交换机用于连接AGG交换机,其中,不同TOR交换机下的服务器通信,流量会经过AGG交换机和SPINE交换机。
具体地,服务器之间的数据传输可以通过TOR交换机、AGG交换机和SPINE交换机实现。例如,服务器Server#1向Server#2发送第一数据流的报文,首先,Server#1向TOR#1发送该第一数据流的报文;然后,TOR#1可以通过AGG#1向SPINE#1发送该第一数据流的报文,TOR#1也可以通过AGG#1向SPINE#2发送该第一数据流的报文,TOR#1还可以通过AGG#2向SPINE#1发送该第一数据流的报文,TOR#1还可以通过AGG#2向SPINE#2发送该第一数据流的报文;接着,当该第一数据流的报文传输至SPINE#1时,SPINE#1可以通过AGG#1向TOR#2发送该第一数据流的报文,SPINE#1可以通过AGG#2向TOR#2发送该第一数据流的报文,当该第一数据流的报文传输至SPINE#2时,SPINE#2可以通过AGG#1向TOR#2发送该第一数据流的报文,SPINE#2可以通过AGG#2向TOR#2发送该第一数据流的报文;最后,TOR#2向该第一数据流的报文发送给Server#2。又例如,服务器Server#1向Server#2发送第一数据流的报文,首先,Server#1向TOR#1发送该第一数据流的报文;然后,TOR#1可以通过AGG#1直接向TOR#2发送该第一数据流的报文,TOR#1也可以通过AGG#2直接向TOR#2发送该第一数据流的报文;最后,TOR#2向该第一数据流的报文发送给Server#2。在此第一数据流的报文的发送过程中,可以在TOR#1和TOR#2处实现本申请所述的数据传输的方法,也可以在Server#1和Server#2处实现本申请所述的数据传输的方法。
应理解,图1和图2示出的数据中心网络100和数据中心网络200仅是二级CLOS网络和三级CLOS网络的简单示例,实际部署时服务器、TOR交换机、AGG交换机和SPINE交换机的数量可以根据网络规模、应用类型等因素确定。
还应理解,本申请实施例还可以应用于其他CLOS网络,如四级CLOS网络,或者,更高级别的CLOS网络,本申请对此并不做任何限制。
图3是本申请一个实施例的数据传输的方法300的示意图,该方法300的执行主体可以是集成于服务器中的RDMA网卡,也可以是TOR交换机。以下是以RDMA网卡为执行主体进行描述,如图3所示,该方法300包括:
S310,根据至少一条待发送的数据流和第一时间间隔,计算第一时长,该第一时间间隔为一个预设值,该至少一条待发送的数据流中不同的数据流具有不同的五元组。
可选地,该至少一条待发送的数据流为融合以太网承载的RDMA(RDMA overConverged Ethernet,RoCE)v2流。
可选地,该RoCEv2数据流可以是基于五元组散列(Hash)的ECMP负载均衡流。
可选地,五元组分别是指源因特网协议地址(Source Internet ProtocolAddress,src IP)、目的因特网协议地址(Destination Internet Protocol Address,dstIP)、因特网协议地址协议(Internet Protocol Protocol,IP protocol)、源端口(SourcePort,src Port)和目的端口(Destination Port,dst Port)。
可选地,如图4所示,在基于RoCEv2协议的数据流中,可以用Ether Type指出数据包是IP,可以用IP.protocol number指出数据包是UDP,可以用UDP port number指出下一个报头是IB.BTH。
可选地,在该至少一条待发送的数据流中不同的数据流具有不同的五元组。
应理解,五元组中任何一个元组不同的两条数据流为不同的数据流。例如,五元组中源端口号不同的两条数据流为不同的数据流。
还应理解,不同数据流进行五元组散列(Hash)运算时,可能得到相同的结果。
应理解,该至少一条数据流的报文在多条路径上传输时,多条路径中不同的路径之间可能会存在时延差。
可选地,该第一时间间隔为一个预设值,该第一时间间隔大于或者等于最大的路径时延差,可以用Flowlet Gap表示。
可选地,第一时长≥第一时间间隔/(待发送的数据流的数量-1)。应理解,此时该待发送的数据流的数量大于或者等于2。
可选地,在该待发送的数据流的数量为1时,该第一时长大于或者等于该第一时间间隔。
可选地,可以在完成一条数据流的发送和/或新增数据流时,更新该待发送的数据流的数量。
S320,发送第一数据流,该第一数据流属于该至少一条待发送的数据流,其中,
在第一时间段内发送该第一数据流的多个报文,以及在间隔第二时间间隔之后的第二时间段内发送该第一数据流中的报文,该第一时间段和该第二时间段的时长等于该第一时长,该第二时间间隔大于或者等于该第一时间间隔。
应理解,在确定该第一时长之后,该RDMA网卡周期性发送该第一数据流中的报文。可选地,该RDMA网卡可以每间隔一个第二时间间隔发送一次该第一数据流中的报文。
还应理解,第一时间段和第二时间段只是发送该第一数据流的任意两个相邻的时间段,本申请实施例对此并不做任何限定。
可选地,该RDMA网卡可以在每个时间段内发送相同数量的报文,例如,在第一时间段内发送5个报文,第二时间段内发送5个报文,…,最后一个时间段内发送5个报文。
可选地,该RDMA网卡可以在除最后一个时间段外的每个时间段内发送相同数量的报文,可以在最后一个时间段内发送少于其他时间段内的报文数,例如,在第一时间段内发送5个报文,第二时间段内发送5个报文,…,最后一个时间段内发送2个报文(最后一个时间段内只剩下了2个待发送的报文)。
例如,如图5所示,存在一条待发送的数据流(第一数据流),在一个第一时长内发送该第一数据流的6个报文,以及在间隔第二时间间隔之后的一个第一时长内再发送该第一数据流的6个报文,后续以此方式周期性发送该第一数据流。此时,该第一时长大于该第一时间间隔,该第二时间间隔等于该第一时间间隔(Flowlet Gap)。
可选地,在该第二时间间隔内不发送该第一数据流的报文。可选地,此时,在该第二时间间隔内可以发送一些反馈帧,例如,ACK帧,也可以不发送任何报文。
可选地,在该第二时间间隔内发送该至少一条待发送的数据流中除该第一数据流外的其他数据流的报文。
例如,如图6所示,存在两条待发送的数据流(第一数据流和第二数据流),在一个第一时长内发送该第一数据流的6个报文,以及在间隔第二时间间隔之后的一个第一时长内再发送该第一数据流的6个报文;在一个第二时间间隔内发送第二数据流的6个报文,以及在间隔一个第一时长之后的一个第二时间间隔内发送该第二数据流的6个报文,后续以此方式周期性发送该第一数据流和该第二数据流。此时,该第一时长等于该第一时间间隔,该第二时间间隔等于该第一时间间隔(Flowlet Gap)。
又例如,如图7所示,存在三条待发送的数据流(第一数据流、第二数据流和第三数据流),在一个第一时长内发送该第一数据流的6个报文,以及在间隔第二时间间隔(两倍的第一时间间隔)之后的一个第一时长内再发送该第一数据流的6个报文;在第二时间间隔中的一个第一时间间隔内发送该第二数据流的6个报文,以及在另一个第一时间间隔内发送该第三数据流的6个报文,后续以此方式周期性发送该第一数据流、该第二数据流和该第三数据流。此时,该第一时长等于该第一时间间隔。
可选地,可以在该第二时间间隔内发送属于不同的数据流的报文。
例如,如图8所示,存在三条待发送的数据流(第一数据流、第二数据流和第三数据流),在一个第一时长内发送该第一数据流的6个报文,以及在间隔第二时间间隔之后的一个第一时长内再发送该第一数据流的6个报文;在第二时间间隔内先发送该第二数据流的3个报文,接着发送该第三数据流的3个报文,后续以此方式周期性发送该第一数据流、该第二数据流和该第三数据流。此时,该第一时长等于该第一时间间隔,该第二时间间隔等于该第一时间间隔(Flowlet Gap)。
应理解,在图5至图8的示例中,在第一时长内发送的报文数,以及在第二时间间隔内发送的报文数仅仅只是示例,本申请实施例对此并不做任何限定。
可选地,在确定该第一时长之后,可以根据该第一时长,计算一个第一时长内发送的报文数。
具体地,一个第一时长内发送的报文数=该第一时长*端口速率/(8*最大传输单元),其中,端口速率的单位是kbps,最大传输单元(Maximum Transmission Unit,MTU)的单位是字节,例如,以太网(Ethernet)协议中的MTU可以是1500字节,以太网点对点协议(Point to Point Protocol over Ethernet,PPPoE)中的MTU可以是1492字节。
应理解,端口速率可以是RDMA网卡发送报文的端口速率,也可以是TOR交换机发送报文的端口速率。
可选地,在计算得到一个第一时长内发送的报文数之后,该RDMA网卡可以连续发送该第一数据流的与计算得到的报文数相同的多个报文,以及在间隔第二时间间隔之后连续发送该第一数据流中的报文。
可选地,该RDMA网卡为连续两个第一时长内发送的报文分别设置不同的UDP源端口号或者TCP源端口号。
以下示例以设置UDP源端口号为例进行说明。
例如,如图9所示,该RDMA网卡为一个第一时长内发送的报文设置的UDP源端口号为3123,为下一个第一时长内发送的报文设置的UDP源端口号为269。
可选地,该RDMA网卡为连续发送的属于不同数据流的报文分别设置不同的UDP源端口号或者TCP源端口号。
以下示例以设置UDP源端口号为例进行说明。
例如,如图10所示,该RDMA网卡为一个第一时长内发送的属于第一数据流的报文设置的UDP源端口号为3123,为接着在第二时间间隔内发送的属于第二数据流的报文设置的UDP源端口号为62320,以及为接着在一个第一时长内发送的属于第一数据流的报文设置的UDP源端口号为269。
又例如,如图11所示,该RDMA网卡为一个第一时长内发送的属于第一数据流的报文设置的UDP源端口号为4890,为接着在第二时间间隔内发送的属于第二数据流的报文设置的UDP源端口号为269,为接着在第二时间间隔内发送的属于第三数据流的报文设置的UDP源端口号为62320,以及为接着在一个第一时长内发送的属于第一数据流的报文设置的UDP源端口号为3123。
可选地,该RDMA网卡为一个第一时长内发送的报文设置相同的UDP源端口号或者TCP源端口号。
应理解,本申请实施例中的UDP端口或者TCP端口为逻辑端口,端口号的范围可以是0到65535。
还应理解,在图9至图11的示例中,该RDMA网卡设置的具体端口号仅仅只是示例,本申请实施例对此并不做任何限定。可选地,该RDMA网卡在需要设置端口号时,可以随机分配一个端口号。
可选地,该RDMA网卡可以为该至少一条待发送的数据流设置相同的UDP目的端口号或者TCP目的端口号。
可选地,在RoCEv2协议中,可以通过知名端口号来表示该至少一条待发送的数据流的目的端口号,如,可以将该至少一条待发送的数据流的UDP目的端口号设置为知名端口号4791。
可选地,如图1所示,可以在服务器Server和TOR交换机上实现本申请实施例所述的方法300。
例如,存在第一数据流需要从Server#1发送至Server#3,集成于Server#1的RDMA网卡可以通过在第一时间段内发送该第一数据流的多个报文,在间隔一个第二时间间隔之后的第二时间段内发送该第一数据流的多个报文,在间隔一个第二时间间隔之后的第三时间段内发送该第一数据流的多个报文,…,如此周期发送该第一数据流的报文,从而,主动为该第一数据流构造子流。
又例如,存在第一数据流需要从Server#1发送至Server#3,TOR#1在接收到该第一数据流的报文之后,可以通过在第一时间段内发送该第一数据流的多个报文,在间隔一个第二时间间隔之后的第二时间段内发送该第一数据流的多个报文,在间隔一个第二时间间隔之后的第三时间段内发送该第一数据流的多个报文,…,如此周期发送该第一数据流的报文,从而,主动为该第一数据流构造子流。
再例如,存在第一数据流需要从Server#1发送至Server#3,TOR#1在接收到该第一数据流的报文之后,可以通过在第一时间段内发送该第一数据流的多个报文,在间隔一个第二时间间隔之后的第二时间段内发送该第一数据流的多个报文,在间隔一个第二时间间隔之后的第三时间段内发送该第一数据流的多个报文,…,如此周期发送该第一数据流的报文,并且为每个时间段内发送的报文分别设置不同的UDP源端口号或者TCP源端口号,使得不同时间段内发送的报文可以通过不同的路径进行发送,如图1中,第一时间段内的报文可以是从TOR#1发送至SPINE#1,然后,SPINE#1将接收到的报文发送至TOR#3,最后发送至Server#3;第二时间段内的报文可以是从TOR#1发送至SPINE#2,然后,SPINE#2将接收到的报文发送至TOR#3,最后发送至Server#3。
因此,在本申请实施例的数据传输的方法中,在发送至少一条数据流时,主动为数据流构造子流,从而,打散了数据流,消除了交换网内端口的持续拥塞,负载均衡效果好,且易于实现。
更进一步地,为一条数据流的每个子流设置不同的UDP源端口号或者TCP源端口号,在交换机支持基于五元组散列(Hash)的ECMP负载均衡功能时即可实现了每个子流的负载均衡,进而,克服了因网络流量负载不均衡而造成的拥塞和丢包现象,增加数据传输的可靠性。
图12是根据本申请实施例的一种数据传输的设备500的示意性框图。如图12所示,该设备500包括:
处理单元510,用于根据至少一条待发送的数据流和第一时间间隔,计算第一时长,该第一时间间隔为一个预设值,该至少一条待发送的数据流中不同的数据流具有不同的五元组;
发送单元520,用于发送第一数据流,该第一数据流属于该至少一条待发送的数据流,其中,
在第一时间段内发送该第一数据流的多个报文,以及在间隔第二时间间隔之后的第二时间段内发送该第一数据流中的报文,该第一时间段和该第二时间段的时长等于该第一时长,该第二时间间隔大于或者等于该第一时间间隔。
可选地,该发送单元520,还用于在该第二时间间隔内发送该至少一条待发送的数据流中除该第一数据流外的其他数据流的报文。
可选地,该第二时间间隔内发送的报文属于不同的数据流。
可选地,该处理单元510,还用于为该第一时间段和该第二时间段内发送的报文分别设置不同的UDP源端口号。
可选地,该处理单元510,还用于为一个第一时长内发送的报文设置相同的UDP源端口号。
可选地,该处理单元510,还用于确定该待发送的数据流的数量;
该第一时长≥该第一时间间隔/(该待发送的数据流的数量-1)。
可选地,该处理单元510,还用于在完成一条数据流的发送和/或新增数据流时,更新该待发送的数据流的数量。
可选地,该处理单元510,还用于根据该第一时长,计算一个第一时长内发送的报文数;
该发送单元520,还用于连续发送该第一数据流的与计算得到的报文数相同的多个报文,以及在间隔第二时间间隔之后连续发送该第一数据流中的报文。
可选地,该至少一条待发送的数据流为融合以太网承载的RDMA RoCEv2流。
应理解,根据本申请实施例的一种数据传输的设备500中的各个单元的上述和其它操作和/或功能分别为了实现图3中的方法300中RDMA网卡或者TOR交换机的相应流程,为了简洁,在此不再赘述。
图13示出了本申请实施例提供的数据传输的设备600的示意性框图,该设备600包括:
存储器610,用于存储程序,该程序包括代码;
收发器620,用于和其他设备进行通信;
处理器630,用于执行存储器610中的程序代码。
可选地,当该代码被执行时,该处理器630可以实现图3中的方法300中RDMA网卡或者TOR交换机执行的各个操作,为了简洁,在此不再赘述。此时,该设备600可以为集成于服务器中的RDMA网卡或者TOR交换机。收发器620用于在处理器630的驱动下执行具体的信号收发。
应理解,在本申请实施例中,该处理器630可以是中央处理单元(CentralProcessing Unit,CPU),该处理器630还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器610可以包括只读存储器和随机存取存储器,并向处理器630提供指令和数据。存储器610的一部分还可以包括非易失性随机存取存储器。例如,存储器610还可以存储设备类型的信息。
收发器620可以是用于实现信号发送和接收功能,例如频率调制和解调功能或叫上变频和下变频功能。
在实现过程中,上述方法的至少一个步骤可以通过处理器630中的硬件的集成逻辑电路完成,或该集成逻辑电路可在软件形式的指令驱动下完成该至少一个步骤。因此,该数据传输的设备600可以是个芯片或者芯片组。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器630读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk(SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种数据传输的方法,其特征在于,包括:
确定待发送的数据流的数量;
根据至少一条所述待发送的数据流和第一时间间隔,计算第一时长,所述第一时长≥所述第一时间间隔/(所述待发送的数据流的数量-1);所述第一时间间隔为一个预设值,所述至少一条待发送的数据流中不同的数据流具有不同的五元组;
为一个所述第一时长内发送的报文设置相同的UDP源端口号;
发送第一数据流,所述第一数据流属于所述至少一条待发送的数据流,其中,
在第一时间段内发送所述第一数据流的多个报文,以及在间隔第二时间间隔之后的第二时间段内发送所述第一数据流中的报文,所述第一时间段和所述第二时间段的时长等于所述第一时长,所述第二时间间隔大于或者等于所述第一时间间隔。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第二时间间隔内发送所述至少一条待发送的数据流中除所述第一数据流外的其他数据流的报文。
3.根据权利要求2所述的方法,其特征在于,所述第二时间间隔内发送的报文属于不同的数据流。
4.根据权利要求1至3中任一所述的方法,其特征在于,所述方法还包括:
为所述第一时间段和所述第二时间段内发送的报文分别设置不同的用户数据协议UDP源端口号。
5.根据权利要求4所述的方法,其特征在于,所述确定所述待发送的数据流的数量,包括:
在完成一条数据流的发送和/或新增数据流时,更新所述待发送的数据流的数量。
6.根据权利要求1至3中任一所述的方法,其特征在于,所述方法还包括:
根据所述第一时长,计算一个第一时长内发送的报文数;
所述发送第一数据流,包括:
连续发送所述第一数据流的与计算得到的报文数相同的多个报文,以及在间隔所述第二时间间隔之后连续发送所述第一数据流中的报文。
7.根据权利要求1至3中任一所述的方法,其特征在于,所述至少一条待发送的数据流为融合以太网承载的RDMA RoCEv2流。
8.一种数据传输的设备,其特征在于,包括:
处理单元,用于确定待发送的数据流的数量;
所述处理单元,还用于根据至少一条待发送的数据流和第一时间间隔,计算第一时长,所述第一时长≥所述第一时间间隔/(所述待发送的数据流的数量-1);所述第一时间间隔为一个预设值,所述至少一条待发送的数据流中不同的数据流具有不同的五元组;
所述处理单元,还用于为一个第一时长内发送的报文设置相同的UDP源端口号;
发送单元,用于发送第一数据流,所述第一数据流属于所述至少一条待发送的数据流,其中,
在第一时间段内发送所述第一数据流的多个报文,以及在间隔第二时间间隔之后的第二时间段内发送所述第一数据流中的报文,所述第一时间段和所述第二时间段的时长等于所述第一时长,所述第二时间间隔大于或者等于所述第一时间间隔。
9.根据权利要求8所述的设备,其特征在于,所述发送单元,还用于在所述第二时间间隔内发送所述至少一条待发送的数据流中除所述第一数据流外的其他数据流的报文。
10.根据权利要求9所述的设备,其特征在于,所述第二时间间隔内发送的报文属于不同的数据流。
11.根据权利要求8至10中任一所述的设备,其特征在于,所述处理单元,还用于为所述第一时间段和所述第二时间段内发送的报文分别设置不同的用户数据协议UDP源端口号。
12.根据权利要求11所述的设备,其特征在于,所述处理单元,还用于在完成一条数据流的发送和/或新增数据流时,更新所述待发送的数据流的数量。
13.根据权利要求8至10中任一所述的设备,其特征在于,
所述处理单元,还用于根据所述第一时长,计算一个第一时长内发送的报文数;
所述发送单元,还用于连续发送所述第一数据流的与计算得到的报文数相同的多个报文,以及在间隔所述第二时间间隔之后连续发送所述第一数据流中的报文。
14.根据权利要求8至10中任一所述的设备,其特征在于,所述至少一条待发送的数据流为融合以太网承载的RDMA RoCEv2流。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710403008.6A CN108989237B (zh) | 2017-06-01 | 2017-06-01 | 数据传输的方法和设备 |
EP18809629.1A EP3637704B1 (en) | 2017-06-01 | 2018-05-08 | Data transmission method and device |
PCT/CN2018/085942 WO2018219100A1 (zh) | 2017-06-01 | 2018-05-08 | 数据传输的方法和设备 |
US16/699,352 US11140082B2 (en) | 2017-06-01 | 2019-11-29 | Data transmission method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710403008.6A CN108989237B (zh) | 2017-06-01 | 2017-06-01 | 数据传输的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108989237A CN108989237A (zh) | 2018-12-11 |
CN108989237B true CN108989237B (zh) | 2021-03-23 |
Family
ID=64455161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710403008.6A Active CN108989237B (zh) | 2017-06-01 | 2017-06-01 | 数据传输的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11140082B2 (zh) |
EP (1) | EP3637704B1 (zh) |
CN (1) | CN108989237B (zh) |
WO (1) | WO2018219100A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11374865B2 (en) * | 2018-07-02 | 2022-06-28 | Marvell Israel (M.I.S.L) Ltd. | Group specific load balancing in network devices |
CN111858418B (zh) * | 2019-04-30 | 2023-04-07 | 华为技术有限公司 | 一种基于远程直接内存访问rdma的内存通信方法及装置 |
CN113099488B (zh) * | 2019-12-23 | 2024-04-09 | 中国移动通信集团陕西有限公司 | 解决网络拥塞的方法、装置、计算设备及计算机存储介质 |
US11570239B2 (en) | 2020-04-20 | 2023-01-31 | Cisco Technology, Inc. | Distributed resilient load-balancing for multipath transport protocols |
CN114079638A (zh) * | 2020-08-17 | 2022-02-22 | 中国电信股份有限公司 | 多协议混合网络的数据传输方法、装置和存储介质 |
CN112565102B (zh) * | 2020-11-30 | 2022-11-11 | 锐捷网络股份有限公司 | 一种负载均衡方法、装置、设备及介质 |
US11765237B1 (en) * | 2022-04-20 | 2023-09-19 | Mellanox Technologies, Ltd. | Session-based remote direct memory access |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100589421C (zh) * | 2007-08-07 | 2010-02-10 | 中兴通讯股份有限公司 | 一种产生网络流量的方法及其装置 |
DE102008017290A1 (de) * | 2007-12-11 | 2009-06-18 | Rohde & Schwarz Gmbh & Co. Kg | Verfahren und Vorrichtung zur Bildung eines gemeinsamen Datenstroms insbesondere nach dem ATSC-Standard |
US8516101B2 (en) | 2009-06-15 | 2013-08-20 | Qualcomm Incorporated | Resource management for a wireless device |
US20120207020A1 (en) * | 2009-10-31 | 2012-08-16 | Hui Li | Load-Balancing Structure for Packet Switches with Minimum Buffers Complexity and its Building Method |
WO2012059138A1 (en) * | 2010-11-05 | 2012-05-10 | Telecom Italia S.P.A. | "measurement on a data flow in a communication network" |
US10193771B2 (en) * | 2013-12-09 | 2019-01-29 | Nicira, Inc. | Detecting and handling elephant flows |
CN104023006B (zh) * | 2014-05-09 | 2017-02-15 | 东北大学 | 一种基于应用层中继的多径传输系统及方法 |
EP3167585B1 (en) * | 2014-07-07 | 2019-12-25 | Telefonaktiebolaget LM Ericsson (publ) | Multi-path transmission control protocol |
US9906425B2 (en) * | 2014-07-23 | 2018-02-27 | Cisco Technology, Inc. | Selective and dynamic application-centric network measurement infrastructure |
CN105591974B (zh) * | 2014-10-20 | 2019-02-05 | 华为技术有限公司 | 报文处理方法、装置及系统 |
CN104539483A (zh) * | 2014-12-31 | 2015-04-22 | 中国电子科技集团公司第五十研究所 | 网络测试系统 |
GB201502257D0 (en) * | 2015-02-11 | 2015-04-01 | Nat Univ Ireland | A method of transmitting data between a source node and destination node |
US9923828B2 (en) * | 2015-09-23 | 2018-03-20 | Cisco Technology, Inc. | Load balancing with flowlet granularity |
US10123371B2 (en) * | 2015-10-02 | 2018-11-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for LTE-WAN aggregation |
US9813338B2 (en) * | 2015-12-10 | 2017-11-07 | Cisco Technology, Inc. | Co-existence of routable and non-routable RDMA solutions on the same network interface |
-
2017
- 2017-06-01 CN CN201710403008.6A patent/CN108989237B/zh active Active
-
2018
- 2018-05-08 EP EP18809629.1A patent/EP3637704B1/en active Active
- 2018-05-08 WO PCT/CN2018/085942 patent/WO2018219100A1/zh unknown
-
2019
- 2019-11-29 US US16/699,352 patent/US11140082B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20200099620A1 (en) | 2020-03-26 |
US11140082B2 (en) | 2021-10-05 |
CN108989237A (zh) | 2018-12-11 |
EP3637704A1 (en) | 2020-04-15 |
EP3637704B1 (en) | 2023-07-26 |
WO2018219100A1 (zh) | 2018-12-06 |
EP3637704A4 (en) | 2020-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108989237B (zh) | 数据传输的方法和设备 | |
US10958469B2 (en) | Methods and systems for increasing wireless communication throughput of a bonded VPN tunnel | |
EP3278514B1 (en) | Data transmission | |
EP2911348B1 (en) | Control device discovery in networks having separate control and forwarding devices | |
US20200084155A1 (en) | Congestion control method, network device, and network interface controller | |
CN110912798B (zh) | 用于通过聚合连接传输数据的方法及系统 | |
CN110662256B (zh) | 多路径跨协议传输的数据包调度方法及系统 | |
US20200028786A1 (en) | Flow rate based network load balancing | |
US20190182146A1 (en) | Improved Resource Usage In A Multipath Network | |
US9019827B1 (en) | Throughput optimization for bonded variable bandwidth connections | |
JP5999251B2 (ja) | 通信システム、スイッチ、制御装置、パケット処理方法及びプログラム | |
US8989011B2 (en) | Communication over multiple virtual lanes using a shared buffer | |
KR102267116B1 (ko) | 패킷 전송 방법, 프록시 서버 및 컴퓨터 판독가능 저장 매체 | |
US10135761B2 (en) | Switch device, control method, and storage medium | |
CN106464567B (zh) | 一种流量动态控制方法、设备及网关、融合接入汇聚点 | |
JP7103637B2 (ja) | 通信システム及び通信方法 | |
CN104168212A (zh) | 发送报文的方法和装置 | |
EP2817929B1 (en) | A window regulator for improved performance in a communications network | |
JP5775214B2 (ja) | 適応性の伝送キュー長を用いたデータパケット損失低減システムおよび方法 | |
EP3635922B1 (en) | Fabric-wide bandwidth management | |
CN116668374A (zh) | 通信方法及装置 | |
US11805071B2 (en) | Congestion control processing method, packet forwarding apparatus, and packet receiving apparatus | |
CN112714072B (zh) | 一种调整发送速率的方法及装置 | |
KR101589553B1 (ko) | 소프트웨어 정의 네트워크에서의 QoS 보장을 위한 대역폭 제어 방법 및 장치 | |
CN107078999B (zh) | 传输数据的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |