一种TCPUDP数据包转发系统的架构的制作方法

文档序号:23474507发布日期:2020-12-29 13:27阅读:99来源:国知局
本发明涉及网络安全
技术领域
:,具体为一种tcpudp数据包转发系统的架构。
背景技术
::nat技术能够解决ip地址不足的问题,用于通信的ip数据包一般具有sourceipaddress(源ip地址)与destinationipaddress(目的ip地址)这两个字段,采用nat技术实现内网与外网之间的通信时,数据包所经过的路由器/设备通过基于linux内核协议栈对数据包进行处理,根据源ip地址字段和目的ip地址字段判定数据由什么地方发过来的,它要将数据包发到什么地方去,并通过iptables利用转发规则表,将内网地址与外网地址进行转换。传统的转发系统性能较低,无法实现转发系统针对icmp、arp、tcp/udp、ipv4的处理要求,由于转发系统中大部分组件都是通过外部装载的,因此与转发系统比较难以适配,大幅降低了转发系统的转发性能,为此,本领域技术人员提出一种tcpudp数据包转发系统的架构。技术实现要素:(一)解决的技术问题针对现有技术的不足,本发明提供了一种tcpudp数据包转发系统的架构,解决了传统的转发系统性能较低,无法实现转发系统针对icmp、arp、tcp/udp、ipv4的处理要求,由于转发系统中大部分组件都是通过外部装载的,因此与转发系统比较难以适配,大幅降低了转发系统转发性能的问题。(二)技术方案为实现以上目的,本发明通过以下技术方案予以实现:一种tcpudp数据包转发系统的架构,包括主业务功能模块、中间组件、轻量级协议栈和平台依赖,所述主业务功能模块包括统计数据stats、进程forvard、控制control、配置config和远程数据库remotedb,且统计数据stats包括维度统计功能模块sumip+port和节点流量统计sumall,进程forvard包括分发器distribute和业务线程fwd,控制control包括更新setting和信息线程monitor,所述中间组件包括限制条件limitingcond、规则管理rulemanager、定时器litetimer、会话管理connmanager、线程间通信inter-comm、流表控制cjsonparser和listctrl,所述轻量级协议栈包括icmp、tcp/udp、ipv4和arp,所述平台依赖包括协议libcurl、协议libkafka、协议libpthread和dpdk+igb.ko。优选的,所述维度统计功能模块sumip+port是以高防ip和端口为维度统计的功能模块,同时负责把该流量上报到后台服务器以便多节点的同意管理,还负责流量监测,以便实现限流功能,所述节点流量统计sumall主要是整个节点流量的统计情况,以及上报后台服务器。优选的,所述分发器distribute是一个分发器,从通过dpdk的igb.ko读取网卡的报文,通过自主研发的协议栈,过滤掉没用的报文,再过滤掉不符合规则的报文,然后把报文根据解析出来的报文特征分发到适合的转发线程处理。优选的,所述业务线程fwd是本系统中的主要业务线程,该线程完成主流程工作,从分发器获取分发过来的报文,通过解析报文,委托会话管理connmanager重新获取源、目的ip和端口,然后更新源、目的ip和端口,通过dpdk的igb.ko发送报文到端口,此外,业务线程fwd线程还需要完成如下功能:通过会话管理connmanager完成会话建立和关闭功能;通过会话管理connmanager和定时器litetimer配合,完成会话超时管理;通过规则管理rulemanager和自研协议栈,过滤不符合要求的报文;通过自研协议栈实现toa功能;通过限制条件limitingcond,过滤超出阈值的报文;通过线程间通信inter-comm,获取配置等信息以及定时先统计线程发送该线程统计信息。优选的,所述更新setting是配置configfile和远程数据库remotedb更新,如果配置configfile或者远程数据库remotedb有更新,则获取新的配置数据,通过线程间通信inter-comm把最新的消息发送到各业务线程,所述信息线程monitor线程主要是实时监测流表使用情况、流量大小、网卡状态等信息。优选的,所述限制条件limitingcond指一些限制条件管理,譬如流量控制、连接数限制、新建连接数限制,所述规则管理rulemanager指规则的管理,所述定时器litetimer主要用来会话超时的定时器组。优选的,所述会话管理connmanager指新建会话、关闭会话、刷新超时等操作,所述线程间通信inter-comm指自定义的线程间快速信息传播,所述流表控制cjsonparser指配置数据和上传的数据用json格式传输,包括了解析和封装,所述listctrl指自定义的一些流表的控制,hash、双向链表等数据结构的操作。优选的,所述轻量级协议栈目前支持icmp、tcp/udp、ipv4、arp的处理。(三)有益效果本发明提供了一种tcpudp数据包转发系统的架构。与现有技术相比具备以下有益效果:该tcpudp数据包转发系统的架构,通过主业务功能模块包括统计数据stats、进程forvard、控制control、配置config和远程数据库remotedb,且统计数据stats包括维度统计功能模块sumip+port和节点流量统计sumall,进程forvard包括分发器distribute和业务线程fwd,控制control包括更新setting和信息线程monitor,中间组件包括限制条件limitingcond、规则管理rulemanager、定时器litetimer、会话管理connmanager、线程间通信inter-comm、流表控制cjsonparser和listctrl,轻量级协议栈包括icmp、tcp/udp、ipv4和arp,平台依赖包括协议libcurl、协议libkafka、协议libpthread和dpdk+igb.ko,本系统提供一种基于dpdk的高性能四层转发系统,它继承了dpdk性能高、用户态开发等优点,而且自研的轻量级协议栈,可以实现本系统针对icmp、arp、tcp/udp、ipv4的处理要求,大部分组件都是基于本系统要求自主研发,符合系统的要求,因此也提高了转发性能,本发明的使用了dpdk环境下用户态直接获取网卡报文,直接操作报文,跳过了协议栈处理,简化了报文处理流程,实现了高性能转发。附图说明图1为本发明转发系统的结构框图;图2为本发明系统结构的示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参阅图1-2,本发明实施例提供一种技术方案:一种tcpudp数据包转发系统的架构,包括主业务功能模块、中间组件、轻量级协议栈和平台依赖,主业务功能模块包括统计数据stats、进程forvard、控制control、配置config和远程数据库remotedb,且统计数据stats包括维度统计功能模块sumip+port和节点流量统计sumall,进程forvard包括分发器distribute和业务线程fwd,控制control包括更新setting和信息线程monitor,中间组件包括限制条件limitingcond、规则管理rulemanager、定时器litetimer、会话管理connmanager、线程间通信inter-comm、流表控制cjsonparser和listctrl,维度统计功能模块sumip+port是以高防ip和端口为维度统计的功能模块,同时负责把该流量上报到后台服务器以便多节点的同意管理,还负责流量监测,以便实现限流功能,节点流量统计sumall主要是整个节点流量的统计情况,以及上报后台服务器,分发器distribute是一个分发器,从通过dpdk的igb.ko读取网卡的报文,通过自主研发的协议栈,过滤掉没用的报文,再过滤掉不符合规则的报文,然后把报文根据解析出来的报文特征分发到适合的转发线程处理,业务线程fwd是本系统中的主要业务线程,该线程完成主流程工作,从分发器获取分发过来的报文,通过解析报文,委托会话管理connmanager重新获取源、目的ip和端口,然后更新源、目的ip和端口,通过dpdk的igb.ko发送报文到端口,此外,业务线程fwd线程还需要完成如下功能:通过会话管理connmanager完成会话建立和关闭功能;通过会话管理connmanager和定时器litetimer配合,完成会话超时管理;通过规则管理rulemanager和自研协议栈,过滤不符合要求的报文;通过自研协议栈实现toa功能;通过限制条件limitingcond,过滤超出阈值的报文;通过线程间通信inter-comm,获取配置等信息以及定时先统计线程发送该线程统计信息,更新setting是配置configfile和远程数据库remotedb更新,如果配置configfile或者远程数据库remotedb有更新,则获取新的配置数据,通过线程间通信inter-comm把最新的消息发送到各业务线程,信息线程monitor线程主要是实时监测流表使用情况、流量大小、网卡状态等信息,限制条件limitingcond指一些限制条件管理,譬如流量控制、连接数限制、新建连接数限制,规则管理rulemanager指规则的管理,定时器litetimer主要用来会话超时的定时器组,会话管理connmanager指新建会话、关闭会话、刷新超时等操作,线程间通信inter-comm指自定义的线程间快速信息传播,流表控制cjsonparser指配置数据和上传的数据用json格式传输,包括了解析和封装,listctrl指自定义的一些流表的控制,hash、双向链表等数据结构的操作,轻量级协议栈包括icmp、tcp/udp、ipv4和arp,平台依赖包括协议libcurl、协议libkafka、协议libpthread和dpdk+igb.ko,轻量级协议栈目前支持icmp、tcp/udp、ipv4、arp的处理,同时本说明书中未作详细描述的内容均属于本领域技术人员公知的现有技术。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1