CN104219591B - 一种数据包交换方法及装置 - Google Patents

一种数据包交换方法及装置 Download PDF

Info

Publication number
CN104219591B
CN104219591B CN201310209851.2A CN201310209851A CN104219591B CN 104219591 B CN104219591 B CN 104219591B CN 201310209851 A CN201310209851 A CN 201310209851A CN 104219591 B CN104219591 B CN 104219591B
Authority
CN
China
Prior art keywords
packet
optical switch
light
remaining data
switching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310209851.2A
Other languages
English (en)
Other versions
CN104219591A (zh
Inventor
马会肖
杨小玲
王岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310209851.2A priority Critical patent/CN104219591B/zh
Publication of CN104219591A publication Critical patent/CN104219591A/zh
Application granted granted Critical
Publication of CN104219591B publication Critical patent/CN104219591B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Optical Communication System (AREA)

Abstract

本发明公开了一种数据交换方法,用于节省光交换网络的硬件资源及减小光交换设备占地面积。所述方法包括:获得用于在光交换机中进行交换的M个数据包;确定M个数据包中有至少两个数据包对应光交换机中的同一光交换目的端口;将其中一个数据包交换至光交换目的端口,以通过光交换目的端口将该数据包发送至目的设备;将剩余数据包交换至光交换机的光交换空闲输出端口,以通过光交换空闲输出端口将其重新分发至光交换机或电交换机,以供电交换机将剩余数据包交换至电交换目的端口或供光交换机将所述剩余数据包交换至光交换目的端口,并通过电交换目的端口或光交换目的端口将剩余数据包发送至相应目的设备。本发明还公开了用于实现所述方法的装置。

Description

一种数据包交换方法及装置
技术领域
本发明涉及交换技术领域,特别涉及一种数据包交换方法及装置。
背景技术
随着数据流量的高速增长,交换网络对交换容量的需求也越来越大。传统的电交换机由于背板、能耗等技术的限制已不能满足交换容量持续增长的需求,光交换技术能在一定程度上解决电交换机所存在的问题,因此光交换技术也成了全光网络的关键技术之一。
与电交换网络相比,光交换网络在可预期的未来将为我们提供更好的颗粒度,提高了整个光网络的灵活性。但由于光开关的规模和调整时间的限制,电交换机凭借其成熟的技术将在较长时间内无法被替代,光电混合交换架构是从电交换机向全光交换机过渡的模型,即将光交换设备与电交换设备搭配使用,实现交换目的。
例如,一种光电混合交换架构的核心层由光交换机和电交换机构成,根据一定的原则来进行数据包的分配。例如,可以令长度大于一定阈值的包由光交换机完成交换,长度小于阈值的包由电交换机完成交换。而具体哪个数据包由哪个交换机完成交换,中间需要一个具有分发功能的单元来完成数据包的分发。再者,经过光交换后,原本连续的信号变成突发信号,目前标准的以太网帧无法实现突发接收,因此需要一个具有协议转换功能的设备将标准的以太网信号通过协议转换使之成为适合光交换的帧格式。现有技术中,分发单元就集成了上述的分发功能和协议转换的功能。可以将分发单元集成在接入设备中形成新型的接入侧设备,或使之单独置于接入侧设备与核心层设备之间。
在光交换网络中,如何解决冲突数据包是影响网络性能的重要因素之一。数据包冲突是指:在通信网络的光交换节点处,当两个或更多的处于同一波长的数据包尝试同时从交换节点的同一输出端口发出时,在交换节点处便发生了冲突。在电交换网络中,通常使用存储转发技术来解决数据包冲突,这一技术是将存在冲突的数据包存储在一个存储体中并在输出端口处于空闲状态时进行发送,这对于具备随机存取存储器(RAM)的电交换机来说是可行的。但对于光交换网络来说,由于目前还没有光RAM技术,所以需要采用其他方式来解决冲突。
关于光交换网络中的数据包冲突,现有技术中的解决方案如下:
一、电缓存技术。该技术继承了电交换中的冲突解决方法,是目前做大规模光交换网络采用的主要解决方法之一。图1A为利用电缓存技术解决数据包冲突问题的交换节点结构。图1A中的电缓存装置通过电光转换器(图1A中的E/O)和光电转换器(图1A中的O/E)连接在光交换机的输入端口和输出端口之间,为存在冲突的数据包提供连续时间的缓存。
当光交换机侧的调度控制单元检测到有数据包有冲突后,会将产生冲突的数据包发送到电缓存装置的电缓存端口,将数据包通过光/电转换器转换为电数据包后缓存在电缓存装置中的存储单元。当控制单元检测到输出端口空闲时,将存储在存储单元中的电数据包通过电/光转换器重新转换为光数据包,并进行光信号放大后(放大装置如图1A中的SOA)将光数据包调度到光交换机的空闲输出端口。
该技术的缺点:
电缓存装置(例如RAM)可以提供连续时间的随机缓存,但若用于缓存光数据包,需要应用到光/电转换器和分组缓存结束时的电/光转换器,中途要经历两次转换过程,显然降低了数据包交换速率。另外对于光电混合架构来说,电交换机中已经存在有电缓存,若再额外引入电缓存装置,也需额外增加硬件设备,造成了硬件设备和软件调度的需求和浪费。
二、光缓存技术,该技术是基于FDL(光纤延迟线)技术提出的。FDL缓存是目前认为最容易实现和常用的光域缓存技术。图1B描述了光纤延迟线作为光缓存的光交换节点的结构。要想从时间域上解决数据包冲突解决,则需要求有光缓存,出现冲突的数据包能够在光交换机的输出端进入光纤延迟线,数据穿过整条延迟线后重新进入光交换矩阵,从而可以在时间域上使冲突数据包之间彼此分开,不用再同时进行发送,相应解决了数据包冲突问题。
该技术的缺点:
利用光交换机配置FDL缓存解决冲突,要求光纤数量较大,从而造成整个设备体积庞大,占地面积较大,相应的设备重量也较大,无论操作还是移动都十分不便。而且FDL只有离散的缓存粒度,控制起来不够灵活。另外,这种方案也不可避免的引入了额外的硬件设备,也在一定程度上造成了硬件设备和软件调度的需求和浪费。
综上所述,现有技术中尚无较好的在光交换网络中解决数据包冲突的方法。
发明内容
本发明实施例提供一种数据包交换方法,用于解决现有技术中光交换网络中在解决数据包冲突时浪费硬件资源及设备因体积过大而操作不便的技术问题,实现了节省硬件资源及减小设备占地面积的技术效果。
本发明的第一方面,提供一种数据包交换方法,包括:
获得用于在光交换机中进行交换的M个数据包,M为不小于2的整数;
通过对所述M个数据包对应的M个第一数据包信息进行分析,确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口;
将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应目的设备;
将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,以供所述电交换机将所述剩余数据包交换至电交换目的端口或供所述光交换机将所述剩余数据包交换至光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。
结合第一方面,在第一种可能的实现方式中,获得M个用于在光交换机中进行交换的数据包的步骤包括:
获得N个用于在所述电交换机或所述光交换机中进行交换的数据包,N为不小于M的整数;
根据所述N个数据包中每个数据包对应的第二数据包信息,从所述N个数据包中获得所述M个数据包。
结合第一方面或第一种可能的实现方式,在第二种可能的实现方式中,将所述至少两个数据包中的一个数据包交换至所述光交换目的端口的步骤包括:
判断所述光交换目的端口是否处于空闲状态;
如果所述光交换目的端口处于空闲状态,将所述至少两个数据包中的一个数据包交换至所述光交换目的端口;
如果所述光交换目的端口处于忙碌状态,将所述至少两个数据包均交换至所述光交换空闲输出端口。
结合第一方面或第二种可能的实现方式,在第三种可能的实现方式中,通过对所述M个数据包对应的M个第一数据包信息进行分析,确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口的步骤包括:
分别提取所述M个数据包中每个数据包对应的第一数据包信息,分别根据提取的所述M个第一数据包信息获得M个数据包中每个数据包的光交换目的端口,共获得M个光交换目的端口;
确定所述M个光交换目的端口中有至少两个所述光交换目的端口相同。
结合第三种可能的实现方式,在第四种可能的实现方式中,分别根据提取的所述M个第一数据包信息获得M个数据包中每个数据包的光交换目的端口的步骤包括:
分别根据提取的所述M个第一数据包信息获得所述M个数据包中每个数据包的目的地址,共获得M个目的地址;
根据光交换目的端口与目的地址的对应关系,通过所述M个目的地址获得所述M个光交换目的端口。
结合第一方面或第一种可能的实现方式,在第五种可能的实现方式中,将所述至少两个数据包中的一个数据包交换至所述光交换目的端口的步骤包括:
确定所述至少两个数据包中每个数据包对应的优先级;
从所述至少两个数据包中确定出优先级最高的第一数据包;
将所述第一数据包交换至所述光交换目的端口。
结合第一方面,或结合第二种可能的实现方式,或结合第五种可能的实现方式,在第六种可能的实现方式中,将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口的步骤包括:
确定所述至少两个数据包中每个数据包对应的优先级;
从所述至少两个数据包中确定出优先级最高的第一数据包;
将所述至少两个数据包中除所述第一数据包外的剩余数据包交换至所述光交换空闲输出端口。
结合第六种可能的实现方式,在第七种可能的实现方式中,将所述至少两个数据包中除所述第一数据包外的剩余数据包交换至所述光交换空闲输出端口的步骤包括:
判断所述光交换机剩余的光交换空闲输出端口的第二数量是否小于所述至少两个数据包中除所述第一数据包外的剩余数据包的第一数量;
如果所述第二数量小于所述第一数量,从所述至少两个数据包中除所述第一数据包外的剩余数据包中选取符合所述第二数量的数据包,将其分别交换至符合所述第二数量的光交换空闲输出端口,并将未选取的数据包丢弃。
结合第七种可能的实现方式,在第八种可能的实现方式中,从所述至少两个数据包中除所述第一数据包外的剩余数据包中选取所述第二数量个数据包的步骤包括:按照所述至少两个数据包中除所述第一数据包外的剩余数据包中每个数据包对应的优先级从高到低的顺序,从所述至少两个数据包中除所述第一数据包外的剩余数据包中选取符合所述第二数量的数据包。
结合第一方面,或结合第二种可能的实现方式,或结合第五种可能的实现方式,在第九种可能的实现方式中,在将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口之后,且在通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机之前还包括步骤:
分别提取所述剩余数据包中每个数据包的存活标识域信息;
分别判断提取出的所述剩余数据包中每个数据包的存活标识域信息的值是否为0;
将存活标识域信息的值不为0的数据包的存活标识域信息的值减1,之后将处理后的数据包通过所述光交换空闲输出端口重新分发至所述光交换机或电交换机;及将存活标识域信息的值为0的数据包丢弃。
结合第一方面,或结合第二种可能的实现方式,或结合第五种可能的实现方式,在第十种可能的实现方式中,将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,以供所述电交换机将所述剩余数据包交换至电交换目的端口或供所述光交换机将所述剩余数据包交换至光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备的步骤包括:
将所述剩余数据包交换至所述光交换空闲输出端口;
确定所述剩余数据包的第一分发模式;
判断是否有K个数据包需首次被分发到所述电交换机或所述光交换机;
当没有所述K个数据包需首次被分发到所述电交换机或所述光交换机时,将所述剩余数据包按照所述第一分发模式重新分发至所述光交换机或所述电交换机,以供所述电交换机将所述剩余数据包交换至所述电交换目的端口或供所述光交换机将所述剩余数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备;
当有所述K个数据包需首次被分发到所述电交换机或所述光交换机时,判断所述K个数据包所选择的第二分发模式与所述第一分发模式是否为同一分发模式;
如果所述第二分发模式与所述第一分发模式不同,将所述剩余数据包按照所述第一分发模式重新分发至所述光交换机或所述电交换机,以供所述电交换机将所述剩余数据包交换至所述电交换目的端口或供所述光交换机将所述剩余数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备,及将所述K个数据包按照所述第二分发模式分发至所述光交换机或所述电交换机,以供所述电交换机将所述K个数据包交换至所述电交换目的端口或供所述光交换机将所述K个数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述K个数据包发送至相应目的设备;
如果所述第二分发模式与所述第一分发模式相同,先将所述K个数据包按照所述第二分发模式分发至所述光交换机或所述电交换机,以供所述电交换机将所述K个数据包交换至所述电交换目的端口或供所述光交换机将所述K个数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述K个数据包发送至相应目的设备,再将所述剩余数据包按照所述第一分发模式重新分发至所述光交换机或所述电交换机,以供所述电交换机将所述剩余数据包交换至所述电交换目的端口或供所述光交换机将所述剩余数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。
结合第十种可能的实现方式,在第十一种可能的实现方式中,在将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换机空闲输出端口之后,及在确定所述剩余数据包的第一分发模式之前还包括步骤:
分别提取出所述剩余数据包里每个数据包的第一数据包信息中包括的目的地址信息;
判断提取出的目的地址信息是否均与存储的目的地址信息相匹配;
当提取出的目的地址信息中有目的地址信息与存储的目的地址信息不匹配时,确定将目的地址不匹配的数据包重新分发至所述光交换机或所述电交换机。
结合第十种可能的实现方式或第十一种可能的实现方式,在第十二种可能的实现方式中,所述第一分发模式为分发至所述电交换机的模式,或所述第一分发模式为分发至所述光交换机的模式;所述第二分发模式为分发至所述电交换机的模式,或所述第二分发模式为分发至所述光交换机的模式。
本发明的第二方面,提供一种数据交换装置,包括:
至少一个分发模块,用于将接收的N个数据包分发至光交换机或电交换机;
控制模块,用于通过对所述至少一个分发模块接收的所述N个数据包中需分发至所述光交换机的M个数据包对应的M个第二数据包进行分析,获得确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口的分析结果,根据所述分析结果获得控制信息,并将所述控制信息发送至所述光交换机,以供所述光交换机根据所述控制信息进行数据包交换;
所述光交换机,用于接收所述控制模块发送的所述控制信息,并根据所述控制信息将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应目的设备,及将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,以供所述电交换机将所述剩余数据包交换至电交换目的端口或供所述光交换机将所述剩余数据包交换至光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。
结合第二方面,在第一种可能的实现方式中,所述装置还包括所述电交换机;所述电交换机用于将接收的来自于所述分发模块的数据包交换至相应的电交换目的端口。
结合第二方面或第一种可能的实现方式,在第二种可能的实现方式中,所述控制模块包括:
标签提取单元,用于通过所述分发模块获得用于在所述光交换机中进行交换的所述M个数据包对应的M个第一标签信息,所述M个第一标签信息中的每个第一标签信息中至少包括所述第一数据包信息,从而共获得所述M个第一数据包信息,M为不小于2的整数;
冲突检测单元,用于通过对所述标签提取单元获得的所述M个第一数据包信息进行分析,获得确定所述M个第一数据包信息对应的所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口的所述分析结果;
发送单元,用于根据所述冲突检测单元获得的所述分析结果获得所述控制信息,并将所述控制信息发送至所述光交换机,以供所述光交换机根据所述控制信息进行数据包交换。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述控制模块还包括路径计算单元,用于在所述冲突检测单元获得所述分析结果后,计算所述至少两个数据包中需交换至所述光交换目的端口的数据包的第一交换路径,及计算需交换至所述光交换空闲输出端口的所述剩余数据包的第二交换路径,以供所述发送单元根据所述第一交换路径和所述第二交换路径生成并发送所述控制信息。
结合第二方面或第一种可能的实现方式,在第四种可能的实现方式中,所述分发模块包括:
光包接收单元,用于接收来自于光交换机的数据包;
错包检测单元,用于根据所述光包接收单元接收的数据包对应的地址信息检测接收的数据包是否能够通过所述分发模块发送至相应目的设备;
分发单元,用于将通过所述错包检测单元检测确定不能通过所述装置发送至相应目的设备的数据包重新分发至所述电交换机或所述光交换机;
复用单元,用于将通过所述错包检测单元检测确定能够通过所述分发模块发送至相应目的设备的数据包与来自所述电交换机的数据包进行复用;
第一以太网发送单元,用于将经过所述复用单元复用的数据包发送至相应目的设备。
结合第四种可能的实现方式,在第五种可能的实现方式中,所述分发模块还包括第一以太网接收单元,用于接收来自于源设备的数据包。
结合第四种可能的实现方式,在第六种可能的实现方式中,所述分发单元还用于将所述第一以太网接收单元接收的来自于源设备的数据包分发至所述光交换机或所述电交换机。
结合第四种可能的实现方式,在第七种可能的实现方式中,所述分发模块还包括光包发送单元和第二以太网发送单元;
所述光包发送单元用于将来自所述分发单元的需经所述光交换机进行交换的数据包发送至所述光交换机;
所述第二以太网发送单元用于将来自所述分发单元的需经所述电交换机进行交换的数据包发送至所述电交换机。
结合第四种可能的实现方式至第七种可能的实现方式中的任意一种,在第八种可能的实现方式中,所述分发模块还包括偏射路由次数处理单元,用于分别提取出所述来自所述错包检测单元的、不能通过所述分发模块发送至相应目的设备的数据包中每个数据包的存活域标识信息,并根据所述存活域标识信息的值确定相应数据包是否应被丢弃。
结合第八种可能的实现方式,在第九种可能的实现方式中,所述偏射路由次数处理单元具体用于:分别提取来自于所述错包检测单元的数据包中每个数据包的存活标识域信息,分别判断提取出的各存活标识域信息的值是否为0,将存活标识域信息的值不为0的数据包的存活标识域信息的值减1,之后将处理后的数据包发送至所述分发单元,以供所述分发单元将其重新分发至所述光交换机或电交换机,及将存活标识域信息的值为0的数据包丢弃。
结合第二方面或第一种可能的实现方式至第九种可能的实现方式中的任意一种,在第十种可能的实现方式中,所述光交换机中包括有至少一个预留光交换空闲输出端口,用于接收所述剩余数据包。
结合第十种可能的实现方式,在第十一种可能的实现方式中,所述至少一个预留光交换空闲输出端口中的每个预留空闲输出端口与一个分发模块相连。
本发明实施例中的数据包交换方法可以包括:获得用于在光交换机中进行交换的M个数据包,M为不小于2的整数;通过对所述M个数据包对应的M个第一数据包信息进行分析,确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口;将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应目的设备;将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,以供所述电交换机将所述剩余数据包交换至电交换目的端口或供所述光交换机将所述剩余数据包交换至光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。
本发明实施例中,如果确定用于在光交换机中进行交换的所述M个数据包中有至少两个数据包对应于所述光交换机中的同一光交换目的端口,则可以通过所述光交换机先将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应的目的设备,将所述至少两个数据包中的剩余数据包交换至所述光交换机的所述光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,再重新进行交换。即本发明实施例通过偏射路由的方式解决了现有技术中光交换网络中在解决数据包冲突时浪费硬件资源及设备因体积过大而操作不便的技术问题。
采用本发明实施例中的数据包交换方法,将产生冲突的数据包分配至偏射路由,偏射路由路径由空闲的光包路径或已有的电包路径构成,无需增加额外的电缓存或光纤等硬件设备即可解决数据包冲突问题,节省了硬件和软件资源,使整个设备体积较小,占地面积较小,相应的重量也较小,无论直接操作还是移动都较为方便。数据包交换中途无需像采用电缓存技术一样经历两次转换过程,显然提高了数据包交换速率。
附图说明
图1A为现有技术中利用电缓存技术解决数据包冲突问题的交换节点结构;
图1B为现有技术中光纤延迟线作为光缓存的光交换节点的结构;
图2A为本发明实施例中数据包交换方法的主要流程图;
图2B为本发明实施例中在数据帧中增加TTL域的一种示意图;
图3为本发明实施例中对需经偏射的数据包的处理流程图;
图4为本发明实施例中数据交换装置的详细结构图;
图5为本发明实施例中分发模块的详细结构图;
图6为本发明实施例中分发单元的详细结构图;
图7为本发明实施例中控制模块的详细结构图。
具体实施方式
本发明实施例中的数据包交换方法可以包括:获得用于在光交换机中进行交换的M个数据包,M为不小于2的整数;通过对所述M个数据包对应的M个第一数据包信息进行分析,确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口;将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应目的设备;将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,以供所述电交换机将所述剩余数据包交换至电交换目的端口或供所述光交换机将所述剩余数据包交换至光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。
本发明实施例中,如果确定用于在光交换机中进行交换的所述M个数据包中有至少两个数据包对应于所述光交换机中的同一光交换目的端口,则可以通过所述光交换机先将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应的目的设备,将所述至少两个数据包中的剩余数据包交换至所述光交换机的所述光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,再重新进行交换。即本发明实施例通过偏射路由的方式解决了现有技术中光交换网络中在解决数据包冲突时浪费硬件资源及设备因体积过大而操作不便的技术问题。
采用本发明实施例中的数据包交换方法,将产生冲突的数据包分配至偏射路由,偏射路由路径由空闲的光包路径或已有的电包路径构成,无需增加额外的电缓存或光纤等硬件设备即可解决数据包冲突问题,节省了硬件和软件资源,使整个设备体积较小,占地面积较小,相应的重量也较小,无论直接操作还是移动都较为方便。数据包交换中途无需像采用电缓存技术一样经历两次转换过程,显然提高了数据包交换速率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先说明,本文中出现的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图对本发明优选的实施方式进行详细说明。
实施例一
参见图2A,本发明实施例提供一种数据包交换方法,所述方法的主要流程如下:
步骤201:获得用于在光交换机中进行交换的M个数据包,M为不小于2的整数。
对于本发明实施例来说,数据包既可以在电交换机中进行交换,也可以在所述光交换机中进行交换。但为了避免所述电交换机或所述光交换机的负担过重,本发明实施例采取了光电混合架构,即,可以将一部分数据包分发至所述电交换机进行交换,而将另一部分数据包分发至所述光交换机进行交换。
其中,在具体实施过程中,对于究竟将哪些数据包分发至所述电交换机进行交换、将哪些数据包分发至所述光交换机进行交换,具体可以有多种方式,以下列出三种:
可选的,对于究竟将哪些数据包分发至所述电交换机进行交换、将哪些数据包分发至所述光交换机进行交换,一种可能的方式可以是随机分配,即随机将部分数据包分发至所述光交换机,而将另一部分数据包分发至所述电交换机。
可选的,对于究竟将哪些数据包分发至所述电交换机进行交换、将哪些数据包分发至所述光交换机进行交换,一种可能的方式可以是特定分配,例如将部分指定数据包分发至所述光交换机,而将另一部分未指定数据包分发至所述电交换机。
可选的,对于究竟将哪些数据包分发至所述电交换机进行交换、将哪些数据包分发至所述光交换机进行交换,一种可能的方式可以是:根据每个数据包对应的第二数据包信息来确定究竟将哪些数据包分发至所述电交换机进行交换、将哪些数据包分发至所述光交换机进行交换。
具体的,本发明实施例中,在获得用于在光交换机中进行交换的M个数据包之前,可以首先获得N个用于在所述电交换机或所述光交换机中进行交换的数据包,N为不小于M的整数。获得用于在光交换机中进行交换的M个数据包的步骤可以是:在获得所述N个数据包后,可以根据所述N个数据包中每个数据包对应的第二数据包信息,从所述N个数据包中获得所述M个数据包。
例如,本发明实施例中,所述第二数据包信息中至少可以包括有相应数据包的长度信息,则根据所述N个数据包中每个数据包对应的第二数据包信息,从所述N个数据包中获得所述M个数据包,可以是根据所述N个数据包中每个数据包对应的第二数据包信息获得所述N个数据包中每个数据包的长度信息,从而可以根据所述N个数据包中每个数据包的长度信息从所述N个数据包中获得所述M个数据包。
例如,一种可能的方式可以是将长度信息对应的长度值不小于预设长度阈值的数据包分发至所述光交换机进行交换,及将长度信息对应的长度值小于所述预设长度阈值的数据包分发至所述电交换机进行交换。
以上几种方式只是为了介绍本发明而给出的几种具体的实施例,并不能说明本发明中为所述电交换机及所述光交换机分配数据包只能采取以上几种方式来实现。事实上,凡是能够为所述电交换机及所述光交换机分配数据包的分配方式均在本发明的保护范围之内。
步骤202:通过对所述M个数据包对应的M个第一数据包信息进行分析,确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口。
本发明实施例中,对于光交换机来说,可能是直接获得了所述M个数据包,其中每个数据包对应有第二标签信息,即对于所述光交换机来说,可以是直接获得了所述M个数据包和M个第二标签信息。
而对于控制模块来说,虽然分发模块是同时向所述光交换机和所述控制模块同时发送了所述M个数据包,但所述控制模块可以选择性接收,例如所述控制模块可以只接收所述M个数据包对应的所述M个第二标签信息,而可以拒绝接收所述M个数据包本身。
本发明实施例中,所述第二标签信息中至少可以包括所述第一数据包信息,或所述第一数据包信息和第二数据包信息,即所述M个数据包中的每个数据包均可以至少对应有所述第一数据包信息,或所述第一数据包信息和所述第二数据包信息。例如,所述M个数据包中的每个数据包均可以携带有所述第一数据包信息,或所述M个数据包中的每个数据包均可以携带有所述第一数据包信息和所述第二数据包信息。
其中,所述第一数据包信息可以是对应数据包中包括的目的地址信息,所述第二数据包信息可以是对应数据包的长度信息。那么,获得了所述M个标签信息,也就相当于至少获得了M个第一数据包信息,或所述M个第一数据包信息和M个第二数据包信息。
因此,对于所述控制模块来说,其在获得所述M个数据包对应的所述M个第二标签信息后,可以对所述M个第一数据包信息进行分析,通过分析可以确定所述M个数据包中是否有至少两个数据包对应所述光交换机中的同一光交换目的端口,即通过分析可以确定所述M个数据包中是否有至少两个数据包有冲突。本发明实施例中,通过分析可以确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口,即确定所述M个数据包中有至少两个数据包有冲突,由此可知,需采用冲突解决方法来解决数据包之间的冲突。
本发明实施例中,在获得所述M个第二标签信息后,可以分别根据所述M个第一数据包信息获得所述M个数据包中每个数据包的光交换目的端口,共获得M个光交换目的端口,从而可以确定所述M个光交换目的端口中有两个所述光交换目的端口为同一光交换目的端口。
具体的,本发明实施例中,所述第一数据包信息中可以至少包括相应数据包对应的目的地址信息。本发明实施例中,所述目的地址信息对应的目的地址可以是指该数据包所要最终到达的相应服务器的地址。本发明实施例中,一个ToR(Top ofRack,机柜顶端)可以对应有至少一个服务器,对应于同一个ToR的服务器的地址虽不同,但根据其中每个服务器的地址都可以唯一确定该ToR。即,根据所述第一数据包信息中包括的服务器的地址就可以确定该服务器对应的ToR。
且本发明实施例中,一个ToR可以固定对应于所述光交换机的一个光交换目的端口和/或固定对应于所述电交换机的一个电交换目的端口,而本发明实施例中,已经确定该数据包是由所述光交换机进行交换,则根据该数据包的所述第一数据包信息中所包括的所述目的地址信息即可确定该数据包需通过所述光交换机交换到的所述光交换目的端口。即本发明实施例中可以根据该数据包的所述第一数据包信息确定该数据包对应的所述光交换目的端口。
也就是说,本发明实施例中,可以分别根据提取的所有第一数据包信息获得所述M个数据包中每个数据包的目的地址信息,共获得M个目的地址信息,即共获得M个目的地址,可以根据光交换目的端口与目的地址的对应关系,通过所述M个目的地址获得所述M个光交换目的端口。
步骤203:将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应目的设备。
本发明实施例中,确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口,则可以由所述光交换机将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应目的设备。
具体的,所述光交换目的端口可以将该数据包发送至与所述光交换目的端口对应的ToR,具体的,每个ToR可以对应有一个分发模块,所述光交换目的端口可以先将该数据包发送至相应ToR对应的分发模块,具体是发送至哪个ToR对应的分发模块,是根据该数据包对应的所述第一数据包信息中包括的所述目的地址来信息确定的。在将该数据包发送至相应ToR对应的分发模块后,该分发模块可以负责对经过交换的光包进行接收,使其恢复为标准MAC/IP(Media Access Control/Internet Protocol,介质访问控制/网际协议)数据包后,与接收到的以太网数据包进行整合,最后发送至相应ToR,再由相应ToR根据该数据包对应的所述目的地址发送至对应的服务器,由此完成数据包交换过程。
较佳的,在本发明另一实施例中,在确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口后,虽然可以直接将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以避免数据包之间的冲突,但为了保证所有数据包能够按照本发明实施例中的方法正常交换或偏射,因此还有必要首先判断一下所述光交换目的端口当前所处的状态。
具体的,在该实施例中的一种处理方式可以是:首先判断所述光交换目的端口是否处于空闲状态,如果所述光交换目的端口处于空闲状态,可以直接将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,如果所述光交换目的端口处于忙碌状态,可以直接将所述至少两个数据包均交换至所述光交换空闲输出端口。
因为,如果所述光交换目的端口处于忙碌状态,则另外的数据包无法再被发送至所述光交换目的端口,因此提前判断所述光交换目的端口的工作状态也是有必要的。
较佳的,本发明实施例中,要将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,首先是要从所述至少两个数据包中选择出一个数据包。选择方式可以有多种:
可选的,从所述至少两个数据包中选择出一个数据包,可以是任意选择。
可选的,从所述至少两个数据包中选择出一个数据包,可以是从所述至少两个数据包中选择一个特定数据包。
具体的,如果所述至少两个数据包中的每个数据包都对应有一定优先级,则如果是从所述至少两个数据包中选择一个特定数据包,一种可能的方式为:首先确定所述至少两个数据包中每个数据包对应的优先级,在确定所述至少两个数据包中每个数据包对应的优先级后,可以从所述至少两个数据包中确定出优先级最高的第一数据包,确定所述第一数据包是要交换至所述光交换目的端口的数据包。
因为,优先级较高的数据包一般是需保证处理质量和处理速度的,从所述至少两个数据包中选择出优先级最高的数据包发送至所述光交换目的端口,可以保证优先级最高的数据包最优先被处理,从而也保证了优先级存在的优越性。
关于如何从所述至少两个数据包中选择一个数据包,本发明实施例给出了以上几种可能的方式,但本发明实施例给出的方式只是为了更好的解释本发明,而不能被看做是对本发明的限制。凡是符合本发明思想的从所述至少两个数据包中选择一个数据包的方式都在本发明的保护范围之内。
当然,在将优先级最高的所述第一数据包发送至所述光交换目的端口之前,也可以首先判断一下所述光交换目的端口的当前状态,如果所述光交换目的端口处于空闲状态,则可以将优先级最高的所述第一数据包发送至所述光交换目的端口,如果所述光交换目的端口处于忙碌状态,则可以将所述至少两个数据包全部发送至所述光交换空闲输出端口。
步骤204:将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,以供所述电交换机将所述剩余数据包交换至电交换目的端口或供所述光交换机将所述剩余数据包交换至光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。
本发明实施例中,在将所述至少两个数据包中的一个数据包交换至所述光交换目的端口的同时或之后,可以将所述至少两个数据包中的剩余数据包交换至所述光交换空闲输出端口。
具体的,本发明实施例中,如果是从所述至少两个数据包中选择了优先级最高的所述第一数据包交换至所述光交换目的端口,则可以是将所述至少两个数据包中除所述第一数据包外的剩余数据包交换至所述光交换空闲输出端口。
即,具体过程可以是:首先确定所述至少两个数据包中每个数据包对应的优先级,从所述至少两个数据包中确定出优先级最高的所述第一数据包,将所述至少两个数据包中除所述第一数据包外的剩余数据包交换至所述光交换空闲输出端口,及将所述第一数据包交换至所述光交换目的端口。
其中,本发明实施例中,在将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口时,具体是每个数据包对应一个光交换空闲输出端口。即,如果所述剩余数据包的数量为2,则可以将该两个剩余数据包分别交换至两个不同的光交换空闲输出端口,以确保在交换至所述光交换空闲输出端口时不会出现数据包冲突现象。
因此,在本发明的另一实施例中,将所述至少两个数据包中除所述第一数据包外的剩余数据包交换至所述光交换空闲输出端口的具体过程可以是:判断所述光交换机剩余的光交换空闲输出端口的第二数量是否小于所述至少两个数据包中除所述第一数据包外的剩余数据包的第一数量,如果所述第二数量小于所述第一数量,从所述至少两个数据包中除所述第一数据包外的剩余数据包中选取符合所述第二数量的数据包,将其分别交换至符合所述第二数量的光交换空闲输出端口,并将未选取的数据包丢弃。
以第一个例子来说明:例如,所述剩余数据包的所述第一数量为5,所述光交换机剩余的所述光交换空闲输出端口的所述第二数量为6,那么判断确定所述第二数量是大于所述第一数量的,则可以将该5个数据包分别发送至5个光交换空闲输出端口。其中,光交换空闲输出端口共有6个,具体将该5个数据包发送至这6个光交换空闲输出端口中的哪5个光交换空闲输出端口,可以随机选择,或者也可以有其他的特定选择方式,本发明对此不做限制。
以第二个例子来说明:例如,所述剩余数据包的所述第一数量为5,所述光交换机剩余的所述光交换空闲输出端口的所述第二数量为5,那么判断确定所述第二数量是等于所述第一数量的,则可以将该5个数据包分别发送至该5个光交换空闲输出端口。
以第三个例子来说明:例如,所述剩余数据包的所述第一数量为5,所述光交换机剩余的所述光交换空闲输出端口的所述第二数量为4,那么判断确定所述第二数量是小于所述第一数量的,则可以先从该5个数据包中选择4个数据包,将该4个数据包分别发送至4个光交换空闲输出端口,并且可以将该5个数据包中未被选中的数据包丢弃。
较佳的,在该实施例中,如果所述第二数量小于所述第一数量,那么就涉及到要从所述第一数量的所述剩余数据包中选择出所述第二数量的数据包。具体如何选择,可以有不同的方式。
可选的,例如一种选择方式可以是从所述第一数量的所述剩余数据包中任意选择出所述第二数量的数据包。
可选的,例如一种选择方式可以是从所述第一数量的所述剩余数据包中选择出特定的所述第二数量的数据包。
具体的,如果是从所述第一数量的所述剩余数据包中选择出特定的所述第二数量的数据包,一种可能的选择方式可以是:按照所述至少两个数据包中除所述第一数据包外的剩余数据包中每个数据包对应的优先级从高到低的顺序,从所述至少两个数据包中除所述第一数据包外的剩余数据包中选取符合所述第二数量的数据包。
例如,所述剩余数据包的所述第一数量为5,所述光交换机剩余的所述光交换空闲输出端口的所述第二数量为4,那么判断确定所述第二数量是小于所述第一数量的,则可以先从该5个数据包中选择4个数据包。可以将该5个数据包按照优先级从高到低的顺序进行排序。例如,该5个数据包分别为:数据包1、数据包2、数据包3、数据包4和数据包5,排序的结果是:数据包3、数据包1、数据包4、数据包5、数据包2,因此,根据排序结果,可以选择将数据包3、数据包1、数据包4和数据包5分别交换至该4个光交换空闲输出端口,数据包3、数据包1、数据包4和数据包5中的每个数据包分别对应其中的一个光交换空闲输出端口,并且,可以丢弃数据包2。
按照本发明的设计思想,一个数据包可以被偏射多次,直到该数据包到达相应的光交换目的端口或电交换目的端口为止。但在实际应用中,当偏射路由采用光路径时,如果产生冲突的数据包对应的光交换目的端口一直处于忙碌状态,或该数据包总是不会被优先交换至其对应的光交换目的端口,则此数据包会在光交换设备中重复交换,占用了通信资源,当网络的业务量繁重时,会造成越来越多的数据包冲突出现,阻碍了正常通信。并且,如果一个数据包始终未被交换到相应的光交换目的端口或电交换目的端口,很可能是该数据包的优先级较低,还要继续进行偏射的话,显然较为浪费网络资源。
因此,较佳的,本发明另一实施例中,可以为每个数据包设置一个存活标识域信息。例如,对于一个数据包来说,其对应的所述存活标识域信息可以由其自身所携带。
这样,在将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口之后,由所述光交换空闲输出端口输出至相应的分发模块,然后,所述分发模块可以分别提取所述剩余数据包中每个数据包的所述存活标识域信息。本发明实施例中,所述存活域标识信息可以有对应的值,在提取出所述剩余数据包中每个数据包的所述存活标识域信息后,可以分别判断提取出的所述剩余数据包中每个数据包的存活标识域信息的值是否为0,如果判断确定有的数据包的存活标识域信息的值不为0,则可以将这些数据包的存活标识域信息的值分别减1,之后可以将存活域标识信息的值减1后的数据包重新分发至所述光交换机或电交换机,而如果判断确定有的数据包的存活域标识信息的值为0,则说明这些数据包已经被偏射路由了多次且仍未到达相应的光交换目的端口或电交换目的端口,可以丢弃这些存活标识域信息的值为0的数据包。
较佳的,本发明另一实施例中,所述存活标识域信息具体可以是指TTL(Time ToLive,生存时间)域,用于标识数据包在网络中的被允许的偏射路由的次数,本发明实施例中当该值为0而且数据包仍未被交换到目的端口时,将该数据包丢弃。
本发明实施例中,来自ToR的数据包在第一次进入与该ToR对应的分发模块时,即数据包还未经过偏射路由时,分发模块将数据帧封装为适合光交换的格式,此时分发模块可以将TTL域与标签及其他封装字节同时添加在该数据帧中,如图2B所示。同时,可以将TTL域值设为该数据包在网络中被允许的偏射路由的最大次数。图2B为经过分发模块处理后的适合光交换的数据包格式,TTL域可加在该数据包的任意位置,图2B中以将其置于帧开始符与MAC帧之间为例。图2B中的箭头表示传输方向,图2B中的A表示前导码与标签之间间隔为A。
具体的,本发明实施例中,无论是光交换目的端口,还是电交换目的端口,或是光交换空闲输出端口,每个端口都会固定对应于一个分发模块,每个分发模块又固定对应于一个ToR。因此,无论数据包是被交换至光交换目的端口,还是被交换至光交换空闲输出端口,相应的端口都会将自己接收的数据包发送至相应的分发模块,因为每个分发模块也是固定对应于一个ToR,因此在分发模块中预先可以存储有该ToR对应的各服务器的地址。在分发模块接收到数据包后,可以对接收到的数据包中的所述目的地址进行检测,判断在自身存储的各服务器的地址中是否有服务器的地址与该数据包中的所述目的地址匹配,如果判断确定在自身存储的各服务器的地址中有服务器的地址与该数据包中的所述目的地址相匹配,则可以直接将该数据包发送至相应的ToR,由ToR发送至相应的服务器,而如果判断确定在自身存储的各服务器的地址中没有服务器的地址与该数据包中的所述目的地址相匹配,则可以确定该数据包为偏射路由数据包,可以将该数据包重新分发至相应的光交换机或电交换机。
本实施例中,如果确定要将一个数据包重新进行分发,则可以检测该数据包中的存活域标识信息的值,如果检测确定该数据包的所述存活域标识信息的值为0,则丢弃该数据包,若检测确定该数据包的所述存活域标识信息的值不为0,则将该数据包的所述存活域标识信息的值减1后,将该数据包重新分发至所述光交换机或所述电交换机。
具体的,参见图3,本发明实施例中,将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,以供所述电交换机将所述剩余数据包交换至电交换目的端口或供所述光交换机将所述剩余数据包交换至光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备,具体过程可以是:
步骤301:将所述剩余数据包交换至所述光交换空闲输出端口。
步骤302:确定所述剩余数据包的第一分发模式。
在将所述剩余数据包交换至所述光交换空闲输出端口后,可以确定所述剩余数据包对应的所述第一分发模式,所述第一分发模式可以是需将所述剩余数据包分发至所述电交换机的分发模式,或所述第一分发模式可以是需将所述剩余数据包分发至所述光交换机的分发模式。
具体的,本发明实施例中,因为一个数据包对应于一个光交换空闲输出端口,一个光交换空闲输出端口对应于一个分发模块,因此,对于一个分发模块来说,其可能在一个时刻只接收到了所述剩余数据包中的一个数据包,本发明实施例中的所述剩余数据包可以是指这一个数据包或多个数据包。因为所述剩余数据包中的每个数据包的处理方式都相同,因此本发明只需拿一个数据包或多个数据包来举例即可说明本发明的思想。
步骤303:判断是否有K个数据包需首次被分发到所述电交换机或所述光交换机。其中,如果没有所述K个数据包需首次被分发到所述电交换机或所述光交换机,跳转至步骤304,如果有所述K个数据包需首次被分发到所述电交换机或所述光交换机,跳转至步骤305。
在确定所述剩余数据包的所述第一分发模式后,可以判断所述分发模块中是否已有所述K个数据包需首次被分发到所述电交换机或所述光交换机,其中,所述K个数据包为首次由ToR进入所述分发模块的数据包,即所述K个数据包为未经过偏射路由的数据包。
步骤304:当没有所述K个数据包需首次被分发到所述电交换机或所述光交换机时,将所述剩余数据包按照所述第一分发模式重新分发至所述光交换机或所述电交换机,以供所述电交换机将所述剩余数据包交换至所述电交换目的端口或供所述光交换机将所述剩余数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。结束流程。
步骤305:当有所述K个数据包需首次被分发到所述电交换机或所述光交换机时,判断所述K个数据包所选择的第二分发模式与所述第一分发模式是否为同一分发模式。其中,如果所述第二分发模式与所述第一分发模式不同,继续步骤306,如果所述第二分发模式与所述第一分发模式相同,继续步骤307。
本发明实施例中,所述第二分发模式可以是需将所述剩余数据包分发至所述电交换机的分发模式,或所述第二分发模式可以是需将所述剩余数据包分发至所述光交换机的分发模式。
步骤306:如果所述第二分发模式与所述第一分发模式不同,将所述剩余数据包按照所述第一分发模式重新分发至所述光交换机或所述电交换机,以供所述电交换机将所述剩余数据包交换至所述电交换目的端口或供所述光交换机将所述剩余数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备,及将所述K个数据包按照所述第二分发模式分发至所述光交换机或所述电交换机,以供所述电交换机将所述K个数据包交换至所述电交换目的端口或供所述光交换机将所述K个数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述K个数据包发送至相应目的设备。结束流程。
步骤307:如果所述第二分发模式与所述第一分发模式相同,先将所述K个数据包按照所述第二分发模式分发至所述光交换机或所述电交换机,以供所述电交换机将所述K个数据包交换至所述电交换目的端口或供所述光交换机将所述K个数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述K个数据包发送至相应目的设备,再将所述剩余数据包按照所述第一分发模式重新分发至所述光交换机或所述电交换机,以供所述电交换机将所述剩余数据包交换至所述电交换目的端口或供所述光交换机将所述剩余数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。结束流程。
即,本发明实施例中,如果所述分发模块中已有所述K个数据包需被分发至所述光交换机或所述电交换机,且所述K个数据包对应的所述第二分发模式与所述剩余数据包对应的所述第一分发模式相同,则可以首先满足所述K个数据包的分发请求,在将所述K个数据包分发完毕后再来分发所述剩余数据包,如此也是尽量保证新进入所述分发模块的数据包的处理速度。
举例说明:将所述剩余数据包交换至所述光交换空闲输出端口后,确定所述剩余数据包为所述第一分发模式,本实施例中所述第一分发模式例如为需将所述剩余数据包分发至所述光交换机的分发模式。在确定所述剩余数据包的分发模式后,继续判断是否有K个数据包需首次被分发到所述光交换机或所述电交换机,即判断是否有所述K个数据包已在等待分发,也即判断是否已有来自源设备的所述K个数据包正在等待分发。
本实施例中如果判断确定没有来自源设备的所述K个数据包正在等待分发,则可以选择将所述剩余数据包分发至所述光交换机,通过所述光交换机交换至相应的光交换目的端口。
本实施例中如果判断确定有来自源设备的所述K个数据包正在等待分发,则可以确定所述K个数据包的分发模式为所述第二分发模式,并可以判断所述第二分发模式与所述第一分发模式是否为同一分发模式。
本实施例中如果判断确定所述第二分发模式与所述第一分发模式为不同分发模式,本实施例中所述第二分发模式例如是需将所述K个数据包分发至所述电交换机的分发模式,则可以将所述剩余数据包重新分发至所述光交换机,以供所述光交换机将所述剩余数据包交换至所述光交换目的端口,并通过所述光交换目的端口将所述剩余数据包发送至相应目的设备,及将所述K个数据包分发至所述电交换机,以供所述电交换机将所述K个数据包交换至所述电交换目的端口,并通过所述电交换目的端口将所述K个数据包发送至相应目的设备。
本实施例中如果判断确定所述第二分发模式与所述第一分发模式为相同的分发模式,本实施例中所述第二分发模式例如也是需将所述K个数据包分发至所述光交换机的分发模式,那么可以先将所述K个数据包分发至所述光交换机,以供所述光交换机将所述K个数据包交换至所述光交换目的端口,并通过所述所述光交换目的端口将所述K个数据包发送至相应目的设备,然后再将所述剩余数据包重新分发至所述光交换机,以供所述光交换机将所述剩余数据包交换至所述光交换目的端口,并通过所述光交换目的端口将所述剩余数据包发送至相应目的设备。
或者,可选的,本实施例中如果判断确定所述第二分发模式与所述第一分发模式为相同的分发模式,本实施例中所述第二分发模式例如也是需将所述K个数据包分发至所述光交换机的分发模式,那么可以将所述K个数据包分发至所述光交换机,以供所述光交换机将所述K个数据包交换至所述光交换目的端口,并通过所述所述光交换目的端口将所述K个数据包发送至相应目的设备,并可以将所述剩余数据包的分发模式由所述第一分发模式更改为第三分发模式,所述第三分发模式不同于所述第一分发模式,自然也不同于所述第二分发模式,本实施例中例如所述第三分发模式为需将所述剩余数据包分发至所述电交换机的分发模式,将所述剩余数据包按照所述第三分发模式分发至所述电交换机,以供所述电交换机将所述剩余数据包交换至所述电交换目的端口,并通过所述电交换目的端口将所述剩余数据包发送至相应目的设备。
实施例二:
参见图4,本发明实施例提供一种数据交换装置,所述装置可以包括至少一个分发模块401、控制模块402和光交换机403。图4中的ToR1、ToR2、ToR3和ToR4表示目的设备和/或源设备。
较佳的,本发明另一实施例中,分发模块401可以位于一个FPGA(Field-Programmable Gate Array,现场可编程门阵列)开发板上,同样的,控制模块402也可以位于一个FPGA开发板上。其中,分发模块401和控制模块402可以分别位于不同的FPGA开发板上,或者,分发模块401和控制模块402也可以位于同一FPGA开发板上。例如,如果分发模块401和控制模块402位于同一FPGA开发板上,那么一种可能的所述FPGA开发板的型号可以是VC7203。
分发模块401可以用于将接收的N个数据包分发至光交换机或电交换机。
本发明实施例中,一个分发模块401与一个目的设备相对应,例如所述目的设备可以是指ToR。较佳的,分发模块401与目的设备可以是一一对应的关系,即,有几个目的设备就有几个分发模块401。
分发模块401可以从源设备接收所述N个数据包,在接收到所述N个数据包后,可以确定所述N个数据包中有哪些数据包需被分发至所述光交换机,及有哪些数据包需被分发至所述电交换机。
其中,在具体实施过程中,对于究竟将哪些数据包分发至所述电交换机进行交换、将哪些数据包分发至所述光交换机进行交换,具体可以有多种方式,以下列出三种:
可选的,对于究竟将哪些数据包分发至所述电交换机进行交换、将哪些数据包分发至所述光交换机进行交换,一种可能的方式可以是由分发模块401随机分配,即随机将部分数据包分发至所述光交换机,而将另一部分数据包分发至所述电交换机。
可选的,对于究竟将哪些数据包分发至所述电交换机进行交换、将哪些数据包分发至所述光交换机进行交换,一种可能的方式可以是由分发模块401特定分配,例如将部分指定数据包分发至所述光交换机,而将另一部分未指定数据包分发至所述电交换机。
可选的,对于究竟将哪些数据包分发至所述电交换机进行交换、将哪些数据包分发至所述光交换机进行交换,一种可能的方式可以是:由分发模块401根据每个数据包对应的第二数据包信息来确定究竟将哪些数据包分发至所述电交换机进行交换、将哪些数据包分发至所述光交换机进行交换。
例如,本发明实施例中,所述第二数据包信息中至少可以包括有相应数据包的长度信息,则分发模块401可以根据所述N个数据包中每个数据包对应的第二数据包信息,从所述N个数据包中获得M个数据包并分发至所述光交换机。其中,分发模块401可以是根据所述N个数据包中每个数据包对应的第二数据包信息获得所述N个数据包中每个数据包的长度信息,从而可以根据所述N个数据包中每个数据包的长度信息从所述N个数据包中获得所述M个数据包。
例如,一种可能的方式可以是将长度信息对应的长度值不小于预设长度阈值的数据包分发至所述光交换机进行交换,及将长度信息对应的长度值小于所述预设长度阈值的数据包分发至所述电交换机进行交换。
以上几种方式只是为了介绍本发明而给出的几种具体的实施例,并不能说明本发明中分发模块401为所述电交换机及所述光交换机分配数据包只能采取以上几种方式来实现。事实上,凡是能够为所述电交换机及所述光交换机分配数据包的分配方式均在本发明的保护范围之内。
控制模块402可以用于通过对所述至少一个分发模块401接收的所述N个数据包中需分发至所述光交换机的M个数据包对应的M个第二数据包进行分析,获得确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口的分析结果,根据所述分析结果获得控制信息,并将所述控制信息发送至所述光交换机,以供所述光交换机根据所述控制信息进行数据包交换。
光交换机403可以用于接收所述控制模块发送的所述控制信息,并根据所述控制信息将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应目的设备,及将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,以供所述电交换机将所述剩余数据包交换至电交换目的端口或供所述光交换机将所述剩余数据包交换至光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。
在本发明另一实施例中,光交换机403中可以包括有至少一个预留光交换空闲输出端口,用于接收所述剩余数据包,即用于接收需进行偏射的数据包。如图4中位于光交换机403下方的虚线框所示,即为所述至少一个预留光交换空闲输出端口。
在该实施例中,所述至少一个预留光交换空闲输出端口中的每个预留空闲输出端口与一个分发模块401相连。
即,在预留所述至少一个预留光交换空闲输出端口,还可以预留与所述至少一个预留光交换空闲输出端口的数量相等的分发模块401。其中预留光交换空闲输出端口与预留的分发模块401可以一一对应。
因为如果光交换机中没有足够的光交换输出次空闲端口作为偏射路径,此时只能丢包,可能会导致交换的丢包率上升。本实施例中在光交换机中预留了至少一个预留光交换空闲输出端口,作为偏射路由的偏射输出路径,并配以相同数量的分发模块401与预留光交换空闲输出端口分别相连,在很大程度上降低了丢包率。
在图4中可以看出,本发明实施例中,该数据交换装置还可以包括电交换机404。
电交换机404可以用于将接收的来自于分发模块401的数据包交换至相应的电交换目的端口。
较佳的,请参见图5,在本发明另一实施例中,分发模块401具体还可以包括光包接收单元4011、错包检测单元4012、分发单元4013、复用单元4014和第一以太网发送单元4015。
较佳的,从图5中可以看出,分发模块401还可以包括第一以太网接收单元4016、光包发送单元4017、第二以太网发送单元4018和偏射路由次数处理单元4019。
较佳的,从图5中还可以看出,分发模块401还可以包括第二以太网接收单元4020。
从图5中可以看出,分发模块401可以大致分为前端处理模块501和后端处理模块502,前端处理模块501中可以包括第一以太网接收单元4016、分发单元4013、光包发送单元4017和第二以太网发送单元4018。前端处理模块501主要负责接收以太网信号,分发单元4013可以将接收到的以太网信号进行处理和分发,将待发送至光交换机403的数据包封装成适合光交换的光包,发送至光交换机403,其余数据包被发送至电交换机404。后端处理模块502中可以包括光包接收单元4011、第二以太网接收单元4020、错包检测单元4012、复用单元4014和第一以太网发送单元4015。后端处理模块502可以负责对经过交换的数据包进行接收,使其恢复为标准MAC/IP数据包后,与接收到的以太网数据包进行整合,最后发送至目的设备。
光包接收单元4011可以用于接收来自于光交换机403的数据包。
错包检测单元4012可以用于根据所述光包接收单元接收的数据包对应的地址信息检测接收的数据包是否能够通过所述分发模块发送至相应目的设备。
具体的,分发模块401可以首先将与自身所在的分发模块401对应的目的设备下挂的服务器/PC(个人计算机)等设备的MAC/IP地址存放在所述后端处理模块502中,然后错包检测单元4012可以对接收到的各数据包对应的MAC/IP进行检测,具体可以是将接收到的各数据包对应的MAC/IP与自身存储的设备地址比对,如果对比确定自身存储的设备地址中有设备地址与接收的一个数据包的MAC/IP对应,则确定该数据包需被发送至相应的目的设备,则错包检测单元4012可以将该数据包发送给复用单元4014,该数据包在复用单元4014中与第二以太网接收单元4020接收到的数据包进行复用,最后被第一以太网发送单元4015打包成以太网包后发送给相应的目的设备;若对比确定自身存储的设备地址中没有设备地址与接收的一个数据包的MAC/IP对应,则认为该数据包为经过偏射路径接收到的数据包,此时将数据包转发给分发单元4013,分发单元4013可以将此数据包重新进行分发。
分发单元4013可以用于将通过所述错包检测单元检测确定不能通过所述装置发送至相应目的设备的数据包重新分发至所述电交换机404或所述光交换机403。
本发明实施例中,分发单元4013还可以用于将第一以太网接收单元4016接收的来自于源设备的数据包分发至所述光交换机403或所述电交换机404。
复用单元4014可以用于将通过所述错包检测单元检测确定能够通过所述分发模块发送至相应目的设备的数据包与来自所述电交换机404的数据包进行复用。
第一以太网发送单元4015可以用于将经过所述复用单元复用的数据包发送至相应目的设备。
第一以太网接收单元4016可以用于接收来自于源设备的数据包。即,第一以太网接收单元4016可以用于接收来自于源设备的未经过偏射路由的数据包,这些数据包也需通过分发模块401分发至所述光交换机403或所述电交换机404。第一以太网接收单元4016接收的来自于源设备的数据包可以进入分发单元4013,由分发单元4013将这些数据包分发至所述光交换机403或电交换机404。
光包发送单元4017可以用于将来自分发单元4013的需经所述光交换机403进行交换的数据包发送至所述光交换机403。
第二以太网发送单元4018可以用于将来自分发单元4013的需经所述电交换机404进行交换的数据包发送至所述电交换机404。
偏射路由次数处理单元4019可以用于分别提取出所述来自错包检测单元4012的、不能通过分发模块401发送至相应目的设备的数据包中每个数据包的存活域标识信息,并根据所述存活域标识信息的值确定相应数据包是否应被丢弃。
本发明实施例中,偏射路由次数处理单元4019具体可以用于分别提取出来自于错包检测单元4012的数据包中每个数据包的存活标识域信息,分别判断提取出的各存活标识域信息的值是否为0,将存活标识域信息的值不为0的数据包的存活标识域信息的值减1,之后将处理后的数据包发送至分发单元4013,以供分发单元4013将其重新分发至所述光交换机403或电交换机404,及将存活标识域信息的值为0的数据包丢弃。
例如,请参见图2B,错包检测单元4012对来自光包接收单元4011的数据包进行检测后,若检测结果为“正确包”,则可以将这些“正确包”发送给复用单元4014进行复用;若检测结果为该数据包为“错包”,则可以将这些“错误包”发送至分发单元4013进行重新分发。本实施例中,可以将这些“错误包”数据包发送至偏射路由次数处理单元4019。此偏射路由次数处理单元4019已知TTL域在数据帧中的位置,如检测到帧起始符,则认为后面的字节即TTL域,若此时TTL值为0,则丢弃该数据包;若此时TTL值不为0,则将其减1后,将该数据包送入分发单元4011。
请参见图6,为本发明实施例中分发单元4013的详细结构图。
从图6中可以看出,分发单元4013中还可以包括长度比较子单元40131、偏射数据包路由子单元40132、第一提取子单元40133、第二提取子单元40134、MAC帧恢复子单元40135、标签生成子单元40136、光框架生成子单元40137和数据选择子单元40138(图4中以MUX为例)。
图6中,来自源设备的数据是标准的MAC帧,经过长度比较子单元40131进行长度比较后,将数据包通过标签生成子单元40136进行封装、添加标签等处理后成为适合通过光交换机进行交换的光包(数据包),被数据选择子单元40138通过光包发送接口发往所述光交换机,其余数据包被送往所述电交换机。
来自分发模块401的所述后端处理模块502的数据帧是偏射数据包,被送入偏射数据包路由子单元40132。若此时没有来自源设备的数据包进入分发单元4013,则偏射数据包路由子单元40132可以为偏射数据包随机选择光交换路径或电交换路径并由对应端口发出,若选择光交换路径,不需经过数据帧的改变,直接与标签生成子单元40136生成的标签及空闲复用,封装为适合光交换的帧格式,被数据选择子单元40138通过光包发送接口发往所述光交换机即可。若选择电交换路径,则MAC帧恢复子单元40135将数据包恢复为标准MAC帧送往所述电交换机。
若偏射数据包进入偏射数据包路由子单元40132时,在分发单元4013中存在来自源设备的数据包,则偏射数据包路由子单元40132根据接收到的长度比较子单元40131中的信息,这些信息中可以包括非偏射数据包的长度信息或长度比较子单元40131的判决结果,获知这些来自源设备的数据包具体是占用光包发送接口还是电包发送接口,从而可以令偏射数据包路由选择相反的交换方式;或者,若偏射数据包进入偏射数据包路由子单元40132时,在分发单元4013中存在来自源设备的数据包,则偏射数据包路由子单元40132根据接收到的长度比较子单元40131中的信息,这些信息中可以包括非偏射数据包的长度信息或长度比较子单元40131的判决结果,获知这些来自源设备的数据包具体是占用光包发送接口还是电包发送接口,如果偏射数据包与来自源设备的数据包采用了相同的分发模式,则可以首先分发源设备的数据包,之后再分发偏射数据包;若偏射数据包先于来自源设备的数据包进入分发单元4013,并选择了某种分发方式,之后进入分发单元4013的数据包经过长度比较后如果选择了与来自源设备的数据包同样的分发方式,则可以在缓存中存储,等待该接口空闲。
若不根据进入分发单元路线或接口区分来自源设备的以太网数据包,而是根据数据包自身格式特点区分两种数据包,可以在长度比较子单元40131和偏射数据包路由子单元40132前增加路由数据包检测模块,如按照帧格式等方式区分,同样属于本发明中分发单元功能范畴,也在本发明的保护范围之内,此处不再赘述。
较佳的,请参见图7,在本发明另一实施例中,控制模块402具体可以包括标签提取单元4021、冲突检测单元4022和发送单元4023。
较佳的,在该实施例中,控制模块402具体还可以包括光/电转换单元4024和路径计算单元4025。
图7中可以看出,控制模块402具体还可以包括控制信息计算单元4026。
其中,在该实施例中,控制模块402中可以包括有至少一个标签提取单元4021和至少一个光/电转换单元4024。而控制模块402中的其他单元的数量可以为1。
其中,一个控制模块402中包括的标签提取单元4021和光/电转换单元4024的数量应相等。即,一个标签提取单元4021和一个光/电转换单元4024可以构成一路接收子模块,其负责处理来自于一个光路的数据包,具体可以参见图5所示。一个光路可以通过一个输入端口向标签提取单元4021输入第二标签信息。
本发明实施例中,分发模块401是同时向光交换机403和控制模块402发送所述M个数据包,光交换机403可以接收所述M个数据包,而控制模块402可以只选择接收所述M个数据包对应的所述M个第二标签信息,而可以拒绝接收所述M个数据包本身。
标签提取单元4021可以用于通过分发模块401获得用于在所述光交换机403中进行交换的所述M个数据包对应的M个第二标签信息,标签提取单元4021可以分别提取所述M个第二标签信息中的信息,获得M个第一标签信息。其中,所述M个第一标签信息中的每个第一标签信息中至少可以包括所述第一数据包信息,从而标签提取单元4021共获得所述M个第一数据包信息,M为不小于2的整数。
冲突检测单元4022可以用于通过对标签提取单元4021获得的所述M个第一数据包信息进行分析,获得确定所述M个第一数据包信息对应的所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口的所述分析结果。
发送单元4023可以用于根据冲突检测单元4022获得的所述分析结果获得所述控制信息,并将所述控制信息发送至所述光交换机403,以供所述光交换机403根据所述控制信息进行数据包交换。
标签提取单元4021可以用于至少通过分发模块401获得所述M个数据包中每个数据包的第一数据包信息,共获得所述M个第一数据包信息,以供冲突检测单元4022根据所述M个数据包中每个数据包的第一数据包信息确定所述M个数据包中有至少两个数据包对应所述光交换机403中的同一光交换目的端口。
光/电转换单元4024可以用于对标签提取单元4021获得的所述M个第一标签信息中需要进行光/电转换的第一标签信息进行光/电转换,并将经过光/电转换后的各第一标签信息送入冲突检测单元4022。
因为标签提取单元4021获得的所述M个第一标签信息不一定都需要经过光/电转换,因此,无需经过光/电转换的第一标签信息可以直接从标签提取单元4021进入冲突检测单元4022,而需要经历光/电转换的第一标签信息可以从标签提取单元4021进入光/电转换单元4024,经由光/电转换单元4024将这些第一标签信息进行光/电转换后再送入冲突检测单元4022。
路径计算单元4025可以用于在冲突检测单元4022获得确定所述M个数据包中有至少两个数据包对应所述光交换机403中的同一光交换目的端口的所述分析结果后,根据所述分析结果计算所述至少两个数据包中需交换至所述光交换目的端口的数据包的第一交换路径,及根据所述分析结果计算需交换至所述光交换空闲输出端口的所述剩余数据包的第二交换路径,以供发送单元4023根据所述所述第一交换路径和第二交换路径生成并向光交换机403发送所述控制信息。
例如,一个较为完整的处理流程可以是:待进入光交换机403的光包,每个光包均携带有标识数据包信息的第二标签信息(所述第二标签信息至少可以包括所述第一数据包信息,或所述第二数据包信息和所述第一数据包信息)。数据包在经过分光后,一部分光进入控制模块402,即所述M个数据包对应的所述M个第二标签信息进入了控制模块402,控制模块402中标签提取单元4021通过提取所述第二标签信息中的信息,可以获得所述M个第一标签信息,并将获得的所述M个第一标签信息输入冲突检测单元4022。其中,可能有部分第一标签信息是先由标签提取单元4021进入光/电转换单元4024,经光/电转换单元4024进行光/电转换后再送入冲突检测单元4022。冲突检测单元4022可以对所述M个标签信息进行分析,若发现有两个数据包请求交换到所述光交换机403的同一光交换目的端口,则认为这两个数据包出现冲突。控制模块402还能对各光路对应的输入端口的状态进行监测,获得各输入端口的状态是空闲或是忙碌。冲突检测单元4022完成冲突检测后,可以将数据信息和冲突情况以及各输入端口的状态信息输入至路径计算单元4025。
路径计算单元4025根据各输入端口的状态和数据包的冲突情况获得输出路径,例如具体可以是:若数据包之间无冲突,则路径计算单元4025将各第一数据包信息直接送入控制信息计算单元4026,将这些信息映射为所述控制信息送入所述光交换机403,以供光交换机根据所述控制信息将各数据包送至相应的光交换目的端口;若冲突检测单元4022确定有两个或多个数据包发生冲突,且确定可以将这些数据包中的一个数据包发送至相应的光交换目的端口,例如可以是将这些数据包中优先级最高的数据包发送至所述光交换目的端口,而将其余数据包偏射至光交换空闲输出端口,则路径计算单元4025可以将各第一数据包信息送入控制信息计算单元4026,控制信息计算单元4026将这些信息映射为所述控制信息送入光交换机403,以供光交换机403根据所述控制信息将这些数据包中的一个数据包发送至相应的光交换目的端口,例如可以是将这些数据包中优先级最高的数据包发送至所述光交换目的端口,而将其余数据包偏射至光交换空闲输出端口。
即,路径计算单元4025负责将路径计算结果输入至控制信息计算单元4026,控制信息计算单元4026根据路径计算结果,将计算出的路径映射成光交换矩阵(光交换机403)可识别的所述控制信息,光交换矩阵据此完成光链路的建立,即完成数据包交换。
其中,如果所述光交换机403中没有空闲的所述光交换空闲输出端口,则可以丢弃这些需进行偏射的数据包,如果所述光交换机403中的所述光交换空闲输出端口的数量小于需进行偏射的数据包的数量,则可以丢弃这些需进行偏射的数据包中的部分数据包,例如可以将这些需进行偏射的数据包中优先级较低的数据包丢弃。
本发明实施例中,既提到了源设备,也提到了目的设备。需要说明的是,源设备和目的设备都是指ToR。对于一个ToR来说,其如果向分发模块401发送用于进行交换的数据包,则其就是源设备,如果其接收分发模块401发送的数据包,则其就是目的设备。
本发明实施例中的数据包交换方法可以包括:获得用于在光交换机403中进行交换的M个数据包,M为不小于2的整数;通过对所述M个数据包对应的M个第一数据包信息进行分析,确定所述M个数据包中有至少两个数据包对应所述光交换机403中的同一光交换目的端口;将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应目的设备;将所述至少两个数据包中的剩余数据包交换至所述光交换机403的光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机403或电交换机404,以供所述电交换机404将所述剩余数据包交换至电交换目的端口或供所述光交换机403将所述剩余数据包交换至光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。
本发明实施例中,如果确定用于在光交换机403中进行交换的所述M个数据包中有至少两个数据包对应于所述光交换机403中的同一光交换目的端口,则可以通过所述光交换机403先将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应的目的设备,将所述至少两个数据包中的剩余数据包交换至所述光交换机403的所述光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机403或电交换机404,再重新进行交换。即本发明实施例通过偏射路由的方式解决了现有技术中光交换网络中在解决数据包冲突时浪费硬件资源及设备因体积过大而操作不便的技术问题。
采用本发明实施例中的数据包交换方法,将产生冲突的数据包分配至偏射路由,偏射路由路径由空闲的光包路径或已有的电包路径构成,无需增加额外的电缓存或光纤等硬件设备即可解决数据包冲突问题,节省了硬件和软件资源,使整个设备体积较小,占地面积较小,相应的重量也较小,无论直接操作还是移动都较为方便。数据包交换中途无需像采用电缓存技术一样经历两次转换过程,显然提高了数据包交换速率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (25)

1.一种数据包交换方法,其特征在于,所述方法包括以下步骤:
获得用于在光交换机中进行交换的M个数据包,M为不小于2的整数;
通过对所述M个数据包对应的M个第一数据包信息进行分析,确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口;
将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应目的设备;
将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,以供所述电交换机将所述剩余数据包交换至电交换目的端口或供所述光交换机将所述剩余数据包交换至光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。
2.如权利要求1所述的方法,其特征在于,获得M个用于在光交换机中进行交换的数据包的步骤包括:
获得N个用于在所述电交换机或所述光交换机中进行交换的数据包,N为不小于M的整数;
根据所述N个数据包中每个数据包对应的第二数据包信息,从所述N个数据包中获得所述M个数据包。
3.如权利要求1-2任一项所述的方法,其特征在于,将所述至少两个数据包中的一个数据包交换至所述光交换目的端口的步骤包括:
判断所述光交换目的端口是否处于空闲状态;
如果所述光交换目的端口处于空闲状态,将所述至少两个数据包中的一个数据包交换至所述光交换目的端口;
如果所述光交换目的端口处于忙碌状态,将所述至少两个数据包均交换至所述光交换空闲输出端口。
4.如权利要求1所述的方法,其特征在于,通过对所述M个数据包对应的M个第一数据包信息进行分析,确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口的步骤包括:
分别提取所述M个数据包中每个数据包对应的第一数据包信息,分别根据提取的所述M个第一数据包信息获得M个数据包中每个数据包的光交换目的端口,共获得M个光交换目的端口;
确定所述M个光交换目的端口中有至少两个所述光交换目的端口相同。
5.如权利要求4所述的方法,其特征在于,分别根据提取的所述M个第一数据包信息获得M个数据包中每个数据包的光交换目的端口的步骤包括:
分别根据提取的所述M个第一数据包信息获得所述M个数据包中每个数据包的目的地址,共获得M个目的地址;
根据光交换目的端口与目的地址的对应关系,通过所述M个目的地址获得所述M个光交换目的端口。
6.如权利要求1-2任一项所述的方法,其特征在于,将所述至少两个数据包中的一个数据包交换至所述光交换目的端口的步骤包括:
确定所述至少两个数据包中每个数据包对应的优先级;
从所述至少两个数据包中确定出优先级最高的第一数据包;
将所述第一数据包交换至所述光交换目的端口。
7.如权利要求1所述的方法,其特征在于,将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口的步骤包括:
确定所述至少两个数据包中每个数据包对应的优先级;
从所述至少两个数据包中确定出优先级最高的第一数据包;
将所述至少两个数据包中除所述第一数据包外的剩余数据包交换至所述光交换空闲输出端口。
8.如权利要求7所述的方法,其特征在于,将所述至少两个数据包中除所述第一数据包外的剩余数据包交换至所述光交换空闲输出端口的步骤包括:
判断所述光交换机剩余的光交换空闲输出端口的第二数量是否小于所述至少两个数据包中除所述第一数据包外的剩余数据包的第一数量;
如果所述第二数量小于所述第一数量,从所述至少两个数据包中除所述第一数据包外的剩余数据包中选取符合所述第二数量的数据包,将其分别交换至符合所述第二数量的光交换空闲输出端口,并将未选取的数据包丢弃。
9.如权利要求8所述的方法,其特征在于,从所述至少两个数据包中除所述第一数据包外的剩余数据包中选取所述第二数量个数据包的步骤包括:按照所述至少两个数据包中除所述第一数据包外的剩余数据包中每个数据包对应的优先级从高到低的顺序,从所述至少两个数据包中除所述第一数据包外的剩余数据包中选取符合所述第二数量的数据包。
10.如权利要求1所述的方法,其特征在于,在将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口之后,且在通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机之前还包括步骤:
分别提取所述剩余数据包中每个数据包的存活标识域信息;
分别判断提取出的所述剩余数据包中每个数据包的存活标识域信息的值是否为0;
将存活标识域信息的值不为0的数据包的存活标识域信息的值减1,之后将处理后的数据包通过所述光交换空闲输出端口重新分发至所述光交换机或电交换机;及
将存活标识域信息的值为0的数据包丢弃。
11.如权利要求1所述的方法,其特征在于,将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,以供所述电交换机将所述剩余数据包交换至电交换目的端口或供所述光交换机将所述剩余数据包交换至光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备的步骤包括:
将所述剩余数据包交换至所述光交换空闲输出端口;
确定所述剩余数据包的第一分发模式;
判断是否有K个数据包需首次被分发到所述电交换机或所述光交换机;
当没有所述K个数据包需首次被分发到所述电交换机或所述光交换机时,将所述剩余数据包按照所述第一分发模式重新分发至所述光交换机或所述电交换机,以供所述电交换机将所述剩余数据包交换至所述电交换目的端口或供所述光交换机将所述剩余数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备;
当有所述K个数据包需首次被分发到所述电交换机或所述光交换机时,判断所述K个数据包所选择的第二分发模式与所述第一分发模式是否为同一分发模式;
如果所述第二分发模式与所述第一分发模式不同,将所述剩余数据包按照所述第一分发模式重新分发至所述光交换机或所述电交换机,以供所述电交换机将所述剩余数据包交换至所述电交换目的端口或供所述光交换机将所述剩余数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备,及将所述K个数据包按照所述第二分发模式分发至所述光交换机或所述电交换机,以供所述电交换机将所述K个数据包交换至所述电交换目的端口或供所述光交换机将所述K个数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述K个数据包发送至相应目的设备;
如果所述第二分发模式与所述第一分发模式相同,先将所述K个数据包按照所述第二分发模式分发至所述光交换机或所述电交换机,以供所述电交换机将所述K个数据包交换至所述电交换目的端口或供所述光交换机将所述K个数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述K个数据包发送至相应目的设备,再将所述剩余数据包按照所述第一分发模式重新分发至所述光交换机或所述电交换机,以供所述电交换机将所述剩余数据包交换至所述电交换目的端口或供所述光交换机将所述剩余数据包交换至所述光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。
12.如权利要求11所述的方法,其特征在于,在将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换机空闲输出端口之后,及在确定所述剩余数据包的第一分发模式之前还包括步骤:
分别提取出所述剩余数据包里每个数据包的第一数据包信息中包括的目的地址信息;
判断提取出的目的地址信息是否均与存储的目的地址信息相匹配;
当提取出的目的地址信息中有目的地址信息与存储的目的地址信息不匹配时,确定将目的地址不匹配的数据包重新分发至所述光交换机或所述电交换机。
13.如权利要求11或12所述的方法,其特征在于,所述第一分发模式为分发至所述电交换机的模式,或所述第一分发模式为分发至所述光交换机的模式;
所述第二分发模式为分发至所述电交换机的模式,或所述第二分发模式为分发至所述光交换机的模式。
14.一种数据交换装置,其特征在于,所述装置包括:
至少一个分发模块,用于将接收的N个数据包分发至光交换机或电交换机;
控制模块,用于通过对所述至少一个分发模块接收的所述N个数据包中需分发至所述光交换机的M个数据包对应的M个第二数据包进行分析,获得确定所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口的分析结果,根据所述分析结果获得控制信息,并将所述控制信息发送至所述光交换机,以供所述光交换机根据所述控制信息进行数据包交换;
所述光交换机,用于接收所述控制模块发送的所述控制信息,并根据所述控制信息将所述至少两个数据包中的一个数据包交换至所述光交换目的端口,以通过所述光交换目的端口将该数据包发送至相应目的设备,及将所述至少两个数据包中的剩余数据包交换至所述光交换机的光交换空闲输出端口,以通过所述光交换空闲输出端口将所述剩余数据包重新分发至所述光交换机或电交换机,以供所述电交换机将所述剩余数据包交换至电交换目的端口或供所述光交换机将所述剩余数据包交换至光交换目的端口,并通过所述电交换目的端口或所述光交换目的端口将所述剩余数据包发送至相应目的设备。
15.如权利要求14所述的装置,其特征在于,所述装置还包括所述电交换机;
所述电交换机用于将接收的来自于所述分发模块的数据包交换至相应的电交换目的端口。
16.如权利要求14或15所述的装置,其特征在于,所述控制模块包括:
标签提取单元,用于通过所述分发模块获得用于在所述光交换机中进行交换的所述M个数据包对应的M个第一标签信息,所述M个第一标签信息中的每个第一标签信息中至少包括第一数据包信息,从而共获得所述M个第一数据包信息,M为不小于2的整数;
冲突检测单元,用于通过对所述标签提取单元获得的所述M个第一数据包信息进行分析,获得确定所述M个第一数据包信息对应的所述M个数据包中有至少两个数据包对应所述光交换机中的同一光交换目的端口的所述分析结果;
发送单元,用于根据所述冲突检测单元获得的所述分析结果获得所述控制信息,并将所述控制信息发送至所述光交换机,以供所述光交换机根据所述控制信息进行数据包交换。
17.如权利要求16所述的装置,其特征在于,所述控制模块还包括路径计算单元,用于在所述冲突检测单元获得所述分析结果后,计算所述至少两个数据包中需交换至所述光交换目的端口的数据包的第一交换路径,及计算需交换至所述光交换空闲输出端口的所述剩余数据包的第二交换路径,以供所述发送单元根据所述第一交换路径和所述第二交换路径生成并发送所述控制信息。
18.如权利要求14或15所述的装置,其特征在于,所述分发模块包括:
光包接收单元,用于接收来自于光交换机的数据包;
错包检测单元,用于根据所述光包接收单元接收的数据包对应的地址信息检测接收的数据包是否能够通过所述分发模块发送至相应目的设备;
分发单元,用于将通过所述错包检测单元检测确定不能通过所述装置发送至相应目的设备的数据包重新分发至所述电交换机或所述光交换机;
复用单元,用于将通过所述错包检测单元检测确定能够通过所述分发模块发送至相应目的设备的数据包与来自所述电交换机的数据包进行复用;
第一以太网发送单元,用于将经过所述复用单元复用的数据包发送至相应目的设备。
19.如权利要求18所述的装置,其特征在于,所述分发模块还包括第一以太网接收单元,用于接收来自于源设备的数据包。
20.如权利要求18所述的装置,其特征在于,所述分发单元还用于将所述第一以太网接收单元接收的来自于源设备的数据包分发至所述光交换机或所述电交换机。
21.如权利要求18所述的装置,其特征在于,所述分发模块还包括光包发送单元和第二以太网发送单元;
所述光包发送单元用于将来自所述分发单元的需经所述光交换机进行交换的数据包发送至所述光交换机;
所述第二以太网发送单元用于将来自所述分发单元的需经所述电交换机进行交换的数据包发送至所述电交换机。
22.如权利要求18所述的装置,其特征在于,所述分发模块还包括偏射路由次数处理单元,用于分别提取出所述来自所述错包检测单元的、不能通过所述分发模块发送至相应目的设备的数据包中每个数据包的存活域标识信息,并根据所述存活域标识信息的值确定相应数据包是否应被丢弃。
23.如权利要求22所述的装置,其特征在于,所述偏射路由次数处理单元具体用于:分别提取来自于所述错包检测单元的数据包中每个数据包的存活标识域信息,分别判断提取出的各存活标识域信息的值是否为0,将存活标识域信息的值不为0的数据包的存活标识域信息的值减1,之后将处理后的数据包发送至所述分发单元,以供所述分发单元将其重新分发至所述光交换机或电交换机,及将存活标识域信息的值为0的数据包丢弃。
24.如权利要求14或15所述的装置,其特征在于,所述光交换机中包括有至少一个预留光交换空闲输出端口,用于接收所述剩余数据包。
25.如权利要求24所述的装置,其特征在于,所述至少一个预留光交换空闲输出端口中的每个预留空闲输出端口与一个分发模块相连。
CN201310209851.2A 2013-05-30 2013-05-30 一种数据包交换方法及装置 Active CN104219591B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310209851.2A CN104219591B (zh) 2013-05-30 2013-05-30 一种数据包交换方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310209851.2A CN104219591B (zh) 2013-05-30 2013-05-30 一种数据包交换方法及装置

Publications (2)

Publication Number Publication Date
CN104219591A CN104219591A (zh) 2014-12-17
CN104219591B true CN104219591B (zh) 2017-12-01

Family

ID=52100663

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310209851.2A Active CN104219591B (zh) 2013-05-30 2013-05-30 一种数据包交换方法及装置

Country Status (1)

Country Link
CN (1) CN104219591B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017000097A1 (zh) * 2015-06-27 2017-01-05 华为技术有限公司 一种数据转发的方法、装置和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101193056A (zh) * 2006-11-22 2008-06-04 中兴通讯股份有限公司 光突发交换设备中解决突发冲突的方法
CN101656900A (zh) * 2009-09-11 2010-02-24 重庆邮电大学 一种基于负载选择的ops节点光缓存装置及缓存方法
CN102123330A (zh) * 2010-09-19 2011-07-13 电子科技大学 基于多节点协作的主动式光突发竞争避免方法
WO2012025133A1 (en) * 2010-08-25 2012-03-01 Telefonaktiebolaget Lm Ericsson (Publ) An optical-electrical switching node
CN102843294A (zh) * 2012-08-21 2012-12-26 重庆邮电大学 一种基于fdl环的反馈共享光缓存装置和缓存方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101193056A (zh) * 2006-11-22 2008-06-04 中兴通讯股份有限公司 光突发交换设备中解决突发冲突的方法
CN101656900A (zh) * 2009-09-11 2010-02-24 重庆邮电大学 一种基于负载选择的ops节点光缓存装置及缓存方法
WO2012025133A1 (en) * 2010-08-25 2012-03-01 Telefonaktiebolaget Lm Ericsson (Publ) An optical-electrical switching node
CN102123330A (zh) * 2010-09-19 2011-07-13 电子科技大学 基于多节点协作的主动式光突发竞争避免方法
CN102843294A (zh) * 2012-08-21 2012-12-26 重庆邮电大学 一种基于fdl环的反馈共享光缓存装置和缓存方法

Also Published As

Publication number Publication date
CN104219591A (zh) 2014-12-17

Similar Documents

Publication Publication Date Title
CN105165024B (zh) 用于光子交换的系统和方法
CN103686472B (zh) 光线路终端(olt)系统及提供光线路终端(olt)系统的方法
CN103795623B (zh) 一种在虚拟设备间实现流量互通的方法和装置
Farrington et al. Data center switch architecture in the age of merchant silicon
CN106685530A (zh) 用于采用波长不可知的端点的扁平化数据中心网络的方法和装置
CN104253765B (zh) 一种数据包交换方法、装置以及接入交换机和交换系统
KR101110808B1 (ko) 시간 슬롯 할당을 위한 집적 회로 및 방법
CN1056968A (zh) 数据单元交换机
CN106851442A (zh) 一种超级计算机中的光互连网络系统及通信方法
CN106209679A (zh) 用于使用多个链接的存储器列表的方法及装置
CN109905321A (zh) 一种用于自定义高速接口与以太网交互的路由控制系统
CN110401824A (zh) 多路复用的kvm光传输系统、级联式光端机、光接口卡
CN101136841B (zh) 基于现场可编程门阵列的隧道实现装置及方法
CN107872340A (zh) 一种单板注册的方法、单板及转发设备
CN101720050B (zh) 用于光突发交换网络核心节点的光交叉连接装置
RU2015141014A (ru) Архитектура накристального межсоединения
CN106534278A (zh) 一种报文转发方法及交换设备
US6804255B1 (en) Hardware implementation of channel scheduling algorithms for optical routers with FDL buffers
CN104219591B (zh) 一种数据包交换方法及装置
CN102195818A (zh) 数据业务处理单板及方法
CN103379033A (zh) 报文转发方法和分组光传输网络设备
CN106063169B (zh) 一种数据处理方法及装置
CN201733410U (zh) 用于光突发交换网络核心节点的光交叉连接装置
CN105765927B (zh) 数据交换装置以及系统
CN103401739B (zh) 一种支持传感接入和光分组传输的传感网络的节点装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210428

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Device Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right