问一个网络问题

papaofdoudou
人工智能领域新星创作者
博客专家认证
2010-01-15 09:46:14
有一个问题,互联网或者小范围局域网内位于网络层之上的数据包(可路由的数据包),某台主机向网络发送的时候,连接在同一台交换机上的其它机器网卡会接收到这个数据包吗? 我指的“接收”意思是只要这些数据包出现在这些网卡的物理介质上就算是接收。即使是单播,目标主机的IP地址明确,其他机器是不是也会接收到这个数据包,只不过是由于MAC地址不对而被抛弃了???例如ping程序,一台主机ping局域网内的另外一台主机,同一网段内的其它主机会不会“感知”到这个数据包的存在?其它主机的双绞线上会不会出现这些数据的信号?
之所以这样问因为,我感觉IP地址毕竟是网络层的地址,底层通信依靠的是MAC地址逐跳传递的,发送的时候交换机端口没有MAC地址和IP地址之间的对应信息,所以交换机如何确定自己传递出去的数据包就是目的机器呢??交换机如何确定应该向那个端口传递数据呢?所以我认为所有这些数据包都是以“广播”的形式在局域网内发出,但只有与目的MAC地址一致的主机网卡才会接受处理,其它主机网卡会把数据包抛弃??
是这样的吗?
用Wiresharke抓包软件会不会抓取到同一局域网内其它两台机器之间的ping icmp报文???
即使是单播通信,数据包也会向网段内广播把??
...全文
80 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cattycat 2010-01-15
  • 打赏
  • 举报
回复
会抓到其他机器的包的,如果是在同一子网下,你说的这个在物理层其实是arp协议做的事情,arp就是以MAC地址识别机器的,数据报文到达机器后,底层网卡适配器会比较目的mac地址是否本机MAC,不是则丢弃,是的话,将包层层传给上层ip,tcp/udp, 应用层。
你需要看看网络方面的东西,TCP/IP第一卷可以大概看看,理论性的东西。
pywepe 2010-01-15
  • 打赏
  • 举报
回复
真的是网络问题 大概瞄了下 可能跟nat有关
jc_ontheroad 2010-01-15
  • 打赏
  • 举报
回复
单播通信,只会在两者间传递数据,其它第三者不会接收到。

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧