一种数据包的转发系统的制作方法
未命名
09-13
阅读:111
评论:0

1.本发明涉及数据转发技术领域,特别是涉及一种数据包的转发系统。
背景技术:
2.日常生活中,我们经常使用网络来进行传输数据。在网络中传输数据,第一步要经过tcp封装,当主机建立了到达目的地服务器的tcp连接后,便开始对应用层数据进行封装;第二步要经过ip封装,执行在网络层;第三步通常是查找路由,主机必须拥有到达目的地的路由;第四部为以太网封装,执行在数据链路层;然后经过数据帧转发、数据帧的解封装、数据包解封装、数据段解封装等过程,整个过程非常繁琐,尤其是在主机a短时间内向主机b发送多条数据包时,因此,快速便捷的对数据包进行转发尤为重要。
技术实现要素:
3.针对上述技术问题,本发明采用的技术方案为:一种数据包的转发系统,所述系统包括会话记录表a、处理器和存储有计算机程序的存储器;其中,所述会话记录表a={a1,a2,
…
,ai,
…
,am},ai是第i个会话记录,i的取值范围是1到m,m是存储的会话记录表的数量,会话记录至少包括发起会话的五元组信息、传输节点信息;其中,会话记录基于五元组信息进行哈希映射,以哈希链表的形式存储在存储器中;当处理器执行计算机程序时,实现如下步骤:s100,获取目标数据包的目标五元组信息;s200,基于目标五元组信息,进行哈希映射,获取目标哈希值;s300,基于目标哈希值,获取目标哈希值在哈希链表上对应位置的目标哈希链路,并获取目标哈希链路上的候选会话记录列表b={b1,b2,
…
,bj,
…
,bn},bj是目标哈希链路上的第j个候选会话记录,j的取值范围是1到n,n是目标哈希链路上的候选会话记录的数量;s400,遍历候选会话记录列表b,使用目标五元组和bj包含的五元组信息进行匹配,若匹配成功,则将目标数据包按照bj中的传输节点信息进行转发;否则,将目标数据包按照匹配策略进行匹配,其中,所述匹配策略是按照预设顺序进行桥接转发、路由转发、snat转发的匹配。
4.本发明至少具有以下有益效果:综上,获取目标数据包的目标五元组信息,基于目标五元组信息进行哈希映射,并获取目标哈希值,基于目标哈希值,获取目标哈希值在哈希链表上对应位置的目标哈希链路,并获取目标哈希链路上的候选会话记录列表,将目标五元组和候选会话列表中的每一候选会话的五元组进行匹配,当匹配成功时,使用该候选会话中的传输节点信息进行转发,否则,当没有匹配成功时,按照匹配策略进行匹配;现有技术中,每次在转发数据包的时候,都需要进行查找进接口、出接口以及转发方式,耗费了非常多的时间,因此本发明直接进行会话记录表的匹配,若能匹配成功,可以直接按照原有路线进行转发,不需要再进行查找,
节省了数据包转发过程中的资源。
附图说明
5.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
6.图1为本发明实施例提供的一种数据包的转发系统执行计算机程序时的流程图。
具体实施方式
7.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
8.本发明实施例提供了一种数据包的转发系统,所述系统包括会话记录表a、处理器和存储有计算机程序的存储器;其中,所述会话记录表a={a1,a2,
…
,ai,
…
,am},ai是第i个会话记录,i的取值范围是1到m,m是存储的会话记录表的数量,会话记录至少包括发起会话的五元组信息、传输节点信息;其中,会话记录基于五元组信息进行哈希映射,以哈希链表的形式存储在存储器中,所述传输节点信息包括进入转发接口地址、输出转发接口地址。
9.具体的,所述进入转发接口地址为进入转发的接口的网口地址,所述输出转发接口地址为输出转发的接口的网口地址;所述会话记录表存储有历史时间段上进入当前节点的会话记录。
10.在本发明一实施例中,所述哈希链表的长度为65563。可以知晓,端口数量为65535,因此本发明在65535的基础上取质数,获取到哈希链表的长度为65563。
11.进一步的,当任一会话基于会话的五元组计算出的哈希值d大于65563时,执行如下步骤:获取s=d-k
×
65563,其中s≤65563,k为正整数,将该会话映射到s对应的哈希链路。可以理解为,将会话记录按照顺序进行排列,当大于哈希链表的长度时,从头开始重新进行排列。
12.当处理器执行计算机程序时,如图1所示,实现如下步骤:s100,获取目标数据包的目标五元组信息。
13.具体的,所述目标数据包的目标五元组信息包括源ip地址、源端口、目的ip地址、目的端口和协议号。
14.s200,基于目标五元组信息,进行哈希映射,获取目标哈希值。
15.具体的,本领域技术技术人员知晓,现有技术中任何一种将文本信息进行哈希映射获取哈希值的方法均属于本发明保护范围,此处不再赘述。
16.s300,基于目标哈希值,获取目标哈希值在哈希链表上对应位置的目标哈希链路,并获取目标哈希链路上的候选会话记录列表b={b1,b2,
…
,bj,
…
,bn},bj是目标哈希链路上的第j个候选会话记录,j的取值范围是1到n,n是目标哈希链路上的候选会话记录的数量。
17.可以理解为,会话记录表以哈希链表的形式进行存储,每个哈希值下可能有一条会话记录,也可能有多条会话记录,因此,在获取目标五元组的哈希值后,找到对应位置的目标哈希链路,与目标链路下的会话信息的五元组进行匹配。
18.s400,遍历候选会话记录列表b,使用目标五元组和bj包含的五元组信息进行匹配,若匹配成功,则将目标数据包按照bj中的传输节点信息进行转发;否则,将目标数据包按照匹配策略进行匹配转发,其中,所述匹配策略是按照预设顺序进行桥接转发、路由转发、snat转发的匹配。
19.进一步的,在s400中,将目标数据包按照匹配策略进行匹配后,还包括,在目标数据包传输完成后,将目标五元组、进入转发接口地址、输出转发接口地址、转发方式存储为会话记录,并映射在对应哈希链路。可以理解为,当目标五元组和会话记录不能匹配成功时,按照原有的匹配策略进行匹配,并且在本次会话完成后,将本次会话的信息也映射在对应的哈希链路上,便于下次进行访问。
20.综上,获取目标数据包的目标五元组信息,基于目标五元组信息进行哈希映射,并获取目标哈希值,基于目标哈希值,获取目标哈希值在哈希链表上对应位置的目标哈希链路,并获取目标哈希链路上的候选会话记录列表,将目标五元组和候选会话列表中的每一候选会话的五元组进行匹配,当匹配成功时,使用该候选会话中的传输节点信息进行转发,否则,当没有匹配成功时,按照匹配策略进行匹配;现有技术中,每次在转发数据包的时候,都需要进行查找进接口、出接口以及转发方式,耗费了非常多的时间,因此本发明直接进行会话记录表的匹配,若能匹配成功,可以直接按照原有路线进行转发,不需要再进行查找,节省了数据包转发过程中的资源。
21.进一步,所述会话记录表存储在数据包的转发系统中,可以将数据包的转发系统安装在电脑等电子产品的本地端,所述会话记录表仅存储有进入当前节点的会话记录的信息,并没有存储其它节点的会话记录信息,因此,仅能使用会话记录表进行在当前节点的快转。
22.具体的,所述传输节点信息还包括转发方式,所述转发方式是桥接转发、路由转发、snat转发的一种。
23.进一步的,在s400中将目标数据包按照匹配策略进行匹配,当转发方式为snat转发时,在进行snat转发前,将源mac地址存储在报头前的固定区域内。
24.具体的,所述数据包报头前有一部分固定区域,在使用snat进行转发时,会将源mac地址替换掉,被替换为出接口的mac地址,在实际使用中,源ip地址被隐藏,转化为公网ip,在使用snat进行转发时,源mac地址也会被替换为出接口的mac地址,此时,再做ip地址和mac地址的绑定时,探测不到源mac地址,因此,在进行snat转发之前,将源mac地址存储在数据包报头前的固定区域内,再获取到目标数据包之后,通过获取目标数据包报头的前6位,就能获取到源mac地址。
25.更进一步的,在s400中将目标数据包按照匹配策略进行匹配,当转发方式为snat时,提取报头前的固定区域的前6位作为源mac地址。
26.具体的,可以理解为,当目标五元组和bj包含的五元组信息匹配成功时,将目标数据包按照bj中的传输节点信息进行转发,此时,若bj中的传输节点信息的转发方式为snat转发,由于在之前的会话中已经存储过源mac地址,所以在进行转发前不需要再次存储源mac
地址;若目标数据包没有和bj包含的五元组信息匹配成功,按照匹配策略进行匹配,然后进行转发,若此时匹配成功的转发方式为snat转发,在进行snat转发时,将源mac地址存储在报头前的固定区域;目标五元组没有和bj包含的五元组信息匹配成功,也就是说,目标数据包的传输为一个新的会话,之前没有传输过,此时使用snat转发进行转发时,需要将源mac地址存储在报头前的固定区域。
27.具体的,所述存储器还存储有arp缓存表,所述arp缓存表存储有ip地址和mac地址的对应关系。可以理解为,当有ip地址时,可以根据arp缓存表,查找到对应的mac地址;当有mac地址时,可以根据arp缓存表,查找到对应的ip地址。在转发方式为snat时,即没有源ip地址,也没有源mac地址,将源mac地址进行存储在报头前的固定区域内。
28.更进一步的,本发明还包括:s001,当转发方式为桥转发时,所述传输节点信息包括进入转发接口地址、输出转发接口地址。
29.s002,当转发方式为路由转发时,所述传输节点信息包括进入转发接口地址、输出转发接口地址、输出转发接口mac地址。
30.s003,当转发方式为snat转发时,所述传输节点信息包括进入转发接口地址、输出转发接口地址、输出转发接口mac地址,源mac地址。
31.综上,当转发方式不同时,所述传输节点信息包含的内容不同,因此,在目标五元组和会话记录表中存储的五元组不匹配时,按照匹配策略进行匹配转发。
32.具体的,在s400中,将目标数据包按照匹配策略进行匹配,包括如下步骤:s010,若目标数据包和进转发接口、出转发接口匹配成功,且进转发接口和出转发接口为桥接关系,将目标数据包直接进行桥接转发;否则,执行s020;s020,目标数据包进行路由策略匹配;具体的,所述路由策略可能有很多条路线,使用目标数据包的目标五元组进行匹配,若匹配成功,则获取到对应的出接口mac地址,将出接口mac地址替换掉源mac地址,如果匹配成功的路由上有vlan地址,则将vlan地址也添加到会话记录的转发节点信息中,不再添加出接口mac地址。
33.s030,若匹配成功,则将目标数据包中的匹配成功的路由策略的出接口的mac地址替换掉源mac地址进行转发;否则,执行s040;s040,使用snat进行匹配,若匹配成功,则使用snat进行转发;否则,舍弃该数据包。
34.综上,将目标数据包按照匹配策略进行匹配,若目标数据包和进转发接口、出转发接口匹配成功,且进转发接口和出转发接口为桥接关系,将目标数据包直接进行桥接转发,否则,将目标数据包进行路由策略匹配,若匹配成功,则将目标数据包中的匹配成功的路由策略的出接口的mac地址替换掉源mac地址进行转发,否则,使用snat进行匹配,若匹配成功,则使用snat进行转发;否则,舍弃该数据包按照预设顺序进行匹配转发,并在匹配转发成功后,进行记录在会话记录表中。
35.虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的
范围由所附权利要求来限定。
技术特征:
1.一种数据包的转发系统,其特征在于,所述系统包括会话记录表a、处理器和存储有计算机程序的存储器;其中,所述会话记录表a={a1,a2,
…
,a
i
,
…
,a
m
},a
i
是第i个会话记录,i的取值范围是1到m,m是存储的会话记录表的数量,会话记录至少包括发起会话的五元组信息、传输节点信息;其中,会话记录基于五元组信息进行哈希映射,以哈希链表的形式存储在存储器中;当处理器执行计算机程序时,实现如下步骤:s100,获取目标数据包的目标五元组信息;s200,基于目标五元组信息,进行哈希映射,获取目标哈希值;s300,基于目标哈希值,获取目标哈希值在哈希链表上对应位置的目标哈希链路,并获取目标哈希链路上的候选会话记录列表b={b1,b2,
…
,b
j
,
…
,b
n
},b
j
是目标哈希链路上的第j个候选会话记录,j的取值范围是1到n,n是目标哈希链路上的候选会话记录的数量;s400,遍历候选会话记录列表b,使用目标五元组和b
j
包含的五元组信息进行匹配,若匹配成功,则将目标数据包按照b
j
中的传输节点信息进行转发;否则,将目标数据包按照匹配策略进行匹配,其中,所述匹配策略是按照预设顺序进行桥接转发、路由转发、snat转发的匹配。2.根据权利要求1所述的数据包转发的检测系统,其特征在于,所述传输节点信息还包括转发方式,所述转发方式是桥转发、路由转发、snat转发中的一种。3.根据权利要求2所述的数据包的转发系统,其特征在于,在s400中,将目标数据包按照匹配策略进行匹配后,还包括,在目标数据包传输完成后,将目标五元组、进入转发接口地址、输出转发接口地址、转发方式存储为会话记录,并映射在对应哈希链路。4.根据权利要求1所述的数据包转发的检测系统,其特征在于,在s400中将目标数据包按照匹配策略进行匹配,当转发方式为snat转发时,将源mac存储在报头前的固定区域内。5.根据权利要求4所述的数据包转发的检测系统,其特征在于,在s400中将目标数据包按照匹配策略进行匹配,当转发方式为snat时,提取报头前的固定区域的前6位作为源mac地址。6.根据权利要求1所述的数据包转发的检测系统,其特征在于,所述存储器还存储有arp缓存表,所述arp缓存表存储有ip地址和mac地址的对应关系。7.根据权利要求1所述的数据包转发的检测系统,其特征在于,所述哈希链表的长度为65563。8.根据权利要求7所述的数据包转发的检测系统,其特征在于,当任一会话基于会话的五元组计算出的哈希值d大于65563时,执行如下步骤:获取s=d-k
×
65563,其中s≤65563,k为正整数,将该会话映射到s对应的哈希链路下。9.根据权利要求3所述的数据包转发的检测系统,其特征在于,还包括:s001,当转发方式为桥转发时,所述传输节点信息包括进入转发接口地址、输出转发接口地址;s002,当转发方式为路由转发时,所述传输节点信息包括进入转发接口地址、输出转发接口地址、输出转发接口mac地址;s003,当转发方式为snat转发时,所述传输节点信息包括进入转发接口地址、输出转发接口地址、输出转发接口mac地址,源mac地址。
技术总结
本发明提供了一种数据包的转发系统,所述系统包括会话记录表、处理器和存储有计算机程序的存储器,会话记录至少包括发起会话的五元组信息、传输节点信息,当处理器执行计算机程序时,实现如下步骤:获取目标数据包的目标五元组信息;基于目标五元组信息,进行哈希映射,获取目标哈希值;基于目标哈希值,获取目标哈希值在哈希链表上对应哈希链路,并获取对应哈希链路上的对应会话记录列表;遍历对应会话记录列表,使用目标五元组和B
技术研发人员:黄文龙 高歌 毛庆威
受保护的技术使用者:北京立思辰安科技术有限公司
技术研发日:2023.08.07
技术公布日:2023/9/9
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/