為何需要切分子網路?

原因很簡單,當你的公司擁有一個A級網路,並且需要讓256x256x256-2=16777214台電腦同時上網,想想Ethernet網路中的CSMA/CD來解決碰撞的問題的方法,應該會讓你的16777214台電腦都不能上網或者超卡。

CSMA/CD
Carrier Sense Multiple Access with Collision Detection(載波偵聽多路存取/碰撞檢測)
此方案要求裝置在傳送影格的同時要對信道進行偵聽,以確定是否發生碰撞,若在傳送資料過程中檢測到碰撞,則進行如下碰撞處理操作:

  • 傳送特殊阻塞資訊並立即停止傳送資料:特殊阻塞資訊是連續幾個位元組的全1訊號,此舉意在強化碰撞,以使得其它裝置能儘快檢測到碰撞發生。
  • 在固定時間(一開始是1 contention period times)內等待隨機的時間,再次傳送。
  • 若依舊碰撞,則採用截斷二進位指數避退演算法進行傳送。即十次之內停止前一次「固定時間」的兩倍時間內隨機再發送,十次後則停止前一次「固定時間」內隨機再發送。嘗試16次之後仍然失敗則放棄傳送。

堵塞

我們都知道,當多台電腦使用一個Hub來連接網路,並且其中一台電腦想做壓力測試,那麼這個Hub最後一定會因為堵塞,導致連這個Hub的所有電腦都聯不上網路,接著那個想做壓力測試並且不告知的人一定被靠杯死XD。被靠杯到死的人,我們這邊就不討論他的心情了,重點在於「堵塞」,是什麼堵塞?這就要讓我們思考下Hub是幹啥的。

HUB有兩大特性,一個就是半雙工,一個就是廣播。

  • 半雙工是指,收資料或送資料不能同時,你一次只能做其中一種。
  • 廣播是指,當A電腦要透過HUB送資料給B電腦的時候,A送出來的資料其實連接在這台HUB上的電腦都會收到,但是只有B電腦會將資料收起來,其他電腦則是將封包丟掉。

假設我們今天有電腦abc,這三台都連結在一個Hub上,當a傳資料給c,通過位址解析協定(Address Resolution Protocol,ARP)查詢目標裝置的MAC位址,資料會先廣播到Hub並且b跟c都拿到資料,只是b電腦丟棄。
而CSMA/CD,就是在發送前確認線路目前有沒有在使用。今天a跟b同時發資料,出現Collision之後因為CSMA/CD所以會中止傳送,並且等待。那想abc三台就可能出現Collision更何況是16777214台電腦或伺服器,可以說是一個巨大的Collision domain。

解決

而子網域切割,就可以讓這個Collision domain縮小,因為每個不同ip封包要互聯,都必須經過Bridge或Switch,這兩個設備都會先檢查該封包的目的地的是哪一個MAC 位址的電腦,再決定讓不讓該封包通過,如此一來,增加了大量Collision domain,但是每個Collision domain內的電腦數量大減,使Collision沒有那麼嚴重,而switch更是因為每個port都是獨立分開的,所以Collision的數量更少,大家連接網路出現的延遲也就更少。

Facebook 功能: