libpcap为何能捕获到达其他机器的数据包
有没有人能说下网络数据帧的流通方式?我想知道为什么网卡能接收到mac地址不为本机的单播数据帧?
我在看libpcap,不理解为什么它可以捕获到达其他机器的数据包。
如果我的主机不被配置为路由,那不是只有目标地址为本机的单播、广播和多播才会被发给本机么?
为什么能接收到到达其他机器的数据包?
谢谢。
------解决方案--------------------
一个子网里的计算机, 比如A发出一个包, 它不知道会落到谁手里, 它只是之前通过ARP协议问到了一个可能真实的B机器的MAC, 并把这个MAC放在了这个包的链路头里.
整个子网里的所有计算机的链路层都会收到这个包, 判断MAC是否是自己的, 是自己的就上传到IP层看IP是不是自己的, 最后上升到TCP/UDP层, 判断端口是不是开启的.
就这么个原理, 所以抓包都是链路层抓包.