戲說網絡(二)

上一篇我們聊到了從最原始的兩個人的連接需求到多個人的連接需求,進而衍生出了 MAC 地址、交換機等網絡概念。今天我們來繼續瞎聊。

交換機互聯

當要連接的人越來越多,超過 10 個、20 個、30 個、50 個,我們的一個交換機也沒有那麼多網口了。聰明的同學肯定想到了,交換機連交換機。每個交換機上連接 10 來個人,來幾個交換機就能連接幾倍的人數。假設 A、B 接在交換機一的 1、2 網卡上,C、D 接在交換機二的 1、2 網卡上,交換機一和二的 3 號網卡互相連著。則經過若干次廣播之後,交換機一的 MAC 地址表會是這樣:

戲說網絡(二)

交換機二的 MAC 地址表會是這樣:

戲說網絡(二)

廣播風暴

那麼要經過多少次廣播呢?廣播又會有什麼不一樣呢?假設當地址表都是空的時候,A 要給 B 發送數據。此時地址表裡找不到 B,於是交換機一開始廣播。廣播的數據也會通過 3 號網卡到達交換機二。交換機二里也是空的,也沒有 B,於是又在交換機二里廣播。所以 A 給 B 發送數據會導致交換機一、二都發生廣播。接下來 A 給 C 發送數據,交換機一地址表沒有 C(此時只有 A 和 B),所以又要廣播。同樣交換機二也要廣播。我們可以把所有情況都列下來:

戲說網絡(二)

有沒有發現?任何一個交換機的廣播,都可能導致連接的另一個交換機也產生廣播?廣播被逐級放大。互聯的交換機越多,在每個交換機產生的廣播就越頻繁。正常的數據發送通道就被廣播給佔用了,導致網絡不堪重負。

緩存

也許有的同學會有疑問,也就是當地址表中沒有對應項時才會發生廣播,當每個交換機都有了整個網絡的所有地址後,也就不會再有廣播了。的確是!但這是建立在網絡很穩定的基礎上。如果 A 拔了網線換成 E 呢?如果 A 跟 C 交換了位置呢?所以地址表不能一成不變,它必須要適應這種變化。也就是說,我們要在必要的時候刷新它們。最簡單的做法,就是定時清除地址表裡的記錄了。也可以說,地址表僅僅就是一種緩存,並不是永久存儲。而且緩存的時間一般不會太長,可能也就幾秒到幾十秒,避免位置變化導致用戶無法通信。

更大的連接

這樣來看,廣播的頻率還是比較高。這就限制了通過交換機互聯的網絡,不宜過大。這樣幾十人一個交換機網絡,就形成一個一個的網絡小孤島。其實也挺好,大家在各自的網絡小空間裡,悠然自得。但什麼事都怕時間二字。時間長了,總會覺得膩的,畢竟外面的世界那麼大,誰都想去看看。可我們已經不能用交換機了。怎麼辦?在找到辦法之前,先來看看我們面臨的問題:

  • 不能再任由廣播風暴產生了
  • 小網絡圈子裡太隨意,地址隨意填。這樣網絡對接時,大家使用的地址就可能有衝突
  • 甚至這個小網絡裡,大家使用的協議都不一樣,有的網絡裡用的可能並不是 MAC 地址
  • 將來要連接的網絡還會更多,不能任意填寫地址了,必須有專門的管理方式

還有沒有其他問題?大家可以先想想。下一篇我們來聊聊解決辦法。


分享到:


相關文章: