作者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/m.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