CN104869062B - 一种数据包转发方法及设备 - Google Patents
一种数据包转发方法及设备 Download PDFInfo
- Publication number
- CN104869062B CN104869062B CN201410060240.0A CN201410060240A CN104869062B CN 104869062 B CN104869062 B CN 104869062B CN 201410060240 A CN201410060240 A CN 201410060240A CN 104869062 B CN104869062 B CN 104869062B
- Authority
- CN
- China
- Prior art keywords
- packet
- information
- layer
- segment
- index record
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据包转发方法,该方法应用于OpenFlow交换机,在该方法应用过程中,当有分片数据包的首包到达OpenFlow交换机时,依据所述首包生成索引记录,所述索引记录中包含有所述首包所在数据包的数据包标识与所述首包中的第四层信息的对应关系;当与所述首包相对应的非首包的分片数据包到达OpenFlow交换机时,读取所述索引记录中的第四层信息,并依据所述第四层信息对所述非首包的分片数据包进行转发,从而解决了OpenFlow交换机无法根据第四层信息对非首包以外的数据包进行转发的问题。
Description
技术领域
本申请涉及网络通信领域,特别是涉及一种数据包转发方法及设备。
背景技术
开放流(OpenFlow)技术最早由斯坦福大学提出,旨在基于现有TCP/IP技术条件,以创新的网络互联理念,解决当前网络面对新业务产生的种种瓶颈。它的核心思想就是将原本完全由交换机/路由器控制的数据包转发过程,转化为OpenFlow交换机和控制服务器分别完成的独立过程。
一个完整的数据包在进行转发的过程中,当数据包的长度超过链路层的最大传输单元(Maximum Transmission Unit,MTU)时,IP层会对数据包进行数据包分片,分片获得的第一个数据包称为首包,首包中包含了数据包转发过程中所需的开放式系统互联OSI的第四层信息,除首包以外的其它数据包中不包含OSI的第四层信息。
发明人经过研究发现,OpenFlow交换机对经过分片的非首包的数据包进行转发时,由于经过分片的非首包的数据包中不包含OSI的第四层数信息,导致OpenFlow交换机无法根据所述第四层信息对非首包以外的数据包进行转发。
发明内容
本发明实施例提供一种数据包转发方法及设备,以解决OpenFlow交换机无法根据第四层信息对非首包以外的数据包进行转发的问题。
为实现上述目的,本发明实施例提供如下技术方案:
第一方面,提供一种数据包转发方法,包括:
接收非首包的分片数据包;
依据所述分片数据包中的数据包标识,查找索引表中与所述数据包标识相对应的索引记录;
当查找到与所述数据包标识相对应的所述索引记录时,读取所述索引记录中的开放式系统互联OSI的第四层信息,并依据所述第四层信息对所述分片数据包进行转发;
其中,所述索引记录是根据与所述分片数据包相对应的首包生成的,所述索引记录中包含有所述数据包标识与所述首包中的所述第四层信息的对应关系。
结合第一方面,在第一种可能的实现方式中,所述索引记录的建立过程包括:
当接收到所述首包时,获取所述首包中包含的所述数据包标识及所述第四层信息;
建立所述数据包标识与所述第四层信息的索引关系;
根据所述索引关系在所述索引表中生成包含所述数据包标识与所述第四层信息的对应关系的所述索引记录。
结合第一方面,在第二种可能的实现方式中,还包括:
当未查找到所述索引记录时,对所述分片数据包进行缓存;并在缓存时长满足预设缓存周期时,在所述索引表中重新查找所述索引记录。
结合第一方面,在第三种可能的实现方式中,所述依据所述第四层信息对所述分片数据包进行转发包括:
将所述第四层信息补充至与所述分片数据包相对应的转发信息中;
依据所述转发信息对所述分片数据包进行转发。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
标记所述分片数据包中的第四层信息为不可修改信息。
结合第一方面,或第一方面的第一种可能的实现方式,在第五种可能的实现方式中,还包括:
依据预设的删除条件,对所述索引记录进行删除。
第二方面,提供一种数据包转发设备,包括:
接收单元,用于接收非首包的分片数据包;
查找单元,与所述接收单元相连接,用于依据所述分片数据包中的数据包标识,查找索引表中与所述数据包标识相对应的索引记录;
转发单元,与所述查找单元相连接,用于当查找到与所述数据包标识相对应的所述索引记录时,读取所述索引记录中的开放式系统互联OSI的第四层信息,并依据所述第四层信息对所述分片数据包进行转发;
其中,所述索引记录是根据与所述分片数据包相对应的首包生成的,所述索引记录中包含有所述数据包标识与所述首包中的所述第四层信息的对应关系。
结合第二方面,在第一种可能的实现方式中,还包括:
获取单元,用于当接收到所述首包时,获取所述首包中包含的所述数据包标识及所述第四层信息;
建立单元,与所述获取单元相连接,用于建立所述数据包标识与所述第四层信息的索引关系;
生成单元,与所述建立单元相连接,用于根据所述索引关系在所述索引表中生成包含所述数据包标识与所述第四层信息的对应关系的所述索引记录。
结合第二方面,在第二种可能的实现方式中,还包括:
缓存单元,与所述查找单元相连接,用于当未查找到所述索引记录时,对所述分片数据包进行缓存。
结合第二方面,在第三种可能的实现方式中,还包括:
删除单元,用于依据预设的删除条件,对所述索引记录进行删除。
由以上本发明实施例提供的技术方案可见,本发明实施例提供的一种数据包转发方法,该方法应用于OpenFlow交换机,在该方法应用过程中,当有分片数据包的首包到达OpenFlow交换机时,依据所述首包生成索引记录,所述索引记录中包含有所述首包所在数据包的数据包标识与所述首包中的第四层信息的对应关系;当与所述首包相对应的非首包的分片数据包到达OpenFlow交换机时,读取所述索引记录中的第四层信息,并依据所述第四层信息对所述非首包的分片数据包进行转发,从而解决了OpenFlow交换机无法根据第四层信息对非首包以外的数据包进行转发的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种IP分片数据包的结构示意图;
图2为本发明实施例提供的一种数据包转发方法的方法流程图;
图3为本发明实施例提供的一种数据包转发方法的一具体方法流程图;
图4为本发明实施例提供的索引表的结构示意图;
图5为本发明实施例提供的一种数据包转发方法的一具体方法流程图;
图6为本发明实施例提供的一种数据包转发设备的结构示意图;
图7为本发明实施例提供的一种数据包转发设备的一具体结构示意图;
图8为本发明实施例提供的一种数据包转发设备的又一结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
IP数据包在网络传输过程中,会进行IP数据包分片。因为链路层具有最大传输单元(Maximum Transmission Unit,MTU)这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。以太网的MTU是1500。如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片(fragmentation)操作,使每一片的长度都小于或等于MTU。
一个完整的数据包在传输过程中,数据包中包含有开放式系统互联OSI的多层信息,所述OSI的多层信息中包含有:第一层信息L1指物理的传输介质,比如光纤、网线等;第二层信息L2指mac地址;第三层信息L3指IP地址;第四层信息L4指端口,比如网页服务一般使用80端口;第四层以上信息指具体的网络协议,比如http协议,或者https协议等。
IP层对数据包进行分片时,分片得到的第一数据包称为首包,首包中包含有全部的数据包信息:第一层信息、第二层信息、第三层信息、第四层信息及第四层以上的信息。首包之后的分片数据包中不包含第四层信息及第四层以上的信息,即首包之外的分片数据包中只包含有mac地址和ip信息。
图1示出了IP分片数据包的结构示意图,一个完整的数据包经过分片之后,各个分片数据包具有相同的分段标识,分段标识用于表示各个分片数据包属于同一个数据包。IP分片数据包结构中的DF标识表示该分片数据包是否为分片数据包,MF标识表示当前分片数据包是否有后续分片数据包。
OpenFlow交换机依据预设的转发规则对分片数据包进行转发时,当所述预设的转发规则规定依据第二层信息或第三层信息对数据包进行转发时,OpenFlow交换机依据分片数据包中的第二层信息或第三层信息对各个分片数据包进行转发。
当所述预设的转发规则规定依据第四层信息对分片数据包进行转发时,首包中包含第四层信息,OpenFlow交换机可以依据首包中的第四层信息直接对首包进行转发。首包以外的其它分片数据包中不包含第四层信息,因此OpenFlow无法依据预设的转发规则对非首包的分片数据包进行转发。
针对上述问题,本发明提供一种数据包转发方法,该方法应用于OpenFlow交换机中,其执行主体可以为OpenFlow交换机或Openflow交换机中的某一处理器部件,参见图2,示出了本发明中一种数据包转发方法的结构示意图,包括:
步骤S101:接收非首包的分片数据包;
当OpenFlow交换机接收到数据包时,依据数据包中的分段标识可以确定出接收到的数据包是否为分片数据包,依据数据包中的DF标识、MF标识及段偏移,可以确定出接收的分片数据包是否为首包。
当接收的数据包为完整数据包或首包时,可以直接依据预设的转发规则进行转发,所述转发规则为依据数据包中的第四层信息对数据包进行转发。
当确定接收的数据包为非首包的分片数据包时,将所述分片数据包作为目标数据包进行后续的处理。
步骤S102:依据所述分片数据包中的数据包标识,查找索引表中与所述数据包标识相对应的索引记录;
本发明实施例中,获取所述分片数据包中的数据包标识,所述数据包标识可以为所述分片数据包中的分段标识,也可以为分片数据包中包含的目的IP、源IP及IP包标示符的组合,然后依据所述数据包标识查找与所述数据包标识相对应的索引记录。
本发明实施例中的索引记录是依据OpenFlow交换机接收到的与所述分片数据包相对应的首包生成的,所述索引记录中包含有所述数据包标识与所述首包中的所述第四层信息的对应关系。所述生成的索引记录存储在预建立的索引表中。
本发明实施例中,与所述分片数据包相对应的首包是指与所述分片数据包属于同一完整数据包的首包,该首包与所述分片数据包具有相同的数据包标识,即具有相同的分段标识。
步骤S103:当查找到与所述数据包标识相对应的所述索引记录时,读取所述索引记录中的开放式系统互联OSI的第四层信息,并依据所述第四层信息对所述分片数据包进行转发。
本发明实施例中,在OpenFlow交换机中,查找到与分片数据包的数据包标识相对应的索引记录后,读取所述索引记录中的第四层信息,所述第四层信息为所述分片数据包对应的首包中的第四层信息,因此可以依据所述索引记录中的第四层信息对所述分片数据包进行转发。
OpenFlow交换机对分片数据包进行转发时,当转发规则为依据第四层信息对所有的分片数据包进行转发时,OpenFlow交换机在接收到首包时,依据所述接收到的首包生成索引记录,参见图3,示出了本发明实施例中,索引记录的生成过程,包括:
步骤S201:当接收到所述首包时,获取所述首包中包含的所述数据包标识及所述第四层信息;
OpenFlow交换机接收到分片数据包时,依据所述分片数据包中的DF标识、MF标识及段偏移,可以确定出接收的分片数据包是否为首包,当确定接收的分片数据包为首包时,获取所述首包中包含的数据包标识及第四层信息,所述首包的数据包标识可以为首包中的分段标识,也可以为也可以为首包中包含的目的IP、源IP及IP包标示符的组合。
步骤S202:建立所述数据包标识与所述第四层信息的索引关系;
如本发明实施例图4所示,将首包中的目的IP、源IP及IP包标示符的组合作为首包的数据包标识,并获取首包中的第四层信息,即转发的源端口信息及目的端口信息;建立首包的数据包包标识与第四层信息的索引关系。
步骤S203:根据所述索引关系在所述索引表中生成包含所述数据包标识与所述第四层信息的对应关系的所述索引记录。
依据建立的索引表关系生成索引记录,将首包的数据包标识作为所述索引记录的索引记录标识。如图4中,索引记录中包含了首包的数据包标识及首包中的第四层信息。
应用本发明实施例提供的数据包转发方法,因为属于同一完整数据包的首包及非首包的分片数据包中均包含了相同的数据包标识,因此接收到非首包的分片数据包时,即可依据非首包的数据包标识查找具有相同数据包标识的索引记录,然后读取索引记录中的第四层信息,并依据所述第四层信息对接收到的非首包的分片数据包进行转发。
本发明实施例提供的数据包转发方法中,OpenFlow交换机会接收多个不同的首包,对于每一个首包OpenFlow交换机都会生成与该首包对应的索引记录。当接收到某一非首包的分片数据包时,获取该分片数据包的数据包标识;依据所述数据包标识逐一遍历所述OpenFlow交换机的每一个索引记录。
当查找到与所述接收的分片数据包具有相同数据包标识的索引记录时,表明该索引记录是依据与所述分片数据包相对应的首包建立的,将该索引记录确定为与所述分片数据包的数据包标识相对应的索引表。
参见图5示出了,本发明实施例提供的一种数据包转发方法的一详细方法流程图,包括:
步骤S301:接收分片数据包;
步骤S302:判断所述分片数据包是否为首包,如果是,执行步骤S303;否则,执行步骤S304;
步骤S303:依据所述首包生成索引记录,跳转执行步骤S309;
步骤S304:查找与所述分片数据包相对应的索引记录;
步骤S305:判断是否查找到所述索引记录,当查找到时,执行步骤S307;否则,执行步骤S306;
步骤S306:对所述分片数据包缓存预设周期时长,返回重新执行步骤S304;
一个完整的数据包经过IP分片之后,分片得到的分片数据包在一定时间内会集中到达OpenFlow交换机,如果非首包的分片数据包在首包之前到达OpenFlow交换机,则非首包的分片数据包是无法找到与其对应的索引记录的,此时将接受到的该非首包的分片数据包缓存一段时间后,重新在OpenFlow交换机中对其所对应的索引记录进行查找。
步骤S307:将所述索引记录中的第四层信息补充至所述分片数据包的转发信息中;
本发明实施例中,对于接收到的非首包的分片数据包,当查找到该分片数据包对应的索引记录后,读取所述索引记录中的第四层信息,将所述第四层信息补充至所述分片数据包对应的转发信息中,然后依据所述转发信息中的第四层信息对分片数据包进行转发。接收到每个分片数据包后,需要对分片数据包进行分析,获取分片数据包的转发信息,并根据转发信息对该分片数据包进行转发。分析分片数据包获得的转发信息中并不包含第四层信息,这里将所述第四层信息补充至分片数据包对应的转发信息中,从而可以根据第四层信息进行转发。所述转发信息为数据包转发过程中需要的规则信息,其中包含了数据包转发对应的端口、协议等信息。
步骤S308:标记所述分片数据包中的第四层信息为不可修改信息;
由于接收的非首包的分片数据包中不包含第四层信息,仅是在分片数据包的转发信息中补充了第四层信息,因此需要标记分片数据包中的第四层信息为不可修改信息,以防止在后续的转发过程中对分片数据包中的第四层信息进行修改,影响后续的转发过程。
步骤S309:查询OpenFlow交换机中的多级流表,对分片数据包进行转发。
本发明实施例中,在对非首包的分片数据包的转发信息中补充完整第四层信息后,即可以查询OpenFlow交换机中的多级流表,对分片数据包进行转发。
本发明实施例中,对于一个完整的数据包,当所述完整数据包的所有分片数据包均转发完毕后,即可以依据预设的删除条件,将建立的索引表进行删除,以释放内存空间。
所述预设的删除条件可以设定一定时间间隔,当到达该时间间隔时,删除建立的索引记录,还可以在确定一个完整数据包的各个分片包均转发完成后,直接对建立的索引记录进行删除。
针对上述的数据包转发方法,本发明实施例举一详细的实例对各个步骤的执行进行详细说明:
对于一个完成的数据包A,经过IP分片后,获得首包a,分片数据包b和分片数据包c;在一定的时间间隔内,上述三个数据包到达OpenFlow的时间顺序为,分片数据包b、首包a和分片数据包c。
当分片数据包b到达OpenFlow交换机时,确定分片数据包b为非首包的分片数据包,将分片数据包b作为要进行处理的目标数据包,并依据所述分片数据包b中的数据包标识,查找与分片数据包b的数据包标识相对应的索引记录,由于分片数据包b在首包a之前到达,未能查找到对应的索引记录,对分片数据包b缓存一段时间。
当首包a到达OpenFlow交换机时,当OpenFlow交换机确定首包a为首包时,读取所述首包a的数据包标识及首包a中的第四层信息,建立首包a的数据包标识与第四层信息的索引关系,并生成索引记录。同时对首包a依据预设的转发规则进行转发。
当分片数据包c到达OpenFlow交换机时,确定分片数据包c为非首包的分片数据包,将分片数据包c作为要进行处理的目标数据包,并依据所述所述分片数据包c中的数据包标识,查找与所述分片数据包c相对应的索引记录,所述索引记录是依据首包a建立的。分片数据包c与首包a具有相同的数据包标识,当查找到时,读取索引记录中的第四层信息,将所述第四层信息添加至分片数据包c对应的转发信息表中,标记所述第四层信息为不可修改信息。然后依据所述转发信息表中的第四层信息对分片数据包c进行转发。
当分片数据包b的缓存时间满足条件时,重新查找索引记录,对其执行与分片数据包c相同的执行过程,当首包a,分片数据包b和分片数据包c均转发完成后,删除建立的索引表。
与上述数据包转发方法,相对应的,本发明实施例还提供了一种数据包转发设备,图6示出了该设备的结构示意图,该设备可以为OpenFlow交换机,所述设备包括:
接收单元401,用于接收非首包的分片数据包;
接收单元401接收到数据包时,依据数据包中的分段标识可以确定出接收到的数据包是否为分片数据包,依据数据包中的DF标识、MF标识及段偏移,可以确定出接收的分片数据包是否为首包。
当接收的数据包为完整数据包或首包时,可以直接依据预设的转发规则进行转发,所述转发规则为依据数据包中的第四层信息对数据包进行转发。
当确定接收的数据包为非首包的分片数据包时,将所述分片数据包作为进行后续处理的目标数据包。
查找单元402,与所述接收单元401相连接,用于依据所述分片数据包中的数据包标识,查找索引表中与所述数据包标识相对应的索引记录;
本发明实施例中,获取所述分片数据包中的数据包标识,所述数据包标识可以为所述分片数据包中的分段标识,也可以为分片数据包中包含的目的IP、源IP及IP包标示符的组合,查找单元402依据所述数据包标识查找与所述数据包标识相对应的索引记录。
本发明实施例中的索引记录是依据OpenFlow交换机接收到的与所述分片数据包相对应的首包生成的,所述索引记录中包含有所述数据包标识与所述首包中的所述第四层信息的对应关系。所述生成的索引记录存储在预建立的索引表中。
本发明实施例中,与所述分片数据包相对应的首包是指与所述分片数据包属于同一完整数据包的首包,该首包与所述分片数据包具有相同的数据包标识,即具有相同的分段标识。
转发单元403,与所述查找单元相连接,用于当查找到与所述数据包标识相对应的所述索引记录时,读取所述索引记录中的开放式系统互联OSI的第四层信息,并依据所述第四层信息对所述分片数据包进行转发;
本发明实施例中,查找到与分片数据包的数据包标识相对应的索引记录后,转发单元403读取所述索引记录中的第四层信息,所述第四层信息为所述分片数据包对应的首包中的第四层信息,因此可以依据所述索引记录中的第四层信息对所述分片数据包进行转发。
图7示出了本发明实施例提供的数据包转发设备的一详细结构示意图,本发明中的数据包转发设备中,还包括:
获取单元404,用于当接收到所述首包时,获取所述首包中包含的所述数据包标识及所述第四层信息;
建立单元405,与所述获取单元404相连接,建立所述数据包标识与所述第四层信息的索引关系;
生成单元406,与所述建立单元405相连接,用于根据所述索引关系在所述索引表中生成包含所述数据包标识与所述第四层信息的对应关系的所述索引记录。
优选的,本发明实施例提供的数据包转发设备中,还包括:
缓存单元407,与所述查找单元402相连接,用于当未查找到所述索引记录时,对所述分片数据包进行缓存。
删除单元408,用于依据预设的删除条件,对所述索引记录进行删除。
参见图8,示出了本发明实施例中数据包转发设备的又一结构示意图,数据包转发设备500在硬件上可包括CPU501和存储器502。其中,CPU501通过运行存储在存储器502内的软件程序503以及调用存储在存储器502内的数据,至少可执行如下步骤:
接收非首包的分片数据包;
依据所述分片数据包中的数据包标识,查找索引表中与所述数据包标识相对应的索引记录;
当查找到与所述数据包标识相对应的所述索引记录时,读取所述索引记录中的开放式系统互联OSI的第四层信息,并依据所述第四层信息对所述分片数据包进行转发;
其中,所述索引记录是根据与所述分片数据包相对应的首包生成的,所述索引记录中包含有所述数据包标识与所述首包中的所述第四层信息的对应关系。
上述各个步骤的详细执行过程参见本文前述方法的介绍,在此不作赘述。
上述存储器具体可为DDR SDRAM、SRAM、FLASH、SSD等,其主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统,以及至少一个功能所需的应用程序(例如上述软件程序503)等;数据存储区可存储根据CPU的执行情况而最终产生的数据,至于CPU在执行上述步骤所产生的中间数据,则存储在内存中。
需要说明的是,CPU501和存储器502可集成于同一芯片内,也可为独立的两个器件。
本发明实施例中程序具体可以包括:
接收单元、查找单元和转发单元,所述接收单元、查找单元和转发单元的结构与功能具体可参见本文前述记载,在此不再赘述。
对于本发明实施例提供的方案而言,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备中,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部,模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种数据包转发方法,其特征在于,包括:
接收非首包的分片数据包;具体的,所述非首包的分片数据包基于所述分片数据包中的DF标识、MF标识以及段偏移确定;
依据所述分片数据包中的数据包标识,查找索引表中与所述数据包标识相对应的索引记录;
当查找到与所述数据包标识相对应的所述索引记录时,读取所述索引记录中的开放式系统互联OSI的第四层信息,并依据所述第四层信息对所述分片数据包进行转发;
其中,所述索引记录是根据与所述分片数据包相对应的首包生成的,所述索引记录中包含有所述数据包标识与所述首包中的所述第四层信息的对应关系;
所述依据所述第四层信息对所述分片数据包进行转发包括:将所述第四层信息补充至与所述分片数据包相对应的转发信息中;依据所述转发信息对所述分片数据包进行转发。
2.根据权利要求1所述的方法,其特征在于,所述索引记录的建立过程包括:
当接收到所述首包时,获取所述首包中包含的所述数据包标识及所述第四层信息;
建立所述数据包标识与所述第四层信息的索引关系;
根据所述索引关系在所述索引表中生成包含所述数据包标识与所述第四层信息的对应关系的所述索引记录。
3.根据权利要求1所述的方法,其特征在于,还包括:
当未查找到所述索引记录时,对所述分片数据包进行缓存;并在缓存时长满足预设缓存周期时,在所述索引表中重新查找所述索引记录。
4.根据权利要求1所述的方法,其特征在于,还包括:
标记所述分片数据包中的第四层信息为不可修改信息。
5.根据权利要求1或2所述的方法,其特征在于,还包括:
依据预设的删除条件,对所述索引记录进行删除。
6.一种数据包转发设备,其特征在于,包括:
接收单元,用于接收非首包的分片数据包;具体的,所述非首包的分片数据包基于所述分片数据包中的DF标识、MF标识以及段偏移确定;
查找单元,与所述接收单元相连接,用于依据所述分片数据包中的数据包标识,查找索引表中与所述数据包标识相对应的索引记录;
转发单元,与所述查找单元相连接,用于当查找到与所述数据包标识相对应的所述索引记录时,读取所述索引记录中的开放式系统互联OSI的第四层信息,并依据所述第四层信息对所述分片数据包进行转发;所述转发单元具体用于将所述第四层信息补充至与所述分片数据包相对应的转发信息中;依据所述转发信息对所述分片数据包进行转发;
其中,所述索引记录是根据与所述分片数据包相对应的首包生成的,所述索引记录中包含有所述数据包标识与所述首包中的所述第四层信息的对应关系。
7.根据权利要求6所述的设备,其特征在于,还包括:
获取单元,用于当接收到所述首包时,获取所述首包中包含的所述数据包标识及所述第四层信息;
建立单元,与所述获取单元相连接,用于建立所述数据包标识与所述第四层信息的索引关系;
生成单元,与所述建立单元相连接,用于根据所述索引关系在所述索引表中生成包含所述数据包标识与所述第四层信息的对应关系的所述索引记录。
8.根据权利要求6所述的设备,其特征在于,还包括:
缓存单元,与所述查找单元相连接,用于当未查找到所述索引记录时,对所述分片数据包进行缓存。
9.根据权利要求7所述的设备,其特征在于,还包括:
删除单元,用于依据预设的删除条件,对所述索引记录进行删除。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410060240.0A CN104869062B (zh) | 2014-02-21 | 2014-02-21 | 一种数据包转发方法及设备 |
PCT/CN2014/093014 WO2015124015A1 (zh) | 2014-02-21 | 2014-12-04 | 一种数据包转发方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410060240.0A CN104869062B (zh) | 2014-02-21 | 2014-02-21 | 一种数据包转发方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104869062A CN104869062A (zh) | 2015-08-26 |
CN104869062B true CN104869062B (zh) | 2018-11-09 |
Family
ID=53877613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410060240.0A Active CN104869062B (zh) | 2014-02-21 | 2014-02-21 | 一种数据包转发方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104869062B (zh) |
WO (1) | WO2015124015A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110198290B (zh) * | 2018-03-14 | 2021-11-19 | 腾讯科技(深圳)有限公司 | 一种信息处理方法、设备、装置及存储介质 |
CN112637616B (zh) * | 2020-12-08 | 2024-02-23 | 网宿科技股份有限公司 | 一种对象存储方法、系统及服务器 |
CN113438176B (zh) * | 2021-05-17 | 2022-08-23 | 翱捷科技股份有限公司 | 一种处理分片ip数据包的方法及装置 |
CN116723162B (zh) * | 2023-08-10 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 一种网络首包处理方法、系统、装置、介质及异构设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585381A (zh) * | 2004-05-25 | 2005-02-23 | 中兴通讯股份有限公司 | 在网络地址端口映射中高速处理tcp/ip分片包的方法 |
EP2615781A1 (en) * | 2010-09-08 | 2013-07-17 | Nec Corporation | Switching system, switching control method, and memory medium |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1299479C (zh) * | 2004-03-10 | 2007-02-07 | 中兴通讯股份有限公司 | 一种隧道包的分片发送方法 |
CN102957600B (zh) * | 2011-08-19 | 2017-11-10 | 中兴通讯股份有限公司 | 一种数据报文转发方法及装置 |
-
2014
- 2014-02-21 CN CN201410060240.0A patent/CN104869062B/zh active Active
- 2014-12-04 WO PCT/CN2014/093014 patent/WO2015124015A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585381A (zh) * | 2004-05-25 | 2005-02-23 | 中兴通讯股份有限公司 | 在网络地址端口映射中高速处理tcp/ip分片包的方法 |
EP2615781A1 (en) * | 2010-09-08 | 2013-07-17 | Nec Corporation | Switching system, switching control method, and memory medium |
Also Published As
Publication number | Publication date |
---|---|
CN104869062A (zh) | 2015-08-26 |
WO2015124015A1 (zh) | 2015-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105099913B (zh) | 一种报文转发方法及设备 | |
CN105072038B (zh) | 一种数据报文转发方法及装置 | |
CN104869062B (zh) | 一种数据包转发方法及设备 | |
CN104219145B (zh) | 网络系统及路由方法 | |
US20170063689A1 (en) | Setting SDN Flow Entries | |
CN105409169B (zh) | 一种多路径转发规则的构造方法、装置及系统 | |
WO2016184334A1 (en) | Multi-region source routed multicast using sub-tree identifiers | |
CN105812340B (zh) | 一种虚拟网络访问外网的方法和装置 | |
CN109691037A (zh) | 用于数据中心负载均衡的方法和系统 | |
CN103354509B (zh) | 一种链路连接信息的获取方法和设备 | |
CN105009529B (zh) | 一种处理报文的方法和转发器 | |
CN110224935A (zh) | 一种处理组播数据报文的方法及装置 | |
CN104937896A (zh) | 地址解析协议消息的处理方法和转发器、控制器 | |
CN104782087B (zh) | 交换设备、控制器、交换设备配置、报文处理方法及系统 | |
CN102891803A (zh) | 拥塞处理方法及网络设备 | |
CN103269315A (zh) | 标签分配方法、装置、系统和网络设备 | |
CN106789178B (zh) | 一种报文转发方法和网络设备 | |
CN105991435A (zh) | 用于获取端口路径的方法及装置 | |
CN105359472A (zh) | 一种用于OpenFlow网络的数据处理方法和装置 | |
CN105264844A (zh) | 软件定义网络的路由方法、装置和设备 | |
CN105847153A (zh) | 一种报文转发方法及网络设备 | |
CN105471747A (zh) | 一种智能路由器选路方法和装置 | |
CN105474587B (zh) | 一种发送数据包的方法及装置 | |
CN105763468B (zh) | 一种bgp更新报文的传输方法和装置 | |
CN108881064A (zh) | 报文信息获取方法和发送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |