作者alan23273850 (God of Computer Science)
看板Network
标题[问答] 同一子网路内主机传输为何要用 broadcast
时间Sun Sep 23 14:47:04 2018
各位板友大家好,小弟这学期有修了一门 112 的课叫 网路攻防实习,
因为自己对网路架构其实没到很熟,期望修这门课能对网路运作原理了解得更深入,
因此往後可能常常会在板上出没,请各位大大多多包涵,请鞭小力穴穴~~
---------------------------------------------------------------------------
问题是这样的,我不太懂为什麽主机发现 destination address 在自己的子网域之後,
就只会 broadcast 给子网域内的所有人,然後等待正确的主机回应。
如果是那种传统没有路由功能的集线器 (hub),那当然只能这麽做,只不过现在的
router 势必是有路由功能的,既然如此为什麽不也是先传送到 router (default gw),
然後再交由 router 决定新的方向呢?是因为先传送给 router 的过程中本身也需要
broadcast 给所属子网路进而导致其他主机有可能先收到吗?如果连线方式是星状拓朴,
也就是 router 放中间,那麽就不会发生我说的 "其他主机先收到的情况了" 吧?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.168.84.188
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Network/M.1537685227.A.BF7.html
1F:→ s958256: 换个方向想,router为何要去处理同个子网内的IP寻址? 09/23 14:57
2F:→ Wishmaster: 因为这是ethernet XDDDD 09/23 15:07
3F:→ alan23273850: 因为我一直想到星状拓朴,所有的封包都会优先通过 09/23 15:09
4F:→ alan23273850: router,这是我的盲点所在,除非 router 同样会广播 09/23 15:10
5F:→ alan23273850: 给同一个 subnet 的其他人 09/23 15:10
会有这个疑问是因为,我在 linux 上直接 delete 掉 default gateway,网内虚拟电脑
互传还是会 work,就还蛮神奇的 XDXD
※ 编辑: alan23273850 (140.112.73.213), 09/23/2018 15:11:51
6F:→ asdfghjklasd: 先搞清楚 L2 L3 运作原理 09/24 00:18
我现在有点理解,不过不太确定,就是说其实不管要传到哪里都是 broadcast,差别在於
如果 dest 是在 subnet 里面的话 IP 符合的 host 会自动接收,如果 dest 是在外面的
话由於 subnet 里面的 host IP 都不符合,收了也没用,只好由 gateway 接收处理。
所以应该把 gateway 当成 subnet 里面的其中一个 host,差别只在於交由谁处理而已。
※ 编辑: alan23273850 (1.168.91.107), 09/24/2018 13:53:35
7F:→ asdfghjklasd: 你先搞懂 OSI 七层跟 TCP/IP 4层吧 09/24 15:04
8F:→ deadwood: 多看点书弄懂L2、L3基本运作吧,基本理解就错误了 09/24 15:09
9F:推 venroxas: L2才会有这种行为 09/25 22:50
10F:推 b325019: 不管是同网段还是跨网段你都会看到广播,那个叫做arp 09/27 12:07
感谢各位大大耐心回覆,我後来看完
https://www.youtube.com/watch?v=Mj55o6_YmgM
这部片之後终於懂了,原来我一直把 router 和 switch 弄混,也终於知道 arp 重要性,
只是说如果要根据 MAC address 就直接送到正确的 host 的话还是要靠 switch 路由,
如果把 switch 换成 hub 的话应该就不行了吧。
※ 编辑: alan23273850 (140.112.175.74), 09/27/2018 16:48:47
11F:→ birdy590: 一样可以啊, hub 是每个节点都会收到一样的东西 01/12 17:08
12F:→ birdy590: 建议先搞懂 Layer 2 怎麽运作, 然後再去看 Layer 3 如何 01/12 17:09
13F:→ birdy590: 配合这些特性工作 01/12 17:09