一种用于交换机数据帧切分与重组装置的方法与流程

文档序号:11292129阅读:258来源:国知局
一种用于交换机数据帧切分与重组装置的方法与流程

本发明属于网络通信的数据处理领域,更具体的说,本发明涉及用于交换机数据帧传输中,对数据帧进行切分与重组装置的方法。



背景技术:

随着互联网迅速发展,网络规模不断扩大,网络应用的各种技术也应运而生,从而对带宽、服务质量等要求不断提升,而交换机是现代大型网络的基础,因此对交换机技术要求越来越高。在目前的交换机设计中,为了提高交换系统的性能,对数据帧的处理广泛采用切分后再交换的技术。切分重组的交换技术,要求将数据帧在交换机输入端切分成较短的内部交换专用的数据帧(下文简称为内部帧),再通过交换结构进行交换,最后在输出端将内部帧重组为原始数据帧再进行转发。切分后的内部帧帧长度较小,这样可以保证交换过程中较短的数据帧不被长的数据帧阻塞,使得交换单元的控制更加灵活,达到更小的延时与更高的效率。

现行的交换机一般包括交换模块和对应于每个端口的切分模块、重组模块和网络接口模块。网络接口模块,根据协议完成物理介质中的物理信号和并行传输的数据帧之间的相互转换,并维护链路。网络接口模块收到物理介质传来的数据后得到有效的数据帧,发给切分模块。切分模块根据数据帧头部中的信息生成内部帧帧头,将目的地址对应为目的端口号,并将数据帧切分较短的内部帧,发给交换模块。交换模块根据信元头部中的目的端口号,将信元转发给目的端口的重组模块。重组模块将交换模块发送来的内部帧重组为原始数据帧,并发送到网络接口模块。网络接口模块根据协议将数据帧发送出去。

现有的切分技术大都是定长切分技术。这种方法存在以下问题:

1.采用定长切分技术会导致切分后的有多余填充单元,在传输过程中这些填充单元并不是有效数据且传输过程需要浪费更多的时间,从而使整体效率变低,延时也会随之增加。

2.在数据帧切分后,需要针对切分后的帧头添加关原始数据帧的帧结束的信息,增加了帧头的复杂度,同时在切分重组时需要进行更多的判断。

3.现有的切分技术主要针对一个数据帧进行切分,这种方式在多个较短的数据帧相邻时会减少传输效率。



技术实现要素:

本发明的目的在于提供一种交换机数据帧切分与重组的方法,用于解决上述现有技术的问题。

本发明一种交换机数据帧切分与重组的方法,其中,包括:数据帧切分与数据帧重组;数据帧切分包括:步骤1:接收到数据帧后,提取数据帧头部中的源地址信息、目的地址信息以及优先级信息;步骤2:将数据帧依次存入数据缓存中,生成数据帧的长度信息,并且与步骤1中提取的源地址信息、目的地址信息以及优先级信息合并后存入信息缓存中;步骤3:若信息缓存不为空,则取出第一个数据帧信息;步骤4:根据取出第一个数据帧信息,从数据缓存中提取数据,按照目的地址与优先级存入虚拟输出队列中,将数据帧长度累加至每个虚拟输出队列对应的长度统计中;步骤5:根据长度统计统计的总长度,分情况给出当前要发送帧长,并组成内部帧帧头;步骤6:根据交换机内部的调度算法判断需要发送哪个虚拟输出队列中的数据,将内部帧帧头与数据拼接为内部帧,将内部帧发送;步骤7:当发送完一个内部帧时,将长度统计的统计总长度减掉发送的内部帧长度;数据帧重组包括:步骤8:接收发送的内部帧,提取内部帧帧头中的源地址以及数据长度;步骤9:按照数据长度以及源地址,将去掉帧头的内部帧存入虚拟输入队列中;步骤10:每次向虚拟输入队列中存入一个内部帧时,判断虚拟输入队列中数据是否包括完整的数据帧,若有数据帧完结,则将数据源地址以及数据帧的长度存入信息缓存中;步骤11:若信息缓存不为空,则从信息缓存中取出首个数据帧信息;步骤12:按照信息缓存中的源地址以及数据长度将数据从入虚拟输入队列取出完整的数据帧,进行数据帧的发送。

根据本发明的交换机数据帧切分与重组的方法的一实施例,其中,生成数据帧的长度信息是以字节为单位。

根据本发明的交换机数据帧切分与重组的方法的一实施例,其中,步骤1进一步包括:(1)接收数据帧的过程中,若数据帧未结束且长度满足一个内部帧的最大长度时,将最大长度、源地址以及目的地址信息放入信息缓存中;(2)若数据帧结束,则将数据帧当前的长度、源地址以及目的地址信息存入信息缓存中;(3)接收数据帧的过程中,将数据帧位宽从32位拓展为33位,第33位用于标记数据帧结束的信息,若当前数据帧结束,则将33位为1,否则为0。

根据本发明的交换机数据帧切分与重组的方法的一实施例,其中,步骤5进一步包括:(1)若长度统计记录的总长度大于内部帧最大长度时,则下一个内部帧的长度为内部帧的最大长度;(2)若长度统计记录的总长的小于内部帧最大长度时,给出下个发送的内部帧长度为当前统计单元的记录的总长度;(3)若当前数据未发送,而长度统计中记录的总长度发生变化,则依据前面两条对下一个内部帧长度进行修正。

根据本发明的交换机数据帧切分与重组的方法的一实施例,其中,上文所述切片流程步骤6的具体方法为:(1)依据调度算法判断那个虚拟输出队列中的数据帧优先进入交换模块;(2)确定好传输数据的虚拟输出队列中后,依据步骤5中的信息组成内部帧的帧头;(3)依据步骤5中的长度信息,取相应长度的数据信息,与帧头部分组成内部帧。

根据本发明的交换机数据帧切分与重组的方法的一实施例,其中,重组流程步骤10的具体方法为:(1)当数据存入虚拟输入队列时,针对存入的数据个数进行计数;(2)判断数据帧的第33位,若为1,则将此时帧的源地址以及计数模块的数据长度存入信息缓存中,同时清零计数模块;若为0,则继续计数。

本发明用于交换机数据帧切分与重组装置的方法,可是使交换机载数据交换过程中达到高效率,低延时,数据管理简单的目的。该设计能广泛适用于交换机中,采用变长的切分方式,将同类型的数据帧在切分进行整合,在切分数据帧时不会产生多余的填充单元,同时采用扩展有效数据宽度的方式来判断数据帧结束的标志,减少了帧头的复杂度,使数据帧结束位判断更加简洁有效,提高交换效率,减少交换机的延时。

附图说明

图1为一种应用本发明交换机的整体框图;

图2为切分模块内部框图;

图3为图2中信息缓存单元中存储的信息格式示意图;

图4为切分后的内部帧的帧头格式示意图;

图5为图2中预处理单元的工作流程图;

图6为图2中数据帧转存单元的工作流程图;

图7为图2中内部帧生成与发送单元的工作流程图;

图8为重组模块内部框图;

图9为图8中信息缓存单元中存储的信息格式示意图;

图10为图8中内部帧接收单元工作流程图;

图11为图8中内部帧生成与发送单元工作流程图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

图1为一种应用本发明交换机的整体框图,如图1所示,交换机包括:交换模块2、网络接口接收模块11、切分模块12、重组模块13、网络接口发送模块14。网络接口接收模块11、切分模块12、重组模块13、网络接口发送模块14对应于每个端口。切分模块12用于接收网络接口模块发来的数据帧并缓存,按照目的地址以及优先级转存入voq,并将其切分为若干个信元,发送给交换模块2;重组模块13用于接收交换模块2发来的内部帧并缓存,将这些内部帧的有数据重组为原始的数据帧,并发送到网络接口发送模块14。

网络接口接收模块11以及网络接口发送模块14,实现协议交互,接收端接收来自物理介质上的信号,将接收到的数据帧发给切分模块12;发送端将待发送的数据帧按照协议通过物理介质发出,并按协议维护链路。切分模块12,接收网络接口接收模块11发来的数据帧,将其缓存并切分为规定格式的内部帧,根据交换模块2的调度将数据发送往交换模块2。交换模块2,根据输入端口的情况进行调度,调度完成后接收各个端口切分模块12传输的内部帧,根据内部帧帧头中的目的地址,将内部帧转发给目的地址对应对口的重组模块13。重组模块13,接收交换模块2传输的内部帧并缓存,将内部帧重组为完整的数据帧,并发送到网络接口发送模块14。

图2为切分模块12内部框图,如图1以及图2所示,切分模块12包括:在上述交换机数据帧切分与重组的装置中,切分模块12包括数据帧预处理单元21、信息缓存单元23、数据缓存单元22、数据帧转存单元24、voq单元25、长度统计单元27与内部帧生成与发送单元26。

所述数据帧预处理单元21,用于提取数据帧帧头中帧信息,提取数据帧中源地址与目的地址信息,以及数据帧中的优先级信息,将这些信息存入信息缓存单元23中,将数据帧存入数据缓存单元22中;所述信息缓存单元23,用于存储数据帧中的帧信息,采用fifo(first-inputfirst-output,先入先出存储队列)实现;所述数据缓存单元22,用于存储数据帧数据,采用fifo实现;所述数据帧转存单元24,将数据帧分类后存入voq中,因为本切分方案中相邻的数据帧可能切分到同一个内部帧中,因此必须保证切分时同一个voq中的数据帧是发往同一个端口;所述voq单元25,用于存储分类后的数据帧,采用fifo实现;所述长度统计单元27,用于统计每个voq中的数据总长度,从而为切分数据帧变长切分提供了voq中数据的总长度信息;所述内部帧生成与发送单元26,在需要发送数据时,生成内部帧帧头,并且从voq单元25中取出相应长度的数据,利用数据和内部帧帧头,组成一个完整的内部帧并发送给交换模块2。

在上述交换机数据帧切分与重组的装置中,重组模块13包括内部帧接收单元、信息缓存单元23、viq和内部帧生成与发送单元26;

所述内部帧接收单元,用于将接收到的内部帧中的帧头和有效数据分离,根据内部帧帧头中的源地址信息,将数据存入对应的viq中,并且判断是否有完整的数据帧结束,若有完整的数据帧结束,则将该数据帧的信息并存入信息缓存单元23中;

所述信息缓存单元23,用于存储每个数据帧对应的信息,采用fifo实现;

所述viq,用于存储经过内部帧接收单元处理后得到的数据帧有效数据,每一个viq对应交换机的一个输入端口,采用fifo实现;

所述内部帧生成与发送单元26,用于利用信息缓存单元23中的数据帧对应的信息,从对应的viq中取出完整的数据帧,并发送给网络接口发送模块14。

如图1以及图2所示,本发明的一种交换机数据帧切分与重组的方法,该方法包括数据帧切分和数据帧重组。

如图1以及图2所示,数据帧切分包括,接收由网络接口接收模块11接收到的数据帧并缓存,提取数据帧帧头中的信息生成内部帧帧头,根据缓存中数据量的大小,将数据帧切分为可变长度的内部帧,与内部帧帧头组成完整内部帧后发送到交换模块2。数据帧重组,接收由交换模块2发来的内部帧并缓存,提取内部帧中的有效数据将其重组为完整的原始数据帧,并发送到网络接口发送模块14。

如图1以及图2所示,在所述交换机数据帧切分与重组的方法中,数据帧切分具体包括以下步骤:

步骤1:接收到由网络接口接收模块11发来的数据帧后,提取数据帧头部中的源地址信息、目的地址信息以及优先级信息;

步骤2:将数据帧依次存入数据缓存中,生成数据帧的长度信息(字节计数),并且与步骤1中提取的信息合并后存入信息缓存中;

步骤3:若信息缓存不为空,则取出第一个数据帧信息,提取数据帧的长度、优先级、目的地址等信息;

步骤4:根据上一部提取的信息,从数据缓存中提取数据,按照目的地址与优先级存入虚拟输出队列中(virtualoutputqueuevoq),将数据帧长度累加至每个voq对应的长度统计单元27中;

步骤5:根据长度统计单元27统计的总长度,分情况给出当前要发送帧长并根据帧长、源地址、目的地址、优先级等组成内部帧帧头;

步骤6:根据交换机内部的调度算法判断需要发送哪个voq中的数据,将内部帧帧头与数据拼接为内部帧,将内部帧发送往交换单元;

步骤7:当发送完一个内部帧时,将长度统计单元27的统计总长度减掉发送的内部帧长度;

如图1以及图2所示,上文所述切片流程步骤1的具体方法为:

(1)接收数据帧的过程中,若数据帧未结束且长度满足一个内部帧的最大长度(由原始的数据帧经过切分后的内部帧的最大长度)时,将最大长度、源地址、目的地址等信息,放入信息缓存中。

(2)若数据帧结束,则将数据帧当前的长度、源地址、目的地址等信息存入信息缓存中;

(3)接收数据帧的过程中,将数据帧位宽从32位拓展为33位,第33位用于标记数据帧结束的信息,若当前数据帧结束,则将33位为1,否则为0;

如图1以及图2所示,上文所述分情况给出当前要发送帧长并根据帧长、源地址、目的地址、优先级等组成内部帧帧头的切片流程步骤5的具体方法为:

(1)若长度统计单元27记录的总长度大于内部帧最大长度时,则下一个内部帧的长度为内部帧的最大长度;

(2)若长度统计单元27记录的总长的小于内部帧最大长度时,给出下个发送的内部帧长度为当前统计单元的记录的总长度;

(3)若当前数据未发送,而长度统计单元27中记录的总长度发生变化,则依据前面两条对下一个内部帧长度进行修正;

如图1以及图2所示,上文所述切片流程步骤6的具体方法为:

(1)交换模块2中的调度单元依据调度算法判断那个voq中的数据帧优先进入交换模块2;

(2)确定好传输数据的voq后,依据步骤5中的信息组成内部帧的帧头,并发送往交换模块2;

(3)依据步骤5中的长度信息,在发送完帧头后,取相应长度的数据信息,即与帧头部分组成内部帧;

如图1以及图2所示,在所述交换机数据帧切分与重组的方法中,数据帧重组具体包括以下步骤:

步骤1:接收交换模块2的发送的内部帧,提取内部帧帧头中的源地址、数据长度等;

步骤2:按照数据长度以及源地址,将去掉帧头的内部帧存入虚拟输入队列(virtualinputqueue,viq)中;

步骤3:每次向viq中存入一个内部帧时,判断viq中数据是否包括完整的数据帧,若有数据帧完结,则将数据源地址以及数据帧的长度存入信息缓存中;

步骤4:若信息缓存不为空,则从信息缓存中取出首个数据帧信息;

步骤5:按照信息缓存中的源地址以及数据长度将数据从viq取出完整的数据帧,传输至网络接口发送模块14,进行数据帧的发送;

如图1以及图2所示,上文所述重组流程步骤3的具体方法为:

(1)当数据存入viq时,针对存入的数据个数进行计数

(2)判断数据帧的第33位,若为1,则将此时帧的源地址以及计数模块的数据长度存入信息缓存中,同时清零计数模块;若为0,则继续计数。

图3为切分后内部帧帧头格式的示意图,帧头包括rev、pri、did、sid、len五个信息段,内部帧中帧头之后是与len信息对应长度的数据。各个信息段的含义如下所示:

len:本内部帧的长度信息,共8bit;

sid:本内部帧的源地址,即产生次内部帧对应源端口号,共5bit;

did:本内部帧对应的目的地址,即本内部帧需要发送的端口对应的端口号,共5bit;

pri:本内部帧对应的优先级,需要在调度中使用,共7bit;

rev:保留位,无意义;

图3为本发明一种实现方式对应的切分模块12对应的内部框图,切分模块12接收的数据为32位位宽,接收后对应的数据的位宽扩展为33位。切分模块12接收网络接口接收模块11接收到的数据帧并缓存,根据数据帧的总长度切分为长度可变的内部帧,调度后发送网交换模块2。该模块主要包括预处理单元21、数据缓存单元22、信息缓存单元23、数据帧转存单元24、voq、长度统计单元27、内部帧生成与发送单元26。

预处理单元21:对接收到的数据帧进行预处理,将源地址、目的地址、优先级、长度等信息存入信息缓存单元23中,将数据帧数据存入数据缓存单元22中;信息缓存单元23:用于存储数据帧中的帧信息,其信息格式如图3所示,与数据缓存单元22中的数据帧一一对应,采用fifo实现,fifo宽度为25位;数据缓存单元22:用于存储数据帧,采用fifo实现,宽度为33位;数据帧转存单元24:按照优先级以及目的地址将数据帧分类,然后转存入voq单元25中;voq单元25:用于存储分类后的数据帧,采用fifo实现,共n*m个(n为端口数,m为优先级数),宽度为33位;长度统计单元27:记录每个voq中的总数据长度信息;内部帧生成与发送单元26:判断是否需要发送数据,需要发送时,将切分好的内部帧发送往交换模块2;

图5为预处理单元21的具体处理流程图,包括以下步骤:

步骤1:判断数据帧的帧头,提取数据帧帧头中的有效信息,包括sid、did、pri。

步骤2:判断当前数据帧是否结束,如果结束,将拓宽的数据位33位设置为1后存入数据缓存,同时将当前记录的数据帧的长度len以及步骤1中的sid、did、pri存入信息缓存。如果没有结束,将拓宽的数据位33位设置为0后存入数据缓存;

步骤3:在数据帧存入时进行计数,记录本数据帧存入数据的个数;

步骤4:对当前记录的个数进行判断,如果个数达到可以进行分片的最大长度,将当前记录的长度(即最大长度)len以及步骤1中的sid、did、pri等信息存入信息缓存中,同时清零当前计数长度;

图6为数据帧转存单元24的具体处理流程图,包括以下步骤:

步骤1:判断当前的信息缓存是否为空,如果为空则继续等待,不空则读取第一个数据帧的信息;

步骤2:根据读出的第一个数据帧的信息,提取的sid、pri,判断当前数据帧需要存储的voq队列,根据帧长信息,从数据缓存中取相应个数个数据,存入voq单元25中;

步骤3:将本次的存入voq单元25的数据长度写入长度统计单元27中,通知长度统计单元27加上本写入voq的长度;

图7为内部帧生成与发送单元26的具体处理流程图,包括以下步骤:

步骤1:根据长度累计单元中的长度记录,判断当前长度是否大于分片长度,如果大于分片长度,则设置内部帧中len信息为最大分片长度,否则将其设置为当前记录的总长度,然后再根据sid、did、pri等信息,组成帧头;

步骤2:判断当前内部帧是否需要发送,不需要发送则继续步骤1中的帧头生成步骤,需要发送则发送步骤1中生成的帧头;

步骤3:根据帧头中did、pri信息判断从哪个voq中取数据,根据len信息取相应个数个数据进行发送;

步骤4:将本次发送长度写入长度统计单元27,通知将之前记录的长度减去本次发送的数据长度;

图8为本发明一种实现方式对应的重组模块13对应的内部框图,重组模块13接收的数据为33位位宽,接收后对应的数据的位宽恢复为32位。切分模块12接收交换模块2传输的内部帧并缓存,根据内部帧帧头信息以及接收的第33位数据信息,重新组合为原始的数据帧,并从网络接口发送模块14发送。该模块主要包括内部帧接收单元、viq单元、信息缓存单元23、内部帧生成与发送单元26。

内部帧接收单元:用于将接收到的内部帧中的帧头和有效数据分离,将数据存入对应的viq中,判断是否有完整的数据帧结束后将该数据帧的信息并存入信息缓存单元23中;

信息缓存单元23:用于存储每个数据帧对应的信息,采用fifo实现,fifo宽度为13位,其数据格式如图9所示;

viq单元:用于存储数据帧有效数据,每一个viq对应交换机的一个输入端口,采用fifo实现,宽度为32位;

内部帧生成与发送单元26:读取信息缓存单元23中的信息,从viq中取出原始的数据帧,并发送给网络接口发送模块14;

图10为内部帧接收单元的具体处理流程图,包括以下步骤:

步骤1:接收从交换模块2传输的内部帧,提取帧头中的有效信息sid、len;

步骤2:根据帧头中的信息,将除帧头外的数据按照sid存入对应的viq中,按照len存入对应数据位数,同时记录当前存入的数据长度;

步骤3:判断第33位数据是否为1,如果不为1则继续判断,当33位为1时则表示数据帧结束,即此时viq中存在一个完整的数据帧,将步骤2中记录存入数据长度与sid存入信息缓存单元23,同时清空当前的长度记录开始准备记录下一个数据帧的长度;

图11为内部帧接收单元的具体处理流程图,包括以下步骤:

步骤1:判断当前的信息缓存是否为空,如果为空则继续等待,不空则读取第一个数据帧的信息;

步骤2:根据数据帧的sid、len信息,判断已经完成接收的数据帧的长度和sid,将数据按照sid从对应的viq取中,按照数据帧长度信息取出完整的数据帧,向网络发送模块传输;

本发明用于交换机数据帧切分与重组装置的方法有以下有益效果:

(1)本发明提出的交换机数据帧切分与重组的装置,效率高,延时低,可靠性好,数据管理简单。

(2)在切分模块采用变长切分方式,与现有技术的切分技术相比,将同优先级通目的地址的数据帧一起切分,无填充单元,可以得到更高的效率与更低的延时。

(3)在重组模块,采用扩展有效数据宽度的方式来判断数据帧结束的标志,减少了帧头的复杂度,使得数据帧结束位判断更加简洁有效,增加了传输的可靠性。

本发明针对从网络接口模块接收的数据进行了数据切分重组等处理,将较长的数据帧转化为不同长度的内部帧,易于交换模块2进行调度处理,有效的减少了短数据帧的延时,具有较高的效率与可靠性。与现有的技术相比,本发明采用的变长的切分方式,切分时考虑缓存中的所有数据帧,可以更有效的利用资源;切分的长度灵活可变,使得切分后的内部帧不会产生多余的填充单元,提高了交换效率;在重组模块13针对拓阔的有效数据位数来判断数据帧的结束标志,减少了内部帧帧头的复杂度以及重组模块设计的复杂度。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

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