CN112737940A - 一种数据传输的方法和装置 - Google Patents
一种数据传输的方法和装置 Download PDFInfo
- Publication number
- CN112737940A CN112737940A CN201911033612.XA CN201911033612A CN112737940A CN 112737940 A CN112737940 A CN 112737940A CN 201911033612 A CN201911033612 A CN 201911033612A CN 112737940 A CN112737940 A CN 112737940A
- Authority
- CN
- China
- Prior art keywords
- path
- message
- sent
- sending
- cache
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000005540 biological transmission Effects 0.000 title claims abstract description 34
- 230000015654 memory Effects 0.000 claims description 19
- 238000001514 detection method Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 abstract description 3
- 238000005259 measurement Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 239000000523 sample Substances 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- 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/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/091—Measuring contribution of individual network components to actual service level
-
- 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/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of 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/12—Shortest path evaluation
- H04L45/127—Shortest path evaluation based on intermediate node capabilities
-
- 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/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
-
- 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
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种数据传输的方法和装置,属于通信技术领域。所述方法包括:检测与宿端之间各路径的时延;在确定当前传输报文的第一路径为拥塞路径时,确定待使用的第二路径;基于所述第一路径的时延和所述第二路径的时延,确定所述第一路径与所述第二路径之间的时延差;基于所述时延差,通过所述第二路径向所述宿端发送待发送的报文。采用本申请,可以解决报文乱序的问题。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种数据传输的方法和装置。
背景技术
随着信息技术的发展,网络通信业务量也迅速增,各业务中传输的报文量不断增大,网络拥塞的问题也随之而来。为了解决网络拥塞的问题,在源端向宿端持续发送报文的过程中,如果检测到当前的数据传输路径出现拥塞的情况,则可以切换数据传输路径,将后续待发送的报文通过新的数据传输路径发送到宿端。
如果新的数据传输路径的时延比原来的数据传输路径的时延小,则原来的数据传输路径中传输的报文,很有可能会在新的数据传输路径中传输的报文之后到达宿端,这样宿端接收到的报文的顺序,和源端实际发送的报文的顺序就会不同,即出现报文乱序的情况。
报文乱序可能会导致宿端对报文的解析出现错误,因此,目前急需一种可以解决报文乱序的数据传输方法。
发明内容
本申请实施例提供了一种数据传输的方法和装置,能够解决在切换路径时,导致的报文乱序的问题。所述技术方案如下:
第一方面、提供了一种数据传输的方法,其特征在于,所述方法包括:
检测与宿端之间各路径的时延;
在确定当前传输报文的第一路径为拥塞路径时,确定待使用的第二路径;
基于所述第一路径的时延和所述第二路径的时延,确定所述第一路径与所述第二路径之间的时延差;
基于所述时延差,通过所述第二路径向所述宿端发送待发送的报文。
本申请实施例所示的方案,待发送的报文可以为某一业务的报文流,其中包括有多个目的地相同的报文。通过与宿端之间的各路径向宿端发送测量报文,检测每条路径的时延。并根据检测到的时延和路径的标准时延比较,判断路径是否为拥塞路径。当判断当前路径为拥塞路径时,在其余路径中选择一条非拥塞的第二路径。然后,根据当前的第一路径和选择的第二路径,计算出二者的时延差。最后,可以根据时延差,来判断何时切换为第二路径对待发送的报文进行发送,以避免报文乱序的发生。
在一种可能的实现方式中,所述基于所述第一路径的时延和所述第二路径的时延,确定所述第一路径与所述第二路径之间的时延差,包括:
将所述第一路径的时延减去所述第二路径的时延,得到所述第一路径与所述第二路径之间的时延差。
在一种可能的实现方式中,所述基于所述时延差,通过所述第二路径向所述宿端发送待发送的报文,包括:
如果所述时延差小于0,则将所述待发送的报文通过所述第二路径向所述宿端发送。
本申请实施例所示的方案,对于时延差小于0时,即第二路径的时延大于第一路径是时延,那么,此时直接将待发送的报文通过第二路径发送,这些报文也会在之前通过第一路径发送的报文之后到达宿端,不会出现报文乱序。
在一种可能的实现方式中,所述基于所述时延差,通过所述第二路径向所述宿端发送报文,包括:
如果所述时延差大于0,则在所述待发送的报文中,确定是否存在发送时间在当前时间点后的预设时长内,且发送时间间隔大于所述时延差的相邻两个报文;
如果存在,则将所述发送时间间隔大于所述时延差的相邻两个报文中发送顺序在前的第一报文,以及所述待发送的报文中发送顺序在所述第一报文之前的报文通过所述第一路径向所述宿端发送,将发送顺序在后的第二报文,以及所述待发送的报文中发送顺序在所述第二报文后的报文通过所述第二路径向所述宿端发送;
如果不存在,则在所述第二路径上的各网络设备中确定出至少一个缓存设备;
通过所述第二路径向所述宿端发送所述待发送的报文,其中,所述待发送的报文在所述第二路径中传输的过程中,经过每个缓存设备,所述缓存设备用于对所述待发送的报文进行缓存,每个缓存设备对所述待发送的报文的缓存时长之和大于或等于所述时延差。
本申请实施例所示的方案,对于时延差大于0的情况,即第二路径的时延小于第一路径时延。可以先判断待发送的报文中,在当前时刻之后的预设时长内是否有发送时间间隔大于时延差的相邻两个报文,如果有的话,则将这两个报文中发送顺序在前的第一报文,以及待发送的报文中发送顺序在第一报文之前的报文通过第一路径向宿端发送,将发送顺序在后的第二报文,以及待发送的报文中发送顺序在第二报文后的报文通过第二路径向所述宿端发送。这样,可以利用报文之间的发送时间间隔来抵消第一路径和第二路径之间的时延差,同样不会出现报文乱序的情况。需要说明的是,为了不使第一路径发送过多的报文,该预设时长通常可以设置的比较小。
另外,如果未找到满足上述要求的相邻两报文,则可以在第二路径中确定出至少一个网络设备作为缓存设备,对待发送的报文进行缓存,各缓存设备对报文的缓存时长之和大于等于上述时延差,则可以抵消时延差的影响,避免了报文乱序的发生。
在一种可能的实现方式中,所述如果不存在,则在所述第二路径上的各网络设备中确定出至少一个缓存设备之后,所述方法还包括:
在所述待发送的报文中的第一个报文的预设字段,写入所述至少一个缓存设备中的每个缓存设备的标识信息和对应的缓存时长。
本申请实施例所示的方案,为了使第二路径中被确定为缓存设备的网络设备知道自己需要对报文进行缓存,则有在待发送的报文中的第一个报文中添加缓存设备的标识信息和对应的缓存时长。网络设备接收到报文后,先判断其中的标识信息是否和自身的标识信息匹配,如果匹配,则按照相应的缓存时长对报文进行缓存,如果不匹配,则直接转发给下一网络设备。
在一种可能的实现方式中,所述方法还包括:
按照预设周期获取与宿端之间各路径上的网络设备的缓存能力信息,并将每个网络设备的标识信息和缓存能力信息对应存储,其中,所述每个网络设备的缓存能力信息用于指示所述网络设备对报文的最大缓存时长或缓存时长范围。
本申请实施例所示的方案,源端可以预先获知各路径中网络设备的缓存能力,以便后续确定缓存设备,以及分配缓存时间。
第二方面、提供了一种数据传输的装置,其特征在于,所述装置包括:
检测模块,用于检测与宿端之间各路径的时延;
确定模块,用于在确定当前传输报文的第一路径为拥塞路径时,确定待使用的第二路径;
计算模块,用于基于所述第一路径的时延和所述第二路径的时延,确定所述第一路径与所述第二路径之间的时延差;
发送模块,用于基于所述时延差,通过所述第二路径向所述宿端发送待发送的报文。
在一种可能的实现方式中,所述计算模块,用于:
将所述第一路径的时延减去所述第二路径的时延,得到所述第一路径与所述第二路径之间的时延差。
在一种可能的实现方式中,所述发送模块,用于:
如果所述时延差小于0,则将所述待发送的报文通过所述第二路径向所述宿端发送。
在一种可能的实现方式中,所述发送模块,用于:
如果所述时延差大于0,则在所述待发送的报文中,确定是否存在发送时间在当前时间点后的预设时长内,且发送时间间隔大于所述时延差的相邻两个报文;
如果存在,则将所述发送时间间隔大于所述时延差的相邻两个报文中发送顺序在前的第一报文,以及所述待发送的报文中发送顺序在所述第一报文之前的报文通过所述第一路径向所述宿端发送,将发送顺序在后的第二报文,以及所述待发送的报文中发送顺序在所述第二报文后的报文通过所述第二路径向所述宿端发送;
如果不存在,则在所述第二路径上的各网络设备中确定出至少一个缓存设备;
通过所述第二路径向所述宿端发送所述待发送的报文,其中,所述待发送的报文在所述第二路径中传输的过程中,经过每个缓存设备,所述缓存设备用于对所述待发送的报文进行缓存,每个缓存设备对所述待发送的报文的缓存时长之和大于或等于所述时延差。
在一种可能的实现方式中,所述装置还包括:
写入模块,用于在所述待发送的报文中的第一个报文的预设字段,写入所述至少一个缓存设备中的每个缓存设备的标识信息和对应的缓存时长。
在一种可能的实现方式中,所述装置还包括:
存储模块,用于按照预设周期获取与宿端之间各路径上的网络设备的缓存能力信息,并将每个网络设备的标识信息和缓存能力信息对应存储,其中,所述每个网络设备的缓存能力信息用于指示所述网络设备对报文的最大缓存时长或缓存时长范围。
第三方面、提供了一种源端,其特征在于,所述源端包括处理器和存储器;
所述存储器存储有一个或多个程序,所述一个或多个程序被配置成由所述处理器执行,用于实现如上述第一方面所述的方法。
第四方面、提供了一种计算机可读存储介质,其特征在于,包括指令,当所述计算机可读存储介质在源端上运行时,使得所述源端执行如上第一方面所述的方法。
第五方面、提供了一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在源端上运行时,使得所述源端执行所述如上第一方面所述的方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例中,源端可以检测与宿端之间各路径的时延,在判断当前传输报文的路径为拥塞路径后,确定出第二路径。并且,根据检测到的当前路径的时延和第二路径的时延,可以得出二者之间的时延差。最后,在使用第二路径发送报文时,是根据确定出的时延差发送的。这样,在使用第二路径发送报文时,将时延差考虑在内,可以有效避免由于时延差造成的报文乱序。
附图说明
图1是本申请实施例提供的一种源端的结构示意图;
图2是本申请实施例提供的一种数据传输的方法流程图;
图3是本申请实施例提供的一种用于传输报文的路径的示意图;
图4是本申请实施例提供的一种数据传输的装置结构示意图。
具体实施方式
本申请实施例中提供的数据传输的方法可以应用于发送报文的网络设备中,该网络设备可以称为源网络设备,也可以称为源端,本申请实施例中统一称为源端。本申请实施例可以应用于如下场景。源端在向宿端发送报文的过程中,在发现当前的路径拥塞时,可以找一条非拥塞路径发送报文,此时,便可以通过本申请实施例提供的方法,实现在避免报文乱序的情况下,通过非拥塞路径转发报文。
上述源端可以为路由器。如图1所示,为一种源端的结构示意图。源端100可以包括处理器110,与存储器120。处理器110可以是中央处理器(central processing unit,CPU)。处理器110可以是指一个处理器,也可以包括多个处理器。存储器120可以包括易失性存储器,例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器,例如只读存储器(Read-Only Memory,ROM),快闪存储器等;存储器还可以包括上述种类的存储器的组合。存储器120可以是指一个存储器,也可以包括多个存储器。存储器120中存储有至少一条指令,所述至少一条指令由所述处理器110加载并执行以实现本申请实施例提供的数据传输的方法。
如图2所示为本申请实施例提供的一种数据传输的方法,该方法可以由源端实现,该方法的处理流程可以包括如下步骤。
步骤201、检测与宿端之间各路径的时延。
在实施中,源端可以按照预设测量周期通过与宿端之间的各路径向宿端发送测量报文,该预设测量周期可以由技术人员根据实际情况进行设置,如3毫秒(ms)。通过每条路径发送的测量报文中可以携带有测量报文的发送时间,宿端接收到测量报文时,可以获取接收时间。宿端在接收到测量报文后,可以通过发送测量报文的路径,向源端返回相应的响应报文,在该响应报文中可以携带有相应测量报文的接收时间。源端接收到响应报文后,获取到响应报文中携带的接收时间,并将该接收时间减去相应的测量报文的发送时间,即可以得到该路径的时延。
步骤202、在确定当前传输报文的第一路径为拥塞路径时,确定待使用的第二路径。
在实施中,每条路径可以有一个标准时延,对于当前传输报文的第一路径,如果在一个预设周期内,检测该第一路径的时延大于其标准时延,那么,则认为该第一路径为拥塞路径。需要对该第一路径的负载进行分担,源端可以基于与宿端的其余路径的实际情况,来确定待使用的第二路径。例如,源端同样可以根据其余各路径各自的标准时延和检测到的时延,来判断路径是否拥塞,在不拥塞的路径中选择检测的时延最小的路径作为待使用的第二路径。
步骤203、基于第一路径的时延和所述第二路径的时延,确定第一路径与第二路径之间的时延差。
在实施中,在确定出第二路径后,可以基于上述第一路径的时延和该第二路径的时延,确定第一路径与第二路径之间的时延差。具体的,可以为将第一路径的时延减去第二路径的时延,得到第一路径与第二路径之间的时延差。
另外,在上述步骤201中宿端在向源端返回的响应报文中还可以携带有接收到测量报文的丢包信息,以及乱序信息。在宿端可以存储有标准的测量报文,在接收到源端发送的测量报文后,可以将该接收到的测量报文和存储的标准的测量报文进行比较,计算出丢包率、以及乱序报文数量,该丢包率即为上述丢包信息,乱序报文数量即为上述乱序信息。当然,除了上述丢包信息和乱序信息外,还可以在返回的响应报文中携带有其他可以反映接收到的测量报文的完整性的信息。源端在接到响应报文后,可以获取到其中携带的丢包率和乱序报文数量,如果大于各自的预设数值,则可以对上述计算出的时延差进行调整,在计算出的时延差的基础上加上一个调整值,该调整值大于0。则后续步骤中的时延差为该调整后的时延差。当然,如果丢包率和乱序报文数量均小于各自的预设数值,则可以不对计算出的时延差进行调整。
步骤204、基于上述时延差,通过第二路径向宿端发送待发送的报文。
其中,待发送的报文可以为某一业务的报文流,在该报文流中的报文的目的地相同,均为上述宿端。
在实施中,在根据时延差,通过第二路径向宿端发送待发送的报文时,可以有如下几种情况。
情况一、如果上述时延差小于0,则将待发送的报文通过上述第二路径向所述宿端发送。
在时延差小于0时,即第二路径的时延要大于第一路径的时延,那么,此时将路径切换为第二路径发送报文,后续通过第二路径发送的报文自然会在之前通过第一路径发送的报文之后达到宿端。
情况二、如果上述时延差大于0,则在待发送的报文中,确定是否存在发送时间在当前时间点后的预设时长内,且发送时间间隔大于上述时延差的相邻两个报文。如果存在,则将发送时间间隔大于上述时延差的相邻两报文中发送顺序在前的第一报文,以及待发送的报文中发送顺序在第一报文之前的报文通过第一路径向宿端发送,将发送顺序在后的第二报文,以及待发送的报文中发送顺序在第二报文后的报文通过第二路径向宿端发送。
情况三、如果上述时延差大于0,而且不存在发送时间在当前时间点后的预设时长内,且发送时间间隔大于上述时延差的相邻两个报文。则在第二路径上的各网络设备中确定出至少一个缓存设备;将待发送的报文发送到至少一个缓存设备进行缓存,其中,每个缓存设备中对待发送的报文的缓存时长之和等于时延差。
在实施中,源端可以每过预设周期进行一次路径探测,该预设周期可以为上述预设测量周期的N倍,N可以为100,即每过N各预设测量周期进行一次路径探测。路径探测可以使源端获取到各中间节点的网络设备的缓存能力以及宿端的缓存能力,并且还可以确定出路径状态,即路径为有效路径还是无效路径,有效路径即为可以进行正常数据传输的路径,无效路径即为由于路径中的链路故障或者中间节点的网络设备故障等原因造成不能正常传输数据的路径。另外,路径中各中间节点的网络设备的缓存能力和宿端的缓存能力还可以由技术人员预先配置在源端中,由源端进行存储管理。下面以源端对与宿端之间任一路径进行路径探测以获取该路径上各网络设备的缓存能力的过程进行说明。
如图3所示,源端为R1,宿端为R4,R1和R4之间有两条路径,分别为R1-R2-R3-R4,和R1-R5-R6-R7-R4,以路径R1-R2-R3-R4为例进行说明。R1发送探测报文到R2,R2接收到探测报文后,将R2的缓存能力信息A以及R2的标识信息添加到该探测报文中,并将添加后的探测报文转发给R3。R3接收到R2发送的探测报文后,将R3的缓存能力信息B以及R3的标识信息添加到该探测报文中,并将添加后的探测报文转发给R4。R4接收到R3发送的探测报文后,将R4的缓存能力信息C以及R4的标识信息添加到该探测报文中,并对该探测报文重新封装,返回给R1。这样,R1便可以获取到R2、R3和R4的缓存能力信息,并将每个网络设备的缓存能力和标识信息进行对应存储,该标识信息可以为网络设备的路由标识(router Identitydocument,router-ID),该router-ID可以用来唯一标识一个网络设备。如下表1为网络设备的标识信息和缓存能力信息的对应关系表。
表1
网络设备的标识信息 | 缓存能力信息 |
R2 | A |
R3 | B |
R4 | C |
上述缓存能力信息可以为各网络设备可提供的最大缓存时长,也可以为缓存能力等级。如下表1所示为一种缓存能力等级表。
表2
缓存能力等级 | 缓存时长(ms) |
8 | 80 |
7 | 70 |
6 | 60 |
5 | 50 |
4 | 40 |
3 | 30 |
2 | 20 |
1 | 10 |
0 | 0(无缓存能力) |
如上表2中将网络设备的缓存能力分为8个等级,第0级为无缓存能力,第1级为可提供的缓存时长在0到10ms之间,第二级为提供的缓存时长在10ms到20ms之间,以此类推。在源端可以存储有该缓存能力等级表,在获取到某网络设备的缓存能力等级后,便可以通过查询该能力等级表,确定出该网络设备可提供的缓存时长范围。
源端在确定缓存设备时,可以优先判断自身的缓存能力是否可以达到缓存要求,即源端可以提供的缓存时长是否大于上述时延差,如果大于,则认为缓存能力达到了缓存要求,如果小于,则认为缓存能力未达到缓存要求。如果源端判断自身的缓存能力可以达到缓存要求,则由源端作为缓存设备对待发送的报文进行缓存,当缓存时长达到上述时延差时,将待发送的报文通过第二路径发送给宿端。
如果源端判断自身的缓存能力可以达到缓存要求,源端可以查询本地存储的第二路径的各网络设备的缓存能力信息。在各网络节点中确定出一个缓存能力达到缓存要求的网络设备作为缓存设备。如果存在一个缓存能力达到缓存要求的网络设备,则将其确定为缓存设备,源端则在待发送的报文中的第一个报文的预设字段中写入该缓存设备的标识信息和该缓存设备需要对报文提供的缓存时长。之后,源端将待发送的报文通过第二路径向宿端发送,第二路径中的每个网络设备在接收到该报文后可以判断报文中携带的标识信息和自身的标识信息是否匹配,如果匹配,则由自身对该报文进行缓存,缓存到达报文中携带的缓存时长后,将其转发到下一网络设备。如果不匹配,则可以直接将其转发到下一网络设备。
如果源端判断在第二路径中的各网络设备的缓存能力均未达到缓存要求,则可以在第二路径的网络设备中确定出多个网络设备,作为缓存设备,对报文进行多级缓存。在选取缓存设备时,可以根据缓存能力由高到低进行选取。对于缓存能力信息为缓存能力等级的情况,选取缓存设备时,可以先从缓存能力等级最高的网络设备中选取,如果缓存能力等级最高的网络设备所能提供的缓存时长总和还达不到上述时延差,则继续从缓存等级第二高的网络设备中选取,以此类推。对于缓存能力信息为网络设备可提供的最大缓存时长的情况,优先最大缓存时长由到低依次选取缓存设备,各缓存设备可提供的最大缓存时长之和大于等于上述延时差即可。在确定出的缓存设备中,缓存能力高的缓存设备对应的缓存时长可以为其可提供的最大缓存时长,缓存能力最低的缓存设备提供的缓存时长可以为上述时延差与其余缓存设备所提供的缓存时长之和。在确定出多个缓存设备,及每个缓存设备需要提供的缓存时长后,将每个缓存设备的标识信息和对应的缓存时长,写入待发送的报文中的第一个报文的预设字段中。再通过第二路径对待发送的报文进行发送,每个网络设备接收到报文后,先判断报文中携带的标识信息中是否有和自身的标识信息相匹配的,如果有,则确定该标识信息对应的缓存时长,并由自身对该报文进行缓存,缓存到达查询到的缓存时长后,将其转发到下一网络设备。如果不匹配,则可以直接将其转发到下一网络设备。如果不匹配,则可以直接将其转发到下一网络设备。
网络设备对报文进行缓存的方法有多种,以下列举其中两种进行说明:
方法一、CPU控制缓存队列开闭。
网络设备接收到上述待发送的报文,并确定需要对待发送的报文进行缓存后,则寻找空闲的缓存队列,对待发送的报文进行缓存。每个缓存队列可缓存报文数有限,则为了避免待发送的报文中后到该网络设备的报文,先于先到该网络设备的报文发出,则对于待发送的报文中的第一个报文所在的缓存队列中的报文赋予高优先级,其余缓存队列中的报文则为普通优先级。CPU通过软件计时,当达到需要提供的缓存时长后,打开缓存队列,具有高优先级的报文采用优先级队列(Priority Queuing,PQ)绝对调度的方式,以该网络设备的端口线速发出,待具有高优先级的报文全部发出后,普通优先级的报文再随后发出。在报文发出后缓存队列关闭,恢复空闲状态。
方法二、流量管理(Traffic Manager,TM)循环缓存队列。
由TM提供N个循环开闭的缓存队列,缓存队列按照周期T切换开闭状态,每个缓存队列的周期相同,但相位不同,相邻缓存队列相差一个相位,如10ms。网络设备接收到上述待发送的报文,并确定需要对待发送的报文进行缓存后,可以找出当前处于关闭状态(空闲)的缓存队列。然后,对于每个处于关闭状态的缓存队列,确定该缓存队列从当前时刻到开放时刻的时间间隔。在其中选取时间间隔最小的缓存队列对上述待发送的报文进行缓存,对于待发送的报文中的第一个报文所在的缓存队列中的报文赋予高优先级,其余缓存队列中的报文则为普通优先级。当缓存队列到达开放时间后,缓存队列打开,具有高优先级的报文采用绝对调度的方式,以该网络设备的端口线发出。待具有高优先级的报文全部发出后,普通优先级的报文再随后发出。
另外,需要说明的是,本申请实施例可以适用于传输控制协议(TransmissionControl Protocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)等多种协议。本申请实施例对于该方法应用于何种协议不做限定。
通过本申请实施例提供的数据传输的方法,源端可以检测与宿端之间各路径的时延,在判断当前传输报文的路径为拥塞路径后,确定出第二路径。并且,根据检测到的当前路径的时延和第二路径的时延,可以得出二者之间的时延差。最后,在使用第二路径发送报文时,是根据确定出的时延差发送的。这样,在使用第二路径发送报文时,将时延差考虑在内,可以有效避免由于时延差造成的报文乱序。
基于相同的技术构思,本申请实施例还提供了一种数据传输的装置,如图4所示,该装置包括:检测模块410,确定模块420\计算模块430和发送模块440,其中:
检测模块410,用于检测与宿端之间各路径的时延,具体可以实现上述步骤201中的检测功能,以及其他隐含步骤;
确定模块420,用于在确定当前传输报文的第一路径为拥塞路径时,确定待使用的第二路径,具体可以实现上述步骤202中的确定功能,以及其他隐含步骤;
计算模块430,用于基于所述第一路径的时延和所述第二路径的时延,确定所述第一路径与所述第二路径之间的时延差,具体可以实现上述步骤203中的计算时延差功能,以及其他隐含步骤;
发送模块440,用于基于所述时延差,通过所述第二路径向所述宿端发送待发送的报文,具体可以实现上述步骤404中的发送功能,以及其他隐含步骤。
在一种可能的实现方式中,所述计算模块430,用于:
将所述第一路径的时延减去所述第二路径的时延,得到所述第一路径与所述第二路径之间的时延差。
在一种可能的实现方式中,所述发送模块440,用于:
如果所述时延差小于0,则将所述待发送的报文通过所述第二路径向所述宿端发送。
在一种可能的实现方式中,所述发送模块440,用于:
如果所述时延差大于0,则在所述待发送的报文中,确定是否存在发送时间在当前时间点后的预设时长内,且发送时间间隔大于所述时延差的相邻两个报文;
如果存在,则将所述发送时间间隔大于所述时延差的相邻两个报文中发送顺序在前的第一报文,以及所述待发送的报文中发送顺序在所述第一报文之前的报文通过所述第一路径向所述宿端发送,将发送顺序在后的第二报文,以及所述待发送的报文中发送顺序在所述第二报文后的报文通过所述第二路径向所述宿端发送;
如果不存在,则在所述第二路径上的各网络设备中确定出至少一个缓存设备;
通过所述第二路径向所述宿端发送所述待发送的报文,其中,所述待发送的报文在所述第二路径中传输的过程中,经过每个缓存设备,所述缓存设备用于对所述待发送的报文进行缓存,每个缓存设备对所述待发送的报文的缓存时长之和大于或等于所述时延差。
在一种可能的实现方式中,所述装置还包括:
写入模块,用于在所述待发送的报文中的第一个报文的预设字段,写入所述至少一个缓存设备中的每个缓存设备的标识信息和对应的缓存时长。
在一种可能的实现方式中,所述装置还包括:
存储模块,用于按照预设周期获取与宿端之间各路径上的网络设备的缓存能力信息,并将每个网络设备的标识信息和缓存能力信息对应存储,其中,所述每个网络设备的缓存能力信息用于指示所述网络设备对报文的最大缓存时长或缓存时长范围。
需要说明的是:上述实施例提供的数据传输的装置在传输数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将网络设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据传输的装置与数据传输的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在设备上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴光缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是设备能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(Digital Video Disk,DVD)等),或者半导体介质(如固态硬盘等)。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成下述实施例中资源领取方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种数据传输的方法,其特征在于,所述方法包括:
检测与宿端之间各路径的时延;
在确定当前传输报文的第一路径为拥塞路径时,确定待使用的第二路径;
基于所述第一路径的时延和所述第二路径的时延,确定所述第一路径与所述第二路径之间的时延差;
基于所述时延差,通过所述第二路径向所述宿端发送待发送的报文。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一路径的时延和所述第二路径的时延,确定所述第一路径与所述第二路径之间的时延差,包括:
将所述第一路径的时延减去所述第二路径的时延,得到所述第一路径与所述第二路径之间的时延差。
3.根据权利要求2所述的方法,其特征在于,所述基于所述时延差,通过所述第二路径向所述宿端发送待发送的报文,包括:
如果所述时延差小于0,则将所述待发送的报文通过所述第二路径向所述宿端发送。
4.根据权利要求2所述的方法,其特征在于,所述基于所述时延差,通过所述第二路径向所述宿端发送报文,包括:
如果所述时延差大于0,则在所述待发送的报文中,确定是否存在发送时间在当前时间点后的预设时长内,且发送时间间隔大于所述时延差的相邻两个报文;
如果存在,则将所述发送时间间隔大于所述时延差的相邻两个报文中发送顺序在前的第一报文,以及所述待发送的报文中发送顺序在所述第一报文之前的报文通过所述第一路径向所述宿端发送,将发送顺序在后的第二报文,以及所述待发送的报文中发送顺序在所述第二报文后的报文通过所述第二路径向所述宿端发送;
如果不存在,则在所述第二路径上的各网络设备中确定出至少一个缓存设备;
通过所述第二路径向所述宿端发送所述待发送的报文,其中,所述待发送的报文在所述第二路径中传输的过程中,经过每个缓存设备,所述缓存设备用于对所述待发送的报文进行缓存,每个缓存设备对所述待发送的报文的缓存时长之和大于或等于所述时延差。
5.根据权利要求4所述的方法,其特征在于,所述如果不存在,则在所述第二路径上的各网络设备中确定出至少一个缓存设备之后,所述方法还包括:
在所述待发送的报文中的第一个报文的预设字段,写入所述至少一个缓存设备中的每个缓存设备的标识信息和对应的缓存时长。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
按照预设周期获取与宿端之间各路径上的网络设备的缓存能力信息,并将每个网络设备的标识信息和缓存能力信息对应存储,其中,所述每个网络设备的缓存能力信息用于指示所述网络设备对报文的最大缓存时长或缓存时长范围。
7.一种数据传输的装置,其特征在于,所述装置包括:
检测模块,用于检测与宿端之间各路径的时延;
确定模块,用于在确定当前传输报文的第一路径为拥塞路径时,确定待使用的第二路径;
计算模块,用于基于所述第一路径的时延和所述第二路径的时延,确定所述第一路径与所述第二路径之间的时延差;
发送模块,用于基于所述时延差,通过所述第二路径向所述宿端发送待发送的报文。
8.根据权利要求7所述的装置,其特征在于,所述计算模块,用于:
将所述第一路径的时延减去所述第二路径的时延,得到所述第一路径与所述第二路径之间的时延差。
9.根据权利要求8所述的装置,其特征在于,所述发送模块,用于:
如果所述时延差小于0,则将所述待发送的报文通过所述第二路径向所述宿端发送。
10.根据权利要求8所述的装置,其特征在于,所述发送模块,用于:
如果所述时延差大于0,则在所述待发送的报文中,确定是否存在发送时间在当前时间点后的预设时长内,且发送时间间隔大于所述时延差的相邻两个报文;
如果存在,则将所述发送时间间隔大于所述时延差的相邻两个报文中发送顺序在前的第一报文,以及所述待发送的报文中发送顺序在所述第一报文之前的报文通过所述第一路径向所述宿端发送,将发送顺序在后的第二报文,以及所述待发送的报文中发送顺序在所述第二报文后的报文通过所述第二路径向所述宿端发送;
如果不存在,则在所述第二路径上的各网络设备中确定出至少一个缓存设备;
通过所述第二路径向所述宿端发送所述待发送的报文,其中,所述待发送的报文在所述第二路径中传输的过程中,经过每个缓存设备,所述缓存设备用于对所述待发送的报文进行缓存,每个缓存设备对所述待发送的报文的缓存时长之和大于或等于所述时延差。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
写入模块,用于在所述待发送的报文中的第一个报文的预设字段,写入所述至少一个缓存设备中的每个缓存设备的标识信息和对应的缓存时长。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
存储模块,用于按照预设周期获取与宿端之间各路径上的网络设备的缓存能力信息,并将每个网络设备的标识信息和缓存能力信息对应存储,其中,所述每个网络设备的缓存能力信息用于指示所述网络设备对报文的最大缓存时长或缓存时长范围。
13.一种源端,其特征在于,所述源端包括处理器和存储器;
所述存储器存储有一个或多个程序,所述一个或多个程序被配置成由所述处理器执行,用于实现如权利要求1-6中任一项权利要求所述的方法。
14.一种计算机可读存储介质,其特征在于,包括指令,当所述计算机可读存储介质在源端上运行时,使得所述源端执行所述权利要求1-6中任一项权利要求所述的方法。
15.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在源端上运行时,使得所述源端执行所述权利要求1-6中任一项权利要求所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911033612.XA CN112737940B (zh) | 2019-10-28 | 2019-10-28 | 一种数据传输的方法和装置 |
PCT/CN2020/124128 WO2021083160A1 (zh) | 2019-10-28 | 2020-10-27 | 数据传输的方法和装置 |
EP20883583.5A EP4044525B1 (en) | 2019-10-28 | 2020-10-27 | Data transmission method and apparatus |
US17/729,163 US20220255873A1 (en) | 2019-10-28 | 2022-04-26 | Data transmission method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911033612.XA CN112737940B (zh) | 2019-10-28 | 2019-10-28 | 一种数据传输的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112737940A true CN112737940A (zh) | 2021-04-30 |
CN112737940B CN112737940B (zh) | 2023-12-08 |
Family
ID=75589364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911033612.XA Active CN112737940B (zh) | 2019-10-28 | 2019-10-28 | 一种数据传输的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220255873A1 (zh) |
EP (1) | EP4044525B1 (zh) |
CN (1) | CN112737940B (zh) |
WO (1) | WO2021083160A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113365089A (zh) * | 2021-05-31 | 2021-09-07 | 浙江大华技术股份有限公司 | 一种数据传输方法、装置、存储介质及电子装置 |
CN115086200A (zh) * | 2022-05-06 | 2022-09-20 | 北京达佳互联信息技术有限公司 | 丢包类型确定方法、装置、电子设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3716537A1 (de) * | 2019-03-25 | 2020-09-30 | Siemens Aktiengesellschaft | Verfahren zur datenkommunikation, netzwerkknoten, computerprogramm und computerlesbares medium |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895326A (zh) * | 2003-02-06 | 2010-11-24 | 松下电器产业株式会社 | 发送装置、基站装置、通信终端装置以及发送方法 |
CN104168212A (zh) * | 2014-08-08 | 2014-11-26 | 北京华为数字技术有限公司 | 发送报文的方法和装置 |
US20150188804A1 (en) * | 2013-12-31 | 2015-07-02 | Futurewei Technologies, Inc. | System and method for source routing with one or more delay segments |
CN107968748A (zh) * | 2016-10-20 | 2018-04-27 | 华为技术有限公司 | 一种多路径流量发送的方法及装置 |
CN108028800A (zh) * | 2015-09-29 | 2018-05-11 | 华为技术有限公司 | 使用分组间延迟和预补偿的源路由无损重路由中的分组失序预防 |
US10218629B1 (en) * | 2014-12-23 | 2019-02-26 | Juniper Networks, Inc. | Moving packet flows between network paths |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5777988A (en) * | 1996-04-17 | 1998-07-07 | Bell Communications Research, Inc. | System and method for equalizing delay in a dynamic packet switching network |
US9537741B2 (en) * | 2014-07-25 | 2017-01-03 | Telefonaktiebolaget L M Ericsson (Publ) | Data path performance measurement using test messages in a software defined network |
KR20160091118A (ko) * | 2015-01-23 | 2016-08-02 | 한국전자통신연구원 | 멀티 호밍 기반의 네트워크를 통한 패킷 전송 장치 및 방법 |
CN107483349A (zh) * | 2016-06-07 | 2017-12-15 | 华为技术有限公司 | 传输数据流的方法与设备 |
-
2019
- 2019-10-28 CN CN201911033612.XA patent/CN112737940B/zh active Active
-
2020
- 2020-10-27 WO PCT/CN2020/124128 patent/WO2021083160A1/zh unknown
- 2020-10-27 EP EP20883583.5A patent/EP4044525B1/en active Active
-
2022
- 2022-04-26 US US17/729,163 patent/US20220255873A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895326A (zh) * | 2003-02-06 | 2010-11-24 | 松下电器产业株式会社 | 发送装置、基站装置、通信终端装置以及发送方法 |
US20150188804A1 (en) * | 2013-12-31 | 2015-07-02 | Futurewei Technologies, Inc. | System and method for source routing with one or more delay segments |
CN104168212A (zh) * | 2014-08-08 | 2014-11-26 | 北京华为数字技术有限公司 | 发送报文的方法和装置 |
US10218629B1 (en) * | 2014-12-23 | 2019-02-26 | Juniper Networks, Inc. | Moving packet flows between network paths |
CN108028800A (zh) * | 2015-09-29 | 2018-05-11 | 华为技术有限公司 | 使用分组间延迟和预补偿的源路由无损重路由中的分组失序预防 |
CN107968748A (zh) * | 2016-10-20 | 2018-04-27 | 华为技术有限公司 | 一种多路径流量发送的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113365089A (zh) * | 2021-05-31 | 2021-09-07 | 浙江大华技术股份有限公司 | 一种数据传输方法、装置、存储介质及电子装置 |
CN115086200A (zh) * | 2022-05-06 | 2022-09-20 | 北京达佳互联信息技术有限公司 | 丢包类型确定方法、装置、电子设备及存储介质 |
CN115086200B (zh) * | 2022-05-06 | 2023-09-01 | 北京达佳互联信息技术有限公司 | 丢包类型确定方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220255873A1 (en) | 2022-08-11 |
EP4044525A1 (en) | 2022-08-17 |
EP4044525B1 (en) | 2024-09-25 |
CN112737940B (zh) | 2023-12-08 |
WO2021083160A1 (zh) | 2021-05-06 |
EP4044525A4 (en) | 2022-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10063488B2 (en) | Tracking queuing delay and performing related congestion control in information centric networking | |
KR100757872B1 (ko) | 네트워크에서의 혼잡 발생 예고 시스템 및 방법 | |
US9185047B2 (en) | Hierarchical profiled scheduling and shaping | |
US9705808B2 (en) | Flow aware buffer management for data center switches | |
KR100875739B1 (ko) | Ip 네트워크 시스템에서의 패킷 버퍼 관리 장치 및 방법 | |
CN108243116B (zh) | 一种流量控制方法及交换设备 | |
KR20130093812A (ko) | 컨텐츠 중심 네트워크에서 트래픽 전송량을 제어하기 위한 컨텐츠 라우터의 통신 방법 및 그 컨텐츠 라우터 | |
CN112737940B (zh) | 一种数据传输的方法和装置 | |
CN112104562B (zh) | 拥塞控制方法及装置、通信网络、计算机存储介质 | |
US7224670B2 (en) | Flow control in computer networks | |
CN108243117B (zh) | 一种流量监控方法、装置及电子设备 | |
CN108206787A (zh) | 一种拥塞避免方法和装置 | |
CN113783787B (zh) | 一种基于云边协同的非实时数据传输方法及装置 | |
KR20120019490A (ko) | 트래픽 부하를 관리하는 방법 | |
WO2013095664A1 (en) | Traffic control on an on-chip network | |
US10778568B2 (en) | Switch-enhanced short loop congestion notification for TCP | |
US20240064109A1 (en) | Method and system for dynamic quota-based congestion management | |
KR101458436B1 (ko) | 데이터 전송 방법 및 이를 적용한 주식 체결 시스템 | |
WO2022152230A1 (zh) | 信息流识别方法、网络芯片及网络设备 | |
JP2011035608A (ja) | エッジノード、ウィンドウサイズ制御方法およびプログラム | |
JP2014112779A (ja) | データ送信制御装置、データ送信制御方法、および、コンピュータ・プログラム | |
US20240259315A1 (en) | Method and system for granular dynamic quota-based congestion management | |
CN106559351B (zh) | 一种处理报文的方法、sdn控制器及网元 | |
JP2014147019A (ja) | 通信装置、通信方法及び通信プログラム | |
JP2005033240A (ja) | Lan伝送装置 |
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 |