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.一种协议报文跨层通信方法,其特征在于,所述方法包括:调用内核提供的发送函数,填充所需发送的协议报文的报文数据信息和扩展信息;调用内核中预先创建的套接字中的发包处理回调函数,将所述协议报文由用户态空间转换至内核态空间;对所述转换至内核态空间的协议报文进行封包处理,并根据所述扩展信息将所述封包处理后的协议报文发送至指定出接口。
【技术特征摘要】
1.一种协议报文跨层通信方法,其特征在于,所述方法包括:调用内核提供的发送函数,填充所需发送的协议报文的报文数据信息和扩展信息;调用内核中预先创建的套接字中的发包处理回调函数,将所述协议报文由用户态空间转换至内核态空间;对所述转换至内核态空间的协议报文进行封包处理,并根据所述扩展信息将所述封包处理后的协议报文发送至指定出接口。2.根据权利要求1所述的方法,其特征在于,在所述调用内核提供的发送函数之前,还包括:判断是否有允许使用的原始套接字:如果是,则判断是否创建原始套接字:如果是,分配所述原始套接字的存储空间,并对所述原始套接字进行初始化;所述初始化包括:基本数据初始化、协议族号初始化、套接字释放回调函数初始化及发包处理回调函数初始化;将初始化后的套接字加入协议族套接字链表中。3.根据权利要求1所述的方法,其特征在于,所述调用内核中预先创建的套接字中的发包处理回调函数,将所述协议报文由用户态空间转换至内核态空间,具体包括:调用所述发包处理回调函数中的拷贝函数,将所述协议报文中的报文数据信息从所述用户态空间拷贝至所述内核态空间的报文数据缓冲区;将所述协议报文中的扩展信息拷贝至所述内核态空间的地址选项缓冲区。4.根据权利要求2所述的方法,其特征在于,所述对所述转换至内核态空间的协议报文进行封包处理,具体包括:将所述转换至内核态空间的协议报文的报文数据信息重新组装成标准以太帧。5.根据权利要求1所述的方法,其特征在于,所述根据所述扩展信息将所述封包处理后的协议报文发送至指定出接口,具体包括:从所述扩展信息中提取发送...
【专利技术属性】
技术研发人员:陈涛,
申请(专利权)人:深圳市风云实业有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。