转发报文的方法及装置与流程

文档序号:17125611发布日期:2019-03-16 00:23阅读:166来源:国知局
转发报文的方法及装置与流程

本申请涉及通信技术领域,特别涉及一种转发报文的方法及装置。



背景技术:

当前,诸如互联网协议(internetprotocol,ip)路由器、多协议标签交换(multipleprotocollabelswitching,mpls)交换机以及以太网交换机等分组转发设备在接收到报文时,均需要根据报文中携带的转发信息进行查表,以此来确定报文的出端口,其中,该转发信息可以为目的ip地址、媒体访问控制(mediaaccesscontrol,mac)地址或mpls标签等。而分组转发设备对所有报文进行逐报文查表和转发的能力主要体现为单位时间内的分组处理数量(packetpersecond)。随着当前网络带宽需求和吞吐量需求的不断提升,提高单位时间内分组转发设备的分组处理能力已经成为了分组转发设备面临的重要挑战。另一方面,当分组转发设备接收到报文,对所有报文进行逐报文查表和转发时,报文需要排队等待查表和转发服务,这样,就使得报文的转发延迟受到查表和排队等具有不确定性耗时的步骤的影响。

相关技术中,分组转发设备可以作为发送端设备,也可以作为接收端设备。为了提高单位时间内分组转发设备的分组处理能力,在第一种方法中,发送端设备可以将属于同一业务流的连续的多个报文通过特殊设计的包间隙连接成为一个突发数据单元。之后,发送端设备可以在该突发数据单元的最前面添加以太网格式的突发数据单元头,并将增加了突发数据单元头的突发数据单元发送给接收端设备。当接收端设备接收到该突发数据单元之后,对该突发数据单元的突发数据单元头进行解析,并根据突发数据单元的突发数据单元头中的转发信息进行查表转发,一定程度上减少了查表次数,降低了对系统的需求,提升了转发速率。

在第二种方法中,可以将分组转发设备的物理端口的带宽划分成多个时隙,每个时隙的带宽是固定的。其中,对于某个业务流,分组转发设备可以根据该业务流的带宽将一个或者多个时隙形成一个刚性管道。当接收到该业务流的报文时,即可以通过该刚性管道发送该业务流的报文。

然而,当采用上述第一种方法构造和发送突发数据单元时,发送端设备需要缓存属于同一业务的连续多个报文,之后,才能根据缓存的多个报文生成突发数据单元头,从而组成突发数据单元并进行发送。这样,对于发送端设备而言,即需要具有较大的存储空间来缓存突发数据单元。设备对突发数据单元进行逐个转发的时候,设备需要将大颗粒的突发数据单元进行缓存排队,等待转发处理,实际上将分组处理压力转化成了对分组转发设备的缓存压力,大粒度的突发数据单元缓存排队,加剧了业务数据的排队延迟以及增加了延迟的不确定性。

当采用上述第二种方法将物理端口的带宽划分为多个时隙,通过多个时隙组成的刚性管道承载一个业务流时,一方面,由于刚性管道的带宽是固定,因此,对业务流的带宽的适应性差。另一方面,由于一条业务流对应一个刚性管道,业务流的数量和刚性管道的数量是一致的,这将导致作为核心节点的分组转发设备中的刚性管道交叉连接数量庞大,分组转发设备难以应付,网络面临扩展性瓶颈。



技术实现要素:

为了解决现有技术的缓存突发数据单元对分组转发设备造成的缓存压力以及由此引起的排队延迟增加的问题,以及现有技术中刚性管道对业务流的带宽适应性差和刚性管道交叉连接数量庞大的问题,本申请提供了一种转发报文的方法及装置。所述技术方案如下:

第一方面,提供了一种转发报文的方法,所述方法包括:

判断当前待发送的目标报文是突发序列的首报文还是跟随报文;

当所述目标报文为所述突发序列的跟随报文时,获取用于发送所述突发序列的出端口的端口信息;

其中,所述出端口的端口信息是在发送所述突发序列的首报文时确定并存储的,所述突发序列是指由属于同一业务流的多个报文组成的序列;

通过获取的端口信息所对应的出端口发送所述目标报文。

在本发明实施例中,可以判断目标报文为突发序列的跟随报文还是首报文,如果该目标报文为突发序列的跟随报文,则通过该突发序列的出端口来发送该跟随报文,由于该突发序列的出端口是在发送该突发序列的首报文时确定的,因此,当发送该目标报文时,即可以直接根据该突发序列的出端口发送该目标报文,不必再根据该目标报文携带的转发信息再次进行复杂的路由查表或者是其他转发查表动作,加快了转发速率,降低转发了延迟。

可选地,所述判断当前待发送的目标报文是突发序列的首报文还是跟随报文,包括:

当所述目标报文的目标字段携带第一特征值时,确定所述目标报文为所述突发序列的首报文,当所述目标报文的目标字段携带第二特征值时,确定所述目标报文为所述突发序列的跟随报文;或者,

当在所述目标报文之前接收到与所述目标报文相邻的帧间隙中携带第一特征值时,确定所述目标报文为所述突发序列的首报文,当在所述目标报文之前且与所述目标报文相邻的帧间隙中携带第二特征值时,确定所述目标报文为所述突发序列的跟随报文。

在本发明实施例中,可以通过在目标报文的目标字段携带不同的特征值来区分目标报文为突发序列的首报文还是跟随报文,这样,当确定目标报文是突发序列的跟随报文时,即可以直接通过该突发序列的出端口发送该跟随报文,规避了传统的查找路由表等查表操作,加快了转发速率,降低了转发延迟。

可选地,所述获取用于发送所述突发序列的出端口的端口信息,包括:

当所述目标报文还包括特征字段时,将所述特征字段作为所述突发序列的突发标识,并从存储的突发标识与端口信息之间的对应关系中获取所述突发标识对应的端口信息,所述特征字段用于唯一标识所述特征字段所在的报文所属的突发序列;

将获取的端口信息确定为用于发送所述突发序列的出端口的端口信息。

在本发明实施例中,在目标报文的目标字段携带特征值的同时,还可以在目标报文中携带特征字段,通过该特征字段可以区分该目标报文是属于哪一个突发序列的报文。这样,当该目标报文为跟随报文且携带特征字段时,就可以将该特征字段作为该目标报文所属突发序列的突发标识,从而根据该突发标识获取该突发序列的出端口的端口信息。也即是,通过在目标报文中携带特征字段可以实现一个端口同时支持多个突发序列的情况。

可选地,所述判断当前待发送的目标报文是突发序列的首报文还是跟随报文之后,还包括:

当所述目标报文为所述突发序列的首报文且所述目标报文还包括特征字段时,基于所述目标报文携带的转发信息确定所述目标报文的出端口;

将所述特征字段作为所述突发序列的突发标识,并将所述突发序列的突发标识和所述目标报文的出端口的端口信息对应存储在突发标识与端口信息之间的对应关系中。

在本发明实施例中,当该目标报文为突发序列的首报文,且该目标报文还包括特征字段时,可以根据该目标报文携带的转发信息确定目标报文的出端口。并且,可以将目标报文的特征字段作为该目标报文所属突发序列的突发标识,并将突发标识和出端口的端口信息进行对应存储,这样,后续到达的和该目标报文属于同一突发序列的跟随报文即可以直接根据突发标识查找对应的端口信息,并根据该端口信息所对应的出端口进行转发。

可选地,所述判断当前待发送的目标报文是突发序列的首报文还是跟随报文,包括:

当所述目标报文的目标字段携带第三特征值时,确定所述目标报文为所述突发序列的首报文,所述第三特征值用于指示所述目标报文为所述突发序列的首报文且指示对存储的突发标识与端口信息之间的对应关系进行更新;

基于所述目标报文携带的转发信息确定所述目标报文的出端口;

相应地,所述基于所述目标报文携带的转发信息确定所述目标报文的出端口之后,还包括:

当所述目标报文还包括特征字段时,将所述特征字段作为所述突发序列的突发标识,并将所述突发标识与端口信息之间的对应关系中所述突发标识所对应的端口信息替换为所述目标报文的出端口的端口信息。

在本发明实施例中,特征字段的位数有限,这也就意味着用该特征字段所表示的突发标识的个数也是有限的。在这种情况下,如果目标报文的目标字段携带第三特征值,则说明该目标报文携带的特征字段所代表的突发标识当前正在被其他突发序列占用,此时,可以根据第三特征值通过该目标报文的出端口的端口信息对当前存储的对应关系中与该目标报文携带的突发标识所对应的端口信息进行更新。其中,该第三特征值一方面可以用于指示该目标报文为突发序列的首报文,另一方面可以用于指示对存储的对应关系中相应地记录进行刷新。这样,可以实现有限数量的突发标识的复用,减少存储的对应关系中的记录数量,进而缩短查找出端口的时间,提高转发速率,降低转发延迟。

可选地,所述方法还包括:

当在预设时长内不存在携带所述突发序列的突发标识的报文时,删除所述突发标识与端口信息之间的对应关系中所述突发序列的突发标识与所述突发序列的出端口的端口信息所在的记录。

在本发明实施例中,通过对目标报文中的特定字段进行修改得到特征字段来代表突发标识,该突发标识的数量是有限的,因此,一个突发标识如果被一个突发序列长时间占用,那么,后续到来的其他突发序列的报文可能会没有突发标识可用。基于此,可以对预设时长内一直都没有接收到携带该突发标识的报文的突发标识进行删除,以此释放该突发标识,以便后续报文可以再次回收使用。

可选地,所述目标字段为前导码中的任一字段、或所述目标字段为帧开始定界符中的任一字段,或所述目标字段为帧校验字段中的任一字段。

可选地,所述特征字段与所述目标字段不是同一字段;其中,所述特征字段是对所述前导码中的任一字段进行修改得到、或所述特征字段是对所述帧开始定界符中的任一字段进行修改得到,或所述特征字段是对所述帧校验字段的任一字段进行修改得到。

第二方面,提供了一种转发报文的方法,所述方法包括:

基于当前待发送的目标报文携带的突发标识,获取所述目标报文所属突发序列的出端口的端口信息,所述突发序列是指由属于同一业务流的多个报文组成的序列;

通过获取的端口信息所对应的出端口发送所述目标报文。

在本发明实施例中,对于具有相同的转发端口的一系列报文可以为其配置相同的突发标识,分组转发设备可以直接根据报文携带的突发标识确定该目标报文的出端口。由于突发标识的数量是有限的,因此,分组转发设备根据该突发标识确定目标报文的出端口,可以有效的规避查找复杂的路由表或其他传统转发表的操作,提升了分组转发设备的吞吐效率,降低了转发延迟。

可选地,所述基于当前待发送的目标报文携带的突发标识,获取所述目标报文所属突发序列的出端口的端口信息,包括:

当所述目标报文包括特征字段时,将所述特征字段作为所述目标报文所属的突发序列的突发标识,并从存储的突发标识与端口信息之间的对应关系中获取所述突发标识对应的出端口的端口信息;或者,从存储的入端口信息、突发标识与出端口信息之间的对应关系中,获取与所述目标报文的入端口信息和所述突发标识相对应的端口信息;

将获取的端口信息所对应的出端口确定为所述突发序列的出端口的端口信息。

在本发明实施例中,分组转发设备中可以存储有突发标识和端口信息之间的对应关系,该对应关系对于分组转发设备的所有入端口上的报文而言是共享的。在另一种可能的实现方式中,分组转发设备中每个入端口上的报文对应有独立的对应关系,这样,不同入端口上的报文可以采用同一个突发标识,在此基础上,则可以通过目标报文的入端口和突发标识共同来确定该目标报文所属的突发序列的出端口。也即是,可以从入端口信息、突发标识和出端口信息之间的对应关系中,获取与该目标报文的入端口信息和突发标识相对应的端口信息。

第三方面,提供了一种转发报文的装置,所述装置具有实现上述第一方面中转发报文的方法行为的功能。所述装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的转发报文的方法。

第四方面,提供了一种转发报文的装置,所述装置具有实现上述第二方面中转发报文的方法行为的功能。所述装置包括至少一个模块,该至少一个模块用于实现上述第二方面所提供的转发报文的方法。

第五方面,提供了一种转发报文的装置,所述装置的结构中包括处理器和存储器,所述存储器用于存储支持转发报文的装置执行上述第一方面所提供的转发报文的方法的程序,以及存储用于实现上述第一方面所提供的转发报文的方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。

第六方面,提供了一种转发报文的装置,所述装置的结构中包括处理器和存储器,所述存储器用于存储支持转发报文的装置执行上述第二方面所提供的转发报文的方法的程序,以及存储用于实现上述第二方面所提供的转发报文的方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。

第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的转发报文的方法。

第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第二方面所述的转发报文的方法。

第九方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的转发报文的方法。

第十方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面所述的转发报文的方法。

上述第三方面、第五方面、第七方面和第九方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,上述第四方面、第六方面、第八方面和第十方面所获得的技术效果与第二方面中对应的技术手段获得的技术效果近似在这里不再赘述。

本申请提供的技术方案带来的有益效果是:在本发明实施例中,分组转发设备可以判断目标报文为突发序列的跟随报文还是首报文,如果该目标报文为突发序列的跟随报文,则通过该突发序列的出端口来发送该跟随报文,由于该突发序列的出端口的端口信息是在发送该突发序列的首报文时确定并存储的,因此,当发送该目标报文时,即可以直接根据该存储的端口信息确定对应的出端口来发送该目标报文,不必再根据该目标报文携带的转发信息再次进行复杂的路由查表或者是其他转发查表动作,加快了转发速率,降低转发了延迟。

附图说明

图1是本发明实施例提供的一种转发报文的方法的系统结构图;

图2是本发明实施例提供的一种网络设备的结构示意图;

图3a是本发明实施例提供的一种对报文进行标记的示意图;

图3b是本发明实施例示出的一种采用64/66b编码的编码块的示意图;

图3c是本发明实施例提供的一种转发报文的方法的流程图;

图4是本发明实施例提供的另一种转发报文的方法的流程图;

图5a是本发明实施例示出的一种多个突发序列共享一个逻辑端口的示意图;

图5b是本发明实施例示出的另一种多个突发序列共享一个逻辑端口的示意图;

图6是本发明实施例提供的一种转发报文的装置结构示意图;

图7是本发明实施例提供的另一种转发报文的装置结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在对本发明实施例进行详细的解释说明之前,先对本发明实施例涉及的系统架构予以介绍。图1是本发明实施例提供的一种转发报文的方法的系统架构图。如图1所示,该系统中包括用户设备101、分组转发设备102-103以及用户设备104。其中,用户设备101可以与分组转发设备102进行通信,分组转发设备102可以和分组转发设备103进行通信,分组转发设备103可以和用户设备104进行通信。

具体的,用户设备101可以向分组转发设备102发送报文,分组转发设备102在接收到报文之后,可以对该报文进行处理,并将处理之后的报文转发至分组转发设备103,分组转发设备103接收该报文,对该报文进行处理之后,将该报文转发至用户设备104。

需要说明的是,用户设备101和用户设备104可以为具有以太网接口的个人电脑、桌面机、服务器等。分组转发设备102和103可以为诸如ip路由器、mpls交换机、以太网交换机、以太网路由器或者同时集成有上述交换机或路由器功能的其他路由器等。

可理解的是,图1仅为示例性架构图,在实际应用中,除图1所示的用户设备101和104之外,该系统中可以包括其他的多个用户设备。当然,该系统中还可以包括除分组转发设备102和103之外的多个分组转发设备。具体的,本发明实施例不对该系统中用户设备的数量以及分组转发设备的数量做具体的限定。

另外,还需要说明的是,上述介绍的系统架构中的用户设备101即可以是下文实施例中的分组转发设备的上游设备,也即是,用户设备101可以对目标报文进行标记。当然,分组转发设备102也可以作为分组转发设备103的上游设备,也即是,分组转发设备102也可以对目标报文进行标记。或者,下述实施例中的分组转发设备可以图1所示的系统架构中的任一分组转发设备。

图2是本发明实施例提供的一种网络设备的结构示意图。图1中的分组转发设备可以通过图2所示的网络设备来实现。参见图2,该网络设备包括至少一个处理器201,通信总线202,存储器203以及至少一个通信接口204。

处理器201可以是一个网络处理器(networkprocessingunit,cpu),通用中央处理器(centralprocessingunit,cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本申请方案程序执行的集成电路。

通信总线202可包括一通路,在上述组件之间传送信息。

存储器203可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(randomaccessmemory,ram))或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器203可以是独立存在,通过通信总线202与处理器201相连接。存储器203也可以和处理器201集成在一起。

通信接口204,使用任何收发器一类的装置,用于与其它设备或通信网络通信,如以太网,无线接入网(ran),无线局域网(wirelesslocalareanetworks,wlan)等。

在具体实现中,作为一种实施例,处理器201可以包括一个或多个cpu,例如图2中所示的cpu0和cpu1。

在具体实现中,作为一种实施例,网络设备可以包括多个处理器,例如图2中所示的处理器201和处理器205。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

其中,存储器203用于存储执行本申请方案的程序代码,并由处理器201来控制执行。处理器201用于执行存储器203中存储的程序代码206。程序代码206中可以包括一个或多个软件模块。该网络设备可以通过处理器201以及存储器203中的程序代码206中的一个或多个软件模块,来实现下文图3a-3c、图4或图5a-5b所示的实施例中的转发报文的方法。

对本发明实施例涉及的系统架构进行介绍之后,接下来对本发明实施例提供的发送报文的方法进行详细的解释说明。

由于在本发明实施例提供的发送报文的方法中,分组转发设备是通过上游设备对报文的标记来识别报文并进行转发的,因此,在介绍分组转发设备如何根据标记信息对报文进行转发之前,先对分组转发设备的上游设备对报文进行标记的具体过程进行介绍。

在本发明实施例中,分组转发设备的上游设备可以对属于同一业务流的多个报文进行标记,并发送该标记后的多个报文,该多个报文即形成了一个突发序列,而通过上游设备的标记,分组转发设备可以对该突发序列中的首报文和跟随报文进行区分。其中,分组转发设备的上游设备可以为用户设备,以图1所示的系统架构为例,该上游设备可以为用户设备101。当然,也可以为能够与当前的分组转发设备进行通信的其他分组转发设备。当然,当前的分组转发设备通过标记信息确定待发送的目标报文的出端口之后,也可以再次通过下述方法对目标报文进行重新标记。也即是,在本发明实施例中,对报文进行标记既可以由发送报文的用户设备完成,也可以由转发报文的分组转发设备完成,并且,对报文的标记可以在报文的传输过程中只进行一次,也可以通过多个不同的设备重新标记多次。

需要说明的是,分组转发设备的上游设备可以对每个报文的目标字段进行标记,或者,可以对与每个报文相邻的且位于每个报文之前的帧间隙中的字段进行标记,此时,可以将这些帧间隙作为其后面且与其相邻的报文的扩展部分,以此区分突发序列的首报文和跟随报文。进一步地,分组转发设备的上游设备还可以将每个报文中的除目标字段之外的其他特定字段进行修改,得到特征字段,在这种情况下,目标字段用于指示报文是否为突发序列的报文以及报文是突发序列的首报文还是跟随报文,而特征字段用于进一步的指示报文具体所属的突发序列,以此来区分属于不同突发序列的报文,从而实现一个出端口支持发送多个突发序列的情况。

具体的,对于一个突发序列的首报文,分组转发设备的上游设备可以不对其进行标记,而是按照传统报文的处理方式对其进行处理,并将处理后的报文发送至当前的分组转发设备,在这种情况下,对该首报文之后的若干相邻的跟随报文,该上游设备可以通过在该跟随报文的目标字段中携带一个第二特征值,来通知接收该报文的分组转发设备该报文为跟随报文,此时,该首报文的目标字段的原始取值也可以看做是第一特征值。这里,首报文的识别依赖于与其相邻的跟随报文,为了便于说明,可以将该种标记方式称为隐式标记方式。当然,该上游设备也可以在首报文的目标字段中携带一个第一特征值或第三特征值,以显式标记方式明确标记该报文为首报文,而在后续的跟随报文对应的目标字段中携带另一个不同于首报文特征值的第二特征值,以表示后续的报文为跟随报文。此时,该跟随报文可以不与首报文相邻,也即是说,在这种情况下,该首报文以及首报文的跟随报文之间可以穿插其他的传统的独立报文。进一步地,如果多个突发序列中每个突发序列的首报文和跟随报文的目标字段的特征值都唯一(例如n个突发序列,分别使用不同的n个首报文目标字段特征值和n个跟随报文目标字段特征值,共2n个特征值)时,跟随报文可以不与首报文相邻,也即是说,在这种情况下,该首报文以及首报文的跟随报文之间可以穿插其他突发序列的报文或者是不属于任何突发序列的传统的独立报文。其中,目标字段可以为报文的前导码中任一字段,或者可以为帧开始定界符(startofframedelimiter,sfd)中的任一字段,或者可以为帧校验字段中的任一字段。还需要说明的是,报文的前导码包括7个字节,帧开始定界符为一个字节。

例如,图3a是本发明实施例示例性的示出的一种报文标记示意图,如图3a所示,对于首报文001可以不做任何标记,而对于在该首报文001之后且与该首报文001相邻的跟随报文002,则可以在报文002的传统帧开始定界符所在字段携带一个新的不同于传统帧开始定界符值的特征值,即将报文002的帧开始定界符所在字段的值修改为一个新的不同于传统帧开始定界符值的特征值,在这种情况下,报文002的传统帧开始定界符所在字段即为目标字段。此时可以将修改得到的新的不同于帧开始定界符值的特征值称为突发跟随报文的帧开始定界符,以此来标记该报文002为与其相邻的前一个报文001的跟随报文,而与报文002相邻的之后的多个跟随报文将与报文001和002组成一个突发序列,其中,报文001为该突发序列的首报文,而报文002以及与其相邻的多个跟随报文均是该突发序列的跟随报文。也即是,跟随报文与首报文在目标字段有明显的不同特征值标记区分。具体的,在报文002的帧开始定界符所在字段中携带一个新的特征值的具体做法可以是将目标字段中的传统帧开始定界符值中某几个比特位进行修改,也可以是将多个比特位进行修改。例如,未经修改的以太网报文的传统帧开始定界符的二进制值为0b10101011,如图3a上图所示,将传统帧开始定界符值的最后四个比特位的取反,修改为0b10100100。或者,如图3a中下图所示,可以将传统帧开始定界符值的所有比特位进行取反,得到修改后的跟随报文的帧开始定界符值为二进制0b01010100。

上述图3a仅是本发明实施例给出的一种标记的示例,在实际应用中,不仅可以通过上述方法对报文的传统帧开始定界符所在字段的传统帧开始定界符值进行修改,还可以通过上述方法将前导码包括的7个字节中的字节作为目标字段进行修改,或者还可以对报文前的帧间隙字段进行修改,以实现对报文是否属于突发序列的标记,以及具体的是跟随报文或者首报文的标记。

进一步地,为了在同一端口内区分报文属于n个不同的突发序列中的哪一个突发序列,同时避免需要使用2n个目标字段特征值,该上游设备在使用一个新的目标字段特征值对报文的目标字段进行首报文标记,并采用另一个不同的新的目标字段特征值对报文的目标字段进行跟随报文标记的同时,还可以约定将报文中除目标字段之外的其他特定字段作为特征字段,并将该特征字段用于携带报文所属的n个突发序列之一的突发标识(burstidentification,burstid),以此来区分属于不同突发序列的报文,其中,该特征字段可以是报文中不携带具体信息,只携带有限的标记信息的字段,例如可以将前导码的后六个字节中的任一字节的全部或者部分修改为携带有突发标识burstid的特征字段。具体的,突发标识burstid为一个字节时,可以区分n=256个突发序列;突发标识burstid为半个字节时,可以区分n=16个突发序列。这样,首报文将由[首报文目标字段特征值,burstid]两个特征值来标识该报文为首报文以及该首报文具体属于n个突发序列的哪一个突发序列,跟随报文将由[跟随报文目标字段特征值,burstid]两个特征值来标识该报文为跟随报文以及该报文具体属于n个突发序列中的哪一个突发序列。需要说明的是,由于每个报文需要通过两个特征值来标识该报文是首报文还是跟随报文以及该报文属于哪一个突发序列,因此,携带这两个特征值的目标字段和特征字段将是不同的字段,并且,为了与传统报文进行区域,[目标字段,特征字段]的值需要与传统报文中[目标字段,特征字段]的原始值形成区分。例如,如果目标字段为传统帧开始定界符字段,则该特征字段可以是由报文的前导码后6个字节48比特中的任一部分或者全部构成的字段。或者,[目标字段,特征字段]可以是报文的前导码后6个字节48比特和传统帧定界符字段(1个字节8个比特)共56个比特的部分或者全部,如果目标字段选定为非传统帧开始定界符所在字段,则传统帧开始定界符所在字段的部分或者全部字段可以作为特征字段。

例如,对于某一突发序列的跟随报文,上游设备可以按照约定对该报文的前导码包括的7个字节中的最后一个字节进行跟随报文标记,以指示该报文为跟随报文,与此同时,可以将该报文中的帧开始定界符进行修改,得到特征字段,将该特征字段作为突发标识,以指示该报文所属的突发序列。或者,可以按照约定将报文的帧开始定界符修改为突发跟随报文帧开始定界符,以指示该报文为跟随报文,而将前导码包括的7个字节中的最后一个字节进行修改,得到特征字段,将该特征字段作为突发标识,以指示该报文所属的突发序列。

需要说明的是,当通过特征字段来区分报文所属的突发序列时,该特征字段包含的比特位数限制了该上游设备中用于发送报文的某一个出端口所支持突发序列的个数。例如,约定特征字段包含4个比特位,那么,4个比特位的特征字段可以表示16个不同的值,0~15,这16个不同的值最多可以作为16个同时有效的不同的突发序列的标识。也即是,通过该16个突发标识,可以支持16个并行的突发序列。上游设备和其下游的分组设备需要约定和分配好采用16个突发标识的部分或者全部来标记至多16个同时有效的突发序列。如果该16个突发标识分配完之后,还存在新的突发序列需要在上下游设备之间约定突发标记时,在这种情况下,上下游设备只能将之前分配给其他突发序列的16个突发标识中的某一个回收再分配给这个新的突发序列。

其中,将突发表示进行回收和再分配的一种实现方式可以是在该新的突发序列的首报文中的特征字段上携带需要请求回收的突发标识,以使接收该首报文的下游分组转发设备基于该新的突发序列的首报文确定对该新的突发序列的转发处理和出端口,并且,后续该突发标识将由该新的突发序列使用。或者,上游设备可以等待上述16个突发标识所对应的某个突发序列发送完毕并释放其突发标识之后,再将释放的突发标识分配给新的突发序列。在这种情况下,可以引入超时机制,也即是,当超过预设时间t在上下游两设备之间均无该突发标识所对应的突发序列的报文传输后,即回收该突发标识。最后需要澄清的是,突发标识的分配还可以在上下游设备之间静态配置约定,长久有效直至重新配置约定,此时不使用超时机制,也不使用首报文更新突发标识的对应突发的转发处理和出端口。

进一步地,为了保证突发标识的可靠性,上游设备可以将特征字段中的指定数量的比特位作为校验信息位。例如,对于一个8比特的特征字段,可以将前7比特作为突发标识,而将最后一个比特作为校验信息位。具体的,该校验信息位的取值可以通过奇偶校验的方法得到,例如,前7个比特位中取值为1的个数为奇数时,最后一个比特位取1,反之,如果为偶数,则最后一个比特位取0。再例如,对于一个8比特的特征字段,可以将前4个比特作为突发标识,而将后4个比特作为校验信息位。其中,后4个比特的校验信息位的取值可以通过crc-4循环冗余校验算式x4+x+1计算得到。而对于下游的分组转发设备而言,当对突发标识校验失败时,该报文将按照处理传统报文的方式进行处理,也即是,根据该报文携带的转发信息缓存排队,通过查路由表等转发表进行转发。

除上述几种对报文进行标记的方法之外,上游设备还可以在跟随报文的特征字段中携带链表指针的方式进行标记和区分,该指针用于指示与当前报文属于同一突发序列的上一报文之间间隔的其他报文数量。对于该种标记方式,下游的分组转发设备在接收到某一突发序列的首报文或者任一跟随报文时,可以根据该报文携带的指针确定该突发序列的下一跟随报文,进而通过确定下一跟随报文出端口以发送所述下一跟随报文。此外还可以在同一端口中所有的属于突发序列的报文的特征字段中携带一个当前报文序号,一个上一报文序号,一个下一报文序列。序号在随突发序列的报文的计数递增加1。此时具体的一个突发序列的系列报文即可以由一系列[上一报文序号,当前报文序号,下一报文序号]的链表指针连接关系确定。例如:属于多个突发序列的多个报文,序列号为…,4,5,6,7,8,9,10,…,其中报文4,7,10,属于同一突发序列,其特征字段即可以分别为[null,4,7],[4,7,10],[7,10,null],4号报文的上一报文序号为null=0,即4号报文无上一报文,该4号报文为首报文。7号报文的特征字段分别明确其所属突发序列的上一报文为4号报文,下一报文为10号报文。10号报文[7,10,null]的下一报文为null=0,即10号报文无下一报文,突发序列结束。5,6,8,9,…为其他突发序列的报文,例如当这四个报文属于同一突发序列时,可能的标记可以为[2,5,6],[5,6,8],[6,8,9],[8,9,12]。若每个序号定义为一个字节,则特征字段需要三个字节。序号从0~255周而复始。其他标记手段这里不一一穷举。

最后需要重点阐明的是,由于在高速的以太网接口中,以太网报文的传输广泛采用64/66b编码块,其中,灵活以太网(flexibleethernet,flexe)技术更是基于64/66b编码块将物理接口时分复用(timedivisionmultiplexing,tdm)时分划分了若干个具有固定带宽的逻辑端口。进一步地通过对这些具有固定带宽的逻辑端口引入交叉连接技术,可以获得一个跨越多个网络节点的逻辑端口。因此,报文以编码块的形式被处理的时候,上游设备还可以通过编码块进行上述各种形式的标记,以此来减少分组转发设备的编码解码处理,有效降低复杂度和转发延迟。也即是,上游设备在报文的前导码、帧开始定界符或者其前面的帧间隙等处进行标记(包括上述的携带相应地特征值或者是指针等各种标记方式),在表现形式上既可以是如上所述的直接体现在对目标字段和特征字段的标记上,当然,也可以体现为在采用64/66b编码的端口上时,直接在前导码、帧开始定界符或者帧间隙所对应的编码块中的目标字段和/或特征字段进行标记,下游转发设备可以直接在编码块上进行识别。即基于解码后的字节比特字段进行标识、基于码块内的字段进行标识是等价的,包括64/66b码块或者其他码块,如8/10b,128/130b、512/514b等不同编码形式的n/mb码块,其中,n表示每个码块中的净荷比特数,m表示每个码块的总比特数,n、m为正整数,m>n。具体的采用何种编码形式的码块,本发明不加以限定。

具体的,如图3b所示,是本发明实施例提供的一种采用64/66b编码的编码块的示意图。图3b的左图中示出的是字节形式的报文,其中,前面7个字节为前导码,前导码之后的为帧开始定界符,再之后的为报文的有效数据信息,如目的地址、源地址、报文内容等信息。图中dn用于表示一个字节。图3b的右图中是对应的64/66b编码块。如图3b右图中的第一行所示,在进行64/66b编码时,前导码的第一个字节在被替换为用于表征开始的/s/字符后,每8个字节为一组进行64/66b编码,每8个字节被编码为一个编码块,一共得到若干个64/66b编码块,7字节前导码和1字节帧开始定界符共8字节对应一个编码块。除了该编码块的两比特同步头为二进制0b10,首字节编码块类型为二进制0b00011110(十六进制0x78)不应该被修改外,上游设备可以在上述前导码所对应后6个字节(图中用十六进制0x55表示)共48比特中的任一部分或者是第7个字节,即帧开始定界符所对应的字节(8比特,图中用十六进制0x5d表示)进行突发标记,以标识该报文是否为突发序列的首报文或跟随报文。具体地,上游设备和下游设备可以约定在帧开始定界符所在编码块的最后一字节,即原帧开始定界符字段进行突发标记,以标识该报文为突发序列的首报文或者是跟随报文,而在同一码块中,前导码的最后一个字节字段中携带突发标识,以区分不同突发序列的报文。或者,上游设备可以和下游设备约定在前导码所对应编码块的倒数第二字节,即前导码的最后一个字节字段进行突发标识,以标识该报文为跟随报文或者是首报文,而在原帧开始定界符所在字段对应的编码块的最后一字节中携带突发标识,以区分不同突发序列的报文。

需要说明的是,上述仅是本发明实施例给出的一种示例,并不构成对本发明实施例的限定,在实际应用中,不仅可以在前导码和帧开始定界符所对应的编码块上进行标记,还可以在帧间隙所对应的编码块上进行标记,具体的标记方法可以参考上述介绍的方法,原理是相同的,本发明实施例不再赘述。

可选地,与该上游设备相邻的下一个分组转发设备可以通过与该上游设备进行通信协商来约定上游设备具体采用什么样的方式对报文进行标记,因此,当上游设备将标记后的报文发送至下一个分组转发设备时,下一个分组转发设备可以按照协商约定的标记方式对接收到的报文进行识别并和转发。

基于上述描述,由于分组转发设备的上游设备可以对属于同一业务流的多个报文进行标记,因此,下游的分组转发设备对于当前待发送的目标报文,下游的分组转发设备可以通过图3c所示的实施例中提供的发送报文的方法对该目标报文进行转发。也即是,当通过上述所介绍的标记方式对报文的目标字段和特征字段进行标记之后,接下来可以通过图3c所述的实施例中介绍的相关步骤来识别和转发该标记后的报文。

图3c是本发明实施例提供的一种转发报文的方法的流程图,该方法可以用于上述图1所示的分组转发设备中,参见图3c,该方法包括:

步骤301:判断当前待发送的目标报文是突发序列的首报文还是跟随报文。

基于前述描述,对于突发序列的首报文和跟随报文的区分是通过对目标字段或者是帧间隙进行标记来实现的,并且,对于携带有重复使用的突发标识的首报文,该首报文的目标字段的标记方式不同于其他的首报文。因此,针对上述几种情况,分组转发设备可以通过不同的方式来判断该目标报文是突发序列的首报文还是跟随报文。其中,突发序列是指由属于同一业务流的多个报文组成的序列。该多个报文具有相同的网络转发行为。

在一种可选地实现方式中,当该目标报文的目标字段携带第一特征值时,则确定该目标报文为突发序列的首报文,当该目标报文的目标字段携带第二特征值时,则确定该目标报文为突发序列的跟随报文。其中,第一特征值可以是该目标字段的原始取值,也可以是协商好的专门用于指示报文为首报文的一个特征值。第二特征值可以是与目标字段的原始取值和第一特征值不同的任意值,当然,也可以是协商好的专门用于指示报文为跟随报文的一个特征值。具体的,第一特征值和第二特征值可以是什么样的特征值可以参考前述对报文的目标字段进行标记的相关介绍,本发明实施例不再赘述。

需要说明的是,如果上游设备用于发送该目标报文的出端口仅支持一个突发序列时,该目标报文中将仅携带第一特征值或第二特征值,以此来区分当前的这个突发序列的首报文和跟随报文。如果用于发送该目标报文的出端口支持多个突发序列的发送时,此时,该目标报文中不仅会携带有第一特征值或者是第二特征值,还可以携带有特征字段,该特征字段是对该目标报文中除目标字段之外的字段进行修改得到的,该特征字段即为该目标报文所属的突发序列的突发标识。

在另一种可选地实现方式中,由于某些突发序列的首报文可能在上游设备处分配到的是之前使用过还未释放的突发标识,此时,需要对该类首报文和其他的首报文进行区分,此时,该首报文将携带第三特征值和特征字段。在这种情况下,当分组转发设备确定该目标报文的目标字段携带第三特征值,或该目标报文之前的帧间隙中携带第三特征值时,也可以将该目标报文确定为突发序列的首报文。

在另一种可选地实现方式中,上游设备可能在该目标报文的帧间隙之前进行了标记。在这种情况下,当在该目标报文之前接收到的与该目标报文相邻的帧间隙中携带第一特征值时,确定该目标报文为突发序列的首报文,当在该目标报文之前且与该目标报文相邻的帧间隙中携带第二特征值时,则确定该目标报文为突发序列的跟随报文。

在另一种可选地实现方式中,上游设备可能通过该目标字段和特征字段在编码块中对应的编码字节来对报文进行标记,也即是,可以通过目标字段在编码块中对应的编码字节来携带该第一特征值或第二特征值或第三特征值,并且,通过特征字段在编码块中对应的编码字节来携带突发标识。其中,第一特征值和第三特征值均是用于标识报文为首报文的特征值,而第二特征值则是用于标识报文为跟随报文的特征值。具体可参考前述报文标记过程中的相关介绍,本发明实施例也不再赘述。在这种情况下,分组转发设备可以检测该64/66b编码块上是否存在相应地标记,来确定该目标报文是跟随报文还是首报文。

在另一种可选地实现方式中,当目标报文中包括特征字段,且该特征字段中包括校验信息位时,分组转发设备可以对该校验信息位的取值进行验证,如果验证通过,则可以根据该目标报文的目标字段携带的特征值来判断该目标报文是突发序列的首报文还是跟随报文。如果验证未通过,则按照传统的报文处理方式对该目标报文进行查路由表转发。

当分组转发设备确定目标报文为首报文时,可以通过步骤302发送该目标报文;当确定目标报文为跟随报文时,则可以通过步骤303和304发送该目标报文。

步骤302:当该目标报文为首报文时,基于目标报文携带的转发信息确定目标报文的出端口,并通过确定的出端口发送该目标报文。

当该目标报文的目标字段携带有第一特征值或者第三特征值、或者目标报文之前的帧间隙中携带第一特征值或第三特征值时,分组转发设备可以根据该目标报文携带的转发信息确定用于发送该目标报文的出端口,并通过确定的出端口发送该目标报文。其中,该转发信息可以是目标报文中携带的转发地址或标签之类的信息,例如,该转发信息可以为目的ip地址、mac地址、以太网报文中的源地址和目的地址或者mpls标签等。具体的,分组转发设备可以根据目标报文携带的转发信息,按照处理传统报文的方式,通过查找路由表或mpls转发表等来确定该目标报文的出端口。

进一步地,当分组转发设备确定目标报文的出端口之后,由于该目标报文是首报文,因此,为了后续需要发送的与该首报文属于同一突发序列的报文能够不必查找路由表即可以进行转发,分组转发设备可以将该目标报文的出端口的端口信息进行存储。

其中,如果目标报文的目标字段携带有第一特征值而该目标报文不包括特征字段,此时,则说明用于接收该目标报文的入端口只支持一个突发序列。在这种情况下,分组转发设备可以存储该目标报文的出端口的端口信息,以便在该目标报文之后紧跟着接收到的跟随报文可以通过该目标报文的出端口直接进行转发。

如果目标报文的目标字段携带第一特征值,且该目标报文还包括特征字段,则说明用于接收该目标报文的入端口可以支持多个突发序列。在这种情况下,如果上游设备在突发标识够用的情况下,对于其所有出端口发送的报文分配的突发标识都是不重复的,也即是,上游设备中突发标识对于所有出端口而言是共享的,那么,分组转发设备可以将该目标报文的特征字段作为该目标报文所属突发序列的突发标识,将该目标报文的出端口作为其所属突发序列的出端口,然后将该突发标识和该出端口的端口信息对应存储在突发标识与端口信息之间的对应关系中。在这种情况下,该对应关系对于该分组转发设备的所有入端口是共享的,也即是,无论待发送的报文是从哪个入端口上接收的,均可以直接根据报文中的特征字段查找该对应关系,以获取对应的端口信息。

例如,上游设备一共有16个突发标识,该上游设备的所有出端口共享这16个突发标识,这样,上游设备为出端口1上的某个突发序列分配突发标识1,在16个突发标识未被分配完之前,该突发标识1将不会再被分配给其他的突发序列。在这种情况下,分组转发设备在接收到这些突发序列的首报文时,由于各个突发序列的突发标识并不重复,也就不需要存储各个突发序列的入端口,而是只通过存储突发标识和对应的出端口即可以区分各个突发序列。

可选地,如果上游设备对于每个出端口,都独立的分配突发标识,例如,每个出端口都可以有16个突发标识供其使用,那么,由于分组转发设备从不同的入端口上接收到的报文可能携带有相同的突发标识,因此,分组转发设备可以针对每个入端口建立一个独立的对应关系。也即是,分组转发设备可以将目标报文的特征字段作为该目标报文所属突发序列的突发标识,将该目标报文的出端口作为其所属突发序列的出端口,然后将用于接收该目标报文的入端口的端口信息、该突发标识和该出端口的端口信息对应存储在入端口信息、突发标识与出端口信息之间的对应关系中。这样,在获取某个待发送的报文的转发出端口时,该待发送的报文是从哪个入端口上接收的,就对应的查找该入端口信息对应的突发标识和出端口信息。

如果目标报文的目标字段携带第三特征值且目标报文包括特征字段,此时,该目标报文的特征字段可以作为该目标报文所属突发序列的突发标识。而由目标报文的第三特征值可知,该突发标识是在该目标报文之前的其他突发序列正在使用的突发标识,也即是,分组转发设备当前存储的对应关系中将包括该突发标识和其对应的端口信息,此时该突发标识所对应的端口信息就是上述正在使用该突发标识的其他突发序列的出端口的端口信息。在这种情况下,分组转发设备可以根据该第三特征值,通过该目标报文的出端口的端口信息对当前存储的该突发标识所对应的端口信息进行更新。具体的,分组转发设备可以首先根据该目标报文携带的转发信息确定该目标报文的出端口,将该目标报文的出端口作为该目标报文所属的突发序列的出端口,然后,分组转发设备可以将存储的突发标识和端口信息之间的对应关系中该突发标识对应的端口信息替换为该目标报文的出端口的端口信息。当然,如果存储的对应关系是入端口信息、突发标识和出端口信息之间的对应关系,那么,分组转发设备则可以将存储的入端口信息、突发标识和出端口信息之间的对应关系中与该目标报文的入端口信息和突发标识对应的出端口信息替换为该目标报文的出端口的端口信息。

需要说明的是,由上述描述可知,在本步骤中,第一特征值和第三特征值均可以用于指示目标报文为首报文,除此之外,第一特征值还可以用于指示分组转发设备创建该突发序列的突发标识和端口信息之间的对应记录,而第三特征值则可以用于指示分组转发设备对已有的该突发标识和端口信息的记录中的端口信息进行更新。

步骤303:当该目标报文为突发序列的跟随报文时,获取用于发送该突发序列的出端口的端口信息,并通过获取的端口信息所对应的出端口发送该目标报文。

其中,当该目标报文的目标字段携带第二特征值或该目标报文之前的帧间隙中携带第二特征值,而该目标报文不包括特征字段时,说明用于接收该目标报文的入端口只支持一个突发序列。在这种情况下,分组转发设备可以获取该入端口上最近一次接收到的首报文的出端口的端口信息,并将该首报文的出端口作为该首报文和该目标报文所属突发序列的出端口。或者,分组转发设备可以直接通过该入端口上接收到的前一个报文的出端口来发送该目标报文。

在本发明实施例中,当一个端口支持一个突发序列时,由于分组转发设备可以将跟随报文跟着前一个报文或者最近的一个首报文进行转发,因此,分组转发设备就不必再缓存多个报文来构造突发头,可以更好的适应低延迟网络的需求。另一方面,在本发明实施例中,当一个端口只支持一个突发序列时,该突发序列可以随时被其他突发序列中断。例如,一个首报文之后跟随三个跟随报文,如果第三个跟随报文之后的报文是属于其他业务流的报文时,该报文即可以作为下一个突发序列的首报文,此时,当前的突发序列也就中断了。这样,也就避免了一个较长的突发序列长时间占用一个出端口进行发送的问题。并且,在本发明实施例中,如果分组转发设备不支持报文标记和识别时,该分组转发设备也可以将待发送的目标报文按照传统报文进行查路由表等方式进行处理,也即是,本发明实施例提供的方法还可以兼容网络中的老旧设备。

可选地,当该目标报文的目标字段携带第二特征值或该目标报文之前的帧间隙中携带第二特征值,且该目标报文还包括特征字段时,说明用于接收该目标报文的入端口支持多个突发序列。在这种情况下,分组转发设备可以将特征字段作为该目标报文所属突发序列的突发标识,并根据该突发标识获取用于发送该突发序列的出端口。

具体的,在一种可能的实现方式中,如果该分组转发设备中存储的是所有端口共享的突发标识和端口信息之间的对应关系,那么,该目标报文无论是从哪个入端口上接收的,分组转发设备在确定该目标报文包括特征字段时,都可以只根据该目标报文的特征字段,通过该对应关系查找该目标报文所属的突发序列的突发标识所对应的端口信息。也即是,分组转发设备可以直接从存储的突发标识和端口信息之间的对应关系中获取该突发标识对应的端口信息。其中,存储的突发标识和端口信息之间的对应关系是分组转发设备在接收到每个突发序列的首报文时,将首报文携带的特征字段以及首报文的出端口的端口信息进行存储得到的。

在另一种可能的实现方式中,如果分组转发设备中每个入端口均对应有一个独立的对应关系,那么,该目标报文从哪个入端口上接收的,分组转发设备在确定该目标报文包括特征字段之后,就可以通过该入端口查找该对应关系,并从该对应关系中查找该目标报文所属的突发序列的突发标识所对应的出端口的端口信息。也即是,在这种情况下,分组转发设备可以从存储的入端口信息、突发标识和出端口信息三者之间的对应关系中获取与该目标报文的入端口信息和突发标识相对应的出端口信息。其中,存储的入端口信息、突发标识和出端口信息三者之间的对应关系是分组转发设备在接收到多个突发序列的首报文时,将用于接收每个首报文的入端口的端口信息、每个首报文携带的突发标识和用于发送每个首报文的出端口的端口信息对应存储得到的。

当获取到用于发送该突发序列的出端口的端口信息之后,分组转发设备可以根据获取的端口信息所对应的出端口发送该目标报文。可选地,在通过获取的端口信息所对应的出端口发送该目标报文之前,分组转发设备还可以将该目标报文中携带的特征值和/或特征字段进行清除,然后重新标记,之后,再将重新标记的报文通过获取的出端口进行发送。在这种情况下,对于下一个分组转发设备而言,当前的分组转发设备即相当于前述的上游设备。具体的标记的方法则可以参考前述的对报文进行标记的方法。

步骤304:当在预设时长内不存在携带该突发序列的突发标识的报文时,删除突发标识与端口信息之间的对应关系中该突发序列的突发标识与该突发序列的出端口的端口信息所在的记录。

基于前述描述可知,通过对目标报文中的特定字段进行修改得到特征字段来代表突发标识,该突发标识的数量是有限的,因此,一个突发标识如果被一个突发序列长时间占用,那么,后续到来的其他突发序列的报文可能会没有突发标识可用。基于此,当目标报文为首报文且根据目标报文建立了对应关系之后,或者,当目标报文为跟随报文且通过存储的对应关系中的端口信息所对应的出端口发送了该目标报文之后,如果在预设时长内一直都没有与该目标报文属于同一突发序列的其他待发送报文,也就是说,一直都没有携带该突发序列的突发标识的其他待发送报文,那么,为了解除该突发序列对该突发标识的占用,以便后续需要突发标识的突发序列使用,分组转发设备可以删除突发标识与端口信息之间的对应关系中该突发序列的突发标识与该突发序列的出端口的端口信息所在的记录。

在本发明实施例中,分组转发设备可以判断目标报文为突发序列的跟随报文还是首报文,如果该目标报文为突发序列的跟随报文,则通过该突发序列的出端口来发送该跟随报文,由于该突发序列的出端口的端口信息是在发送该突发序列的首报文时确定并存储的,因此,当发送该目标报文时,即可以直接根据该存储的出端口信息发送该目标报文,不必再根据该目标报文携带的转发信息再次进行复杂的路由查表或者是其他转发查表动作,加快了转发速率,降低转发了延迟。

进一步地,在本发明实施例中,还可以通过在目标报文中携带突发标识来区分属于不同突发序列的报文,这样,对于一个端口,即可以实现同时支持多个突发序列的发送。在这种情况下,对于首报文,分组转发设备则可以根据首报文中的突发标识和首报文的出端口的端口信息建立突发标识和端口信息之间的对应关系,而对于跟随报文,则可以直接从该对应关系中获取对应的端口信息,并根据该端口信息所对应的出端口进行发送。由于突发标识的数量有限,这样,突发标识和端口信息之间的对应关系中的记录数量将远远小于传统的路由表或其他转发表的中的表项数量,也就是说,分组转发设备通过该对应关系查找跟随报文的出端口的操作,相较于根据跟随报文的转发信息查找路由表等转发表的操作,要更加简单便捷。这也就意味着,通过本发明实施例提供的方法可以有效的提升分组转发设备确定出端口的效率、吞吐效率,进而可以有效的降低转发延迟。

还需要说明的是,在相关技术中,通过将物理端口的带宽划分成若干个时隙也可以实现一个端口支持多个突发序列的情况,但是,由于划分的时隙的带宽是固定的,因此,当某个突发序列不能全部占用一个时隙时,该时隙剩余的带宽将会被浪费掉,而通过本申请提供的发送报文的方法发送报文时,通过突发标识的设置,可以使一个端口同时支持多个突发序列,同时,由于并没有固定时隙的划分,也就不存在上述带宽浪费的问题。也即是,通过本申请提供的发送报文的方法在降低转发延迟的同时还可以更好的适应不同业务的带宽需求。

上述实施例中,上游设备可以对报文进行标记以区分首报文和跟随报文,并可以在报文中携带特征字段作为报文所属突发序列的突发标识,以区分不同突发序列的报文。在这种情况下,下游的分组转发设备可以根据首报文的突发标识实时的建立对应关系。在另一种可能的实现方式中,可以在上游设备和分组转发设备中配置一个静态的突发标识和端口信息之间的对应关系表,分组转发设备可以根据该配置的突发标识和端口信息之间的对应关系,来确定携带有突发标识的目标报文的出端口。具体的,接下来将结合图4对该种实现方式进行介绍。

图4是本发明实施例提供的一种转发报文的方法的流程图,如图4所示,该方法可以用于图1所示的分组转发设备中,该方法包括如下步骤:

步骤401:基于当前待发送的目标报文携带的突发标识,获取目标报文所属突发序列的出端口的端口信息,突发序列是指由属于同一业务流的多个报文组成的序列。

在本发明实施例中,分组转发设备的上游设备会根据配置的突发标识和端口信息之间的对应关系,为该目标报文配置一个突发标识。分组转发设备可以基于该目标报文的突发标识,直接从存储的预先配置的突发标识和端口信息之间的对应关系中获取该突发标识对应的端口信息。或者,分组转发设备可以基于该目标报文的突发标识,从存储的预先配置的入端口信息、突发标识和出端口信息之间的对应关系中获取与该目标报文的入端口信息和突发标识对应的端口信息。

需要说明的是,在本发明实施例中,分组转发设备中可以配置有用于确定目标报文出端口的突发标识和端口信息之间的对应关系,当然,同时还可以配置有该分组转发设备的出端口的端口信息分别对应的突发标识。也就是说,分组转发设备首先可以根据接收到该目标报文时该目标报文上携带的突发标识确定该目标报文的出端口,之后,分组转发设备可以为每个出端口上的报文重新更换一个突发标识进行发送,这个更换的突发标识即是为该出端口预先配置的突发标识。

其中,该突发标识可以是将目标报文中的某个字段进行修改后得到的特征字段,例如,该特征字段可以是对目标报文的前导码中的任一字段进行修改得到、或该特征字段可以是对帧开始定界符中的任一字段进行修改得到,或特征字段可以是对帧校验字段的任一字段进行修改得到。

步骤402:通过获取的端口信息所对应的出端口发送该目标报文。

在本发明实施例中,对于具有相同的转发端口的一系列报文可以为其配置相同的突发标识,分组转发设备可以直接根据报文携带的突发标识确定该目标报文的出端口。由于突发标识的数量是有限的,因此,分组转发设备根据该突发标识确定目标报文的出端口,可以有效的规避查找复杂的路由表或其他传统转发表的操作,提升了分组转发设备的吞吐效率,降低了转发延迟。

需要说明的是,在本发明实施例中提到的端口可以是物理端口,也可以是逻辑端口。具体的,每个物理端口上可以支持至少一个突发序列的发送。结合图3c和图4所示的实施例可知,当每个物理端口上只支持一个突发序列的发送时,在进行报文标记的上游设备处,该上游设备可以在向下游的分组转发设备发送报文的物理出端口上对报文进行标记。而下游的分组转发设备可以在确定报文的转发出端口之后,在该转发出端口上对报文再次进行重新标记,以便该分组转发设备的下游分组转发设备按照约定进一步根据标记进行转发,直到最后一个分组转发设备在接收到该报文时,在转发时可以不再对报文进行标记,而是直接向用户设备交付传统形式的报文。

当每个物理端口上可以支持多个突发序列的发送时,可以引入突发标识。每个业务流的报文在不同的物理端口的上下游设备之间是两两约定和分配的,因此同一个突发序列对应的业务流在穿越网络的时候,在各个物理接口上被标记的突发标识可能相同,也可能不同。

进一步地,多个突发序列不仅可以共享一个物理端口,也可以共享一个逻辑端口,逻辑端口可以为两个相邻设备之间的某个物理端口包括的多个逻辑端口中的一个,也可以是穿越一个节点或者多个节点的网络隧道或者逻辑连接端口。图5a是本发明实施例示出的一种多个突发序列共享一个逻辑端口的示意图。如图5a所示,a设备可以对报文进行突发的标记和发送,b设备在接收到该报文之后,通过逻辑端口将该报文转发至d设备,d设备在接收到该报文时,可以通过前述实施例中的方法,对报文按照突发序列的报文进行转发和处理。其中,如图5a所示,该逻辑端口即为一个跨越c设备的网络隧道/管道,c节点对隧道/管道进行交叉连接。也即是,在报文的传输过程中,c设备不进行突发报文的交换和转发。

可选地,如图5b所示,a设备可以对接收到的报文进行突发标记和发送,其中,a设备可以通过逻辑端口发送突发序列的报文,该逻辑端口即为一条穿越作为中间节点的b、c、d设备的网络隧道/管道,突发序列的报文通过该网络隧道/管道到达e设备,e设备接收该报文,并通过前述实施例中介绍的对突发序列的报文进行转发的方式,通过物理出端口向用户设备交付该报文。其中,e设备在向用户设备交付该报文时,在物理出端口处不再对报文进行标记。而b、c、d设备在报文的传输过程中则均不对突发序列的报文进行转发和处理。需要指出的是,a设备可以接收来自不同的用户设备的报文,并且,这些报文可以经过不同的物理端口到达,当然,也可以来自相同的用户设备,并通过相同的物理端口到达。而e设备在向用户设备交付报文时,e设备可以通过一个物理端口向一个用户设备交付该报文,也可以通过不同的物理端口向不同的用户设备交付该报文。例如,一个用户设备向a设备发送了两个业务流的报文,当到达e设备处时,e设备可以将两个业务流的报文分别发送给两个用户设备。

在本发明实施例中,通过引入突发标识,多个突发序列可以通过一个逻辑端口来传输,这样,就可以解决相关技术中一个业务流对应一条刚性管道时导致的核心节点处管道交叉数量庞大的问题,提高了设备的转发效率的同时,也提升了设备的扩展性。

参见图6,本发明实施例提供了一种转发报文的装置600,该装置600包括:

判断模块601,用于执行上述实施例中的步骤301;

获取模块602,用于执行上述实施例中的步骤303;

发送模块603,用于执行上述实施例中的步骤304。

可选地,判断模块601包括:

第一确定子模块,用于当目标报文的目标字段携带第一特征值时,确定目标报文为突发序列的首报文,当目标报文的目标字段携带第二特征值时,确定目标报文为突发序列的跟随报文;或者,

第二确定子模块,用于当在目标报文之前接收到与目标报文相邻的帧间隙中携带第一特征值时,确定目标报文为突发序列的首报文,当在目标报文之前且与目标报文相邻的帧间隙中携带第二特征值时,确定目标报文为突发序列的跟随报文。

可选地,获取模块602具体用于:

当目标报文还包括特征字段时,将特征字段作为突发序列的突发标识,并从存储的突发标识与端口信息之间的对应关系中获取突发标识对应的端口信息,特征字段用于唯一标识特征字段所在的报文所属的突发序列;

将获取的端口信息确定为用于发送该突发序列的出端口的端口信息。

可选地,该装置600还包括:

确定模块,用于当目标报文为突发序列的首报文且目标报文还包括特征字段时,基于目标报文携带的转发信息确定目标报文的出端口;

存储模块,用于将特征字段作为突发序列的突发标识,并将突发序列的突发标识和目标报文的出端口的端口信息对应存储在突发标识与端口信息之间的对应关系中。

可选地,判断模块601包括:

第三确定子模块,用于当目标报文的目标字段携带第三特征值时,确定目标报文为突发序列的首报文,第三特征值用于指示目标报文为突发序列的首报文且指示对存储的突发标识与出端口之间的对应关系进行更新;

第四确定子模块,用于基于目标报文携带的转发信息确定目标报文的出端口;

相应地,判断模块601还包括:

替换子模块,用于当目标报文还包括特征字段时,将特征字段作为突发序列的突发标识,并将突发标识与端口信息之间的对应关系中突发标识所对应的端口信息替换为目标报文的出端口的端口信息。

可选地,该装置600还包括:

删除模块,用于当在预设时长内不存在携带突发序列的突发标识的报文时,删除突发标识与端口信息之间的对应关系中突发序列的突发标识与突发序列的出端口的端口信息所在的记录。

可选地,目标字段为前导码中的任一字段、或目标字段为帧开始定界符中的任一字段,或目标字段为帧校验字段中的任一字段。

可选地,特征字段与目标字段不是同一字段;其中,特征字段是对前导码中的任一字段进行修改得到、或特征字段是对帧开始定界符中的任一字段进行修改得到,或特征字段是对帧校验字段的任一字段进行修改得到。

综上所述,在本发明实施例中,分组转发设备可以判断目标报文为突发序列的跟随报文还是首报文,如果该目标报文为突发序列的跟随报文,则获取该突发序列的出端口来发送该跟随报文,由于该突发序列的出端口是在发送该突发序列的首报文时确定并存储的,因此,当发送该目标报文时,即可以直接根据该存储的出端口发送该目标报文,不必再根据该目标报文携带的转发信息再次进行复杂的路由查表或者是其他转发查表动作,加快了转发速率,降低转发了延迟。

参见图7,本发明实施例提供了一种转发报文的装置600,该装置600包括:

获取模块701,用于执行上述实施例中的步骤401;

发送模块702,用于执行上述实施例中的步骤402。

可选地,获取模块701具体用于:

当目标报文包括特征字段时,将特征字段作为目标报文所属的突发序列的突发标识,并从存储的突发标识与端口信息之间的对应关系中获取突发标识对应的端口信息;或者,从存储的入端口信息、突发标识与出端口信息之间的对应关系中,获取与目标报文的入端口信息和突发标识相对应的端口信息;

将获取的端口信息确定为突发序列的出端口的端口信息。

在本发明实施例中,对于具有相同的转发端口的一系列报文可以为其配置相同的突发标识,分组转发设备可以直接根据报文携带的突发标识确定该目标报文的出端口。由于突发标识的数量是有限的,因此,分组转发设备根据该突发标识确定目标报文的出端口,可以有效的规避查找复杂的路由表或其他传统转发表的操作,提升了分组转发设备的吞吐效率,降低了转发延迟。

需要说明的是:上述实施例提供的转发报文的装置在转发报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的转发报文的装置与转发报文的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digitalsubscriberline,dsl))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digitalversatiledisc,dvd))、或者半导体介质(例如:固态硬盘(solidstatedisk,ssd))等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1