协议报文跨层通信方法装置及电子设备制造方法及图纸

技术编号:19151680 阅读:14 留言:0更新日期:2018-10-13 10:38
本发明专利技术提供一种协议报文跨层通信方法、装置及电子设备,涉及通信技术领域,方法包括:调用内核提供的发送函数,填充所需发送的协议报文的报文数据信息和扩展信息;调用内核中预先创建的套接字中的发包处理回调函数,将协议报文由用户态空间转换至内核态空间;对转换至内核态空间的协议报文进行封包处理,并根据扩展信息将封包处理后的协议报文发送至指定出接口。本发明专利技术实施例所提供的协议报文跨层通信方法,能够对待发送的协议报文进行相应的处理,使其进入相应的内核处理分支中,减少系统资源的浪费,当某种协议报文有突发流量时,不会影响到其他协议报文的跨层通信,提高了网络的安全可靠性。

Protocol message cross layer communication method device and electronic device

The invention provides a protocol message cross-layer communication method, device and electronic device, which relates to the field of communication technology. The method comprises calling the sending function provided by the kernel, filling the message data information and extension information of the protocol message to be sent, and calling the packet processing callback function in the pre-created socket in the kernel. The protocol packets are converted from user-mode space to kernel-mode space; the protocol packets converted to kernel-mode space are packaged and sent to the specified interface according to the extended information. The protocol message cross-layer communication method provided by the embodiment of the present invention can process the transmitted protocol message correspondingly, make it enter the corresponding kernel processing branch, reduce the waste of system resources, when one protocol message has burst traffic, it will not affect the cross-layer communication of other protocol messages, and improve the performance. Network security and reliability.

【技术实现步骤摘要】
协议报文跨层通信方法装置及电子设备
本专利技术涉及跨层通信
,尤其是涉及一种协议报文跨层通信方法、装置及电子设备。
技术介绍
目前的交换机系统为了使得系统更加稳定、高效、安全。因此将其分为数据平面、控制平面、管理平面。其中控制平面用于控制和管理所有的网络协议的运行,提供数据平面数据处理转发所必须的各种网络信息和转发查询表项。这种将数据平面和控制平面分开的方式,其中的协议报文都需要从交换芯片通过PCI-E总线送到Linux内核中,然后再由Linux内核上送至Linux用户空间的协议模块。Linux用户空间的协议模块发送协议报文的时候又需要先送入Linux内核中,然后通过PCI-E总线接口传输至交换芯片进行发送。这种跨层(内核和用户空间)处理在传统技术一般有两种:第一种是使用AF_PACKET二层抓包技术。先在内核中创建与交换机接口对应的虚拟接口,然后将交换机上送CPU的协议报文放入对应虚拟接口收包队列中,用户态协议通过二层抓包,直接将报文收走。协议处理程序发送报文的时候也通过二层发送,将报文发送至相应的内核虚拟接口,内核中注册钩子函数取出该协议报文进行发送。第二种是使用内核和用户态通信的Netlink套接字。所有的内核和用户空间的协议报文收发都经过Netlink套接字来传输。在传统的跨层方案中,第一种使用AF_PACKET方式,当报文被协议模块收取的时候需要自身去过滤其它报文,并且报文只是被拷贝了一份,然后被协议模块取走,但是报文还是会进入到内核的其他处理分支中处理。第二种则需要报文重新封装Netlink头,然后经内核协议栈送入用户态空间。不管使用哪一种,都会造成计算资源的浪费,并且当有协议报文攻击的时候,某一种协议报文的大量涌入,会导致其他协议报文也会出现丢包的情况。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种协议报文跨层通信方法、装置及电子设备,能够对待发送的协议报文进行相应的处理,使其进入相应的内核处理分支中,减少系统资源的浪费,当某种协议报文有突发流量时,不会影响到其他协议报文的跨层通信,提高了网络的安全可靠性。第一方面,本专利技术实施例提供了一种协议报文跨层通信方法,方法包括:调用内核提供的发送函数,填充所需发送的协议报文的报文数据信息和扩展信息;调用内核中预先创建的套接字中的发包处理回调函数,将协议报文由用户态空间转换至内核态空间;对转换至内核态空间的协议报文进行封包处理,并根据扩展信息将封包处理后的协议报文发送至指定出接口。结合第一方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中,在调用内核提供的发送函数之前,还包括:判断是否有允许使用的原始套接字:如果是,则判断是否创建原始套接字:如果是,分配原始套接字的存储空间,并对原始套接字进行初始化;初始化包括:基本数据初始化、协议族号初始化、套接字释放回调函数初始化及发包处理回调函数初始化;将初始化后的套接字加入协议族套接字链表中。结合第一方面,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,调用内核中预先创建的套接字中的发包处理回调函数,将协议报文由用户态空间转换至内核态空间,具体包括:调用发包处理回调函数中的拷贝函数,将协议报文中的报文数据信息从用户态空间拷贝至内核态空间的报文数据缓冲区;将协议报文中的扩展信息拷贝至内核态空间的地址选项缓冲区。结合第一方面,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,对转换至内核态空间的协议报文进行封包处理,具体包括:将转换至内核态空间的协议报文的报文数据信息重新组装成标准以太帧。结合第一方面,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,根据扩展信息将封包处理后的协议报文发送至指定出接口,具体包括:从扩展信息中提取发送协议报文所需的接口信息;判断接口信息是否正确;如果是,则将接口信息作为指定出接口,并将封包处理后的协议报文发送至指定出接口。第二方面,本专利技术实施例提供一种协议报文跨层通信装置,装置包括:协议处理模块,用于调用内核提供的发送函数,填充所需发送的协议报文的报文数据信息和扩展信息;协议族处理模块,用于调用内核中预先创建的套接字中的发包处理回调函数,将协议报文由用户态空间转换至内核态空间;发包模块,用于对转换至内核态空间的协议报文进行封包处理,并根据扩展信息将封包处理后的协议报文发送至指定出接口。结合第二方面,本专利技术实施例提供了第二方面的第一种可能的实施方式,其中,协议族处理模块,还用于调用发包处理回调函数中的拷贝函数,将协议报文中的报文数据信息从用户态空间拷贝至内核态空间的报文数据缓冲区;将协议报文中的扩展信息拷贝至内核态空间的地址选项缓冲区。结合第二方面,本专利技术实施例提供了第二方面的第二种可能的实施方式,其中,发包模块,还用于从扩展信息中提取发送协议报文所需的接口信息;判断接口信息是否正确;如果是,则将接口信息作为指定出接口,并将封包处理后的协议报文发送至指定出接口。第三方面,本专利技术实施例还提供一种电子设备,包括存储器、处理器,存储器上存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一方面所述的方法的步骤。第四方面,本专利技术实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行第一方面所述的方法。本专利技术实施例带来了以下有益效果:在本专利技术实施例提供的协议报文跨层通信方法包括:调用内核提供的发送函数,填充所需发送的协议报文的报文数据信息和扩展信息;调用内核中预先创建的套接字中的发包处理回调函数,将协议报文由用户态空间转换至内核态空间;对转换至内核态空间的协议报文进行封包处理,并根据扩展信息将封包处理后的协议报文发送至指定出接口。本专利技术实施例所提供的协议报文跨层通信方法,能够对待发送的协议报文进行相应的处理,使其进入相应的内核处理分支中,减少系统资源的浪费,当某种协议报文有突发流量时,不会影响到其他协议报文的跨层通信,提高了网络的安全可靠性。本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例一提供的一种协议报文跨层通信方法的流程图;图2为本专利技术实施例一提供的另一种协议报文跨层通信方法的流程图;图3为本专利技术实施例一提供的另一种协议报文跨层通信方法的流程图;图4为本专利技术实施例一提供的另一种协议报文跨层通信方法的流程图;图5为本专利技术实施例一提供的另一种协议报文跨层通信方法的流程图;图6为本专利技术实施例二提供的一种协议报文跨层通信装置的示意图;图7为本专利技术实施例三提供的一种电子设备的示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的技术方案进行清本文档来自技高网
...

【技术保护点】
1.一种协议报文跨层通信方法,其特征在于,所述方法包括:调用内核提供的发送函数,填充所需发送的协议报文的报文数据信息和扩展信息;调用内核中预先创建的套接字中的发包处理回调函数,将所述协议报文由用户态空间转换至内核态空间;对所述转换至内核态空间的协议报文进行封包处理,并根据所述扩展信息将所述封包处理后的协议报文发送至指定出接口。

【技术特征摘要】
1.一种协议报文跨层通信方法,其特征在于,所述方法包括:调用内核提供的发送函数,填充所需发送的协议报文的报文数据信息和扩展信息;调用内核中预先创建的套接字中的发包处理回调函数,将所述协议报文由用户态空间转换至内核态空间;对所述转换至内核态空间的协议报文进行封包处理,并根据所述扩展信息将所述封包处理后的协议报文发送至指定出接口。2.根据权利要求1所述的方法,其特征在于,在所述调用内核提供的发送函数之前,还包括:判断是否有允许使用的原始套接字:如果是,则判断是否创建原始套接字:如果是,分配所述原始套接字的存储空间,并对所述原始套接字进行初始化;所述初始化包括:基本数据初始化、协议族号初始化、套接字释放回调函数初始化及发包处理回调函数初始化;将初始化后的套接字加入协议族套接字链表中。3.根据权利要求1所述的方法,其特征在于,所述调用内核中预先创建的套接字中的发包处理回调函数,将所述协议报文由用户态空间转换至内核态空间,具体包括:调用所述发包处理回调函数中的拷贝函数,将所述协议报文中的报文数据信息从所述用户态空间拷贝至所述内核态空间的报文数据缓冲区;将所述协议报文中的扩展信息拷贝至所述内核态空间的地址选项缓冲区。4.根据权利要求2所述的方法,其特征在于,所述对所述转换至内核态空间的协议报文进行封包处理,具体包括:将所述转换至内核态空间的协议报文的报文数据信息重新组装成标准以太帧。5.根据权利要求1所述的方法,其特征在于,所述根据所述扩展信息将所述封包处理后的协议报文发送至指定出接口,具体包括:从所述扩展信息中提取发送...

【专利技术属性】
技术研发人员:陈涛
申请(专利权)人:深圳市风云实业有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1