一种识别UDP分片包建立连接跟踪的方法与流程

文档序号:37045788发布日期:2024-02-20 20:41阅读:11来源:国知局
一种识别UDP分片包建立连接跟踪的方法与流程

本发明涉及无线通信,特别涉及一种识别udp分片包建立连接跟踪的方法。


背景技术:

1、随着无线通信技术的快速发展,市场竞争也越来越激烈,为了满足用户的上网使用场景和增加产品的市场竞争力,需要使用相等的硬件资源,创造出能满足不同场景下用户能够正常使用的设备。

2、在数据包路由转发中必不可少的便是连接跟踪,linux为每一个经过网络堆栈的数据包都会生成一个连接记录项,后续属于此连接跟踪项的数据包都被唯一分配给这个连接。连接跟踪是防火墙、流量统计等功能的基础,有些厂商会自己在数据链路层建立一个连接跟踪表项,用来统计处理二层转发的数据。

3、现有的为数据包建立连接跟踪的方法是根据数据包的五元组信息(源ip、目的ip、源端口号、目的端口号、协议类型)来计算哈希key值来建立一条新的连接。但对于建立在数据链路层的连接跟踪会存在以下问题:对于一些udp分片包的使用场景,udp分片包除了第一个分片包,后续的分片包没有源端口号和目的端口号,通过指针偏移时取到了data数据部分,导致在计算哈希key值时出错,对后续的分片包都会建立新的连接跟踪记录,造成跟踪的混乱,这样对于一条流的流量统计等信息就不准确。

4、基于上述情况,本发明提出了一种识别udp分片包建立连接跟踪的方法。


技术实现思路

1、本发明为了弥补现有技术的缺陷,提供了一种简单高效的识别udp分片包建立连接跟踪的方法。

2、本发明是通过如下技术方案实现的:

3、一种识别udp分片包建立连接跟踪的方法,其特征在于:包括以下步骤:

4、步骤s1,模块初始化;

5、步骤s2,保存连接的哈希表、debug机制和高速缓冲存储器cache的初始化;

6、步骤s3,在驱动收包函数处挂载本模块的入口函数,用于截取数据包;

7、步骤s4,判断截取的数据包是否为tcp协议数据包或者udp协议数据包,如果不是则直接返回,将数据包丢回驱动;如果是,则进入下一步骤

8、步骤s5,判断数据包是否为分片数据包,如果是,则判断是否为第一片分片包;

9、如果是第一片分片包,则将数据包中的identification字段和端口号保存在高速缓冲存储器cache中;

10、若不是第一片分片包,则提取identification字段,然后读取高速缓冲存储器cache中的内容,根据identification字段来提取端口号信息;

11、步骤s6,根据数据包的五元组信息,源ip、目的ip、源端口号、目的端口号和协议类型,来计算哈希值;

12、步骤s7,根据计算得到的哈希值从哈希表中查找,判断是否存在连接跟踪记录,如果存在,则将连接跟踪的引用计数加1,如果没有查找到连接,则根据五元组信息和连接方向建立连接跟踪;

13、步骤s8,最后,将数据包丢回驱动。

14、所述步骤s5中,若数据包不是分片数据包,则直接根据数据包的五元组进行计算哈希值。

15、所述步骤s5中,如果数据包是最后一片分片包,则根据identification字段提取出端口号信息后,将高速缓冲存储器cache中保存的该条identification字段与端口号的对应关系信息进行删除。

16、所述步骤s5中,根据identification字段没有提取到端口号信息,则直接返回,将数据包丢回驱动。

17、所述步骤s5中,对截取的数据包进行分片判断时,若udp协议数据包头flags字段中,mf标志和fo标志均为0,则该udp协议数据包不是分片数据包;

18、若udp协议数据包头flags字段中,fo标志为0,mf标志为非0,则该udp协议数据包为第一片分片包;如果mf标志为0,fo标志为非0,则该udp协议数据包为最后一片分片包。

19、所述高速缓冲存储器cache只保存1024条identification字段与端口号的对应关系记录,且每一条记录均设置有定时器,以保证截取到最后一片分片包前,对应的记录一直存在。

20、所述步骤s5和步骤s8中,不对数据包进行修改,在提取数据包后,对数据包中的信息进行还原,再返回给驱动处理。

21、一种识别udp分片包建立连接跟踪的设备,其特征在于:包括存储器和处理器;所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现上述的方法步骤。

22、一种可读存储介质,其特征在于:所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法步骤。

23、本发明的有益效果是:该识别udp分片包建立连接跟踪的方法,能够准确识别出到达的数据包是否属于同一条流上的udp分片包,并以此来建立或者匹配正确的连接跟踪记录。



技术特征:

1.一种识别udp分片包建立连接跟踪的方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的识别udp分片包建立连接跟踪的方法,其特征在于:所述步骤s5中,若数据包不是分片数据包,则直接根据数据包的五元组进行计算哈希值。

3.根据权利要求1所述的识别udp分片包建立连接跟踪的方法,其特征在于:所述步骤s5中,如果数据包是最后一片分片包,则根据identification字段提取出端口号信息后,将高速缓冲存储器cache中保存的该条identification字段与端口号的对应关系信息进行删除。

4.根据权利要求1所述的识别udp分片包建立连接跟踪的方法,其特征在于:所述步骤s5中,根据identification字段没有提取到端口号信息,则直接返回,将数据包丢回驱动。

5.根据权利要求1~3中任意一项所述的识别udp分片包建立连接跟踪的方法,其特征在于:所述步骤s5中,对截取的数据包进行分片判断时,若udp协议数据包头flags字段中,mf标志和fo标志均为0,则该udp协议数据包不是分片数据包;

6.根据权利要求1或3所述的识别udp分片包建立连接跟踪的方法,其特征在于:所述高速缓冲存储器cache只保存1024条identification字段与端口号的对应关系记录,且每一条记录均设置有定时器,以保证截取到最后一片分片包前,对应的记录一直存在。

7.根据权利要求1或4所述的识别udp分片包建立连接跟踪的方法,其特征在于:所述步骤s5和步骤s8中,不对数据包进行修改,在提取数据包后,对数据包中的信息进行还原,再返回给驱动处理。

8.一种识别udp分片包建立连接跟踪的设备,其特征在于:包括存储器和处理器;所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现如权利要求1至7任意一项所述的方法步骤。

9.一种可读存储介质,其特征在于:所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述的方法步骤。


技术总结
本发明特别涉及一种识别UDP分片包建立连接跟踪的方法。该识别UDP分片包建立连接跟踪的方法,截取数据包,判断是否为TCP或者UDP协议数据包,若不是则直接返回;若是则判断是否为分片数据包,若是,则判断是否为第一片分片包;若为第一片分片包,则将数据包中的identification字段和端口号保存在高速缓冲存储器cache中;若不是第一片分片包,则根据identification字段来提取端口号信息;根据数据包的五元组信息计算哈希值,判断是否存在连接跟踪记录,若存在,则引用计数加1,若不存在则建立连接跟踪;最后将数据包丢回驱动。该识别UDP分片包建立连接跟踪的方法,能够准确识别出到达的数据包是否属于同一条流上的UDP分片包,并以此来建立或者匹配正确的连接跟踪记录。

技术研发人员:刘浩,李志远,鲁军,孟祥朋,李鹏
受保护的技术使用者:山东浪潮超高清视频产业有限公司
技术研发日:
技术公布日:2024/2/19
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1