首页 > 网卡发出一个包会不会回到自己?

网卡发出一个包会不会回到自己?

有一个有一点奇葩的问题,应该是我网络没学好,但是又不知道从何看起,所以先来这里问一下。

问题就是:
我用用一个网卡发出一个包,src mac 和 dst mac 都是本网卡的 mac,网卡连接到一个 2 层交换机,那么,这张网卡能够收到自己之前发出去的包吗?如果我有哪些细节没有提及,我后面再补充。

谢谢诸君!


不好意思,我没有说清楚,补充一下,我不是调用 socket 接口,而是构造一个 ethernet frame 从驱动层发出去,具有相同的 src mac 和 dst mac。我的疑问是交换机如何处理这个包,谢谢大家。

Update-20150416
我用一张网卡和一台交换机做实验验证:
在 Linux 上,使用 Send a raw Ethernet frame in Linux 构造 ethernet frame,然后登录到交换机串口,观察对应端口的 input/output 数量。

发 raw 包前 show interface te 0/32

Input Statistics:
     117290115610 packets, 8205731848934 bytes
Output Statistics:
     20457 packets, 1589257 bytes, 0 underruns

发 raw 包后 show interface te/32

Input Statistics:
     117290115611 packets, 8205731848998 bytes
Output Statistics:
     20457 packets, 1589257 bytes, 0 underruns

这样应该就能说明不会往回发了吧。


不会的,这取决于交换机的实现,一般的二层网桥或交换机都水平分割,及不将报文从接收端口发出。或者再给你一个例子,当目的mac为广播地址时,这个发出的报文也不会被自己收到,道理一样的。


收是应该收的到,我想是和ping本机IP一样的方式吧,可以抓个包试试


这种情况,估计就是回环的走法,不用发出去了。


直接走lo 不走eth 在ip层就可以判断了,不必下降到mac,只要 dst ip 指向本机任意一张网卡界面注册的ip, 就直接走lo, 有的操作系统根本就是直接一根管道搞定。

【热门文章】
【热门文章】