我有一个嵌入式系统,可以作为访问点。该系统运行一个程序并与连接到该访问点的设备进行一些网络通信。它发送包含某些诊断信息(数据结构)的UDP数据包,并接收命令。问题是有时该数据结构的某些字段未填充数据(例如,存在零或一些垃圾值)。我需要这些字段每次都被正确填充,并且我知道应该放置哪些值。
我需要完成的另一个任务是过滤传递给该程序的传入数据包(我知道它监听的端口)- 通常我只需将它们传递,但偶尔(例如当我从传感器获取一些信息时)必须完全用我生成的新数据包替换它们。
我有几个想法,从智能使用iptables和pcap到编写自己的内核模块。我没有该嵌入式应用程序的源代码,因此无法在其代码中嵌入此功能。性能在这里至关重要,我想听听您的建议:我应该选择什么?编写自己的内核模块似乎是最好的解决方案,但我没有网络黑客经验,因此可能还有其他更适合这个问题的方法。任何意见都将不胜感激!
我需要完成的另一个任务是过滤传递给该程序的传入数据包(我知道它监听的端口)- 通常我只需将它们传递,但偶尔(例如当我从传感器获取一些信息时)必须完全用我生成的新数据包替换它们。
我有几个想法,从智能使用iptables和pcap到编写自己的内核模块。我没有该嵌入式应用程序的源代码,因此无法在其代码中嵌入此功能。性能在这里至关重要,我想听听您的建议:我应该选择什么?编写自己的内核模块似乎是最好的解决方案,但我没有网络黑客经验,因此可能还有其他更适合这个问题的方法。任何意见都将不胜感激!
read()
、write()
等功能,以处理这些功能或将其传递给默认实现。使用这种方法可能会更容易地使您的应用程序支持socks代理,将处理工作放在代理上。 - Hasturkun