我有一个 C Linux 程序,它使用原始套接字来读取传入的 tcp/udp 数据包。
我想应用一个过滤器,以便只有从特定 IP 地址发送的数据包才能到达我的套接字。
是否可能或者我是否应该接收每个数据包然后检查源地址字段?我有点担心后一种情况下的 cpu 使用情况。
谢谢。
最佳答案
这还取决于您使用的处理器。一些处理器具有内置硬件等功能,可以根据涉及输入端口、源 IP 地址和协议(protocol)类型(TCP/UDP 等)的规则过滤数据包。这反过来又可以减少负载,因为硬件过滤比软件过滤具有更好的性能。
关于c - 原始套接字 : filter only packets coming from a certain IP address? (Linux C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33043108/