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

发布于 2022-09-01 06:23:31 字数 993 浏览 21 评论 0

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

问题就是:
我用用一个网卡发出一个包,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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

你列表最软的妹 2022-09-08 06:23:31

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

暗地喜欢 2022-09-08 06:23:31

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

橙味迷妹 2022-09-08 06:23:31

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

只是在用心讲痛 2022-09-08 06:23:31

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

天煞孤星 2022-09-08 06:23:31

正常情况下 网卡不会发出去 本地换回处理了。

如果自己实现主机网络层协议强制发出去了,交换机会丢掉这个包。

交换机做的垃圾的 可能给你发回去。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文