一种数据包转发方法及设备的制造方法
【技术领域】
[0001]本申请涉及网络通信领域,特别是涉及一种数据包转发方法及设备。
【背景技术】
[0002]开放流(OpenFlow)技术最早由斯坦福大学提出,旨在基于现有TCP/IP技术条件,以创新的网络互联理念,解决当前网络面对新业务产生的种种瓶颈。它的核心思想就是将原本完全由交换机/路由器控制的数据包转发过程,转化为OpenFlow交换机和控制服务器分别完成的独立过程。
[0003]一个完整的数据包在进行转发的过程中,当数据包的长度超过链路层的最大传输单元(Maximum Transmiss1n Unit, MTU)时,IP层会对数据包进行数据包分片,分片获得的第一个数据包称为首包,首包中包含了数据包转发过程中所需的开放式系统互联OSI的第四层信息,除首包以外的其它数据包中不包含OSI的第四层信息。
[0004]发明人经过研究发现,OpenFlow交换机对经过分片的非首包的数据包进行转发时,由于经过分片的非首包的数据包中不包含OSI的第四层数信息,导致OpenFlow交换机无法根据所述第四层信息对非首包以外的数据包进行转发。
【发明内容】
[0005]本发明实施例提供一种数据包转发方法及设备,以解决OpenFlow交换机无法根据第四层信息对非首包以外的数据包进行转发的问题。
[0006]为实现上述目的,本发明实施例提供如下技术方案:
[0007]第一方面,提供一种数据包转发方法,包括:
[0008]接收非首包的分片数据包;
[0009]依据所述分片数据包中的数据包标识,查找索引表中与所述数据包标识相对应的索引记录;
[0010]当查找到与所述数据包标识相对应的所述索引记录时,读取所述索引记录中的开放式系统互联OSI的第四层信息,并依据所述第四层信息对所述分片数据包进行转发;
[0011]其中,所述索引记录是根据与所述分片数据包相对应的首包生成的,所述索引记录中包含有所述数据包标识与所述首包中的所述第四层信息的对应关系。
[0012]结合第一方面,在第一种可能的实现方式中,所述索引记录的建立过程包括:
[0013]当接收到所述首包时,获取所述首包中包含的所述数据包标识及所述第四层信息;
[0014]建立所述数据包标识与所述第四层信息的索引关系;
[0015]根据所述索引关系在所述索引表中生成包含所述数据包标识与所述第四层信息的对应关系的所述索引记录。
[0016]结合第一方面,在第二种可能的实现方式中,还包括:
[0017]当未查找到所述索引记录时,对所述分片数据包进行缓存;并在缓存时长满足预设缓存周期时,在所述索引表中重新查找所述索引记录。
[0018]结合第一方面,在第三种可能的实现方式中,所述依据所述第四层信息对所述分片数据包进行转发包括:
[0019]将所述第四层信息补充至与所述分片数据包相对应的转发信息中;
[0020]依据所述转发信息对所述分片数据包进行转发。
[0021]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
[0022]标记所述分片数据包中的第四层信息为不可修改信息。
[0023]结合第一方面,或第一方面的第一种可能的实现方式,在第五种可能的实现方式中,还包括:
[0024]依据预设的删除条件,对所述索引记录进行删除。
[0025]第二方面,提供一种数据包转发设备,包括:
[0026]接收单元,用于接收非首包的分片数据包;
[0027]查找单元,与所述接收单元相连接,用于依据所述分片数据包中的数据包标识,查找索引表中与所述数据包标识相对应的索引记录;
[0028]转发单元,与所述查找单元相连接,用于当查找到与所述数据包标识相对应的所述索引记录时,读取所述索引记录中的开放式系统互联OSI的第四层信息,并依据所述第四层信息对所述分片数据包进行转发;
[0029]其中,所述索引记录是根据与所述分片数据包相对应的首包生成的,所述索引记录中包含有所述数据包标识与所述首包中的所述第四层信息的对应关系。
[0030]结合第二方面,在第一种可能的实现方式中,还包括:
[0031]获取单元,用于当接收到所述首包时,获取所述首包中包含的所述数据包标识及所述第四层信息;
[0032]建立单元,与所述获取单元相连接,用于建立所述数据包标识与所述第四层信息的索引关系;
[0033]生成单元,与所述建立单元相连接,用于根据所述索引关系在所述索引表中生成包含所述数据包标识与所述第四层信息的对应关系的所述索引记录。
[0034]结合第二方面,在第二种可能的实现方式中,还包括:
[0035]缓存单元,与所述查找单元相连接,用于当未查找到所述索引记录时,对所述分片数据包进行缓存。
[0036]结合第二方面,在第三种可能的实现方式中,还包括:
[0037]删除单元,用于依据预设的删除条件,对所述索引记录进行删除。
[0038]由以上本发明实施例提供的技术方案可见,本发明实施例提供的一种数据包转发方法,该方法应用于OpenFlow交换机,在该方法应用过程中,当有分片数据包的首包到达OpenFlow交换机时,依据所述首包生成索引记录,所述索引记录中包含有所述首包所在数据包的数据包标识与所述首包中的第四层信息的对应关系;当与所述首包相对应的非首包的分片数据包到达OpenFlow交换机时,读取所述索引记录中的第四层信息,并依据所述第四层信息对所述非首包的分片数据包进行转发,从而解决了 OpenFlow交换机无法根据第四层信息对非首包以外的数据包进行转发的问题。
【附图说明】
[0039]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040]图1为本发明实施例提供的一种IP分片数据包的结构示意图;
[0041]图2为本发明实施例提供的一种数据包转发方法的方法流程图;
[0042]图3为本发明实施例提供的一种数据包转发方法的一具体方法流程图;
[0043]图4为本发明实施例提供的索引表的结构示意图;
[0044]图5为本发明实施例提供的一种数据包转发方法的一具体方法流程图;
[0045]图6为本发明实施例提供的一种数据包转发设备的结构示意图;
[0046]图7为本发明实施例提供的一种数据包转发设备的一具体结构示意图;
[0047]图8为本发明实施例提供的一种数据包转发设备的又一结构示意图。
【具体实施方式】
[0048]为了使本技术领域的人员更好地理解本申请方案。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0049]IP数据包在网络传输过程中,会进行IP数据包分片。因为链路层具有最大传输单元(Maximum Transmiss1n Unit,MTU)这个特性,它限制了数据巾贞的最大长度,不同的网络类