一种数据转发方法及相关设备技术

技术编号:33326066 阅读:9 留言:0更新日期:2022-05-08 09:04
一种数据转发的方法及相关设备,应用于交换机领域,用于当交换机的入端口速率小于出端口速率时,避免待转发的数据被拉断,且降低时延。本申请中,交换机可以根据待转发数据的总长度,及入端口速率与出端口速率的速率差,确定需要缓存数据的缓存长度。当缓存的数据长度达到这个缓存长度时,出端口才会发送数据,出端口发送这部分缓存数据的时间段内,同步的,入端口能够将剩余的数据继续缓存到出端口缓存器中,这样,出端口就可以发送完第一部分缓存的数据后,继续发送剩余的数据,不会产生数据被拉断情况。同时,交换机也只需要缓存部分数据,相对于缓存整个待转发的数据而言,即保证了数据不被拉断,同时降低了时延。同时降低了时延。同时降低了时延。

【技术实现步骤摘要】
一种数据转发方法及相关设备


[0001]本申请涉及以太网交换机
,尤其涉及一种数据转发方法及相关设备。

技术介绍

[0002]当前,以太网交换机在转发发送端和接收端的数据时通常包括存储转发(store

and

forward)方式和直通交换(cut

through)这两种方式。其中,在存储转发方式中,交换机首先需要缓存整个数据,数据通过校验后,交换机再取出地址,通过查找表找到想要发送的出端口地址,将数据转发到对应的出端口。存储转发方式需要缓存整个数据,因此在数据处理时延大。
[0003]与存储转发方式相比,直通交换方式的交换机在转发数据时,不需要缓存整个数据。当交换机收到数据头部,从中解析出目的地址后,直接进行数据的转发。因此与存储转发相比,直通交换方式具有更低的时延,交换速度快的优点。直通交换方式是接收到数据头部之后就开始转发,因此理想的直通交换方式场景是保持数据的入端口速率大于或者等于出端口速率。
[0004]而在实际网络中,交换机的入端口和出端口的速率可能不同。例如,交换机接收数据的入端口速率会小于出端口速率,而在这种情况下,直通交换方式可能导致在出端口数据被拉断。为了避免出端口出现数据被拉断的情况,当接收数据的入端口速率小于输出数据的出端口速率时,当前技术中,交换机在出端口缓存整个数据后,才进行数据的发送,缓存整个数据导致较长的时延。

技术实现思路

[0005]本申请实施例提供了一种数据转发的方法及相关设备,用于当采用交换机的入端口速率小于出端口时,采用部分直通交换方式进行转发数据,从而避免数据被拉断,且降低时延。
[0006]第一方面,本申请提供了一种数据转发的方法,该方法应用于交换机,交换机包括入端口和出端口,入端口的入端口速率小于出端口的出端口速率,所述方法包括:交换机通过入端口接收来自发送端的数据,其中,数据包括多个数据单元,多个数据单元中的头部数据单元携带数据的总长度,然后,交换机可以根据总长度,及入端口速率与出端口速率的速率差确定总长度中的缓存长度,该总长度包括缓存长度和剩余长度,即将数据分成了两个部分,缓存长度对应的数据单元和剩余长度对应的数据单元,缓存长度的这部分数据单元需要先缓存再转发,而剩余长度对应的数据单元可以直接转发;交换机从头部数据单元开始对接收到的数据单元进行缓存;当已经缓存的数据单元的长度达到缓存长度时,通过出端口发送缓存长度对应的数据单元,当缓存长度对应的数据单元发送完成时,继续发送剩余长度对应的数据单元。
[0007]本申请针对入端口速率小于出端口速率的场景,为了避免出端口出现数据被拉断的问题,提出交换机可以通过部分直通交换方式进行转发数据。交换机可以根据数据的总
长度,及入端口速率与出端口速率的速率差,确定需要缓存数据的缓存长度。当缓存的数据长度达到这个缓存长度时,才会通过出端口发送数据。出端口发送这部分缓存数据的时间段内,同步的,入端口能够将剩余的数据继续缓存到出端口缓存器中,这样,出端口就可以发送完第一部分缓存的数据后,继续发送剩余的数据,不会产生数据被拉断情况。同时,交换机也只需要缓存部分数据,相对于缓存整个待转发的数据而言,即保证了数据不被拉断,同时降低了时延。
[0008]在一种可选的实现方式中,所述头部数据单元携带所述数据单元的总数量;交换机根据缓存长度及所述数据单元的总数量确定需要缓存的数据单元的缓存数量;当已经缓存的数据单元的数量达到缓存数量时,执行通过出端口发送缓存长度对应的数据单元的步骤。
[0009]本示例中,当出端口接收到数据单元时,可以直接根据接收到的数据单元的数量来确定是否达到了需要缓存的缓存数量即可,不需要累计计算已经接收到的数据单元的长度,实现方式简便。
[0010]在一种可选的实现方式中,入端口的数量为多个,所述方法还包括:交换机通过出端口轮询发送来自每个入端口的数据。例如,入端口以2个为例,交换机通过出端口首先来自发送第一个入端口的第一数据,当第一数据发送完毕后,再通过出端口发送来自第二个入端口的第二数据,待第二数据发送完毕后,再继续发送来自第一个入端口的第三数据,出端口不会出现空闲的情况,提高交换机转发数据的效率。
[0011]在一种可选的实现方式中,当入端口的数量为2个时,所述方法还包括:当来自一个入端口的数据单元的长度达到缓存长度时,通过出端口转发一个入端口的数据,同步的,缓存来自另一个入端口的数据单元;当通过出端口将来自一个入端口的数据发送完毕后,继续发送来自另一个端口的数据。本示例中,虽然入端口的数量增加了,但是,在发送一个入端口的数据的同时就可以缓存另一个端口的数据,在没有增加缓存时延的情况下,提高了交换机的交换效率。
[0012]第二方面,本申请提供了一种数据转发的装置,该装置应用于交换机,交换机包括入端口和出端口,入端口的入端口速率小于出端口的出端口速率,该装置包括:
[0013]收发模块,用于通过入端口接收来自发送端的数据;其中,数据包括多个数据单元,多个数据单元中的头部数据单元携带数据的总长度;
[0014]处理模块,用于根据收发模块接收到的总长度,及入端口速率与出端口速率的速率差确定缓存长度;总长度包括缓存长度和剩余长度;
[0015]缓存模块,用于在出端口从头部数据单元开始对收发模块接收到的数据单元进行缓存;
[0016]收发模块,还用于当缓存模块已经缓存的数据单元的长度达到缓存长度时,通过出端口发送缓存长度对应的数据单元,当缓存长度对应的数据单元发送完成时,继续发送剩余长度对应的数据单元。在一种可选的实现方式中,所述头部数据单元携带所述数据单元的总数量;处理模块,还用于根据缓存长度及所述数据单元的总数量确定需要缓存的数据单元的缓存数量;
[0017]收发模块,还用于当已经缓存的数据单元的数量达到缓存数量时,执行通过出端口发送缓存长度对应的数据单元的步骤。
[0018]在一种可选的实现方式中,入端口的数量为多个;收发模块,还用于通过出端口轮询发送来自每个入端口的数据。
[0019]在一种可选的实现方式中,入端口的数量为2个;收发模块,用于当来自一个入端口的数据单元的长度达到缓存长度时,通过出端口转发一个入端口的数据;
[0020]缓存模块,用于缓存来自另一个入端口的数据单元;
[0021]收发模块,还用于当通过出端口将来自一个入端口的数据发送完毕后,继续发送来自另一个端口的数据。
[0022]第三方面,本申请提供了一种交换机,包括处理器,存储器和以太网端口,处理器、存储器和以太网端口通过总线连接,存储器用于存储程序指令,当程序或指令被处理器执行时,使得交换机执行上述第一方面任一项的方法。
[0023]第四方面,本申请提供了一种计算机可读介质,用于储存计算机程序或指令,计算机程序或指令被执行时使得计算机执行第一方面任一项的方法。
[0024]第五方面,本申请提供了一种芯片,包括处理器和存储器,存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据转发的方法,其特征在于,应用于交换机,所述交换机包括入端口和出端口,所述入端口的入端口速率小于所述出端口的出端口速率,所述方法包括:通过所述入端口接收来自发送端的数据;其中,所述数据包括多个数据单元,所述多个数据单元中的头部数据单元携带所述数据的总长度;根据所述总长度,及所述入端口速率与所述出端口速率的速率差确定缓存长度;所述总长度包括所述缓存长度和剩余长度;从所述头部数据单元开始对接收到的所述数据单元进行缓存;当已经缓存的数据单元的长度达到所述缓存长度时,通过所述出端口发送所述缓存长度对应的数据单元,当所述缓存长度对应的数据单元发送完成时,继续发送所述剩余长度对应的数据单元。2.根据权利要求1所述的方法,其特征在于,所述头部数据单元携带所述数据单元的总数量,所述方法还包括:根据所述缓存长度及所述数据单元的总数量确定需要缓存的数据单元的缓存数量;当已经缓存的所述数据单元的数量达到所述缓存数量时,执行通过所述出端口发送所述缓存长度对应的数据单元的步骤。3.根据权利要求1或2中任一项所述的方法,其特征在于,所述入端口的数量为多个,所述方法还包括:通过所述出端口轮询发送来自每个所述入端口的数据。4.根据权利要求1或2中任一项所述的方法,其特征在于,所述入端口的数量为2个,所述方法还包括:当来自一个入端口的数据单元的长度达到缓存长度时,通过所述出端口转发所述一个入端口的数据,同步的,缓存来自另一个入端口的数据单元;当通过所述出端口将来自一个入端口的数据发送完毕后,继续发送来自另一个端口的数据。5.一种数据转发的装置,其特征在于,应用于交换机,所述交换机包括入端口和出端口,所述入端口的入端口速率小于所述出端口的出端口速率,所述装置包括:收发模块,用于通过所述入端口接收来自发送端的数据;其中,所述数据包括多个数据单元,所述多个数据单元中的头部数据单元携带所述数据的总长度及第一参数,所述第一参数用于指示每个所述数据单元的长度;处理模块,用于根据所述收发模块接收到的所述总长度,及所述入端口速率与所述出端口速率的速率...

【专利技术属性】
技术研发人员:孙德胜杨春生丁力
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1