一种基于嵌入式Linux系统的二层协议报文处理方法及装置制造方法及图纸

技术编号:37666704 阅读:20 留言:0更新日期:2023-05-26 04:25
本发明专利技术公开一种基于嵌入式Linux系统的二层协议报文处理方法及装置,所述方法包括:发送线程和接收线程,其中,发送线程包括:从网络接口接收二层协议报文,根据二层协议报文的目的mac址将二层协议报文以udp数据报文形式发送到对应的udp端口;接收线程包括:从udp端口接收二层协议模块发送的udp数据报文形式的二层协议报文,将udp数据报文形式的二层协议报文发送到网络接口。本发明专利技术将二层协议报文的发送和接收转换为udp数据报文的收发,能够降低二层协议模块的开发难度,从而加快了产品研发的进度。的进度。的进度。

【技术实现步骤摘要】
一种基于嵌入式Linux系统的二层协议报文处理方法及装置


[0001]本专利技术涉及一种基于嵌入式Linux系统的二层协议报文处理方法及装置,属于计算机


技术介绍

[0002]目前嵌入式系统广泛应用在我们生活中的各个领域,如手机、电视机顶盒、数字电视、数字相机、掌上PDA、移动计算设备、家庭自动化系统、交换机、路由器、消费电子设备、工业自动化仪表与医疗仪器等。嵌入式系统最重要的部分就是嵌入式操作系统,常见的嵌入式系统有Linux、UCOS、windows CE、VxWorks、freertos等。嵌入式Linux的特点是版权费免费,性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能稳定性好安全性好,因此越来越多的项目选择Linux作为嵌入式操作系统。
[0003]部分与网络相关的嵌入式系统例如交换机、路由器等,有时需要支持一些二层协议功能,例如需要支持LLDP(链路层发现协议)功能、STP(生成树协议)功能等。嵌入式Linux系统需要实现这些二层协议功能时,要能够接收和发送二层协议的报文。通常的做法是修改Linux内核代码,注册一个新的网络协议,在Linux协议栈处理流程中增加对该协议报文的处理,重新编译Linux内核,然后在应用程序中创建该网络协议的socket套接字,通过socket套接字来接收和发送二层协议的报文。这种方法涉及到Linux内核编程,实现起来比较复杂,对网络协议代码的要求高,若网络协议代码存在漏洞,在运行时会导致整个Linux系统出现问题。

技术实现思路

[0004]本专利技术的目的在于克服现有技术中的不足,提供一种基于嵌入式Linux系统的二层协议报文处理方法及装置,能够将二层协议报文的发送和接收转换为udp数据报文的收发,能够降低二层协议模块的开发难度,从而加快了产品研发的进度。为达到上述目的,本专利技术是采用下述技术方案实现的:第一方面,本专利技术提供了一种基于嵌入式Linux系统的二层协议报文处理方法,包括:发送线程和接收线程,所述发送线程包括:从网络接口接收二层协议报文,根据二层协议报文的目的mac址将二层协议报文以udp数据报文形式发送到对应的udp端口;所述接收线程包括:从udp端口接收二层协议模块发送的udp数据报文形式的二层协议报文,将udp数据报文形式的二层协议报文发送到网络接口。
[0005]结合第一方面,进一步地,所述从网络接口获取二层协议报文,包括:通过创建原始套接字socket,设置套接字为混杂模式,从网络接口接收二层协议报文。
[0006]结合第一方面,进一步地,所述根据二层协议报文的目的mac址将二层协议报文以udp数据报文形式发送到对应的udp端口,包括:
判断二层协议报文的目的mac地址是否为二层协议A模块的mac地址:若是,则将二层协议报文作为udp数据报文的数据部分发送至udp端口10001;若否,则判断二层协议报文的目的mac地址是否为二层协议B模块的mac地址,若是,则将二层协议报文作为udp数据报文的数据部分发送至udp端口10002,若否,则忽略该二层协议报文。
[0007]结合第一方面,进一步地,所述发送线程还包括:二层协议A模块从udp端口10001接收udp数据报文,二层协议B模块从udp端口10002接收udp数据报文。
[0008]结合第一方面,进一步地,所述接收线程还包括:所有需要发送数据的二层协议模块将待发送的二层协议报文以udp数据报文形式发送到udp端口10000。
[0009]结合第一方面,进一步地,所述从udp端口接收二层协议模块发送的udp数据报文形式的二层协议报文,包括:创建数据报套接字socket,将数据报套接字socket与udp端口10000绑定,从udp端口10000接收二层协议报文。
[0010]结合第一方面,进一步地,所述将udp数据报文形式的二层协议报文发送到网络接口,包括:将udp数据报文的数据部分作为一个报文发送到网络接口。
[0011]第二方面,本专利技术提供了一种基于嵌入式Linux系统的二层协议报文处理装置,包括:发送线程处理模块和接收线程处理模块,所述发送线程处理模块包括:第一获取子模块:用于从网络接口接收二层协议报文,第一发送子模块:用于根据二层协议报文的目的mac址将二层协议报文以udp数据报文形式发送到对应的udp端口;所述接收线程处理模块包括:第二获取子模块:用于从udp端口接收二层协议模块发送的udp数据报文形式的二层协议报文,第二发送子模块:用于将udp数据报文形式的二层协议报文发送到网络接口。
[0012]第三方面,本专利技术提供了一种计算机设备,包括处理器及存储介质;所述存储介质用于存储指令;所述处理器用于根据所述指令进行操作以执行根据第一方面所述方法的步骤。
[0013]第四方面,本方面提供了计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述方法的步骤。
[0014]与现有技术相比,本专利技术实施例所提供的一种基于嵌入式Linux系统的二层协议报文处理方法及装置所达到的有益效果包括:本专利技术提供的一种二层协议报文处理方法,包括:发送线程和接收线程,所述发送线程包括:从网络接口接收二层协议报文,根据二层协议报文的目的mac址将二层协议报文以udp数据报文形式发送到对应的udp端口;所述接收线程包括:从udp端口接收二层协议模块发送的udp数据报文形式的二层协议报文,将udp数据报文形式的二层协议报文发送到网络接口。二层协议模块需要发送二层协议报文时将报文发送到udp端口,需要接收二层协议报文时就从相应的udp端口接收。本专利技术将二层协议报文的发送和接收转换为udp数据报文的收发,能够降低二层协议模块的开发难度,从而加快了产品研发的进度。
附图说明
[0015]图1是本专利技术实施例一提供的一种二层协议报文处理方法的流程图;图2是本专利技术实施例一提供的一种二层协议报文处理方法中发送线程的流程图;图3是本专利技术实施例一提供的一种二层协议报文处理方法中接收线程的流程图。
具体实施方式
[0016]下面结合附图对本专利技术作进一步描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。
[0017]实施例一:一种基于嵌入式Linux系统的二层协议报文处理方法,包括:发送线程和接收线程。
[0018]如图1所示,发送线程包括:步骤1:从网络接口获取二层协议报文。
[0019]通过创建原始套接字socket,设置套接字为混杂模式,即从网络接口接收所有的报文,包括不是发给本机的报文。
[0020]步骤2:根据二层协议报文的目的mac址将二层协议报文以udp数据报文形式发送到对应的udp端口。
[0021]判断二层协议报文的目的mac地址是否为二层协议A模块的mac地址:若是,该二层协议报文应该发送二层协议A模块进行处理,将二层协议报文作为u本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于嵌入式Linux系统的二层协议报文处理方法,其特征在于,包括:发送线程和接收线程,所述发送线程包括:从网络接口接收二层协议报文,根据二层协议报文的目的mac址将二层协议报文以udp数据报文形式发送到对应的udp端口;所述接收线程包括:从udp端口接收二层协议模块发送的udp数据报文形式的二层协议报文,将udp数据报文形式的二层协议报文发送到网络接口。2.根据权利要求1所述的基于嵌入式Linux系统的二层协议报文处理方法,其特征在于,所述从网络接口获取二层协议报文,包括:通过创建原始套接字socket,设置套接字为混杂模式,从网络接口接收二层协议报文。3.根据权利要求1所述的基于嵌入式Linux系统的二层协议报文处理方法,其特征在于,所述根据二层协议报文的目的mac址将二层协议报文以udp数据报文形式发送到对应的udp端口,包括:判断二层协议报文的目的mac地址是否为二层协议A模块的mac地址:若是,则将二层协议报文作为udp数据报文的数据部分发送至udp端口10001;若否,则判断二层协议报文的目的mac地址是否为二层协议B模块的mac地址,若是,则将二层协议报文作为udp数据报文的数据部分发送至udp端口10002,若否,则忽略该二层协议报文。4.根据权利要求3所述的基于嵌入式Linux系统的二层协议报文处理方法,其特征在于,所述发送线程还包括:二层协议A模块从udp端口10001接收udp数据报文,二层协议B模块从udp端口10002接收udp数据报文。5.根据权利要求1所述的基于嵌入式Linux系统的二层协议报文处理方法,其特征在于,所述接...

【专利技术属性】
技术研发人员:梁志宝赵谦张宪军晏平仲杨瑞韩宇宸查晓锐
申请(专利权)人:南京国电南自电网自动化有限公司
类型:发明
国别省市:

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

1