一种报文转发方法和装置的制造方法

文档序号:8301561阅读:186来源:国知局
一种报文转发方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域,特别是涉及一种报文转发方法和装置。
【背景技术】
[0002]为了有效进行数据传输,处于传输链路上的调度器需要为传输链路或者子链路/子通道合理的调度带宽。
[0003]数据传输过程中,调度器将接收到报文按照一定的规则组成报文队列,然后依次处理该报文队列中的报文。根据处理到的报文长度、该报文所在报文队列的队列标识以及获取到的相应带宽调度结果确定出报文合理的出队时间。所述调度器根据被调度的带宽,从该报文队列中提取报文,向报文所对应的出端口发送报文。
[0004]然而在端口汇聚trunk连接模式下,调度器的输出端会连接多条子链路或子端口,调度器接收的各个报文会根据一定规则,可以从不同的子链路或子端口的物理出端口输出。也就是说,所述调度器组成的报文队列中报文对应的物理出端口可以是不同的。如果在调度器的调度过程中,处在队列头的报文所对应的物理出端口出现反压,或者说出现无法输出报文的情况时,根据带宽调度规则,将不会为出现反压情况的物理出端口调度带宽,由此所述调度器将无法获得针对该处在队列头的报文的带宽调度结果,而且在所述调度器获取所述带宽调度结果之前,所述调度器也无法将该处在队列头的报文从该报文队列中输出。那么处于该报文队列的队列头后的其他报文即使对应的物理出端口没有反压,也不能从所述调度器输出。这种由于队列头报文无法出队列,导致所述调度器停止发送报文的现象一般叫做反压头阻现象。这种反压头阻现象会大大影响系统的带宽利用率。

【发明内容】

[0005]为了解决上述技术问题,本发明实施例提供了一种报文转发方法和装置,使得第一调度器可以不用等待带宽调度结果就将报文发向对应的物理出端口,这样所述第一调度器所连接的多个物理出端口中即使有物理出端口出现反压,也不会让所述第一调度器产生头阻反压的现象。
[0006]第一方面,本发明实施例提供了一种报文转发方法,包括:
[0007]第一调度器接收目标报文,所述目标报文包括报文长度、队列标识和出端口信息;
[0008]所述第一调度器向所述出端口信息对应的目的物理出端口发送所述目标报文,并根据所述队列标识,将所述队列标识对应的虚拟队列的队列长度增加所述报文长度,所述队列长度用于表示所述第一调度器发送具有所述队列标识的报文所需的带宽总量;
[0009]所述第一调度器向第二调度器发送更新信息,所述更新信息包括所述虚拟队列的队列长度增加所述报文长度;
[0010]所述第一调度器根据所述第二调度器对应所述更新信息发送的带宽调度结果,将所述虚拟队列的队列长度减少所述报文长度。
[0011]在第一方面的第一种可能的实现方式中,还包括:
[0012]端口控制器预先建立所述目的物理出端口的出端口信息和时隙之间的关联关系,所述端口控制器与所述物理出端口相连。
[0013]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
[0014]所述端口控制器获取所述第一调度器发送的所述目标报文;
[0015]所述端口控制器根据所述目标报文的队列标识和报文长度,确定输出所述目标报文的目的时隙,将所述目标报文加入与所述目的时隙对应报文队列。
[0016]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
[0017]所述端口控制器获取针对所述更新信息为所述目的物理出端口调度的带宽,所述为所述目的物理出端口调度的带宽为逻辑端口根据所述带宽调度结果为所述目的物理出端口调度的带宽;
[0018]所述端口控制器根据所述关联关系以及所述目的物理出端口的可用带宽,在所述目的时隙从所述报文队列中提取所述目标报文,通过所述目的时隙对应的所述目的物理出端口输出。
[0019]结合第一方面或者第一方面的第一种或第二种或第三种可能的实现方式,在第四种可能的实现方式中,在所述第一调度器向所述出端口信息对应的物理出端口发送所述目标报文之前,还包括:
[0020]所述第一调度器通过丢弃计算判断是否丢弃所述目标报文;
[0021]当判断结果为不丢弃所述目标报文,所述第一调度器执行所述向所述出端口信息对应的物理出端口发送所述目标报文。
[0022]第二方面,本发明实施例提供了一种报文转发装置,包括:
[0023]接收单元,用于接收目标报文,所述目标报文包括报文长度、队列标识和出端口信息;
[0024]第一发送单元,用于向所述出端口信息对应的目的物理出端口发送所述目标报文,并根据所述队列标识,将所述队列标识对应的虚拟队列的队列长度增加所述报文长度,所述队列长度用于表示所述第一调度器发送具有所述队列标识的报文所需的带宽总量;
[0025]第二发送单元,用于向第二调度器发送更新信息,所述更新信息包括所述虚拟队列的队列长度增加所述报文长度;
[0026]处理单元,用于根据所述第二调度器对应所述更新信息发送的带宽调度结果,将所述虚拟队列的队列长度减少所述报文长度。
[0027]在第二方面的第一种可能的实现方式中,还包括:
[0028]建立单元,用于预先建立所述目的物理出端口的出端口信息和时隙之间的关联关系,所述端口控制器与所述物理出端口相连。
[0029]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
[0030]第一获取单元,用于获取所述第一调度器发送的所述目标报文;
[0031]入队单元,用于根据所述目标报文的队列标识和报文长度,确定输出所述目标报文的目的时隙,将所述目标报文加入与所述目的时隙对应报文队列。
[0032]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
[0033]第二获取单元,用于获取针对所述更新信息为所述目的物理出端口调度的带宽,所述为所述目的物理出端口调度的带宽为逻辑端口根据所述带宽调度结果为所述目的物理出端口调度的带宽;
[0034]输出单元,用于根据所述关联关系以及所述目的物理出端口的可用带宽,在所述目的时隙从所述报文队列中提取所述目标报文,通过所述目的时隙对应的所述目的物理出端口输出。
[0035]结合第二方面或者第二方面的第一种或第二种或第三种可能的实现方式,在第四种可能的实现方式中,在触发所述第一发送单元之前,还包括:
[0036]丢弃判断单元,用于通过丢弃计算判断是否丢弃所述目标报文;
[0037]当判断结果为不丢弃所述目标报文,触发所述第一发送单元。
[0038]由上述技术方案可以看出,所述第一调度器可以根据目标报文的出端口信息,先向对应所述出端口信息的物理出端口发送所述目标报文,并相应增加用于表示所述第一调度器发送具有所述队列标识的报文所需的带宽总量的所述虚拟队列队列长度,并当收到所述带宽调度结果时,将所述队列长度减少相应的长度,以为所述虚拟队列维护合理的可用带宽。当报文到达所述第一调度器时,所述第一调度器可以不用等待带宽调度结果就可以将报文发送到对应的物理出端口,由与所述物理出端口对应的端口控制器判断所述目标报文的输出时机。这样即使目标报文所对应的目的物理出端口出现反压,也不会影响所述第一调度器向所述目的物理出端口发送所述目标报文,也不会影响其他报文从所述第一调度器的输出。
【附图说明】
[0039]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0040]图1为本发明实施例提供的一种报文转发方法的方法流程图;
[0041]图2为本发明实施例提供的一种端口控制器的时隙链表结构示意图;
[0042]图3为本发明实施例提供的一种报文入队方法的方法流程图;
[0043]图4为本发明实施例提供的一种报文输出方法的方法流程图;
[0044]图5为本发明实施例提供的一种物理出端口反压示意图;
[0045]图6为本发明实施例提供的一种报文转发装置的装置结构图;
[0046]图7为本发明实施例提供的一种报文转发装置的装置结构图;
[0047]图8为本发明实施例提供的一种端口控制器的装置结构图;
[0048]图9为本发明实施例提供的一种端口控制器的装置结构图;
[0049]图10为本发明实施例提供的一种第一调度器的硬件结构示意图。
【具体实施方式】
[0050]为了有效进行数据传输,处于传输链路上的调度器需要为传输链路或者子链路/子通道合理的调度带宽。现有技术中,调度器接收到报文,将接收到报文按照一定的规则组成报文队列,然后依次处理该报文队列中的报文,其中包括确定报文合理的出队时间。所述调度器在没有获取对应该报文的带宽调度结果之前,无法确定出该报文的合理出队时间,所以无法将该报文向对应的物理出端口发出。也就是说,在完成带宽调度之前,该报文一直无法从所在报文队列中出队。当所述调度器处于trunk连接模式下时,调度器的输出端会连接多条子链路或子端口,所述调度器组成的报文队列中报文对应的物理出端口可以是不同的。在所述调度器所组成的报文队列中
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1