我有一个可以被视为接入点的嵌入式系统。有一个程序在该系统中运行,并与连接到该接入点的设备执行一些网络通信。它正在发送包含一些诊断信息(一种数据结构)的 UDP 数据包并接收命令。问题是有时该传出数据结构的某些字段未填充数据(例如,有零或一些垃圾)。我需要每次都正确填写这些字段,并且我知道应该在那里输入什么值。
我需要完成的另一项任务是过滤进入该程序的传入数据包(我知道它侦听的端口) - 通常我需要简单地传递它们,但偶尔(例如,当我从传感器获取一些信息时)它是有必要用我将生成的新数据包完全替换它们。
我有几个想法,从巧妙地使用 iptables 和 pcap 到编写我自己的内核模块。我不拥有该嵌入式应用程序的来源,因此我无法将此功能嵌入其代码中。性能在这里至关重要,我想听听您的建议:我应该追求什么?编写自己的内核模块对我来说似乎是最好的解决方案,但我没有网络黑客的经验,所以也许有一些其他方法更适合这个问题。任何意见将不胜感激!