U501通过运行存储在存储器502内的软件程序503以及调用存储在存储器502内的数据,至少可执行如下步骤:
[0117]接收非首包的分片数据包;
[0118]依据所述分片数据包中的数据包标识,查找索引表中与所述数据包标识相对应的索引记录;
[0119]当查找到与所述数据包标识相对应的所述索引记录时,读取所述索引记录中的开放式系统互联OSI的第四层信息,并依据所述第四层信息对所述分片数据包进行转发;
[0120]其中,所述索引记录是根据与所述分片数据包相对应的首包生成的,所述索引记录中包含有所述数据包标识与所述首包中的所述第四层信息的对应关系。
[0121]上述各个步骤的详细执行过程参见本文前述方法的介绍,在此不作赘述。
[0122]上述存储器具体可为DDR SDRAM、SRAM、FLASH、SSD等,其主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统,以及至少一个功能所需的应用程序(例如上述软件程序503)等;数据存储区可存储根据CPU的执行情况而最终产生的数据,至于CPU在执行上述步骤所产生的中间数据,则存储在内存中。
[0123]需要说明的是,CPU501和存储器502可集成于同一芯片内,也可为独立的两个器件。
[0124]本发明实施例中程序具体可以包括:
[0125]接收单元、查找单元和转发单元,所述接收单元、查找单元和转发单元的结构与功能具体可参见本文前述记载,在此不再赘述。
[0126]对于本发明实施例提供的方案而言,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0127]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0128]在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备中,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0129]所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部,模块来实现本实施例方案的目的。
[0130]另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
[0131]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种数据包转发方法,其特征在于,包括: 接收非首包的分片数据包; 依据所述分片数据包中的数据包标识,查找索引表中与所述数据包标识相对应的索引记录; 当查找到与所述数据包标识相对应的所述索引记录时,读取所述索引记录中的开放式系统互联OSI的第四层信息,并依据所述第四层信息对所述分片数据包进行转发; 其中,所述索引记录是根据与所述分片数据包相对应的首包生成的,所述索引记录中包含有所述数据包标识与所述首包中的所述第四层信息的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述索引记录的建立过程包括: 当接收到所述首包时,获取所述首包中包含的所述数据包标识及所述第四层信息; 建立所述数据包标识与所述第四层信息的索引关系; 根据所述索引关系在所述索引表中生成包含所述数据包标识与所述第四层信息的对应关系的所述索引记录。
3.根据权利要求1所述的方法,其特征在于,还包括: 当未查找到所述索引记录时,对所述分片数据包进行缓存;并在缓存时长满足预设缓存周期时,在所述索引表中重新查找所述索引记录。
4.根据权利要求1所述的方法,其特征在于,所述依据所述第四层信息对所述分片数据包进行转发包括: 将所述第四层信息补充至与所述分片数据包相对应的转发信息中; 依据所述转发信息对所述分片数据包进行转发。
5.根据权利要求4所述的方法,其特征在于,还包括: 标记所述分片数据包中的第四层信息为不可修改信息。
6.根据权利要求1或2所述的方法,其特征在于,还包括: 依据预设的删除条件,对所述索引记录进行删除。
7.一种数据包转发设备,其特征在于,包括: 接收单元,用于接收非首包的分片数据包; 查找单元,与所述接收单元相连接,用于依据所述分片数据包中的数据包标识,查找索引表中与所述数据包标识相对应的索引记录; 转发单元,与所述查找单元相连接,用于当查找到与所述数据包标识相对应的所述索引记录时,读取所述索引记录中的开放式系统互联OSI的第四层信息,并依据所述第四层信息对所述分片数据包进行转发; 其中,所述索引记录是根据与所述分片数据包相对应的首包生成的,所述索引记录中包含有所述数据包标识与所述首包中的所述第四层信息的对应关系。
8.根据权利要求7所述的设备,其特征在于,还包括: 获取单元,用于当接收到所述首包时,获取所述首包中包含的所述数据包标识及所述第四层信息; 建立单元,与所述获取单元相连接,用于建立所述数据包标识与所述第四层信息的索引关系; 生成单元,与所述建立单元相连接,用于根据所述索引关系在所述索引表中生成包含所述数据包标识与所述第四层信息的对应关系的所述索引记录。
9.根据权利要求7所述的设备,其特征在于,还包括: 缓存单元,与所述查找单元相连接,用于当未查找到所述索引记录时,对所述分片数据包进行缓存。
10.根据权利要求8所述的设备,其特征在于,还包括: 删除单元,用于依据预设的删除条件,对所述索引记录进行删除。
【专利摘要】本发明公开了一种数据包转发方法,该方法应用于OpenFlow交换机,在该方法应用过程中,当有分片数据包的首包到达OpenFlow交换机时,依据所述首包生成索引记录,所述索引记录中包含有所述首包所在数据包的数据包标识与所述首包中的第四层信息的对应关系;当与所述首包相对应的非首包的分片数据包到达OpenFlow交换机时,读取所述索引记录中的第四层信息,并依据所述第四层信息对所述非首包的分片数据包进行转发,从而解决了OpenFlow交换机无法根据第四层信息对非首包以外的数据包进行转发的问题。
【IPC分类】H04L12-741
【公开号】CN104869062
【申请号】CN201410060240
【发明人】沈伟锋, 钟来军, 刘洪宽
【申请人】华为技术有限公司
【公开日】2015年8月26日
【申请日】2014年2月21日
【公告号】WO2015124015A1