转发数据的方法和设备与流程

文档序号:25991738发布日期:2021-07-23 21:03阅读:100来源:国知局
转发数据的方法和设备与流程

本发明涉及通信领域,并且更具体地,涉及一种转发数据的方法和设备。



背景技术:

现有的各种网络系统中,分组数据的转发一般通过分组设备(或称为转发设备)对分组数据单元逐包进行。具体地,分组设备基于分组数据单元(或者称为报文)内包含的目的地址和标签等信息进行查表,确定对该分组数据的转发行为。例如,以太网中的分组设备以太网交换机基于目的介质访问控制(mediumaccesscontrol,mac)地址查表确定出端口。又如,多协议标签交换(multi-protocollabelswitching,mpls)根据mpls报文标签确定对报文的处理和转发行为。光纤通道(fibrechannel,fc)交换机、无限带宽(infiniband)交换机、网际互连协议(internetprotocol,ip)路由器等也有类似的分组数据的转发机制。各种网络系统中查找表的大小、规模、不一,查表的耗时、难度不一。

具体而言,以以太网为例,最简单的以太网的交换遵从802.1d标准,需要对经过crc校验后符合完整性要求的报文中的源mac地址和目的mac地址进行识别。一方面通过对源mac地址进行学习,维护一张学习得到的目的mac地址与出端口(即转发目的端口)的对应关系的查找表。另一方面,以该查找表为依据,对所有入端口上到达的报文的目的mac地址进行查表匹配,获得出端口。然后进行对应的出端口的报文数据单元缓存队列排队,等待从出端口被发送输出。此外,以太网802.1q标准还进一步引入了更多的标签用于区分不同的业务和流,也引入了其他的方式进行转发决策查找表的维护,以支持更灵活的转发决策,但机制不变。fibrechannel交换机、infiniband交换机、ip路由器等,大体情况类似。这种逐包识别目的地址、标签等转发决策信息并进行分组数据单元转发的机制使得整个分组数据的转发时延较大。

并且,作为统计复用特性的基础特征,从各个入端口到达的报文又具有突发性和不确定性。当从不同入端口先后或者同时到达的多个报文都要从某一出端口发送,超过了出端口的服务能力的时候,势必要进行缓冲和排队。而当从各个入端口到达的报文中要从某一出端口发送的报文比较少,远低于该出端口的服务能力的时候,出端口存在空闲或者传输空闲填充信息的情况,造成出端口服务能力和出端口带宽的浪费。为了使得出端口的服务能力和带宽利用率达到一定的比例,例如95%。最有效的措施是维持每个出端口一定的被服务分组缓冲排队长度。因此现有的分组设备对分组数据的交换一般又描述为存储转发。

随着分组设备的端口数量的增长、端口带宽的增长和分组设备容量的增长,以及系统对转发时延的要求的日益提高。查表和数据缓冲存储会耗费巨大的硬件资源,使得分组设备成本高,规模受限。并且,数据的不确定性缓冲存储以及查表会导致不确定性的高延迟,使得分组设备难以适应一些延迟敏感的应用。



技术实现要素:

本申请提供一种转发数据的方法和设备,可以提高业务吞吐能力,降低数据的转发时延。

第一方面,本申请提供一种转发数据的方法,包括:通过第一逻辑入端口获取第一数据单元序列流,所述第一数据单元序列流中包括至少一个第一数据单元;根据预配置的至少一个逻辑入端口和至少一个逻辑出端口的映射关系,确定所述第一逻辑入端口对应的第一逻辑出端口,所述至少一个逻辑入端口包括所述第一逻辑入端口;调整所述第一数据单元序列流中的空闲单元的数量,使得调整后的第一数据单元序列流的速率与所述第一逻辑出端口的速率匹配;通过所述第一逻辑出端口发送所述调整后的第一数据单元序列流。

其中,所述第一逻辑入端口可以对应至少一个物理入接口或至少一个物理入接口的至少一个时隙,所述第一逻辑出端口可以对应至少一个物理出接口或至少一个物理出接口的至少一个时隙。

其中,第一数据单元序列流还可以包括至少一个空闲单元。

本申请的转发数据的方法和设备可以基于多种网络技术和协议。首先,基于多种网络物理接口提供逻辑端口,逻辑端口是与物理接口的具体形式无关的;其次,是与被转发的数据单元的协议类型无关的,数据可以是各种协议的,不需要对数据单元中的字段对应具体协议进行解析。

在本申请的方法通过逻辑端口间的直接的映射关系转发数据单元序列流,并通过调整空闲单元的数量实现数据单元序列流与下游出端口的速率匹配,可以有效降低转发设备的转发压力,有效提高转发设备的业务吞吐能力,并能降低数据的转发时延,能够适应于对延迟敏感的大带宽业务。

其中,所述至少一个逻辑入端口和至少一个逻辑出端口的映射关系可以包括以下映射关系中的至少一种:所述至少一个逻辑入端口中的一个逻辑入端口和所述至少一个逻辑出端口中的一个逻辑出端口的一对一的映射关系;所述至少一个逻辑入端口中的一个逻辑入端口和至少一个逻辑出端口中多个逻辑出端口的一对多的映射关系;和所述至少一个逻辑入端口中的多个逻辑入端口和至少一个逻辑出端口中一个逻辑出端口的多对一的映射关系。由此,逻辑入端口和逻辑出端口可以形成一对一、一对多、多对一和多对多的映射关系。

在第一方面的一种可能的实现方式中,所述至少一个逻辑入端口中的每个逻辑入端口和所述至少一个逻辑出端口中的每个逻辑出端口对应的物理接口为以下类型的接口:光传送网otn接口、灵活光传送网flexotn接口、以太网接口、灵活以太网flexe接口、通用公共无线接口cpri、同步数字体系sdh接口、光纤通道fc接口或无限带宽infiniband接口。

在第一方面的一种可能的实现方式中,所述至少一个第一数据单元包括以下数据单元中的至少一种:otn数据单元、flexotn数据单元、以太网分组数据单元、flexe分组数据单元、cpri数据单元、同步数字体系sdh数据单元、fc数据单元和infiniband数据单元。

在第一方面的一种可能的实现方式中,当至少一个逻辑入端口中包括至少两个逻辑入端口时,至少两个逻辑入端口分别对应的物理接口为光传送网otn接口、灵活光传送网flexotn接口、以太网接口、灵活以太网flexe接口、通用公共无线接口cpri、同步数字体系sdh接口、光纤通道fc接口和无限带宽infiniband接口中的至少两种;和/或当至少一个逻辑出端口中包括至少两个逻辑出端口时,至少两个逻辑出端口分别对应的物理接口为光传送网otn接口、灵活光传送网flexotn接口、以太网接口、灵活以太网flexe接口、通用公共无线接口cpri、同步数字体系sdh接口、光纤通道fc接口和无限带宽infiniband接口中的至少两种。

在第一方面的一种可能的实现方式中,所述调整所述第一数据单元序列流中的空闲单元的数量,包括:当所述第一数据单元序列流中包括空闲单元时,增加或减少所述第一数据单元序列流中的空闲单元的数量;当所述第一数据单元序列流中不包括空闲单元时,增加所述第一数据单元序列流中的空闲单元的数量。使得不论是所述第一逻辑入端口所接收的数据单元序列流中既包括第一数据单元又包括空闲单元的情况,还是所述第一逻辑入端口所接收的数据单元序列流中仅包括第一数据单元而不包括空闲单元的情况,都能够对第一逻辑入端口所接收的数据单元序列流进行速率匹配。

在第一方面的一种可能的实现方式中,所述第一数据单元序列流中的所述至少一个第一数据单元的总带宽小于或等于所述第一逻辑入端口的饱和带宽,且小于或等于所述第一逻辑出端口的饱和带宽。这种配置可以保证业务能够通过调整空闲单元与逻辑入端口和逻辑出端口的速率分别匹配。

在第一方面的一种可能的实现方式中,所述第一数据单元序列流为经过编码的数据单元序列流,所述调整所述第一数据单元序列流中的空闲单元的数量,包括:对所述第一数据单元序列流进行解码;调整解码后的第一数据单元序列流中空闲字节的数量,使得调整后的第一数据单元序列流的速率与所述第一逻辑出端口的速率匹配;对调整后的第一数据单元序列流进行编码;所述通过所述第一逻辑出端口发送所述调整后的第一数据单元序列流,包括:通过所述第一逻辑出端口发送调整且编码后的第一数据单元序列流。

其中,编码可以为64/66b编码、8/10b编码、512/513b编码或512/514b编码;相应地,解码可以为64/66b解码、8/10b解码、512/513b解码或512/514b解码。

在第一方面的一种可能的实现方式中,所述第一数据单元序列流为经过编码的数据单元序列流,所述调整所述第一数据单元序列流中的空闲单元的数量,包括:调整所述第一数据单元序列流中经过编码的空闲码元的数量,使得调整后的第一数据单元序列流的速率与所述第一逻辑出端口的速率匹配。

在第一方面的一种可能的实现方式中,所述方法还包括:通过第二逻辑入端口获取第二数据单元序列流,所述第二数据单元序列流中包括至少一个第二数据单元,所述至少一个第二数据单元中每一个第二数据单元中分别包括转发决策参考信息;根据所述转发决策参考信息,确定所述至少一个第二数据单元中每一个第二数据单元分别对应的第二逻辑出端口;将所述每一个第二数据单元缓存在对应的所述第二逻辑出端口的缓存队列中;通过所述第二逻辑出端口发送所述第二数据单元序列流中的第二数据单元。

其中,所述转发决策参考信息可以包括目的地址或转发标签等。

第二方面,本申请还提供了一种转发数据的设备,该设备包括第一逻辑入端口、第一逻辑出端口、映射关系控制模块和速率匹配模块,所述第一逻辑入端口,用于获取第一数据单元序列流,所述第一数据单元序列流中包括至少一个第一数据单元;所述映射关系控制模块,用于根据预配置的至少一个逻辑入端口和至少一个逻辑出端口的映射关系,确定所述第一逻辑入端口对应的第一逻辑出端口,所述至少一个逻辑入端口包括所述第一逻辑入端口;所述速率匹配模块,用于调整所述第一数据单元序列流中的空闲单元的数量,使得调整后的第一数据单元序列流的速率与所述第一逻辑出端口的速率匹配;所述第一逻辑出端口,用于发送所述调整后的第一数据单元序列流。相应的模块用于完成本申请的第一方面的转发数据的方法,此处不再赘述。

本申请中,预配置的多个逻辑入端口和多个逻辑出端口的映射关系可以按照逻辑入端口和逻辑出端口的有效时间段进行更新。

第一数据单元内可以包括填充,也可以不包括填充。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1是以太网分组数据单元序列流的结构的示意图。

图2是现有的分组数据转发流程的示意图。

图3是本发明一个实施例的转发数据的方法的示意图。

图4是fc帧的结构示意图。

图5是本发明一个实施例的逻辑入端口和逻辑出端口的映射关系的示意图。

图6是本发明一个实施例的通过调整空闲单元的数量来进行速率匹配的示意图。

图7是本发明几个实施例的调整空闲单元的示意图。

图8是本发明一个实施例的进行速率匹配的方式的示意图。

图9是本发明另一个实施例的进行速率匹配的方式的示意图。

图10是本发明另一个实施例的转发数据的方法示意图。

图11是本发明一个实施例的转发数据的设备的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。

应理解,本发明实施例的技术方案可以应用于光传送网(opticaltransportnetwork,otn)、灵活光传送网(flexibleotn,flexotn)、以太网(ethernet)、灵活以太网(flexibleethernet,flexe)、通用公共无线接口(commonpublicradiointerface,cpri)网络、同步数字体系(synchronousdigitalhierarchy,sdh)网络、fc网络和infiniband网络等,本发明实施例对此不作限定。

下面说明本发明所应用的网络中数据的结构。本发明各实施例中,具有实质内容的多个数据单元(不同网络的数据单元的形式可以不同)构成了数据单元序列流,数据单元序列流中可以包括空闲(idle)单元也可以不包括空闲单元。这里,空闲单元也可以根据网络的不同而具有不同的形式。例如,空闲单元可以为空闲码元或空闲字节,还可以为数据间隙(inter-packetgap,ipg)。以以太网为例,数据单元为以太网分组数据单元,以太网分组数据单元与以太网分组数据单元之间可以插入的空闲单元,空闲单元可以为空闲码元或空闲字节。

具体地,图1是以太网的分组数据单元序列流的结构的示意图。随时间推移以太网的分组设备的端口(包括入端口和出端口)自左而右传输数据。在无以太网分组数据单元进行传输的时候,一直对空闲单元(通常是对空闲字节进行编码后形成的空闲码元)进行传输;有以太网分组数据单元进行传输的时候,则传输以太网分组数据单元(通常也是进行编码后)。图中为了简洁将以太网分组数据单元简化写作分组数据单元。

如图1所示,情况a是在某一段时间内以太网端口无以太网分组数据单元发送,其连续发送空闲单元,以维持以太网端口两侧的硬件的正常发送和接收状态。情况b是另一段时间内有以太网分组数据单元需要传输,则由以太网分组数据单元和空闲单元形成分组数据单元序列流发送。图中主要示出了分组数据单元n-1、分组数据单元n和分组数据单元n+1以及各分组数据单元之间的空闲单元。

以太网分组数据单元通常具有一定范围内的可变长度,对发送侧,两个以太网分组数据单元之间的空闲单元则通常包括至少12字节,长度不限。特别地,在一些特殊情况下,空闲单元对应的最小字节数要求可以变化。例如10吉比特以太网(10gigabitethernet,10ge)的接收侧允许的最小帧间空闲单元的字节数为5;100吉比特以太网(100gigabitethernet,100ge)的接收侧允许的最小帧间空闲单元的字节数为1。

以太网分组数据单元的典型封装如图1所示,以8位元组(或称为字节)为基本单位。一个以太网分组数据单元中首先包含前7字节的前导码“0x550x550x550x550x550x550x55”,1字节的帧开始定界字段sfd(start-of-framedelimiter,sfd)“0xd5”。随后是6字节长度的目的mac地址,6字节长度的源mac地址,2字节长度的分组类型/长度信息,至少为46字节的一定长度的分组载荷信息及填充信息字节(载荷不足46字节的时候,用填充字节(pad/padding,pad)填充至46字节)。最后是4字节的帧校验字节,例如循环冗余码(cyclicredundancycode,crc)校验,用于校验分组的完整性。以太网分组数据单元之后的空闲单元中的第一个字节,作为控制字节,具体为帧结束定界字段efd(end-of-framedelimiter,efd)。

在以太网中,以太网端口通常作为面向数据的逻辑上的概念出现,称为逻辑端口或简称为端口,以太网物理接口则为硬件上的概念出现,称为物理接口或简称为接口。通常,用一个mac地址标记一个以太网端口。传统地,以太网端口的速率的确定以以太网物理接口的速率为基础。一般情况下,一个以太网端口最大带宽对应一个以太网物理接口的带宽,例如10mbps、100mbps、1000mbps(1gbps)、10gbps、40gbps、100gbps以及400gbps等以太网物理接口。

以太网在过去的相当一段时间内获得了广泛的应用和长足的发展。以太网端口速率以10倍提升,从10mbps向100mbps、1000mbps(1gbps)、10gbps、40gbps、100gbps、400gbps不断演进发展。技术越发展,带宽颗粒差异越大,越容易出现与实际应用需求期望的偏差。主流应用需求的带宽增长并不呈现这样的10倍增长特征,例如50gbps、75gbps、200gbps等。业界希望提供对50gbps、60gbps、75gbps、200gbps和150gbps等带宽的以太网端口(虚拟连接)的支持。

一方面,更进一步地,希望能够提供一些灵活带宽的端口,这些端口可以共同使用一个或者若干个以太网物理接口,例如2个40ge端口和2个10ge端口共同使用一个100g物理接口;并能够随着需求的变化做出灵活的速率调整,例如从200gbps调整为330gbps,或者50gbps调整为20gbps,以提高端口使用效率或者延长其使用生命周期。对于固定速率的物理链路,可以将其级联捆绑,以支持逻辑端口速率的堆叠增加(例如,将2个100ge物理接口堆叠级联捆绑以支持200ge逻辑端口)。另一方面,能够将物理接口灵活堆叠所得到的带宽资源池化,将其带宽按照颗粒(例如,5g为一个颗粒)分配给特定的以太网逻辑端口,实现若干以太网虚拟连接对堆叠级联的物理链路组的高效共享。

由此,灵活以太网(flexibleethernet,flexe)的概念应运而生,灵活以太网又称为灵活虚拟以太网。flexe支持针对以太网业务的子速率、通道化、反向复用等功能。例如,针对以太网业务的子速率应用场景,flexe能够支持将250g的以太网业务(mac码流)采用3路现有的100ge的物理接口进行传送。针对以太网业务的反向复用场景,flexe能够支持将200g的以太网业务采用2路现有的100ge的物理媒质相关子层(physicalmediumdependent,pmd)进行传送。针对以太网业务的通道化场景,flexe能够支持若干个逻辑端口共同使用一个或者多个物理接口,能够支持将多路低速率的以太网业务复用到高速率的灵活以太网的中。

由于接入网和城域网中大量采用以太网作为业务接口,这种基于以太网技术的业务流量汇聚功能的flexe技术能够实现和底层业务网络的以太网接口的无缝连接。这些flexe的子速率、通道化和反向复用功能的引入,极大的扩展了以太网的应用场合,增强了以太网应用的灵活性,并使得以太网技术逐渐向传送网领域渗透。

flexe为以太网物理链路的虚拟化,提供了一个可行的演进方向。灵活以太网需要在级联的一组物理接口上支持若干个虚拟的以太网数据连接。例如,4个100ge物理接口级联捆绑,支持若干逻辑端口。若干逻辑端口中一部分逻辑端口的带宽减小,则另外一部分逻辑端口的带宽增大,并且带宽减小的总量和带宽增大的总量相等,若干逻辑端口的带宽快速弹性调整,共同使用4个100ge物理接口。

flexe借鉴sdh/otn技术,对物理接口传输构建固定帧格式,并进行时分复用(timedivisionmultiplexing,tdm)的时隙划分。与sdh/otn不同的是,flexe的tdm时隙划分粒度是66比特,正好可以对应承载一个64/66b编码块。一个flexe帧包含8行,每行第一个66b块位置为flexe开销区域,开销区域后为进行时隙划分的净荷区域,以66比特为粒度,对应20x1023个66比特承载空间,100ge接口的带宽划分20个时隙,每个时隙的带宽约为5gbps。

若干个物理接口可以级联捆绑,该若干个物理接口的全部的时隙可以组合承载一个以太网逻辑端口。例如10ge需要两个时隙,25ge需要5个时隙等。逻辑端口上可见的仍为顺序传输的66b编码块,每个逻辑端口对应一个mac,传输相应的以太网报文,对报文的起始结束和对空闲idle填充的识别与传统以太网相同。

图2是现有的分组数据转发流程的示意图。如图2所示的例子中,分组设备具有m个以太网入端口(以太网入端口1,以太网入端口2,…,以太网入端口m),每个以太网入端口对应各自的分组数据单元转发决策模块。m个以太网入端口共对应m个分组数据单元转发决策模块(分组数据单元转发决策模块1,分组数据单元转发决策模块2,…,分组数据单元转发决策模块m)。分组设备具有n个以太网出端口(以太网出端口1,以太网出端口2,…,以太网出端口n),每个以太网出端口对应各自的分组数据单元排队缓冲模块。n个以太网出端口共对应n个分组数据单元排队缓冲模块(分组数据单元排队缓冲模块1,分组数据单元排队缓冲模块2,…,分组数据单元排队缓冲模块n)。

应理解,图2示出的分组数据转发流程可以对应于传统的标准以太网,也可以对应于灵活以太网。图2中以太网入端口是逻辑上的概念。标准以太网中,由于没有对物理接口划分时隙,所以一个以太网入端口可以对应一个或多个物理接口;在灵活以太网中,则一个以太网入端口可以对应一个或多个物理接口,或者一个以太网入端口可以对应一个或多个物理接口的一个或多个时隙。

如前文中描述的,当分组数据单元序列流到达分组设备时,对应的以太网入端口的分组数据单元转发决策模块需要对每一个分组数据单元mac地址进行识别,通过查表对分组数据单元的目的mac地址进行匹配,获得以太网出端口。然后通过与查找到的以太网出端口对应的分组数据单元排队缓冲模块,对分组数据单元进行缓存排队,等待从以太网出端口被发送输出。查表和数据缓冲存储会耗费巨大的硬件资源,使得分组设备成本高,规模受限。并且,数据的不确定性缓冲存储以及查表会导致不确定性的高延迟,使得分组设备难以适应一些延迟敏感的应用。

针对上述情况,本发明实施例提供了一种转发数据的方法,包括:通过第一逻辑入端口获取第一数据单元序列流,所述第一数据单元序列流中包括至少一个第一数据单元;根据预配置的至少一个逻辑入端口和至少一个逻辑出端口的映射关系,确定所述第一逻辑入端口对应的第一逻辑出端口,所述至少一个逻辑入端口包括所述第一逻辑入端口;调整所述第一数据单元序列流中的空闲单元的数量,使得调整后的第一数据单元序列流的速率与所述第一逻辑出端口的速率匹配;通过所述第一逻辑出端口发送所述调整后的第一数据单元序列流。

其中,所述第一逻辑入端口对应至少一个物理入接口或至少一个物理入接口的至少一个时隙,所述第一逻辑出端口对应至少一个物理出接口或至少一个物理出接口的至少一个时隙。逻辑入端口和/或逻辑出端口的划分可以是根据业务需求的带宽划分的,具体的划分方式可以参考现有的标准,本发明实施例对此不作限定。

不考虑端口的接收发送功能,逻辑入端口和逻辑出端口均为逻辑端口。具体以flexe为例,flexe对以太网物理接口的时隙进行划分,例如100ge划分出20个5g带宽的时隙,若干(例如m)个100ge可以级联成一个flexe组(flexegroup),共20*m个时隙。这些时隙可以任意组合成若干个不同大小的逻辑端口,每个逻辑端口的带宽为5g带宽的整数倍。一个的逻辑端口可以对应于传统的一个以太网物理接口。一个的逻辑端口也可以对应于传统的多个以太网物理接口。一个逻辑端口还可以由对应时隙组合而成,例如由一个以太网物理接口的至少一个时隙组合而成,或是由来自多个以太网物理接口的多个时隙组合而成。

图3是本发明一个实施例的转发数据的方法的示意图。图3中示出了多个逻辑端口,对与第一逻辑入端口和第一逻辑出端口而言,第一逻辑入端口对应于flexe入接口组1(至少一个物理接口)的某些时隙,第一逻辑出端口对应于flexe出接口组2(至少一个物理接口)的某些时隙。第一逻辑入端口接收第一数据单元序列流不经内容的解读而直接转发至第一逻辑出端口。其中,图中的每个flexe入接口组可以对应一个或多个逻辑入端口,每个flexe出接口组可以对应一个或多个逻辑出端口;每个以太网入接口可以对应一个逻辑入端口,每个以太网出接口可以对应一个逻辑出端口。图中仅是示意性的示出了以太网接口和flexe接口组的情况,本发明实施例的方法还可以适用于包括其他类型接口的场景。图3中示出的除第一逻辑入端口和第一逻辑出端口以外的其它的逻辑入端口和逻辑出端口对数据单元序列流的转发过程类似,此处不再赘述。

应理解,图3中示出的逻辑入端口和逻辑出端口的个数仅是示意性的,本发明实施例的方法适应于有至少一个逻辑入端口和至少一个逻辑出端口的情况。

应理解,本发明实施例不仅可以支持一到一的数据转发,本发明实施例中还可以有多个逻辑入端口对应一个逻辑出端口。此时,要求多个逻辑入端口的总带宽等于逻辑出端口的带宽,即下游管道的带宽等于上游管道的总带宽。多个逻辑入端口对应一个逻辑出端口可以认为是数据的汇聚。

本发明实施例中一个逻辑入端口可以对应多个逻辑出端口。此时,将一个逻辑入端口接收的数据单元序列流直接复制多份分别发送到对应的多个逻辑出端口。即本发明实施例的方法可以支持一到多(组播)转发和多对一(汇聚)转发。

相应地,所述至少一个逻辑入端口和至少一个逻辑出端口的映射关系包括以下映射关系中的至少一种:所述至少一个逻辑入端口中的一个逻辑入端口和所述至少一个逻辑出端口中的一个逻辑出端口的一对一的映射关系;所述至少一个逻辑入端口中的一个逻辑入端口和至少一个逻辑出端口中多个逻辑出端口的一对多的映射关系;和所述至少一个逻辑入端口中的多个逻辑入端口和至少一个逻辑出端口中一个逻辑出端口的多对一的映射关系。

应理解,在本发明实施例中,当至少一个逻辑入端口中包括至少两个逻辑入端口时,至少两个逻辑入端口分别对应的物理接口为光传送网otn接口、灵活光传送网flexotn接口、以太网接口、灵活以太网flexe接口、通用公共无线接口cpri、同步数字体系sdh接口、光纤通道fc接口和无限带宽infiniband接口中的至少两种;和/或当至少一个逻辑出端口中包括至少两个逻辑出端口时,至少两个逻辑出端口分别对应的物理接口为光传送网otn接口、灵活光传送网flexotn接口、以太网接口、灵活以太网flexe接口、通用公共无线接口cpri、同步数字体系sdh接口、光纤通道fc接口和无限带宽infiniband接口中的至少两种。即本发明实施例的转发数据的方法和设备可以基于多种网络技术和协议。首先,基于多种网络物理接口提供逻辑端口,逻辑端口是与物理接口的具体形式无关的;其次,是与被转发的数据单元的协议类型无关的,数据可以是各种协议的,不需要对数据单元中的字段对应具体协议进行解析。

还应理解,本发明实施例中第一逻辑入端口对应的物理接口的类型与第一逻辑出端口对应的物理接口的类型,可以相同,也可以不同,本发明实施例对此不作限定。

需要指出的是,本发明各实施例并不限定物理接口的具体速率和类型,也不限定划分时隙的手段和颗粒度。例如,所述至少一个逻辑入端口中的每个逻辑入端口和所述至少一个逻辑出端口中的每个逻辑出端口对应的物理接口为以下类型的接口:光传送网otn接口、灵活光传送网flexotn接口、以太网接口、灵活以太网flexe接口、通用公共无线接口cpri、同步数字体系sdh接口、光纤通道fc接口或无限带宽infiniband接口。在本发明各实施例中,通常一个逻辑端口对应的多个物理接口或对应多个物理接口的多个时隙时,该多个物理接口的接口类型可以是相同的,但本发明实施例对此不作限定。

本发明实施例中,转发设备通过逻辑入端口接收数据单元序列流。第一数据单元序列流中包括至少一个第一数据单元。第一数据单元也可以理解为业务数据单元或报文。所述至少一个第一数据单元可以包括以下数据单元中的至少一种:otn数据单元、flexotn数据单元、以太网分组数据单元、flexe分组数据单元、cpri数据单元、同步数字体系sdh数据单元、fc数据单元和infiniband数据单元。第一数据单元内可以包括填充,也可以不包括填充,是否包括填充与第一数据单元的类型有关。还应理解,从不同接口类型及从不同网络接收到的数据单元序列流,除包括数据单元外,还可以包括至少一个空闲单元。下面通过举例进行详细说明数据单元序列流以及其包括的数据单元和可能包括的空闲单元。

通过以太网接口、flexe接口、fc接口和infiniband接口接收的数据单元序列流既包括数据单元,又包括空闲单元。需要指出的是,本发明实施例中的空闲单元也可以称作是空闲信息,例如以太网,不限定为解码后在媒体不相关接口(mediaindependentinteface,mii)上的数据格式,即以带外信息发送(字符)控制(信号)(transmit(character)control(signals),txc)、或接收(字符)控制(信号)(received(character)control(signals),rxc)辅助指示是否空闲字节;也不限定为是将发送(字符)数据(transmit(character)data,txd)+txc编码在一起的10比特8/10b编码块数据格式的空闲码元,或者是64/66b编码块数据格式的空闲码元,即以显式指示数据单元或者空闲单元的数据形式。

第一数据单元序列流可以是经过编码的数据单元序列流。即第一数据单元序列流中的至少一个第一数据单元可以为经过编码的数据单元。进一步地,由于数据单元序列流既包括数据单元又包括空闲单元,数据单元序列流中包括的至少一个数据单元和伴随的空闲单元可以为经过编码的。这里编码可以是64/66b编码、8/10b编码、512/513b编码或512/514b编码。其中,64/66b编码的一个码元对应8字节原始数据,8/10b编码的一个码元则对应1字节原始数据。

在一个具体的例子中,当数据来自以太网时,通过以太网接口接收的第一数据单元序列流中的第一数据单元可以包括以0b10为同步头的类型为0x33或0x78的64/66b开始控制码块、以0b01为同步头的64/66b数据码块、以0b10为同步头的类型为0x87、0x99、0xaa、0xb4、0xcc、0xd2、0xa1或0xff(依次对应结束字符在8字节码块中的位置1~8)的64/66b结束控制码块。8/10b编码的数据单元与64/66b编码的数据单元类似,1个字节编码为10比特,相对应地,第一数据单元可以包括8/10b开始控制码块、数据码块和8/10b结束控制码块。第一数据单元序列流中可以包括指示数据单元的开始、持续、结束或者指示空闲单元的存在和持续的控制信息。

第一数据单元序列流中的至少一个第一数据单元也可以是未经过编码的。在一个具体的例子中,当数据来自以太网时,第一数据单元序列流通过xgmii/cgmii等mii接口的带外控制信息txc/rxc0或者1指示数据单元的开始(txc/rxc由1变0)、持续和结束(txc/rxc由0变1),以及空闲单元的存在和持续(txc/rxc=1)。应理解,替代上述控制信息,也可以以其他方式例如指针和存储地址等在芯片或者计算机系统内部指示第一数据单元序列流的数据单元或空闲单元。

通过flexe接口上的逻辑端口接收的数据单元序列流与通过以太网接口(也是一个逻辑端口)接收的数据单元序列流类似,包括以太网协议下的分组数据单元和以太网协议下的空闲单元,此处不再赘述。

通过fc接口(也是一个逻辑端口)接收的fc的数据单元序列流包括fc数据单元和fc协议下的空闲单元。通过infiniband接口(也是一个逻辑端口)接收的infiniband的数据单元序列流包括infiniband分组数据单元和infiniband网络协议下的空闲单元。fc和infiniband本身为基于统计复用技术的分组网络协议技术。fc和infiniband的数据单元类似于以太网的分组数据单元。fc和infiniband的数据单元的间的空闲单元也类似于以太网的空闲单元。

以fc的数据单元序列流为例进行详细说明,fc的数据单元序列流中的数据单元为fc帧,空闲单元为fillword(4个字节)。fc数据单元即fc帧中,4字节为一个字(word),fc帧的长度为4字节的整数倍。fc的数据单元序列流一般要求fc帧之间至少有2个fillwords或者至少有6个服务原语字(其中至少4个为fillwords)。

未进行编码(未进行8/10b编码或者未进行64/66b编码)的fc帧具有如图4所示的结构。fc帧通常由4字节的帧起始字(startofframe,sof)开始,随后是帧内容,最后以4字节的帧结束字(endofframe,eof)结束。帧内容部分包括24字节的帧头(frameheader)、数据段(datafield)、4字节的循环冗余校验(cyclicredundancycheck,crc),帧内容还可以包括扩展头(extendedheader),其中,数据段为4字节的整数倍,通常为0~2112字节。

对于经过64/66b编码的fc的数据单元序列流,其空闲单元可以称为空闲码块,典型的空闲码块对应两个fillwords,fc的空闲码块与以太网的空闲码块一致。包含fillword在内的各种fc服务原语字两两组合,可以进行64/66b编码,获得与以太网64/66b编码一致的码块序列。采用8/10b编码的情形情况类似。

而通过otn接口、flexotn接口、cpri或sdh接口接收的数据单元序列流则只包括相应格式的数据单元,不包括空闲单元。

下面以cpri的数据单元为例进行说明,cpri技术具有多种不同的速率选项,如下:

·cprilinebitrateoption1:614.4mbit/s,8b/10blinecoding(1x491.52x10/8mbit/s)

·cprilinebitrateoption2:1228.8mbit/s,8b/10blinecoding(2x491.52x10/8mbit/s)

·cprilinebitrateoption3:2457.6mbit/s,8b/10blinecoding(4x491.52x10/8mbit/s)

·cprilinebitrateoption4:3072.0mbit/s,8b/10blinecoding(5x491.52x10/8mbit/s)

·cprilinebitrateoption5:4915.2mbit/s,8b/10blinecoding(8x491.52x10/8mbit/s)

·cprilinebitrateoption6:6144.0mbit/s,8b/10blinecoding(10x491.52x10/8mbit/s)

·cprilinebitrateoption7:9830.4mbit/s,8b/10blinecoding(16x491.52x10/8mbit/s)

·cprilinebitrateoption7a:8110.08mbit/s,64b/66blinecoding(16x491.52x66/64mbit/s)

·cprilinebitrateoption8:10137.6mbit/s,64b/66blinecoding(20x491.52x66/64mbit/s)

·cprilinebitrateoption9:12165.12mbit/s,64b/66blinecoding(24x491.52x66/64mbit/s)

·cprilinebitrateoption10:24330.24mbit/s,64b/66blinecoding(48x491.52x66/64mbit/s)

首先介绍cpri接口协议下cpri基本帧的结构,具体如表1所示。基本帧以字节为单位,并具有固定的帧长度。对速率选项1的cpri基本帧,其包括共16个字,每个字1个字节,16个字中的第1个字为控制字,表示该基本帧的开始,其余15个字为数据字。对速率选项2的cpri基本帧,其包括共16个字,每个字2个字节。类似地,表中未示出,对速率选项7/7a的cpri基本帧,其包括共16个字,每个字16个字节。因此,基本帧的长度为8字节的整数陪,可以为整数个64/66b编码块。

表1cpri基本帧结构

256个cpri的基本帧构成一个cpri超帧,cpri超帧的第一个字为同步头控制字,可以代表cpri超帧的开始。对选定的速率选项cpri超帧的长度是固定的,因而可以确定cpri超帧的帧开始、持续和帧结束的位置。

对于采用64/66b编码的速率选项,cpri超帧的第一个基本帧的控制字(同步字)的首8字节以及次8字节分别被编码为同步头为0b10,类型为0xff的64/66b控制码块,以及同步头为0b10,类型为0x78的64/66b控制码块,可以实现cpri超帧的帧开始、持续和帧结束的标记。其余数据全部编码为同步头为0b01的数据码块。由此可见,cpri接口的数据单元序列流,与前文描述的以太网的数据单元、fc的数据单元的形式是一致的。在都为64/66b编码的情形下,cpri的数据单元序列流与以太网的数据单元序列流、fc的数据单元序列流的主要区别在于cpri的数据单元序列流中的数据单元间没有空闲码块。

再以otn的数据单元为例进行简单说明。otn的数据单元为otu-k帧,为固定大小的帧结构。在otu-k帧中包括4行4080列共计4x4080=16320字节,其中14字节的otu-k帧开销包括sm、gcc0、res共7个字节和帧同步开销fas、mfas共7个字节。6字节的开销fas是固定序列,类似于以太网中的前导码序列。以开销fas作为otu-k帧的帧开始的标记,由于otu-k帧为固定大小的帧结构,因此,可以确定otu-k帧的帧开始、持续和帧结束的位置。otn的数据单元与前文描述的以太网的数据单元、fc的数据单元、cpri的数据单元的形式是一致的。

应理解,本发明实施例的一个数据单元可以对应一个数据帧,也可以对应更多数量的数据帧,甚至可以将在逻辑端口上传播的无限多个数据帧看作一个数据单元。这里的数据帧可以是指前文中的fc帧、cpri超帧或otu-k帧等等。

综上所述,不论是以太网、flexe、fc和infiniband等更接近于报文形式的数据单元,还是otn、flexotn、cpri和sdh等更接近于帧格式的数据单元,其都具有类似的格式,都可以通过各种标识确定数据单元的开始、持续和结束的位置。

应理解,本发明实施例的逻辑入端口接收的数据单元序列流的协议类型并不一定与逻辑入端口相对应的物理接口的类型相同。例如,由于在上游的转发设备处转发,otn的物理接口对应的逻辑入端口接收的数据单元序列流的数据单元可能是以太网协议的,这里仅是举例说明,而非对本发明实施例的限定。

在本实施例中,通过预配置的至少一个逻辑入端口和至少一个逻辑出端口的映射关系,确定接收第一数据单元序列流的第一逻辑入端口对应的第一逻辑出端口。至少一个逻辑入端口和至少一个逻辑出端口的映射关系的实现形式可以是配置表也可以是固化到转发设备中的器件。该映射关系可以由网络管理员修改或更换,本发明实施例对此不作限定。

可选地,映射关系可以以表的形式在网络管理计算机系统中存储和使用。但本发明实施例的映射关系是不同于现有的方案的目的地址(例如目的mac地址)和出端口的对应关系的。本发明实施例的映射关系中直接包括了逻辑入端口和逻辑出端口的关系,因此无需进行数据单元完整性的校验,例如crc校验,不需要对数据单元进行内容的解读,无需进行目的地址的查表处理,逻辑出端口相对于逻辑入端口均是独占的并且预先配置好,因此从逻辑入端口抵达的数据单元序列流中的数据单元无需逐个查表、排队和缓存,直接从逻辑出端口发出。

本发明实施例中的某一个逻辑入端口接收到的数据可以是在转发设备的上游的其他设备中进行过分组识别集合在一起的,也可以是通过其他方式集合在一起的,本发明实施例对此不作限定。

具体地,本发明实施例从业务管理角度上看,数据单元的转发可以基于静态和半静态配置。结合图5和表2至表5来进行详细说明。图5是本发明一个实施例的逻辑入端口和逻辑出端口的映射关系的示意图。图5中有三个物理接口组,物理接口a组、物理接口b组和物理接口c组。物理接口组中物理接口的类型可以是前文中提到的类型。在一个具体的例子中,物理接口b组可以为一个标准以太网接口,物理接口a组可以为flexe接口组,物理接口c组可以为flexotn接口组。逻辑入端口a.1和逻辑入端口a.6分别对应物理接口a组的某些时隙,具体参见表2。逻辑出端口b.1对应整个物理接口b组,具体参见表3。逻辑出端口c.2对应物理接口c组的某些时隙,具体参见表4。表2至表4中还可以为每个逻辑端口分配数据单元序列流标识以区分数据单元序列流。表5给出了逻辑入端口和逻辑出端口的映射关系。例如,逻辑入端口a.1对应逻辑出端口c.2,逻辑入端口a.6对应逻辑出端口b.1,属于在上文中所描述的本发明实施例的转发数据的方法。表5中还给出图5中未示出的逻辑入端口a.2接收的数据单元序列流需要进行逐数据单元查表存储转发,具体交换方式将在下文中详细描述。

配置表精简容易维护,一般由网管进行配置或者由协议自动配置。配置表主要包括分配和标识逻辑端口对应的接口组的时隙,具体为物理接口的时隙分配和逻辑端口映射关系(表2至表4);以及无延迟转发的端口到端口的映射关系配置(表5)。上述映射关系精简短小,可以认为是抽象出来的一些表格,实际上可以并不以表格的形式存在。这些映射关系一般保存在管理系统中,数据面上已经固化为设备的硬件配置,规避了和降低了转发设备按照分许协议地址和标签进行大规模查找表的维护和海量表项的查找问题,实现了无表转发。

在本发明实施例中,预配置的至少一个逻辑入端口和至少一个逻辑出端口的映射关系可以按照逻辑入端口和逻辑出端口的有效时间段进行更新,即当系统内逻辑入端口和逻辑出端口的定义发生变化时,系统中的相应的设备(例如控制器)可以对上述映射关系进行更新。

应理解,本发明实施例中逻辑端口可以为单向逻辑端口也可以为双向逻辑端口,第一数据单元序列流可以为单向数据单元序列流,也可以为双向数据单元序列流,本发明实施例对此不作限定。

逻辑端口由一组(至少一个)物理接口划分时隙组合而得,与物理接口的时钟速率相关。因此,物理接口组上的逻辑端口的速率由其对应的物理接口的速率决定,当物理接口的时钟有偏差时,逻辑端口会继承该偏差。

以太网的异步通信物理接口,允许正负100ppm(其中,1ppm为万分之一)的时钟频率差异以降低对设备的要求。例如在10ge网络中,两个标称10g带宽的物理接口可能一个比标称值大万分之一,一个比标称值小万分之一,分别为10g*(1+0.0001)和10g*(1-0.0001)。

逻辑端口之间的实际时钟速率继承物理接口的正负100ppm的时钟频率差异。例如,逻辑入端口和逻辑出端口都是5个5g时隙级联的逻辑端口,除去灵活以太网划分时隙和管理时隙的开销,在极端情况下,两个不同物理接口组上的标称带宽同样的逻辑端口的实际带宽分别为25g*(20460/20461)*(1+0.0001)和25g*(20460/20461)*(1-0.0001)。此时,如果通过该逻辑入端口和逻辑出端口转发数据,则需要进行速率匹配。

由此,逻辑入端口及其相应的逻辑出端口的速率可能是不相等的,换而言之,数据单元序列流在第一逻辑入端口的传输速率和数据单元序列流在第一逻辑出端口的传输速率可能是不相等的。在本发明实施例中,调整所述第一数据单元序列流中的空闲单元的数量,使得调整后的第一数据单元序列流的速率与所述第一逻辑出端口的速率匹配。

具体而言,以数据单元序列流同时包括数据单元和空闲单元为例进行说明。对从第一逻辑入端口接收的第一数据单元序列流进行区分,区分出数据单元和空闲单元,对空闲单元的数量进行必要的增删,以匹配逻辑出端口的带宽差异,实现数据单元序列流在两个逻辑端口的速率匹配。

可选地,可以将第一数据单元序列流中的空闲单元全部删除,在第一逻辑出端口处按照需要重新插入适当数量的空闲单元。当然,本发明实施例中,还可以实时地按照需要插入或者删除空闲单元。本发明实施例中,数据是以流的形式一直在转发的,空闲单元的插入或者删除也是随着流实时进行的。当第一逻辑入端口的传输速率和第一逻辑出端口的传输速率差异不大时,有可能在相当一段时间内,第一逻辑出端口处的第一数据单元序列流中的空闲单元的数量与第一逻辑入端口处的第一数据单元序列流中的空闲单元的数量是相等的。

可选地,本发明实施例还允许切断连续的数据单元而插入空闲单元。简单的方法是在切断处插入一种新型的空闲单元;或者,使用现有的空闲单元(例如,空闲字节或者空闲码元),但在切断处插入的空闲单元与第一数据单元序列流中的空闲单元的类型不相同。这样,接收端可以通过空闲单元的类型来判断是前一数据单元的延续,不是新的数据单元。

在切断处插入的空闲单元显而易见的情况下,例如以太网中,不是上一分组结束后和或下一分组开始之前出现的空闲单元,可以使用相同的空闲单元。此外,还可以通过判断数据单元的长度进行判断。例如,当前接收到n个碎片,该n个碎片的总长度小于正常数据单元的允许长度,当接收端接收到数据时,接收到的数据与n个碎片的长度相加的总长度依然小于正常数据单元的允许长度,那可以判断当前接收到的数据仍为碎片(即数据单元的第n+1个碎片)。一旦被确认为碎片,则其为前一数据单元的延续,不是新的数据单元。本发明实施例中还可以通过其他的方式区分碎片,这里不作限定。

图6是本发明一个实施例的通过调整空闲单元的数量来进行速率匹配的示意图。图6中(a)以接收到的为以太网的数据单元序列流为例,数据单元序列流包括空闲单元组n-1、分组数据单元n-1、空闲单元组n、分组数据单元n、空闲单元组n+1和分组数据单元n+1。由于其对应的逻辑入端口的速率小于逻辑出端口的速率,因此在(b)中进行速率匹配时将空闲单元组n中空闲单元的数量增加。图6中(c)为接收到的数据单元序列流,包括空闲数据单组元n-1、分组数据单元n-1、空闲单元组n、分组数据单元n、空闲单元组n+1和分组数据单元n+1。由于其对应的逻辑入端口的速率小于逻辑出端口的速率,且速率的差异较大,因此在(d)中进行速率匹配时,切断了连续的分组数据单元n而插入空闲单元。

就以太网1500字节左右的分组数据单元长度而言,即使第一逻辑入端口与第一逻辑出端口具有200ppm的时钟速率差异,只在以太网分组之间进行空闲单元的增删调整(不切断分组数据单元),缓存深度也只需要1500*0.0002;即使9.6k超长帧,缓存深度需求也不足2个字节。相比10ge、100ge采用的4字节以上的数据位宽,这样的缓存需求可以忽略不计。因此,本发明实施例的转发分组数据的方法可以称为无延迟高效转发。

可选地,本发明实施例可以按照系统的位宽控制空闲单元的增删。图7是本发明几个实施例的调整空闲单元的示意图。图7中的(a)至(c)示出了基于8/10b码块的以太网系统。图7中的(d)至(f)示出了基于64/66b码块的以太网系统。在两种系统中,我们抽象地在功能上进行了区域划分,其中,第一功能区域对应的功能为物理接口技术以及时隙划分,包括入端口接收数据、解扰码(仅对应于64/66b码块系统)和时隙划分逻辑端口呈现等步骤,第一功能区域对应的功能整体对应于前文中描述的通过第一逻辑入端口获取第一数据单元序列流;第二功能区域对应的功能为速率匹配,主要包括调整空闲单元(空闲字节或空闲码元的增加或删除),第二功能区域对应的功能整体对应于前文中描述的调整所述第一数据单元序列流中的空闲单元的数量,使得调整后的第一数据单元序列流的速率与所述第一逻辑出端口的速率匹配;第三功能区域对应的功能为逻辑端口区分技术,包括逻辑端口匹配接口时隙、扰码(仅对应于64/66b码块系统)和出端口发送数据等步骤,第三功能区域对应的功能整体对应于前文中描述的通过所述第一逻辑出端口发送所述调整后的第一数据单元序列流。由于映射关系通常固化为设备的硬件配置,因此该例子中未体现根据预配置的多个逻辑入端口和多个逻辑出端口的映射关系,确定所述第一逻辑入端口对应的第一逻辑出端口这一过程。

调整空闲单元可以在接收到的原始数据单元序列流后不进行解码和重新编码的情况下进行,此时调整空闲单元为空闲码元的增加或删除,例如图7中的(a)和(d)。调整空闲单元也可以在对接收到的数据单元序列流进行解码和重新编码的情况下进行,此时调整空闲单元为空闲字节的增加或删除,例如图7中的(b)、(c)(e)和(f)。其中,图7中的(b)和(e)解码和重新编码是在物理接口执行的;图7中的(c)和(f)解码和重新编码是在逻辑端口执行的。

对应图7,当所述第一数据单元序列流为经过编码的数据单元序列流时,一种调整所述第一数据单元序列流中的空闲单元的数量的方式,步骤可以包括:对所述第一数据单元序列流进行解码;调整解码后的第一数据单元序列流中空闲字节的数量,使得调整后的第一数据单元序列流的速率与所述第一逻辑出端口的速率匹配;对调整后的第一数据单元序列流进行编码;所述通过所述第一逻辑出端口发送所述调整后的第一数据单元序列流,包括:通过所述第一逻辑出端口发送调整且编码后的第一数据单元序列流。另一种调整所述第一数据单元序列流中的空闲单元的数量的方式,步骤可以包括:所述第一数据单元序列流为经过编码的数据单元序列流,所述调整所述第一数据单元序列流中的空闲单元的数量,包括:调整所述第一数据单元序列流中经过编码的空闲码元的数量,使得调整后的第一数据单元序列流的速率与所述第一逻辑出端口的速率匹配。

图8是本发明一个实施例的进行速率匹配的方式的示意图。在逻辑入端口接收到数据单元序列流为以太网协议的数据单元序列流,而逻辑出端口对应的物理接口为otn的物理接口时,可以使用gfp协议实现数据单元序列流与逻辑出端口的速率匹配。gfp协议定义有空闲帧,效果如同以太网的空闲字节,因此可以先将以太网协议的数据单元序列流的原空闲单元(例如可以是空闲字节)全部删除,使用gfp协议对分组数据单元进行封装处理,并插入gfp的空闲进行速率适配。这种情况下,本发明实施例为逻辑端口分配的带宽,应当足以支持使用gfp协议对分组数据单元进行封装处理后的数据单元序列流的带宽。

前文中提到,fc和infiniband的数据单元类似于以太网的分组数据单元。fc和infiniband的数据单元的间的空闲单元也类似于以太网的空闲单元。因此,fc和infiniband的数据单元序列流与逻辑出端口的速率适配的方法与以太网的数据单元序列流的速率适配的方法类似,此处不再进行赘述。

传统的sdh和otn等第三方协议的物理接口也具有时隙划分和逻辑端口支持能力。例如,sdh的时隙、传统otn以及flexotn的高阶光传输载荷单元(optical(channel)payloadunit,opu)中的时隙。对应地,可以采用新兴的通用成帧规程(genericframingprocedure,gfp),或针对以太网业务的基于空闲增删的映射处理规程(idleinsert/deletebasedmappingprocedure,imp)等等实现速率匹配。使得现有的sdh、otn、flexotn等物理接口技术、原有投资和研发投入、芯片、光模块等资源,尤其是长距离光传输涉及的资源可以沿用。

下面以对cpri接口接收到的数据单元序列流进行速率匹配为例进行详细说明。cpri接口协议基本帧以字节为单位,并具有固定的帧长度。其物理接口典型也可使用8/10b编码或者64/66b编码。其他类型业务,例如sdh/otn等cbr业务的接口技术也可以采用类似cpri的方式,对其相应的数据帧结构单元序列进行64/66b编码等。因此,在这些协议下,数据帧即为数据单元。在帧(数据单元)之间可以插入空闲字节或者8/10b编码空闲码元或者64/66b编码空闲码元。这些数据单元序列流可以在基于以太网或flexe等接口技术的转发设备上得到支持。

前文中提到,cpri的数据单元为cpri超帧,与以太网的分组数据单元类似,可以以相应的方法标记帧开始、持续和帧结束的位置。因此,与以太网的数据单元序列流类似地,也可以靠调整cpri的数据单元序列流的空闲单元来进行速率匹配。这里的调整cpri的数据单元序列流的空闲单元主要是增加空闲单元。即从原生的cpri接口或端口接收无空闲原生的cpri数据单元序列流,通过增加空闲单元,适配到非原生的接口或端口上发生,例如灵活以太网端口。

图9示出了对cpri的数据单元序列流进行速率匹配的示意图。图9的a示出了未进行速率匹配时,cpri的数据单元序列流的两个数据单元,数据单元包括指示数据单元开始部分和结束部分,其余部分为数据部分d。当逻辑出端口为以太网协议的端口时,将以太网的空闲码块插入到cpri的编码后的数据单元中(如图9的c所示,编码之后数据部分被编码为码元,开始部分好、结束部分和空闲均被编码为控制码元)或者等效的先在未编码的数据单元插入空闲(如图9的b所示)后再进行编码处理,都可以将cpri超帧的数据单元序列流转成前文的实施例中的以太网的分组数据单元序列流,并通过本发明实施例的方法实现对cpri业务在本发明实施例的转发数据的设备上进行交换。例如,对于cprilinebitrateoption8:10137.6mbit/s,64b/66blinecoding(20x491.52x66/64mbit/s),其编码后的速率为10.1376g,小于10ge网络的10.3125g,或者小于flexe的两个时隙的总带宽。由此,可以通过在数据单元序列流插入适当数量的idle,使得数据单元序列流可以在10ge的物理接口或者2个flexe5g时隙对应的逻辑端口上传输。对idle插入的位置,可以选择在结束码块和开始码块之间,也可以选择放在数据中间,本发明实施例对此不做限定。

在一个具体的例子中,可以进行类似以下的设计。例如,参考以下速率值,cpri接口中各个选项的未编码速率为n×491.528m,当n等于10的时候,可以匹配当前的flexe的5g时隙中,并有足够的带宽剩余。

对于cpri技术中编码后的option8和option10的速率与flexe的2×5g时隙和5×5g时隙的带宽比较接近并还有足够的带宽剩余,同时又与实际的10ge和25ge以太网物理接口的带宽接近并还有足够的带宽剩余。数据单元序列流的总带宽小于或等于逻辑端口的带宽时,即使物理接口和逻辑端口有正负100ppm(其中,1ppm为万分之一)的时钟频率差异,通过适当的调整空闲,均可以实现速率匹配。

类似地,将otn的数据单元序列流速率匹配到以太网协议的逻辑出接口时,可以将otn的数据单元otu-k帧中的fas开销的首字节和末字节分别替换为/t/和/s/字符,再在otn的数据单元序列流(未编码的)中插入空闲字节,或者在otn的数据单元序列流(经过编码的)中插入空闲码元,以完成速率匹配,并使速率匹配后的数据单元序列流能够从以太网协议的逻辑出接口发出。

综合以上例子可知,所述调整所述第一数据单元序列流中的空闲单元的数量,可以包括:当所述第一数据单元序列流中包括空闲单元时,增加或减少所述第一数据单元序列流中的空闲单元的数量;当所述第一数据单元序列流中不包括空闲单元时,增加所述第一数据单元序列流中的空闲单元的数量。

应理解,本发明实施例中,所述第一数据单元序列流中的所述至少一个第一数据单元的总带宽小于或等于所述第一逻辑入端口的饱和带宽,且小于或等于所述第一逻辑出端口的饱和带宽。这种配置可以保证业务能够通过调整空闲单元与逻辑入端口和逻辑出端口的速率分别匹配。

还应理解,各种协议类型的数据单元序列流被按照本发明实施例的方法进行转发的时候,转发设备并不对其从业务、协议等角度进行区分。

还应理解,本发明实施例中,对各种协议下的数据单元序列流进行速率匹配的方法可以采用各种现有的方案,而不局限于前文中描述的方法。

本发明实施例的转发数据的方法通过逻辑端口间的直接的映射关系转发数据单元序列流,并通过调整空闲单元的数量实现数据单元序列流与下游出端口的速率匹配,可以有效降低转发设备的转发压力,有效提高转发设备的业务吞吐能力,并能降低数据的转发时延,能够适应于对延迟敏感的大带宽业务。

图10是本发明另一个实施例的转发分组数据的方法示意图。如图10所示,转发设备还可以通过第二逻辑入接口(例如,上文中提到的接口a.2)接收第二数据单元序列流,通过图2中介绍的现有的转发数据的方法对第二数据单元序列流进行数据交换。例如,以太网入接口4接收的第二数据单元序列流的多个分组数据单元经以太网入接口4对应的分组数据单元转发决策模块4,分别在分组数据单元排队缓冲模块5和分组数据单元排队缓冲模块6中排队缓冲,从以太网出接口5和以太网出接口6中发送。再如,flexe入接口组3上的一个第二逻辑入端口接收的第二数据单元序列流的多个分组数据单元经分组数据单元转发决策模块3,分别在分组数据单元排队缓冲模块5和分组数据单元排队缓冲模块6中排队缓冲,从以太网出接口5和以太网出接口6中发送。

本发明实施例还包括一种对数据单元序列流中的多个分组数据单元不进行转发决策的判断,直接进入对应的分组数据单元排队缓冲模块进行缓冲排队的方案。例如,flexe入接口组1上的最后一个逻辑入端口接收的数据单元序列流的多个分组数据单元不经经分组数据单元转发决策模块决策,直接发送到分组数据单元排队缓冲模块5中排队缓冲,从以太网出接口5中发送。

相对应地,本发明的转发数据的方法还可以包括:通过第二逻辑入端口获取第二数据单元序列流,所述第二数据单元序列流中包括至少一个第二数据单元,所述至少一个第二数据单元中每一个第二数据单元中分别包括转发决策参考信息;根据所述转发决策参考信息,确定所述至少一个第二数据单元中每一个第二数据单元分别对应的第二逻辑出端口;将所述每一个第二数据单元缓存在对应的所述第二逻辑出端口的缓存队列中;通过所述第二逻辑出端口发送所述第二数据单元序列流中的第二数据单元。

其中,所述转发决策参考信息可以包括目的地址或转发标签等。

本发明实施例还提供了一种转发数据的设备,对应于上文的转发设备。图11是本发明一个实施例的转发数据的设备1100的示意性框图。如图11所示,该设备包括第一逻辑入端口1110、第一逻辑出端口1120、映射关系控制模块1130和速率匹配模块1140,所述第一逻辑入端口1110,用于获取第一数据单元序列流,所述第一数据单元序列流中包括至少一个第一数据单元;所述映射关系控制模块1130,用于根据预配置的至少一个逻辑入端口和至少一个逻辑出端口的映射关系,确定所述第一逻辑入端口1110对应的第一逻辑出端口1120,所述至少一个逻辑入端口包括所述第一逻辑入端口1110;所述速率匹配模块1140,用于调整所述第一数据单元序列流中的空闲单元的数量,使得调整后的第一数据单元序列流的速率与所述第一逻辑出端口1120的速率匹配;所述第一逻辑出端口1120,用于发送所述调整后的第一数据单元序列流。

其中,映射关系包括软件配置和固化在设备中的硬件配置。

软件配置映射关系可以是通过前文描述的配置表描述逻辑入端口和逻辑出端口的对应。这些映射关系一般保存在管理系统中,可以以表的形式在网络管理计算机系统中存储和使用。

硬件配置映射关系可以是固化在设备中的交叉交换器件的交叉交换连接关系。例如,基于crossbar的空分(s)交叉器件的交叉连接关系,或者基于时隙存储时分(t)交换器件的顺序写入配置序读出关系以及配置序写入顺序读出关系;或者是组合形式为t-s-t、s-t-s三级交叉器件的交叉交换连接关系等等。随着通信技术的发展,现在可用的映射关系可以是基于信元的交换网片套片(fabricandfabricinterfacechip,fab&fic)的交换连接关系,或者基于共享内存的单片交换网片的交换连接关系等,实现高效无表转发。

速率匹配模块1140和和固化了映射关系的交叉交换功能可以集成在一起,例如基于共享内存的交换网器件中,按照第一输入逻辑端口速率写入,当写入的数据较多的时候,适当删除未写入或者已写入共享内存中的空闲数据,或者完全不写入空闲数据,只写入数据单元;按照第一逻辑出端口1110不断地从共享内存中读取出并发送数据,当缓存中缓存的数据不足以输出到第一逻辑出端口1120时,在数据单元序列流中插入空闲单元,以完成速率匹配。本发明实施例对速率匹配模块1140和映射关系的具体实现形式不作限定。

可选地,作为一个实施例,所述至少一个逻辑入端口和至少一个逻辑出端口的映射关系包括以下映射关系中的至少一种:所述至少一个逻辑入端口中的一个逻辑入端口和所述至少一个逻辑出端口中的一个逻辑出端口的一对一的映射关系;所述至少一个逻辑入端口中的一个逻辑入端口和至少一个逻辑出端口中多个逻辑出端口的一对多的映射关系;和所述至少一个逻辑入端口中的多个逻辑入端口和至少一个逻辑出端口中一个逻辑出端口的多对一的映射关系。

可选地,作为一个实施例,所述至少一个逻辑入端口中的每个逻辑入端口和所述至少一个逻辑出端口中的每个逻辑出端口对应的物理接口为以下类型的接口:光传送网otn接口、灵活光传送网flexotn接口、以太网接口、灵活以太网flexe接口、通用公共无线接口cpri、同步数字体系sdh接口、光纤通道fc接口和无限带宽infiniband接口。

可选地,作为一个实施例,所述至少一个第一数据单元包括以下数据单元中的至少一种:otn数据单元、flexotn数据单元、以太网分组数据单元、flexe分组数据单元、cpri数据单元、同步数字体系sdh数据单元、fc数据单元和infiniband数据单元。

可选地,作为一个实施例,所述第一数据单元序列流中的所述至少一个第一数据单元的总带宽小于或等于所述第一逻辑入端口的饱和带宽,且小于或等于所述第一逻辑出端口的饱和带宽。

可选地,作为一个实施例,所述第一数据单元序列流为经过编码的数据单元序列流,所述速率匹配模块1140具体用于:对所述第一数据单元序列流进行解码;调整解码后的第一数据单元序列流中空闲字节的数量,使得调整后的第一数据单元序列流的速率与所述第一逻辑出端口的速率匹配;对调整后的第一数据单元序列流进行编码;所述第一逻辑出端口1120具体用于:发送调整且编码后的第一数据单元序列流。

可选地,作为一个实施例,所述第一数据单元序列流为经过编码的数据单元序列流,所述速率匹配模块1140具体用于:调整所述第一数据单元序列流中经过编码的空闲码元的数量,使得调整后的第一数据单元序列流的速率与所述第一逻辑出端口的速率匹配。

可选地,作为一个实施例,所述设备还包括第二逻辑入端口、第二逻辑出端口、数据单元转发决策模块和数据单元排队缓冲模块,所述第二逻辑入端口,用于获取第二数据单元序列流,所述第二数据单元序列流中包括至少一个第二数据单元,所述至少一个第二数据单元中每一个第二数据单元中分别包括转发决策参考信息;所述数据单元转发决策模块,用于根据所述转发决策参考信息,确定所述至少一个第二数据单元序列流中每一个第二数据单元分别对应的第二逻辑出端口;所述数据单元排队缓冲模块,用于将所述每一个第二数据单元缓存在对应的所述第二逻辑出端口的缓存队列中;所述第二逻辑出端口,用于发送所述第二数据单元序列流中的第二数据单元。

所述转发决策参考信息可以包括目的地址或转发标签等。

可选地,作为一个实施例,所述速率匹配模块1140具体用于:当所述第一数据单元序列流中包括空闲单元时,增加或减少所述第一数据单元序列流中的空闲单元的数量;当所述第一数据单元序列流中不包括空闲单元时,增加所述第一数据单元序列流中的空闲单元的数量。

可选地,作为一个实施例,第一数据单元序列流还包括至少一个空闲单元。

应理解,本文中涉及的第一、第二等以及各种数字编号仅为描述方便进行的区分,并不用来限制本发明实施例的范围。

应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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