一种数据交换方法、装置和系统.pdf

上传人:r5 文档编号:1090214 上传时间:2018-03-30 格式:PDF 页数:18 大小:841.52KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910147225.9

申请日:

2009.06.12

公开号:

CN101582854A

公开日:

2009.11.18

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效|||公开

IPC分类号:

H04L12/56

主分类号:

H04L12/56

申请人:

华为技术有限公司

发明人:

陈武茂; 臧大军

地址:

518129广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

深圳市深佳知识产权代理事务所(普通合伙)

代理人:

彭愿洁;李文红

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种数据交换方法、装置和系统。其中,该方法包括:输入端口根据接收到的数据包中携带的输出端口地址信息,向所述输出端口地址信息对应的输出端口发起数据包发送请求;当所述输出端口同时接收到多个输入端口发起的数据包发送请求时,所述输出端口判断接收所述多个输入端口中哪些输入端口中的数据包;所述输出端口调度该输出端口内的输出端口缓存,用以进行数据包接收。由于该技术方案采取了在输出端口处对输入端口的数据包的接收顺序进行仲裁,这样,输出端口处的缓存与输入端口之间就不必一一对应,输入端口处缓存与输入端口交叉点上的缓存就可省去,这种方式在很大程度上节省了缓存的使用数量,降低了交换设备的制造成本。

权利要求书

1、  一种数据交换方法,其特征在于,包括:
输入端口根据接收到的数据包中携带的输出端口地址信息,向所述输出端口地址信息对应的输出端口发起数据包发送请求;
当所述输出端口同时接收到多个输入端口发起的数据包发送请求时,所述输出端口判断接收所述多个输入端口中哪些输入端口中的数据包;
所述输出端口调度该输出端口内的输出端口缓存,用以进行数据包接收。

2、
  根据权利要求1所述的方法,其特征在于,所述输出端口判断接收所述多个输入端口中哪些输入端口中的数据包,包括:
所述输出端口检查所述数据包发送请求中所携带的输入端口信息;
所述输出端口根据所述输入端口信息判断是否接收该输入端口内的数据包。

3、
  根据权利要求2所述的方法,其特征在于,所述输出端口根据所述输入端口信息判断是否接收该输入端口内的数据包,包括:
所述输出端口根据获取的输入端口信息,采用轮循均衡算法判断是否接收该输入端口内的数据包。

4、
  根据权利要求1所述的方法,其特征在于,所述输出端口调度该输出端口内的输出端口缓存,包括:
所述输出端口采用轮循均衡算法调度该输出端口内的输出端口缓存。

5、
  根据权利要求1至4中任一项所述的方法,其特征在于,还包括:未被接收的数据包所处的输入端口继续向所述输出端口发起数据包发送请求,直至该输入端口内的数据包被所述输出端口接收。

6、
  根据权利要求1至4中任一项所述的方法,其特征在于,还包括:
监控输出端口缓存的使用状态,并将使用状态报告发送至交换接口控制器,以使交换接口控制器根据所述使用状态报告为数据包选择输出端口。

7、
  一种数据交换装置,其特征在于,包括:
输入端口单元,用于接收数据包,并根据所述数据包中所携带的输出端口地址信息,向所述输出端口地址信息对应的输出端口发起数据包发送请求;
输出端口单元,用于接收输入端口发起的数据包发送请求,当同时接收到多个输入端口发起的数据包发送请求时,判断接收所述多个输入端口中哪些输入端口中的数据包,并调度所述输出端口单元内的输出端口缓存,用以进行数据包接收。

8、
  根据权利要求7所述的装置,其特征在于,还包括:反压机制控制单元,用于监控输出端口缓存的使用状态,并向交换接口控制器发送使用状态报告。

9、
  一种数据交换系统,其特征在于,包括:
交换接口控制器,用于向输入端口单元发送数据包;
输入端口单元,用于接收数据包,并根据所述数据包中所携带的输出端口地址信息,向所述输出端口地址信息对应的输出端口发起数据包发送请求;
输出端口单元,用于接收输入端口发起的数据包发送请求,当同时接收到多个输入端口发起的数据包发送请求时,判断接收所述多个输入端口中哪些输入端口中的数据包,并调度所述输出端口单元内的输出端口缓存,用以进行数据包接收。

10、
  根据权利要求9所述的系统,其特征在于,还包括:反压机制控制单元,用于监控输出端口缓存的使用状态,并向交换接口控制器发送使用状态报告。

说明书

一种数据交换方法、装置和系统
技术领域
本发明涉及通信技术领域,更具体地说,涉及一种数据交换方法、装置和系统。
背景技术
随着互联网的带宽要求日益增长以及数据传输技术的飞速发展,对网络交换技术的要求也越来越高,因此,对路由器、交换机等数据交换设备的性能要求也越来越高,而作为路由器、交换机等数据设备的核心部分,交换结构的性能直接影响着路由器、交换机的性能,其中,交换结构的设计是基于一定的交换方法。目前,常用交换结构如下所述:
仲裁交叉(Arbiter Crossbar)结构,其中,该交换结构采用空分复用机构,使用集中的仲裁器确定各个交叉点的连接状态,实现将数据从交换网输入端口传送到交换网输出端口的功能。采用该交换结构时,为了达到较高的交换效率和较好的公平性,要求各个输入端口的发送能够同步,因此,该交换结构不适用于变长交换。同时,由于该交换结构的交叉点的连接状态由集中仲裁器进行控制,因此交换容量就要受限于仲裁器的复杂度,因此,要进行大容量的数据交换,就需要复杂度很高的仲裁器。
为解决上述问题,又相应出现了缓冲交叉(Buffered Crossbar)结构,其中,该结构无需中央仲裁器,在每个输出端口用简单的输出端口调度器调度与输入端口个数相同的先进先出(FIFO)缓存,而在所有输入端口与输出端口FIFO缓存的交叉点处,分别设置一个FIFO缓存,该FIFO缓存根据输出端口调度器的调度,向相应输入端口发送反压信息,输入端口可以根据该反压信息决定是否发送数据。该交换结构由于在输出端口处进行数据的调度,因此适用于变长交换,并且每个输出端口调度器只负责本端口的数据调度工作,因此,在进行大容量的数据交换时,也不会增加调度器的设计难度。
在实现本发明的过程中,发明人发现,现有的缓冲交叉结构至少存在以下问题:该种结构虽然避免了调度器的设计难度过大的问题,但在进行高效、大容量的数据交换工作,就需要在数据交换装置中设置大量的缓存,由于该结构需要在每个交叉点处设置缓存,如果该结构中存在N个入口,则共需要有N2个缓存,而如果入口数量较多的话,那么所需要的缓存的数量无疑是巨大的,这样必然会增加交换结构的制造成本。
发明内容
有鉴于此,本发明实施例提供一种数据交换方法、装置和系统,以较低的成本实现大容量的数据交换。
本发明实施例是这样实现的:
本发明实施例提供了一种数据交换方法,包括:
输入端口根据接收到的数据包中携带的输出端口地址信息,向所述输出端口地址信息对应的输出端口发起数据包发送请求;
当所述输出端口同时接收到多个输入端口发起的数据包发送请求时,所述输出端口判断接收所述多个输入端口中哪些输入端口中的数据包;
所述输出端口调度该输出端口内的输出端口缓存,用以进行数据包接收。
本发明实施例提供了一种数据交换装置,包括:
输入端口单元,用于接收数据包,并根据所述数据包中所携带的输出端口地址信息,向所述输出端口地址信息对应的输出端口发起数据包发送请求;
输出端口单元,用于接收输入端口发起的数据包发送请求,当同时接收到多个输入端口发起的数据包发送请求时,判断接收所述多个输入端口中哪些输入端口中的数据包,并调度所述输出端口单元内的输出端口缓存,用以进行数据包接收。
本发明实施例提供了一种数据交换系统,包括:
交换接口控制器,用于向输入端口单元发送数据包;
输入端口单元,用于接收数据包,并根据所述数据包中所携带的输出端口地址信息,向所述输出端口地址信息对应的输出端口发起数据包发送请求;
输出端口单元,用于接收输入端口发起的数据包发送请求,当同时接收到多个输入端口发起的数据包发送请求时,判断接收所述多个输入端口中哪些输入端口中的数据包,并调度所述输出端口单元内的输出端口缓存,用以进行数据包接收。
与现有技术相比,本发明实施例提供的技术方案具有以下优点:由于该技术方案采取了在输出端口处对输入端口的数据包的接收顺序进行仲裁,这样,输出端口处的缓存与输入端口之间就不必一一对应,输入端口处缓存与输入端口交叉点上的缓存就可省去,这种方式在很大程度上节省了缓存的使用数量,降低了交换设备的制造成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所涉及的一种数据交换方法流程图;
图2为本发明实施例所涉及的另一种数据交换方法流程图;
图3为本发明实施例所涉及的一种数据交换装置结构示意图;
图4为本发明实施例所涉及的一种数据交换系统结构示意图;
图5为本发明实施例所涉及的一种数据交换系统结构示意图;
图6为本发明实施例所涉及的一种数据交换方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
本实施例提供了一种数据交换方法,其中,输入端口在接收到交换接口控制器发送的数据包之后,数据交换装置要进行数据的交换工作,具体步骤如图1所示:
步骤101:输入端口根据所接收到的数据包中所携带的输出端口地址信息,向该输出端口地址信息所对应的输出端口发起数据包发送请求。
在步骤101中,输入端口在接收到数据包后,首先要分析该数据包的报文头,根据该报文头中所携带的输出端口地址信息,向该输出端口地址信息对应的输出端口发起数据包发送请求。
步骤102:当该输出端口同时接收到多个输入端口发起的数据包发送请求时,该输出端口判断接收哪些输入端口中的数据包。
在步骤102中,由于一个输出端口对应多个输入端口,因此输出端口在接收到一个输入端口发送的数据包发送请求后,需要判断是否可以马上接收该输入端口的数据包,此处,可以根据输入端口信息来判断,如:在所有输入端口之间采用轮循均衡算法,即对所有输入端口进行编号排序,输出端口按照已排好的顺序对各个输入端口的数据包进行接收;还可以为每个输入端口预先设定一个优先级,输出端口可以根据各个输入端口优先级的高低来进行数据包接收工作的判断。需要强调的是,输出端口可以根据其内部的输出端口缓存的实际使用情况来决定一次接收几个输入端口的数据包。
步骤103:该输出端口调度其内部的输出端口缓存,用以进行数据包接收。
在步骤102中,输出端口经过判断,确定了所要接收的输入端口的数据包后,要执行步骤103,即对该输出端口内的输出端口缓存进行调度,用所调度的输出端口缓存进行数据包的接收。在进行输出端口缓存的调度时,通常情况下,一个输出端口内的输出端口缓存之间并不存在优先级高低的问题,因此,多数情况下在进行输出端口缓存调度时,采用的是轮循均衡算法来进行调度。在调度完成,确定接收数据包的输出接口缓存之后,数据包即可发送至对应的输出端口缓存中,一个交换流程完成。
在步骤102中,输出端口在进行完数据包接收的判断工作后,那些未被接收的数据包所述的输入端口需要继续向该输出端口发起数据包发送请求,直至该输入端口内的数据包被输出端口接收。
在此处,可以根据实际情况设定一个时间间隔,每过一个时间间隔,该输入端口就向输出端口发起一次数据包发送请求,直至该输入端口的数据包被接收。
本实施例所提供的一种数据交换方法,由于该技术方案采取了在输出端口处对输入端口的数据包的接收顺序进行仲裁,这样,输出端口处的缓存与输入端口之间就不必一一对应,输入端口处缓存与输入端口交叉点上的缓存就可省去,这种方式在很大程度上节省了缓存的使用数量,降低了交换设备的制造成本。
实施例二:
本实施例提供了另外一种数据交换方法,该实施例与实施例一的区别在于:本实施例在进行数据交换的同时,采用了反压机制,具体情况如下:
在数据交换过程中,为了尽量避免报文头阻塞情况的发生,本实施例提供了反压机制,具体可以为:对输出端口缓存的使用状态进行监控,并将监控所得的输出端口缓存的使用状态报告发送至交换接口控制器,交换接口控制器可以根据该使用状态报告为数据包选择输出端口。更进一步可具体为:如果使用状态报告显示,某一输出端口内的输出端口缓存的使用情况未达到接收数据包的要求,例如:某一输出端口内的输出端口缓存的使用状态超过了预先设定的门限,则可认为该输出端口内的输出端口缓存的使用情况未达到接收数据包的要求,或者也可以说,该输出端口此时已不适合继续接收数据包。相应地,交换接口控制器会在为数据包选择输出端口时,尽量避免使用该输出端口,直至接收到的使用状态报告显示该输出端口内输出端口缓存的使用情况已达到接收数据包的要求,交换接口控制器才会在进行输出端口选择时重新考虑该输出端口。
需要说明的是,反压机制的工作流程是贯穿于数据包交换流程中的,不存在位于交换流程的某一步之前或之后的问题,并且,可以根据实际情况确定使用状态报告的发送周期,以使交换接口控制器能够及时掌握各个输出端口缓存的使用状态,便于为数据包选择输出端口。
本实施例所提供的数据交换方法,在输出端口处对输入端口的数据包的接收顺序进行仲裁,这样,输出端口处的缓存与输入端口之间就不必一一对应,输入端口处缓存与输入端口交叉点上的缓存就可省去,这种方式在很大程度上节省了缓存的使用数量,降低了交换设备的制造成本。同时,由于本实施例还采用了反压机制,使交换接口控制器可以及时获取输出端口缓存的使用状态,为数据包选择合适的输出端口地址,有效地减少了报文头阻塞的发生。
相应地,本发明实施例还提供了一种数据交换装置,如图2所示,包括:
输入端口单元201,用于接收数据包;以及,
用于根据所接收到的数据包中所携带的输出端口地址信息,向该输出端口地址信息对应的输出端口单元发起数据包发送请求;
输出端口单元202,用于接收输入端口发起的数据包发送请求,当同时接收到多个输入端口发起的数据包发送请求时,判断接收所述多个输入端口中哪些输入端口中的数据包,并调度输出端口单元202内的输出端口缓存,用以进行数据包接收。
除此以外,如果输入端口单元201中的数据包未能被接收,则输入端口单元201需要继续向输出单元202发起数据包发送请求,直至其内的数据包被接收。
除此以外,本实施例所提供的一种数据交换装置出包括输入端口单元201和输出端口单元202外,还可包括反压机制控制单元301,并如图3所示。其中,反压机制控制单元301用于监控输出端口缓存的使用状态;以及向交换接口控制器发送使用状态报告,使交换接口控制器可以根据该使用状态报告进行数据包输出端口地址的选择。
同时,本发明实施例还提供了一种数据交换系统,该系统结构如图4所示,包括:
交换接口控制器401,用于向输入端口单元201发送数据包;
输入端口单元201,用于接收交换接口控制器401发送的数据包;以及,
用于根据该数据包中所携带的输出端口地址信息,向该输出端口地址信息对应的输出端口单元发起数据包发送请求;
输出端口单元202,用于接收输入端口发起的数据包发送请求,当同时接收到多个输入端口发起的数据包发送请求时,判断接收所述多个输入端口中哪些输入端口中的数据包,并调度输出端口单元202内的输出端口缓存,用以进行数据包接收。
除此以外,如果输入端口单元201中的数据包为能被接收,则输入端口单元201需要继续向输出单元202发起数据包发送请求,直至其内的数据包被接收。
另外,本实施例所提供的一种数据交换系统,还可包括反压机制控制单元301,该单元用于监控输出端口缓存的使用状态;以及,
用于向交换接口控制器401发送使用状态报告,使交换接口控制器401可以根据该使用状态报告进行数据包输出端口地址的选择。
基于以上系统,可通过如下方式实现数据包的交换:
交换接口控制器401向输入端口单元201发送需要进行交换的数据包,该数据包报文头中携带有该数据包的输出端口的地址信息;输入端口单元201在接收到该数据包后,首先分析该数据包的报文头,从中获取该报文的输出端口地址信息,并按照地址信息向对应的输出端口单元202发起数据包发送请求;输出端口单元202接收到该数据包发送请求后,需要判断是否可以马上接收该请求所对应的数据包,比如,可以根据该请求所对应的输入端口信息或者根据该请求所对应的数据包的相关信息来判断是否可以马上接收该请求所对应的数据包。当判断结果为是时,输出端口202还需对其内的输出端口缓存进行调度,确定用哪些输出端口缓存进行数据包的接收工作,之后,便可利用确定的输出端口缓存进行数据包的接收。如果输入端口单元201中的数据包未被接收,则输入端口单元201继续向输入端口单元202发起数据包发送请求,直至其内的数据包被接收。
除了以上实现数据包交换的基本流程之外,反压机制控制单元301还可对输出端口202中的输出端口缓存的使用状态进行监控,并将监控得到的使用状态报告发送至交换接口控制器401,使交换接口控制器401可以根据各个输出端口内输出端口缓存的使用状态为数据包选择输出端口,尽量避免报文头阻塞的发生。
本实施例所提供的一种数据交换系统,由于该技术方案采取了在输出端口处对输入端口的数据包的接收顺序进行仲裁,这样,输出端口处的缓存与输入端口之间就不必一一对应,输入端口处缓存与输入端口交叉点上的缓存就可省去,这种方式在很大程度上节省了缓存的使用数量,降低了交换设备的制造成本。
优选地,由于本实施例还采用了反压机制,使交换接口控制器可以及时获取输出端口缓存的使用状态,为数据包选择合适的输出端口地址,有效地减少了报文头阻塞的发生。
根据上述方法,结合具体应用场景,对本发明所涉及的技术方案做进一步介绍。
如图5所示,该图为本发明具体实施例所涉及的一种数据交换系统的结构示意图,在交换芯片501的入口处放置输入端口缓存502,输入端口缓存502可以是小容量FIFO缓存,为实现将交换数据的仲裁调度工作转换为片内处理,以使芯片的集成度更高一些,现将输入端口缓存502置于交换芯片内。该FIFO缓存除了可以起到缓存交换数据包的作用,还可以起到隔离交换接口控制器和交换芯片的作用。在交换芯片501的输出端口处放置输出端口缓存503,此处同样可以是小容量FIFO缓存,且每一个输出端口包括至少一个FIFO缓存,并由设置于该输出端口处的调度器进行各个FIFO缓存接收报文的调度工作,其中,在每个输出端口处设置多个FIFO缓存的目的是为了能够使输入端口处的FIFO缓存内的数据包得到及时处理。每个输出端口处的所有FIFO缓存分别与所有输入端口处的FIFO缓存交叉相连。基于以上交换结构,报文在该交换芯片501中的处理过程如图6所示:
步骤601:交换芯片接收交换接口控制器发送的数据包,并将该数据包存储至输入端口处的入口FIFO缓存中。
步骤602:输入端口分析入口FIFO缓存内数据包的报文头,根据该报文头中携带的输出端口地址信息向该数据包的输出端口的调度器发起发送请求。
在步骤602中,如果有输出端口发生拥塞,而入口FIFO缓存中的数据包还不断地发往发生拥塞的输出端口,则会出现报文头阻塞(HOL),为了尽量避免这种情况的发生,可以采用虚拟输出队列(VOQ)反压机制,可以具体为:交换芯片实时监控每个输出端口处FIFO缓存的使用状态,并将该状态报告发送给交换接口控制器,交换接口控制器可以根据该状态信息为数据包选择合适的输出端口,尽量减少HOL的发生。如,当某一输出端口的FIFO缓存的使用率已达到了预先所设定的门限,或该端口的FIFO缓存正在同时接收数据包,并且持续的时间已达到了设定的门限等多种情况,可认为该输出端口处于拥塞状态,暂时不适合接收数据包。
步骤603:输出端口调度器接收到关于输入端口FIFO缓存内数据包的发送请求后,判断是否接收该输入端口的数据包。
在步骤603中,可能会出现一个输出端口同时接收到多个来自不同输入端口的发送请求,在这种情况下,输出端口需要对这些请求进行仲裁,确定哪些输入端口FIFO缓存内的数据包可以先被接收,在该处,可以根据输入端口信息来确定,例如,将所有输入端口进行编号排序,采用轮循均衡算法对各个接口的数据包进行接收;还可以为每个输入端口预先设定一个优先级,输出端口可以根据各个输入端口优先级的高低来进行数据包接收工作的判断。
如果发起请求的输入端口处的FIFO缓存内的数据包经过判断可以马上进行接收,则进入步骤604,否则,进入步骤606。
步骤604:输出端口调度器进行内部FIFO缓存的调度,确定由哪些FIFO缓存接收数据包,并进入步骤605。
通常情况下,输出端口调度器采用轮循均衡(RR)算法、加权轮循均衡(WRR)算法等来进行FIFO缓存的调度。
步骤605:输出端口调度器读出输入端口FIFO缓存内的数据并将该数据写入到选定的输出端口FIFO缓存内。
步骤606:输入端口继续向输出端口发起发送请求,直至该输入端口处FIFO缓存内的数据包可以被处理。
至此,数据包已完成了在芯片内的交换过程。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM(Read-Only Memory,只读存储记忆体)、RAM(RandomAccess Memory,随机存储记忆体)、磁碟或者光盘等各种可以存储程序代码的介质。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

一种数据交换方法、装置和系统.pdf_第1页
第1页 / 共18页
一种数据交换方法、装置和系统.pdf_第2页
第2页 / 共18页
一种数据交换方法、装置和系统.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《一种数据交换方法、装置和系统.pdf》由会员分享,可在线阅读,更多相关《一种数据交换方法、装置和系统.pdf(18页珍藏版)》请在专利查询网上搜索。

本发明实施例公开了一种数据交换方法、装置和系统。其中,该方法包括:输入端口根据接收到的数据包中携带的输出端口地址信息,向所述输出端口地址信息对应的输出端口发起数据包发送请求;当所述输出端口同时接收到多个输入端口发起的数据包发送请求时,所述输出端口判断接收所述多个输入端口中哪些输入端口中的数据包;所述输出端口调度该输出端口内的输出端口缓存,用以进行数据包接收。由于该技术方案采取了在输出端口处对输入端。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1