在 Linux 中,我有 2 个进程使用 1 个 eth 接口(interface),
process1 是 socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL))
process2 是 socket(AF_INET, SOCK_DGRAM, 0)
process1可以接收process2发送/接收的所有包,想知道process1如何过滤process2的包
最佳答案
当套接字协议(protocol)设置为ETH_P_ALL时,它可以处理所有协议(protocol)。
第二个进程通过第一个套接字用于监听的同一接口(interface)发送 udp 数据包。首先socket的协议(protocol)设置为ETH_P_ALL,它可以看到所有的数据包;传入和传出。所有传出数据包的数据包类型均为 PACKET_OUTGOING。
关于linux - 关于 Linux 的 RAW 套接字问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50168016/