【发布时间】:2018-05-04 05:51:30
【问题描述】:
在 Linux 中,我有 2 个进程使用 1 个 eth 接口,
process1 是socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL))
process2是socket(AF_INET, SOCK_DGRAM, 0)
process1可以接收process2发送/接收的所有包,想知道process1如何过滤process2包
【问题讨论】:
标签: linux raw-sockets
在 Linux 中,我有 2 个进程使用 1 个 eth 接口,
process1 是socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL))
process2是socket(AF_INET, SOCK_DGRAM, 0)
process1可以接收process2发送/接收的所有包,想知道process1如何过滤process2包
【问题讨论】:
标签: linux raw-sockets
当套接字协议设置为 ETH_P_ALL 时,它可以处理所有协议。
第二个进程通过第一个套接字用于侦听的同一接口发送 udp 数据包。第一个socket的协议设置为ETH_P_ALL,它可以看到所有的包;传入和传出。所有传出的数据包都将具有 PACKET_OUTGOING 的数据包类型。
【讨论】: