CN113949482A - 数据传输方法、装置、转发节点以及计算机可读存储介质 - Google Patents
数据传输方法、装置、转发节点以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113949482A CN113949482A CN202010683013.9A CN202010683013A CN113949482A CN 113949482 A CN113949482 A CN 113949482A CN 202010683013 A CN202010683013 A CN 202010683013A CN 113949482 A CN113949482 A CN 113949482A
- Authority
- CN
- China
- Prior art keywords
- block
- sub
- target
- data block
- target identifier
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种数据传输方法、装置、转发节点以及计算机可读存储介质,属于数据传输技术领域。本方法通过转发节点将子块在传输时出现异常的第一数据块所占用的第一目标标识分配给第二数据块,从而可以避免第二数据块长时间等待分配空闲的目标标识,减少了第二数据块在转发节点的时长,提高了转发节点的数据转发效率。
Description
技术领域
本申请涉及数据传输技术领域,特别涉及一种数据传输方法、装置、转发节点以及计算机可读存储介质。
背景技术
随着网络技术的发展,越来越多的数据可以通过数据传输系统中的转发节点转发至终端,数据传输系统可以包括多个转发路径,每个转发路径可以包括多个转发节点,待传输的数据可以以数据块的形式,由转发路径上的各个转发节点进行传输。
目前,数据传输的过程为:对于包括多个子块的数据块,当转发节点接收到该数据块中的头子块时,该转发节点可以根据头子块携带的路由信息,确定用于转发该数据块的输出端口,若该输出端口中存在空闲的目标标识,则该转发节点将该目标标识分配给该数据块,并基于该目标标识发送该数据块中的各个子块,当该数据块中的各个子块均输出完成后,该目标标识恢复空闲;若该输出端口中各个目标标识均被占用,则该转发节点暂时不能为该数据块分配目标标识,需要等出现空闲的目标标识。
在上述数据传输过程中,如果该转发节点之前的转发节点出现故障,则导致之前的转发节点向该转发节点提供该数据块的子块的速度非常慢或者后续子块断流,那么,该数据块则会长时间占用的该转发节点为其分配的目标标识,导致输出端口上可分配的目标标识减少,相应地,其他数据块在该转发节点等待空闲目标标识的时间增加,降低了转发节点的数据转发效率。
发明内容
本申请实施例提供了一种数据传输方法、装置、转发节点以及计算机可读存储介质,能够提高转发节点的数据转发效率。该技术方案如下:
第一方面,提供了一种数据传输方法,应用于第一转发节点,所述方法包括:
从所述第一转发节点的输出端口的多个目标标识中,确定第一目标标识;接收第二数据块的头子块;响应于所述多个目标标识均被占用,将所述第一目标标识分配给所述第二数据块;对于携带第二目标标识的所述第二数据块的任一子块,将所述任一子块携带的所述第二目标标识修改为所述第一目标标识;通过所述输出端口发送修改后的所述任一子块;
其中,所述第一目标标识已经分配给第一数据块,所述第一数据块的子块在传输时出现异常,所述头子块携带第二目标标识,所述第二目标标识为发送所述头子块的转发节点为所述第二数据块所分配的目标标识。
该方法通过转发节点将子块在传输时出现异常的第一数据块所占用的第一目标标识分配给第二数据块,从而可以避免第二数据块长时间等待分配空闲的目标标识,减少了第二数据块在转发节点的时长,提高了转发节点的数据转发效率。
在一种可能的实现方式,所述从所述第一转发节点的输出端口的多个目标标识中,确定第一目标标识包括:
对于所述多个目标标识中分配给第一数据块的任一目标标识,若接收到所述第一数据块的第一子块后,在第一时长内未接收到所述第一数据块中所述第一子块的下一个子块,则将所述目标标识确定为所述第一目标标识,所述第一子块为所述第一数据块中除尾子块以外的任一子块。
在一种可能的实现方式,所述将所述第一目标标识分配给所述第二数据块包括:
删除所述第一数据块与所述第一目标标识之间的映射关系;建立所述第二数据块与所述第一目标标识之间的映射关系。
基于上述可能的实现方式,通过删除所述第一数据块与所述第一目标标识之间的映射关系,释放被第一数据块占用的第一目标标识,通过建立所述第二数据块与所述第一目标标识之间的映射关系,将第一目标标识分配给的第二数据块,从而可以减少第二数据块等待空闲目标标识的时长。
在一种可能的实现方式,所述确定第一目标标识之后,所述方法还包括:
将所述第一目标标识的状态由已占用状态修改为目标状态,所述已占用状态用于指示目标标识已被正常数据块占用,所述目标状态用于指示目标标识已被异常数据块占用。
在一种可能的实现方式,所述将所述第一目标标识分配给所述第二数据块之后,所述方法还包括:
将所述第一目标标识的状态由所述目标状态修改为所述已占用状态。
在一种可能的实现方式,所述将所述第一目标标识的状态由已占用状态修改为目标状态之后,所述方法还包括:
响应于在第二时长内未接收到所述第一数据块中所述第一子块的下一个子块,则将所述第一目标标识的状态由所述目标状态修改为空闲状态,所述空闲状态用于指示目标标识未被数据块占用。
在一种可能的实现方式,所述通过所述输出端口发送修改后的所述任一子块之前,所述方法还包括:
通过所述输出端口发送目标子块,所述目标子块用于指示删除所述第一数据块的子块。
在一种可能的实现方式,所述目标子块包括删除标识,所述删除标识用于指示删除所述第一数据块的子块。
第二方面,提供了一种数据传输方法,应用于第二转发节点,所述方法包括:
从第一转发节点接收目标子块,所述目标子块用于指示删除第一数据块的子块;基于所述目标子块携带的所述第一目标标识,确定所述第二转发节点的输入端口的目标输入队列;删除所述目标子块以及所述目标输入队列中存储的所述第一数据块的子块;
其中,所述目标子块携带所述第一转发节点为所述第一数据块分配的第一目标标识,所述目标输入队列为与所述第一目标标识对应的输入队列。
在一种可能的实现方式,所述删除所述目标输入队列中存储的所述第一数据块的子块包括:
从所述目标输入队列已存储的子块中,查询所述第一数据块的头子块;
从所述目标输入队列中删除所述头子块以及位于所述头子块之后的子块。
在一种可能的实现方式,所述从所述目标输入队列已存储的子块中,查询所述第一数据块的头子块包括:
在所述目标输入队列中查询头子块;
响应于所述目标输入队列中存在至少一个头子块,将所述至少一个头子块中最后一个头子块,确定为所述第一数据块的头子块。
在一种可能的实现方式,所述在所述目标输入队列中查询头子块之后,所述方法还包括:
响应于所述目标输入队列中不存在头子块,确定所述第二转发节点为所述第一数据块分配的第三目标标识;将所述目标子块携带的所述第一目标标识修改为所述第三目标标识;通过所述第三目标标识所属的输出端口发送修改后的所述目标子块。
在一种可能的实现方式,所述将所述目标子块携带的所述第一目标标识修改为所述第三目标标识之后,所述方法还包括:
删除所述第一数据块与所述第三目标标识之间的映射关系;将所述第三目标标识的状态由已占用状态修改空闲状态,所述已占用状态用于指示目标标识已被一个数据块占用且不能被其他数据块占用,所述空闲状态用于指示目标标识未被数据块占用。
第三方面,提供了一种数据传输装置,用于执行上述数据传输方法。具体地,该数据传输装置包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的数据传输方法的功能模块。
第四方面,提供了一种数据传输装置,用于执行上述数据传输方法。具体地,该数据传输装置包括用于执行上述第二方面或上述第二方面的任一种可选方式提供的数据传输方法的功能模块。
第五方面,提供一种转发节点,该转发节点包括处理器和存储器,该存储器中存储有至少一条指令,该指令由该处理器加载并执行以实现如上述数据传输方法所执行的操作。
第六方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器加载并执行以实现如上述数据传输方法所执行的操作。
第七方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面或者第二方面的各种可选实现方式中提供的方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据块的结构示意图;
图2是本申请实施例提供的一种数据传输系统的示意图;
图3是本申请实施例提供的一种目标子块的传输示意图;
图4是本申请实施例提供的一种转发节点的结构示意图;
图5是本申请实施例提供的一种数据传输方法的流程图;
图6是本申请实施例提供的一种子块传输的示意图;
图7是本申请实施例提供的一种抢占目标标识的示意图;
图8是本申请实施例提供的一种分配目标标识的流程图;
图9是本申请实施例提供的一种目标子块传输的示意图;
图10是本申请实施例提供的一种目标子块传输的示意图;
图11是本申请实施例提供的一种数据传输装置的结构示意图;
图12是本申请实施例提供的一种数据传输装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了便于理解本申请所提供的实施例,对本申请所涉及的部分名词进行如下解释:
目标标识:转发节点的每个输出端口可以具有多个目标标识,每个目标标识对应该输出端口的部分传输资源,目标标识可以是身份标识(identity,ID)。例如,一个输出端口的带宽为10Gbps,该输出端口具有10个目标标识,分别为ID1-10,1个目标标识对应1Gbps的带宽,转发节点可以将1个目标标识分配给一个数据块,该转发节点的输出端口可以使用1Gbps的带宽发送该数据块中的各个子块。在一种可能的实现方式中,一个输出端口还具有多个输出队列,每个目标标识用于指示一个输出队列,该转发节点为数据块分配完目标标识后,可以将该数据块的各个子块存储在对应的输出队列,等待输出端口转发。
数据块:一个数据块可以包括多个子块,该多个子块可以分为头(head)子块、身体(body)子块以及尾(tail)子块,其中,头子块为该数据块的首个子块,尾子块为该数据块的最后一个子块,身体子块也被称为中间子块,为数据块中除头子块和尾子块以外的子块。例如图1所示的本申请实施例提供的一种数据块的结构示意图,图1中的数据块包括1个头子块、1个尾子块以及多个身体子块,其中,头子块包括路由信息、转发节点的输出端口为该数据块分配的目标标识、负载(payload)以及校验数据,尾子块或身体子块包括转发节点的输出端口为该数据块分配的目标标识、负载(payload)以及校验数据。其中,路由信息用于指示用于传输该数据块的转发路径上的转发节点;负载也即是该数据块所携带的应用数据,该应用数据可以是任一类型的数据,例如音频数据、文本数据等;校验数据用于进行子块校验。需要说明的是,对于任一子块,该子块还携带有该子块的子块标识,其中,该子块标识用于指示该子块的属性,当该子块标识为头子块标识时,该子块为一个头子块;当该子块标识为中间子块标识时,该子块为一个中间子块;当该子块标识为尾子块标识时,该子块为一个尾子块;当该子块标识为删除标识时,该子块为目标子块,其中,目标子块为一个特殊的尾子块,用于指示删除出现异常传输的数据块。
异常数据块:转发节点接收到一个数据块的子块后,在第一时长内未接收到该子块的下一个子块,则该数据块为异常数据块,也即是异常数据块的子块在传输时出现异常。或者,转发节点发送完一个数据块的子块后,若经过第一时长仍未检测到该子块的下一个子块,也即是下一个子块还未达到该转发节点,则该数据块为异常数据块。
图2是本申请实施例提供的一种数据传输系统的示意图,参见图2,该数据传输系统200包括多个转发节点201(例如转发节点201a和转发节点201b)。对于多个转发节点201中的任一转发节点201,该转发节点201包括多个输入端口和多个输出端口。每个输入端口具有多个输入队列,每个输入队列用于缓存其他设备向该转发节点201发送的数据块的子块,其中,其他设备可以是该数据传输系统200中除该转发节点201以外的任一设备,也可以是该数据传输系统200以外的任一设备。每个输出端口具有多个目标标识,在一种可能的实现方式中,每个输出端口还具有多个输出队列,每个输出队列用于缓存从输入队列输出的子块,每个输出队列用一个目标标识来表示。例如,图2中的转发节点201a的输出端口A具有3个输出队列。
多个转发节点201通过物理链路进行连接,对于具有连接关系的2个转发节点201,这2个转发节点201中的一个转发节点201a作为数据块的输出端,另一个转发节点201b作为数据块的输入端,对于用于连接这2个转发节点的输出端口和输入端口,该输出端口中的多个目标标识分别与该输入端口的多个输入队列一一对应。例如,图2中的转发节点201b的输入端口B与该输出端口A连接,且该输入端口B的3个输入队列与输出端口A的3个输出队列的目标标识一一对应,以便输入端口B在接收到输出端口A输出的子块时,转发节点201b对接收到的子块进行解析,根据解析出的该子块携带的目标标识,可以将该子块存储该目标标识所对应的输入队列。
在一种可能的实现方式中,转发节点201转发子块的过程为:当该转发节点201的输入端口接收到任一子块后,该转发节点201对该子块进行解析,得到该子块携带的目标标识以及子块标识;若该子块标识为删除标识,则该子块为目标子块,当目标标识所对应的输入队列中存储有头子块时,则该转发节点201将该输入队列中最后一个头子块作为异常数据块的头子块,将该输入队列中位于该头子块之后的子块作为异常数据块的中间子块,并将该目标子块作为异常数据块的尾子块,并删除该异常数据块的头子块、中间子块以及尾子块;若该子块标识不是删除标识,则该子块不是目标子块,该转发节点201将该子块缓存在该目标标识所对应的输入队列;当该转发节点201从一个输入队列获取到任一数据块的头子块时,该转发节点201为该数据块分配一个目标标识,并将该数据块中各个子块携带的目标标识修改成为该数据块分配的目标标识,该转发节点201的输出端口调度修改后的子块输出。例如图3所示的本申请实施例提供的一种目标子块的传输示意图,转发节点从物理链路的输出端口(也即是转发节点的输入端口)接收到子块,转发节点通过对该子块进行解析,得到该子块携带的目标标识以及删除标识,该转发节点对该目标子块的进行处理,删除该目标标识对应的输入队列内存储的异常数据块的子块,输入队列内存储的正常子块等待分配目标标识以及转发。
在一种可能的实现方式中,转发节点201为数据块分配目标标识的过程是:当输入队列获取到任一数据块的头子块时,该转发节点201根据该头子块携带路由信息查询全局路由转发表,确定用于输出该数据块的输出端口;若输出端口中的各个目标标识均被占用,则该转发节点201将被异常数据块占用的目标标识分配该新数据块,并取消为异常数据块分配的目标标识;若该输出端口中存在空闲的目标标识,则该转发节点201优先将空闲的目标标识分配给该数据块。在一种可能的实现方式中,当该转发节点201取消为异常数据块分配的目标标识时,该转发节点201生成一个目标子块,并将该目标子块作为异常数据块的尾子块输出,以指示接收到该目标子块的转发节点可以删除异常数据块,从而可以避免异常数据块占用数据传输系统中的传输资源。
在一种可能的实现方式中,转发节点201确定异常数据块的过程是:当该转发节点201将一个子块输出后,经过第一时长检测该转发节点201中是否存在该子块的下一个子块,若不存在,则将该子块的下一个子块视为异常子块,将该异常子块所属的数据块视为异常数据块,若存在,则该子块为正常子块,该子块所属的数据块为正常数据块。
在一种可能的实现方式中,转发节点201为一个数据块分配完目标标识后,输出该数据块的子块的过程是:当为该数据块分配完一个目标标识后,该转发节点201将该数据块的子块携带的目标标识修改为该转发节点201为该数据块分配的目标标识,等待该输出端口调度修改后的子块输出。在一种可能的实现方式中,当输出端口还具有多个输出队列,且每个输出队列对应一个目标标识时,该转发节点201将修改后的子块存储在对应的输出队列,由输出端口分别从每个输出队列调度出一个子块并输出;当输出端口不具有输出队列时,则该转发节点无需将修改后的子块存储进对应的输出队列,输出端口每次调度出携带不同的目标标识的多个修改后的子块,并输出。
图4是本申请实施例提供的一种转发节点的结构示意图,转发节点400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的存储器401以及至少一个控制器402,其中,该存储器401中存储有至少一条指令,该至少一条指令由该控制器402加载并执行以实现下述各个方法实施例提供的方法中转发节点所执行的步骤。当然,该转发节点400还可以具有有线或无线网络接口、键盘以及输入输出端口等部件,以便进行输入输出,该转发节点400还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成下述实施例中的数据存储方法。例如,该计算机可读存储介质可以是只读存储器(read-only memory,ROM)、随机存取存储器(randomaccess memory,RAM)、只读光盘(compact disc read-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。
转发节点将异常数据块占用的目标标识分配给新数据块,将新数据块的子块所携带的目标标识修改为分配的目标标识,并输出修改后的子块,为了进一步说明这一过程,参见如图5所示的本申请实施例提供的一种数据传输方法的流程图,该方法具体包括:
501、第一转发节点从该第一转发节点的输出端口的多个目标标识中,确定第一目标标识,其中,该第一目标标识已经分配给第一数据块,该第一数据块的子块在传输时出现异常。
该第一转发节点为任一转发节点,该输出端口为该第一转发节点的多个输出端口中用于输出该第一数据块的输出端口,该输出端口具有多个目标标识,每个目标标识对应该输出端口的部分传输资源。在一种可能的实现方式中,该输出端口还具有多个输出队列,每个输出队列对应一个目标标识。该第一目标标识为异常数据块占用的目标标识,其中,该第一数据块也即是异常数据块,该第一数据块的子块在传输时出现异常。
在一种可能的实现方式中,该第一转发节点根据第一数据块中的相邻子块达到第一转发节点的时间间隔,来确定数据块是否为异常数据块,分配给该第一数据块的目标标识是否为第一目标标识。在一种可能的实现方式中,对于该多个目标标识中分配给第一数据块的任一目标标识,若第一转发节点接收到该第一数据块的第一子块后,在第一时长内未接收到该第一数据块中该第一子块的下一个子块,说明下一个子块在传输过程中出现异常,该第一数据块为异常数据块,则第一转发节点将该目标标识确定为第一目标标识,该第一子块为该第一数据块中除尾子块以外的任一子块。在一种可能的实现方式中,对于该多个目标标识中分配给第一数据块的任一目标标识,当该输出端口具有多个输出队列时,若第一转发节点将该第一子块存储到该目标标识对应的输出队列后,该转发节点对该输出队列进行检测,若在第一时长内未检测到该第一子块的下一个子块存储至该输出队列,则该第一转发节点将该第一数据块确定为异常数据块,将该目标标识确定为第一目标标识,将该目标标识对应的输出队列确定为目标输出队列,该目标输出队列也即是被异常数据块占用的输出队列。
在一种可能的实现方式中,对于该多个目标标识中分配给第一数据块的任一目标标识,当该第一转发节点将该第一子块输出后,若该第一转发节点在第一时长内未检测到携带该目标标识的该子块的下一个一块,则该第一转发节点将该目标标识确定为第一目标标识,若存在该目标标识对应的输出队列,则将该目标标识对应的输出队列确定为目标输出队列。
其中,第一时长可以是任一时长,也可以是在正常传输过程中转发节点接收到相邻两个子块之间的目标时长,或者也可以大于目标时长,本申请实施例对该第一时长不做具体限定。例如子块长度为1500字节(byte),在正常传输过程中,数据块以10Gbps速率接入网络,在100Gbps速率的物理链路上传输时,每个数据块占用1/10的时间来传输。两个子块之间的间隔为10*1500byte的数据量,换算成时间为10*1500*8/100ns=1.2us,也即是目标时长为1.2us,则第一时长可以大于或等于1.2us。以图6所示的本申请实施例提供的一种子块传输的示意图为例进行说明。正常子块的传输间隔为目标时长,其中,第一时长大于目标时长,子块N、子块N+1以及子块N+2传输间隔均为目标时长,则子块N、子块N+1以及子块N+2在传输时均为未出现异常,为正常子块,第一转发节点可以以正常的发送速率将正常子块发送到物理链路上传输。而子块M和子块M+1的传输间隔大于第一时长,则说明子块M+1为异常子块,子块M和子块M+1所属的数据块也即是异常数据块。其中,N和M为大于0的整数,传输间隔也即是子块存储至输出队列的时间间隔。
需要说明的是,若相邻转发节点之间设置有子块传输控制策略时,第一转发节点根据该子块传输控制策略对第一时长进行调整。在一种可能的实现方式中,该子块传输控制策略为:当第一转发节点缓存的子块的数目大于第一目标数目时,为了避免丢弃子块,则该第一转发节点向该第一转发节点的上一个转发节点发送第一请求,该第一请求用于指示上一个转发节点停止向该第一转发节点输出子块,随着第一转发节点输出子块,第一转发节点缓存的子块的数目减少,当第一转发节点缓存的子块的数目小于第二目标数目时,该第一转发节点向上一个转发节点发送第二请求,该第二请求用于指示上一个转发节点向该第一转发节点输出子块。第一转发节点根据该子块传输控制策略对第一时长进行调整的过程可以是:当相邻转发节点之间设置子块传输控制策略时,该第一转发节点将第一请求与第二请求的发送间隔与第三时长之和确定为第一时长,其中,第三时长为相邻转发节点之间未设置子块传输控制策略时的第一时长。
502、该第一转发节点将该第一目标标识的状态由已占用状态修改为目标状态,该已占用状态用于指示目标标识已被正常数据块占用,该目标状态用于指示输出队列已被异常数据块占用。
对于任一目标标识,该第一转发节点内存储有该目标标识的状态,目标标识的状态可以包括该已占用状态、目标状态以及空闲状态,该空闲状态用于指示目标标识未被数据块占用。需要说明的是,一个目标标识在一个时刻仅能有一个状态。
当第一转发节点确定出第一目标标识后,说明该第一目标标识被异常数据块占用,该第一转发节点将该第一目标标识的状态由已占用状态修改为目标状态,以指示该第一目标标识已经被异常数据块占用。
在一种可能的实现方式中,该第一转发节点中存储有状态表,该状态表用于存储该第一转发节点中各个目标标识的状态。第一转发节点在状态表中修改该第一目标标识的状态,在一种可能的实现方式中,该第一转发节点根据该第一目标标识,查询状态表中存储的第一目标标识的状态,将状态表中存储的该第一目标标识的状态由已占用状态修改为目标状态。例如表1所示的状态表,第一目标标识为目标标识2,则该第一转发节点可以将表1中目标标识2的状态修改为目标状态。
表1
目标标识 | 状态 |
0 | 已占用状态 |
1 | 已占用状态 |
2 | 目标状态 |
… | 已占用状态 |
需要说明的是,当该第一转发节点将该第一目标标识的状态修改为目标状态后,该第一转发节点还能继续对该第一子块的下一个子块进行检测,响应于在第二时长内未接收到该第一数据块中该第一子块的下一个子块,则该第一转发节点将该第一目标标识的状态由该目标状态修改为空闲状态,以达到强制释放该第一目标标识的目的。其中,若该第二时长从接收到或输出该第一子块开始计时,该第二时长大于第一时长,该第二时长可以大于或等于正常传输过程中数据块之间的传输间隔。例如子块长度为1500byte,在正常传输过程中,数据块以10Gbps速率接入网络,在100Gbps速率的物理链路上传输时,每个数据块占用1/10的时间来传输,数据块之间的传输间隔为120us,则该第二时长可以大于或等于120us。若该第二时长从将第一目标标识的状态修改为目标状态后开始计时,该第二时长可以是任一时长。本申请实施例该第二时长不做具体限定。
当相邻两个转发节点之间设置有子块传输控制策略时,该第二时长可以是该第一转发节点将第一请求与第二请求的发送间隔与第四时长之和确定为第一时长,其中,第四时长为相邻转发节点之间未设置子块传输控制策略时的第二时长。
503、该第一转发节点接收第二数据块的头子块,该头子块携带第二目标标识,该第二目标标识为发送该头子块的转发节点为该第二数据块所分配的目标标识。
该第二数据块为除该第一数据块以外的任一数据块,其中,该第二数据块的头子块在到达该第一转发节点之前,该第一数据块的头子块已经达到该第一转发节点,该第二数据块可以视为一个新数据块。
当该第一转发节点的任一输入端口接收到该头子块时,该第一转发节点将该头子块存储在该第二目标标识对应的输入队列中,等待该第一转发节点为该第二数据块分配目标标识。
504、响应于该多个目标标识均被占用,该第一转发节点将该第一目标标识分配给该第二数据块。
当从任一输入端口的任一输入队列中获取到一个子块后,该第一转发节点对该子块进行解析,得到该子块携带的子块标识,若该子块携带的子块标识为头子块标识,则说明该子块为头子块。当从输入队列中获取到一个头子块后,该第一转发节点根据头子块携带路由信息以及全局路由转发表,确定该第一转发节点中用于转发该头子块所属的数据块的输出端口,并基于该输出端口中多个目标标识的状态,为该头子块所属的数据块分配目标标识。
当该第一转发节点从输入队列中获取到该第二数据块的头子块后,该第一转发节点基于该输出端口的多个目标标识的状态,为第二数据块分配目标标识。在一种可能的实现方式中,该第一转发节点获取该输出端口中多个目标标识的状态,若该多个目标标识中存在处于空闲状态的至少一个目标标识,则该第一转发节点将该处于空闲状态的任一目标标识分配给该第二数据块;若该多个目标标识中不存在处于空闲状态的目标标识,且存在处于目标状态的至少一个目标标识,则该第一转发节点将处于目标状态的任一目标标识分配给该第二数据块;若该多个目标标识均处于已占用状态,则该第一转发节点暂时不为该第二数据块分配目标标识,当任一目标标识的状态由已占用状态变为空闲状态或目标状态时,则该第一转发节点将该任一目标标识分配给该第二数据块。
其中,若该多个目标标识中不存在处于空闲状态的目标标识也即是该多个目标标识均被占用。相应地,若该多个目标标识中不存在处于空闲状态的目标标识,且存在处于目标状态的至少一个目标标识,则该第一转发节点将处于目标状态任一目标标识分配给该第二数据块的过程,也即是,响应于该多个目标标识均被占用,第一转发节点将该第一目标标识分配给该第二数据块的过程,此时,该第一目标标识为处于目标状态的至少一个目标标识中的任一目标标识。
该第一转发节点通过建立第二数据块与第一目标标识之间的映射关系,来将第一目标标识分配给该第二数据块。在一种可能的实现方式中,该第一转发节点删除该第一数据块与该第一目标标识之间的映射关系;该第一转发节点建立该第二数据块与该第一目标标识之间的映射关系。其中,该第一转发节点通过删除该第一数据块与该第一目标标识之间的映射关系,取消为该第一数据块分配的第一目标标识,可以避免后续再接收到第一数据块的子块时,将第一目标标识存储在第一数据块的子块中,以避免输出后续接收到的第一数据块的子块。
其中,一个数据块与一个输出队列之间的映射关系可以是该数据块的子块携带的源目标标识与该第一转发节点为该数据块分配的目标标识之间的映射关系,还可以是该数据块的子块携带的源目标标识、该第一转发节点为该数据块分配的目标标识、用于接收该数据块的输入端口的端口标识以及用于发送该数据块的输出端口的端口标识之间的映射关系。其中,子块携带的源目标标识为该子块进入该第一转发节点时携带目标标识,也即是发送该子块的转发节点为该子块分配的目标标识,需要说明的是,同一个数据块中的子块所携带的源目标标识均相同,则一个数据块的子块携带的源目标标识也即是该数据块的源目标标识。为了便于描述对于任一转发节点,该转发节点将接收到子块携带的源目标标识作为数据块的源目标标识,将转发节点为数据块分配的目标标识作为该数据块的分配目标标识。
该第一转发节点可以存储有目标转发表,该目标转发表用于存储该第一转发节点转发的各个数据块与各个数据块分配到目标标识之间的映射关系,例如表2所示的目标转发表,第一转发节点中用于接收该第一数据块的输入端口为输入端口1,该第一数据块的源目标标识为1,用于发送该第一数据块的输出端口为4,该第一目标标识(也即是第一数据块的分配目标标识)为2,该第二数据块的源目标标识为3,用于接收该第二数据块的输入端口为输入端口2,则该第一转发节点可以删除表2中第一数据块与分配目标标识2之间的映射关系(也即是表2中第2个映射关系),并在表2中新增第二数据块与分配目标标识2之间的映射关系(也即是表2中第4个映射关系)。
表2
输入端口标识 | 源目标标识 | 输出端口标识 | 分配目标标识 |
1 | 0 | … | … |
1 | 1 | 4 | 2 |
1 | 2 | … | … |
2 | 3 | 4 | 2 |
… | … | … | … |
需要说明的是,当分配给该第二数据块的分配目标标识不是处于目标状态的第一目标标识,而是处于空闲状态的目标标识时,则该第一转发节点无须删除目标状态表中存储的映射关系,仅在该目标状态表中新增该第二数据块与该第二数据块的分配目标标识之间的映射关系即可。
505、该第一转发节点将该第一目标标识的状态由该目标状态修改为该已占用状态。
当将第一目标标识分配该第二数据块后,说明此时该第一目标标识已被第二数据块占用,则该第一转发节点将该第一目标标识的状态由该目标状态修改为已占用状态,以避免在该第二数据块未转发完成的情况下,第一转发节点将该第一目标标识分配给新数据块。
需要说明的是,当分配给该第二数据块的分配目标标识不是处于目标状态的第一目标标识,而是处于空闲状态的目标标识时,则该第一转发节点将处于空闲状态的目标标识分配给该第二数据块后,将该目标标识的状态由空闲状态修改为已占用状态。
其中,第一转发节点505所示的过程以及将该第一目标标识的状态由空闲状态修改为已占用状态的过程,均与步骤502中该第一转发节点将该第一目标标识的状态由已占用状态修改为目标状态的过程同理,在此,本申请实施例对本步骤505以及将该目标标识的状态由空闲状态修改为已占用状态的过程不做赘述。
506、该第一转发节点生成目标子块,该目标子块用于指示删除该第一数据块的子块。
该目标子块包括删除标识,该删除标识用于指示删除该第一数据块的子块,该删除标识还用于指示该目标子块为尾子块。可以理解的是,该目标子块也即是一个特殊的尾子块,用于指示删除异常数据块。
在一种可能的实现方式中,该第一转发节点基于该目标标识以及该第一目标标识,生成该目标子块,其中,该目标子块携带有该删除标识以及该第一目标标识。
当该输出端口具有多个输出队列时,该第一转发节点还能将该目标子块存储在该第一目标标识对应的目标输出队列,以便该目标输出队列所在的输出端口将该目标输出队列中的目标子块输出。
507、该第一转发节点通过该输出端口向第二转发节点发送该目标子块。
该第二转发节点也即是第二数据块块的头子块携带的路径信息中指示的该第一转发节点的下一跳转发节点。当该输出端口具有多个输出队列时,该输出端口可以从该目标输出队列中调度出目标子块,并向第二转发节点发送调度出的目标子块。当该输出端口不具有多个输出队列时,若该输出端口调度出该目标子块,该第一转发节点向该第二转发节点发送调度出的目标子块。
需要说明的是,本步骤507所示的过程也即是第一转发节点通过该输出端口发送目标子块的过程。
508、对于携带该第二目标标识的该第二数据块的任一子块,该第一转发节点将该任一子块携带的第二目标标识修改为该第一目标标识。
该第二目标标识也即是该第二数据块的源目标标识,当该第一转发节点为该第二数据块分配完该第一目标标识后,该第一转发节点将该头子块中的源目标标识修改为该第一目标标识。当该第一转发节点从任一输入队列中获取到一个子块后,若该子块携带的源目标标识为该第二目标标识,则该子块为该第二数据块中的子块,则该第一转发节点可以将该子块携带的源目标标识修改为该第一目标标识。
在一种可能的实现方式中,当从任一输入队列中获取到一个子块后,该第一转发节点根据该子块携带的源目标标识查询目标转发表,以查询该子块携带的源目标标识对应的分配目标标识,并该子块携带的源目标标识修改为查询到的分配目标标识。
为了进一步说明步骤501至508所示的过程,参见图7所示的本申请实施例提供的一种抢占目标标识的示意图。当第一转发节点接收到新数据块的头子块时,第一转发节点开始为新数据块分配输出端口的目标标识,第一转发节点先判断输出端口中是否存在处于空闲状态的目标标识,若存在,则第一转发节点将处于空闲状态的目标标识分配给新数据块,并将分配给新数据块的目标标识的状态修改为已占用状态,此时第一转发节点为新数据块分配目标标识结束,继续为下一个新数据块分配目标标识;若输出端口中不存在处于空闲状态的目标标识,则该第一转发节点再判断输出端口中是否存在处于目标状态的目标标识,若存在,则第一转发节点删除目标转发表中分配给新数据块的目标标识所相关的条目;第一转发节点发送目标子块;第一转发节点将处于目标状态的目标标识分配给新数据块,并将分配给新数据块的目标标识的状态修改为已占用状态;若输出端口中不存在处于目标状态的目标标识,则第一转发节点再次判断输出端口中是否存在空闲状态的目标标识。
需要说明的是,当输出端口具有多个输出队列时,该第一转发节点将修改后的该第二数据块的任一子块存储在该第一目标标识对应的目标输出队列,等待该输出端口从该目标输出队列调度出修改后的该任一子块,并输出。在一种可能的实现方式中,当输出端口中不存在处于空闲状态的目标标识且存在处于目标状态的目标标识时,若第一转发节点确定将处于目标状态的第一目标标识分配给第二数据块,该第一转发节点先发送目标子块,再删除该转发表中该第一目标标识与第一数据块之间的映射关系,然后,再将第一目标标识分配给第二数据块,并将第一目标标识的状态修改为已占用状态。在另一种可能的实现方式中,当输出端口中不存在处于空闲状态的目标标识且存在处于目标状态的目标标识时,若第一转发节点确定将处于目标状态的第一目标标识分配给第二数据块,该第一转发节点先删除该转发表中该第一目标标识与第一数据块之间的映射关系,再发送目标子块,然后,再将第一目标标识分配给第二数据块,并将第一目标标识的状态修改为已占用状态。在另一种可能的实现方式中,当输出端口中不存在处于空闲状态的目标标识且存在处于目标状态的目标标识时,若第一转发节点确定将处于目标状态的第一目标标识分配给第二数据块,该第一转发节点先将第一目标标识分配给第二数据块,并将第一目标标识的状态修改为已占用状态,然后删除该转发表中该第一目标标识与第一数据块之间的映射关系,再发送目标子块。
509、该第一转发节点通过该输出端口向第二转发节点发送修改后的该任一子块。
本步骤509所示的过程与步骤507中该第一转发节点通过该输出端口向第二转发节点发送该目标子块的过程同理,在此,本申请实施例对本步骤509不做赘述。本步骤509所示的过程也即是第一转发节点通过该输出端口发送修改后的该任一子块的过程。
当该输出端口具有多个输出队列时,为了进一步说明第一转发节点为新数据块分块目标标识的过程,参见图8所示的本申请实施例提供的一种分配目标标识的流程图。数据块以10Gbps速率接入网络,第一转发节点的输出端口有10个输出队列,每个输出队列分别对应目标标识1-10,输出端口中的检测器可以每间隔第一时长对输出队列1-10进行检测,若能从任一输出队列中检测到子块,则将检测到的子块发送至100Gbps的物理链路中,例如,若经过第一时长检测器在输出队列2中未检测到子块,说明输出队列2中之前发送的子块的下一个子块在第一时长内未存储至输出队列2,则该下一个子块的传输出现异常,该输出队列2对应的目标标识2被异常数据块占用,则该检测器将状态表中输出队列2的状态修改为目标状态;当接收到新数据块的头子块时,若目标标识1-10均未处于空闲状态,则第一转发节点的分配器将目标标识2分配给新数据块,并将状态表中目标标识2的状态修改为已占用状态,分配器将目标转发表中目标标识2相关的条目删除,在目转发表中新增新数据块的源目标标识3与目标标识2中间的映射关系,并向目标标识2对应的输出队列发送目标子块,第一转发节点中的输出端口可以每间隔目标时长将输出队列2中存储的子块发送至物理链路中。
510、第二转发节点从第一转发节点接收目标子块,该目标子块用于指示删除第一数据块的子块。
511、第二转发节点基于该目标子块携带的第一目标标识,确定该第二转发节点的输入端口的目标输入队列,该目标输入队列为与该第一目标标识对应的输入队列。
该输入端口与第一转发节点中该第一目标标识所在的输出端口连接。该目标输入队列也即是该输入端口中与该第一目标标识具有对应关系的输入队列。
当该输入端口接收到任一子块后,该第一转发节点对该子块进行解析得到该子块的子块标识,若该子块的子块标识为目标标识,则该子块为目标子块。当该输入端口获取到该目标子块携带的源目标标识后,该第一转发节点根据该输入端口中的输入队列与第一转发节点的输出端口中目标标识之间的对应关系,确定第二转发节点中第一目标标识对应的目标输入队列。
需要说明的是,当该输入端口接收到的任一子块不是目标子块时,该第二转发节根据该子块携带的源目标标识,确定该输入端口中与该源目标标识对应的输入队列,并将该子块存储至对应的输入队列,等待第二转发节点分配目标标识。
512、响应于该目标输入队列中存在至少一个头子块,该第二转发节点删除该目标子块以及该目标输入队列中存储的该第一数据块的子块。
当该第二转发节点从第一转发节点接收到该目标子块后,该第二转发节点基于该目标子块携带的删除标识,确定该目标子块为第一数据块的尾子块,并删除该目标子块。
该第二转发节点查询该目标输入队列中是否存储有头子块,当目标输入队列中存储有头子块时,该第二转发节点确定该目标输出队列中存储的第一数据块的子块,然后再删除该目标输出队列中存储的第一数据块的子块。在一种可能的实现方式中,第二转发节点删除该目标输入队列中存储的该第一数据块的子块的过程可以由下述步骤5121-5123来实现。
步骤5121、该第二转发节点在该目标输入队列中查询头子块。
该第二转发节点可以查询该目标输入队列中存储的子块的子块标识,若任一子块的子块标识为头子块标识,则该第二转发节点将该子块确定为头子块。
步骤5122、响应于该目标输入队列中存在至少一个头子块,该第二转发节点将该至少一个头子块中最后一个头子块,确定为该第一数据块的头子块。
当该目标输入队列中存在头子块时,说明该第一数据块中的子块还未从该第二转发节点转发出去,则该第二转发节点可以通过执行本步骤5122,确定该第一数据块的头子块。由于一个数据块的子块在输入队列中的排列都是相邻的,因此,响应于该目标输入队列中存在至少一个头子块,该第二转发节点将该至少一个头子块中最后一个头子块,确定为该第一数据块的头子块。该第二转发节点将该目标输入队列中位于该最后一个头子块之后的子块确定为该第一数据块的中间子块,该第二转发节点将该目标子块确定为该第一数据块的尾子块。
需要说明的是,步骤5121-5122所示的过程也即是该第二转发节点从该目标输入队列已存储的子块中,查询该第一数据块的头子块的过程。
步骤5123、该第二转发节点从该目标输入队列中删除该头子块以及位于该头子块之后的子块。
由于该目标输入队列中最后一个头子块为该第一数据块的头子块,该目标输入队列中位于该头子块之后的子块为该第一数据块的中间子块,因此,该第二转发节点可以通过执行本步骤5123删除该目标输入队列中存储的该第一数据块的子块。
例如图9所示的本申请实施例提供的一种目标子块传输的示意图。图9中的转发节点1为将异常数据块占用的第一目标标识分配给新数据块的转发节点,转发节点1通过物理链路将目标子块发送给转发节点2,此时转发节点2的输入队列中存储有异常数据块的头子块,也即是转发节点2中存储有异常数据块中出现异常传输的子块之前的子块,则该转发节点2将目标子块作为异常数据块的尾子块删除掉,并将转发节点2的输入队列中存储的异常数据块的头子块以及该头子块之后的子块删除,从而实现将整个异常数据块删除。避免异常数据块占用数据传输系统中的传输资源。
513、响应于该目标输入队列中不存在头子块,第二转发节点确定第二转发节点为该第一数据块分配的第三目标标识。
当该目标输出队列中不存在头子块时,则说明该第二转发节点已经将该第一数据块中的部分子块转发出去,为了避免第一数据块中的子块删除不全,则该第二转发节点不能删除该目标子块以及该目标输入队列中该第一数据块的中间子块,该第二转发节点将该目标子块作为正常子块进行转发,由接收到该目标子块的其他转发节点基于该目标子块删除第一数据块的子块。
该第二转发节点根据该目标子块携带的第一目标标识,在本地的目标转发表中,查询该第一目标标识对应的分配目标标识;该第二转发节点将查询到的分配目标标识作为第三目标标识。
514、第二转发节点将该目标子块携带的第一目标标识修改为第三目标标识。
515、第二转发节点发送修改后的目标子块。
该第二转发节点将该第三目标标识所在的输出端口,确定为用于转发该目标子块的输出端口。该第二转发节点通过该第三目标标识所在的输出端口发送修改后的目标子块。其中,第二转发节点发送目标子块的过程与步骤507中第一转发节点发送目标子块的过程同理,本申请实施例对本步骤515不做赘述。
由于目标子块为第一数据块的尾子块,当第二转发节点将该目标子块发送出去后,说明该第二转发节点已经将第一数据块转发完成,则该第二转发节点可以取消为该第一数据块分配的第三目标标识,以便后续第二转发节点能够将该第三目标标识分配给新数据块。在一种可能的实现方式中,该第二转发节点取消为该第一数据块分配的第三目标标识的过程是:该第二转发节点删除存储的该第一数据块与该第三目标标识之间映射关系,并将存储的该第三目标标识的状态由已占用状态修改为空闲状态。
为了进一步说明目标子块在数据传输系统中传输的过程,参见图10所示的本申请实施例提供的一种目标子块传输的示意图。图10中的转发节点1将异常数据块占用的第一目标标识分配给新数据块,转发节点1向转发节点2发送目标子块,当转发节点2接收到该目标子块后,若转发节点2已经将异常数据块的头子块转发至转发节点3,说明异常数据块在转发节点2不完整,则转发节点2将目标子块作为异常数据块的尾子块,沿着异常数据块的头子块的转发路径,将目标子块发送至转发节点3,当转发节点3中存储有异常数据块的头子块时,则转发节点3将该目标子块、存储的该异常数据块的头子块和中间子块删除。
本申请实施例提供的方法,通过转发节点将子块在传输时出现异常的第一数据块所占用的第一目标标识分配给第二数据块,从而可以避免第二数据块长时间等待分配空闲的目标标识,减少了第二数据块在转发节点的时长,提高了转发节点的数据转发效率。并且,通过第一转发节点发送用于指示删除第一数据块的目标子块,从而可以避免第一数据块继续占用数据传输系统中的传输资源。并且,只有存储有第一数据块的头子块的转发节点才能基于目标子块删除第一数据块中的子块,从而可以避免第一数据块中的子块不能完全删除的情况。
需要说明的是,在上述图5所示的过程中,当第一转发节点将被第一数据块占用的第一目标标识分配给第二数据块后,该第一转发节点会发送一个目标子块,以便接收到该目标子块的转发节点能够根据目标子块删除第一数据块的子块。而在另一种可能的实现方式中,当第一转发节点将被第一数据块占用的第一目标标识分配给第二数据块后,第一转发节点无须发送目标子块,那么第二转发节点则不会接收到目标子块,也无须删除第一数据块。当该第一数据块被传输至第一数据块的路由信息所指示的接收端后,接收端对接收到该第一数据块的子块的时间间隔进行判断,若该时间间隔大于第一时长,则接收端删除接收到该第一数据块的子块,其中,接收端为最后接收该第一数据块的设备。也即是第一转发节点无须执行步骤506-507所示的过程,第二转发节点无须执行步骤510-515所示的过程,此时,数据传输系统中的每个转发节点均执行步骤501-505以及步骤508-509所示的过程。
图11是本申请实施例提供的一种数据传输装置的结构示意图,该装置包括:
确定模块1101,用于从所述第一转发节点的输出端口的多个目标标识中,确定第一目标标识,其中,所述第一目标标识已经分配给第一数据块,所述第一数据块的子块在传输时出现异常;
接收模块1102,用于接收第二数据块的头子块,所述头子块携带第二目标标识,所述第二目标标识为发送所述头子块的转发节点为所述第二数据块所分配的目标标识;
分配模块1103,用于响应于所述多个目标标识均被占用,将所述第一目标标识分配给所述第二数据块;
修改模块1104,用于对于携带所述第二目标标识的所述第二数据块的任一子块,将所述任一子块携带的所述第二目标标识修改为所述第一目标标识;
发送模块1105,用于通过所述输出端口发送修改后的所述任一子块。
可选地,所述确定模块1101用于:
对于所述多个目标标识中分配给第一数据块的任一目标标识,若接收到所述第一数据块的第一子块后,在第一时长内未接收到所述第一数据块中所述第一子块的下一个子块,则将所述目标标识确定为所述第一目标标识,所述第一子块为所述第一数据块中除尾子块以外的任一子块。
可选地,所述分配模块1103用于:
删除所述第一数据块与所述第一目标标识之间的映射关系;
建立所述第二数据块与所述第一目标标识之间的映射关系。
可选地,所述修改模块1104还用于:
将所述第一目标标识的状态由已占用状态修改为目标状态,所述已占用状态用于指示目标标识已被正常数据块占用,所述目标状态用于指示目标标识已被异常数据块占用。
可选地,所述修改模块1104还用于:
将所述第一目标标识的状态由所述目标状态修改为所述已占用状态。
可选地,所述修改模块1104还用于:
响应于在第二时长内未接收到所述第一数据块中所述第一子块的下一个子块,则将所述第一目标标识的状态由所述目标状态修改为空闲状态,所述空闲状态用于指示目标标识未被数据块占用。
可选地,所述发送模块1105还用于:
通过所述输出端口发送目标子块,所述目标子块用于指示删除所述第一数据块的子块。
可选地,所述目标子块包括删除标识,所述删除标识用于指示删除所述第一数据块的子块。
图12是本申请实施例提供的一种数据传输装置的结构示意图,所述装置包括:
接收模块1201,用于从第一转发节点接收目标子块,所述目标子块用于指示删除第一数据块的子块,所述目标子块携带所述第一转发节点为所述第一数据块分配的第一目标标识;
确定模块1202,用于基于所述目标子块携带的所述第一目标标识,确定所述第二转发节点的输入端口的目标输入队列,所述目标输入队列为与所述第一目标标识对应的输入队列;
第一删除模块1203,用于删除所述目标子块以及所述目标输入队列中存储的所述第一数据块的子块。
可选地,所述第一删除模块1203包括:
查询单元,用于从所述目标输入队列已存储的子块中,查询所述第一数据块的头子块;
删除单元,用于从所述目标输入队列中删除所述头子块以及位于所述头子块之后的子块。
可选地,所述查询单元用于:
在所述目标输入队列中查询头子块;
响应于所述目标输入队列中存在至少一个头子块,将所述至少一个头子块中最后一个头子块,确定为所述第一数据块的头子块。
可选地,所述装置还包括第一修改模块和发送模块;
所述确定模块1202,还用于响应于所述目标输入队列中不存在头子块,确定所述第二转发节点为所述第一数据块分配的第三目标标识;
所述第一修改模块,用于将所述目标子块携带的所述第一目标标识修改为所述第三目标标识;
所述发送模块,用于通过所述第三目标标识所属的输出端口发送修改后的所述目标子块。
可选地,所述装置还包括:
第二删除模块,用于删除所述第一数据块与所述第三目标标识之间的映射关系;
第二修改模块,用于将所述第三目标标识的状态由已占用状态修改空闲状态,所述已占用状态用于指示目标标识已被一个数据块占用且不能被其他数据块占用,所述空闲状态用于指示目标标识未被数据块占用。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述数据传输方法。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的数据传输装置在传输数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (28)
1.一种数据传输方法,其特征在于,应用于第一转发节点,所述方法包括:
从所述第一转发节点的输出端口的多个目标标识中,确定第一目标标识,其中,所述第一目标标识已经分配给第一数据块,所述第一数据块的子块在传输时出现异常;
接收第二数据块的头子块,所述头子块携带第二目标标识,所述第二目标标识为发送所述头子块的转发节点为所述第二数据块所分配的目标标识;
响应于所述多个目标标识均被占用,将所述第一目标标识分配给所述第二数据块;
对于携带所述第二目标标识的所述第二数据块的任一子块,将所述任一子块携带的所述第二目标标识修改为所述第一目标标识;
通过所述输出端口发送修改后的所述任一子块。
2.根据权利要求1所述的方法,其特征在于,所述从所述第一转发节点的输出端口的多个目标标识中,确定第一目标标识包括:
对于所述多个目标标识中分配给第一数据块的任一目标标识,若接收到所述第一数据块的第一子块后,在第一时长内未接收到所述第一数据块中所述第一子块的下一个子块,则将所述目标标识确定为所述第一目标标识,所述第一子块为所述第一数据块中除尾子块以外的任一子块。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一目标标识分配给所述第二数据块包括:
删除所述第一数据块与所述第一目标标识之间的映射关系;
建立所述第二数据块与所述第一目标标识之间的映射关系。
4.根据权利要求1所述的方法,其特征在于,所述确定第一目标标识之后,所述方法还包括:
将所述第一目标标识的状态由已占用状态修改为目标状态,所述已占用状态用于指示目标标识已被正常数据块占用,所述目标状态用于指示目标标识已被异常数据块占用。
5.根据权利要求4所述的方法,其特征在于,所述将所述第一目标标识分配给所述第二数据块之后,所述方法还包括:
将所述第一目标标识的状态由所述目标状态修改为所述已占用状态。
6.根据权利要求4所述的方法,其特征在于,所述将所述第一目标标识的状态由已占用状态修改为目标状态之后,所述方法还包括:
响应于在第二时长内未接收到所述第一数据块中所述第一子块的下一个子块,则将所述第一目标标识的状态由所述目标状态修改为空闲状态,所述空闲状态用于指示目标标识未被数据块占用。
7.根据权利要求1-6任一项权利要求所述的方法,其特征在于,所述通过所述输出端口发送修改后的所述任一子块之前,所述方法还包括:
通过所述输出端口发送目标子块,所述目标子块用于指示删除所述第一数据块的子块。
8.根据权利要求7所述的方法,其特征在于,所述目标子块包括删除标识,所述删除标识用于指示删除所述第一数据块的子块。
9.一种数据传输方法,其特征在于,应用于第二转发节点,所述方法包括:
从第一转发节点接收目标子块,所述目标子块用于指示删除第一数据块的子块,所述目标子块携带所述第一转发节点为所述第一数据块分配的第一目标标识;
基于所述目标子块携带的所述第一目标标识,确定所述第二转发节点的输入端口的目标输入队列,所述目标输入队列为与所述第一目标标识对应的输入队列;
删除所述目标子块以及所述目标输入队列中存储的所述第一数据块的子块。
10.根据权利要求9所述的方法,其特征在于,所述删除所述目标输入队列中存储的所述第一数据块的子块包括:
从所述目标输入队列已存储的子块中,查询所述第一数据块的头子块;
从所述目标输入队列中删除所述头子块以及位于所述头子块之后的子块。
11.根据权利要求10所述的方法,其特征在于,所述从所述目标输入队列已存储的子块中,查询所述第一数据块的头子块包括:
在所述目标输入队列中查询头子块;
响应于所述目标输入队列中存在至少一个头子块,将所述至少一个头子块中最后一个头子块,确定为所述第一数据块的头子块。
12.根据权利要求11所述的方法,其特征在于,所述在所述目标输入队列中查询头子块之后,所述方法还包括:
响应于所述目标输入队列中不存在头子块,确定所述第二转发节点为所述第一数据块分配的第三目标标识;
将所述目标子块携带的所述第一目标标识修改为所述第三目标标识;
通过所述第三目标标识所属的输出端口发送修改后的所述目标子块。
13.根据权利要求9所述的方法,其特征在于,所述将所述目标子块携带的所述第一目标标识修改为所述第三目标标识之后,所述方法还包括:
删除所述第一数据块与所述第三目标标识之间的映射关系;
将所述第三目标标识的状态由已占用状态修改空闲状态,所述已占用状态用于指示目标标识已被一个数据块占用且不能被其他数据块占用,所述空闲状态用于指示目标标识未被数据块占用。
14.一种数据传输装置,其特征在于,所述装置包括:
确定模块,用于从所述第一转发节点的输出端口的多个目标标识中,确定第一目标标识,其中,所述第一目标标识已经分配给第一数据块,所述第一数据块的子块在传输时出现异常;
接收模块,用于接收第二数据块的头子块,所述头子块携带第二目标标识,所述第二目标标识为发送所述头子块的转发节点为所述第二数据块所分配的目标标识;
分配模块,用于响应于所述多个目标标识均被占用,将所述第一目标标识分配给所述第二数据块;
修改模块,用于对于携带所述第二目标标识的所述第二数据块的任一子块,将所述任一子块携带的所述第二目标标识修改为所述第一目标标识;
发送模块,用于通过所述输出端口发送修改后的所述任一子块。
15.根据权利要求14所述的装置,其特征在于,所述确定模块用于:
对于所述多个目标标识中分配给第一数据块的任一目标标识,若接收到所述第一数据块的第一子块后,在第一时长内未接收到所述第一数据块中所述第一子块的下一个子块,则将所述目标标识确定为所述第一目标标识,所述第一子块为所述第一数据块中除尾子块以外的任一子块。
16.根据权利要求14所述的装置,其特征在于,所述分配模块用于:
删除所述第一数据块与所述第一目标标识之间的映射关系;
建立所述第二数据块与所述第一目标标识之间的映射关系。
17.根据权利要求14所述的装置,其特征在于,所述修改模块还用于:
将所述第一目标标识的状态由已占用状态修改为目标状态,所述已占用状态用于指示目标标识已被正常数据块占用,所述目标状态用于指示目标标识已被异常数据块占用。
18.根据权利要求17所述的装置,其特征在于,所述修改模块还用于:
将所述第一目标标识的状态由所述目标状态修改为所述已占用状态。
19.根据权利要求17所述的装置,其特征在于,所述修改模块还用于:
响应于在第二时长内未接收到所述第一数据块中所述第一子块的下一个子块,则将所述第一目标标识的状态由所述目标状态修改为空闲状态,所述空闲状态用于指示目标标识未被数据块占用。
20.根据权利要求14-19任一项权利要求所述的装置,其特征在于,所述发送模块还用于:
通过所述输出端口发送目标子块,所述目标子块用于指示删除所述第一数据块的子块。
21.根据权利要求20所述的装置,其特征在于,所述目标子块包括删除标识,所述删除标识用于指示删除所述第一数据块的子块。
22.一种数据传输装置,其特征在于,所述装置包括:
接收模块,用于从第一转发节点接收目标子块,所述目标子块用于指示删除第一数据块的子块,所述目标子块携带所述第一转发节点为所述第一数据块分配的第一目标标识;
确定模块,用于基于所述目标子块携带的所述第一目标标识,确定所述第二转发节点的输入端口的目标输入队列,所述目标输入队列为与所述第一目标标识对应的输入队列;
第一删除模块,用于删除所述目标子块以及所述目标输入队列中存储的所述第一数据块的子块。
23.根据权利要求22所述的装置,其特征在于,所述第一删除模块包括:
查询单元,用于从所述目标输入队列已存储的子块中,查询所述第一数据块的头子块;
删除单元,用于从所述目标输入队列中删除所述头子块以及位于所述头子块之后的子块。
24.根据权利要求23所述的装置,其特征在于,所述查询单元用于:
在所述目标输入队列中查询头子块;
响应于所述目标输入队列中存在至少一个头子块,将所述至少一个头子块中最后一个头子块,确定为所述第一数据块的头子块。
25.根据权利要求24所述的装置,其特征在于,所述装置还包括第一修改模块和发送模块;
所述确定模块,还用于响应于所述目标输入队列中不存在头子块,确定所述第二转发节点为所述第一数据块分配的第三目标标识;
所述第一修改模块,用于将所述目标子块携带的所述第一目标标识修改为所述第三目标标识;
所述发送模块,用于通过所述第三目标标识所属的输出端口发送修改后的所述目标子块。
26.根据权利要求22所述的装置,其特征在于,所述装置还包括:
第二删除模块,用于删除所述第一数据块与所述第三目标标识之间的映射关系;
第二修改模块,用于将所述第三目标标识的状态由已占用状态修改空闲状态,所述已占用状态用于指示目标标识已被一个数据块占用且不能被其他数据块占用,所述空闲状态用于指示目标标识未被数据块占用。
27.一种转发节点,其特征在于,所述转发节点包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求13任一项所述的数据传输方法所执行的操作。
28.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求13任一项所述的数据传输方法所执行的操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010683013.9A CN113949482A (zh) | 2020-07-15 | 2020-07-15 | 数据传输方法、装置、转发节点以及计算机可读存储介质 |
PCT/CN2021/104061 WO2022012348A1 (zh) | 2020-07-15 | 2021-07-01 | 数据传输方法、装置、转发节点以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010683013.9A CN113949482A (zh) | 2020-07-15 | 2020-07-15 | 数据传输方法、装置、转发节点以及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113949482A true CN113949482A (zh) | 2022-01-18 |
Family
ID=79326163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010683013.9A Pending CN113949482A (zh) | 2020-07-15 | 2020-07-15 | 数据传输方法、装置、转发节点以及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113949482A (zh) |
WO (1) | WO2022012348A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8379801B2 (en) * | 2009-11-24 | 2013-02-19 | Sorenson Communications, Inc. | Methods and systems related to text caption error correction |
CN104679772B (zh) * | 2013-11-29 | 2019-01-25 | 深圳市腾讯计算机系统有限公司 | 分布式数据仓库中删除文件的方法、装置、设备及系统 |
CN106331789B (zh) * | 2016-09-13 | 2019-07-02 | 聚好看科技股份有限公司 | 轮播节目播放控制方法及设备 |
CN109729380B (zh) * | 2018-12-24 | 2021-07-27 | 聚好看科技股份有限公司 | 音视频播放方法和设备 |
-
2020
- 2020-07-15 CN CN202010683013.9A patent/CN113949482A/zh active Pending
-
2021
- 2021-07-01 WO PCT/CN2021/104061 patent/WO2022012348A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022012348A1 (zh) | 2022-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3435606B1 (en) | Message processing method, computing device, and message processing apparatus | |
CN108023812B (zh) | 云计算系统的内容分发方法及装置、计算节点及系统 | |
CN112753198B (zh) | 在网络中的负载均衡和报文重排序方法及装置 | |
CN112822124B (zh) | 多芯片通信系统、方法、芯片及存储介质 | |
CN102035735A (zh) | 用于提供转发信息和服务质量信息的设备和方法 | |
WO2016107598A1 (zh) | 一种业务加速方法及装置 | |
JP4808731B2 (ja) | 通信ネットワークシステムにおけるサブシステム間のロードを調節する方法 | |
US11985455B2 (en) | Optical communication device and resource management method | |
CN113497754A (zh) | 转发路径建立方法、装置以及计算机可读存储介质 | |
CN110166857B (zh) | 一种光纤通道交换机动态配置的实现方法 | |
CN105337746A (zh) | 一种组播数据的传输方法和装置 | |
WO2020119682A1 (zh) | 负载分担的方法、控制面实体和转发器 | |
CN101371531A (zh) | 用于网络的改进的路由确定方法 | |
CN113949482A (zh) | 数据传输方法、装置、转发节点以及计算机可读存储介质 | |
CN107113323A (zh) | 一种数据存储方法、装置和系统 | |
US20180026864A1 (en) | Communication apparatus, communication system, and communication method | |
CN114598745B (zh) | 通信方法及装置 | |
EP2034669A1 (en) | Method for determining the distance between a route and a node of a possible parallel route for data transmission | |
CN112600915B (zh) | 一种网络资源的申请方法、装置、设备及存储介质 | |
CN112804166B (zh) | 一种报文收发方法、装置及存储介质 | |
JP2008524912A (ja) | バス型ネットワーク構造の通信ネットワークシステム及びこれを用いたサービス間のデータ送受信方法 | |
KR101576518B1 (ko) | 소프트웨어 정의 네트워크에서 오픈플로우 프로토콜을 확장하여 활용하는 방법 및 장치 | |
CN107257272B (zh) | 数据发送方法、发送终端及接收终端 | |
KR20030027968A (ko) | 근거리 무선통신시스템의 무선자원분배를 위한 스케줄링방법 | |
CN114629841B (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 |