ADVERTISEMENT
設計網路、了解網路
看完前方歷史的介紹,各位讀者應該大致上了解網路誕生的原因,但筆者現在要讀者完全拋棄以前所學,無論是上課時打瞌睡,OSI 7層只有聽到1層的內容,還是自行所學的網路概念,現在通通丟掉,從零出發,自行設計1套讓電腦能夠交換資料的簡易概念架構。事實上,這也是Cisco教材的第一章節,藉由設計網路架構,讓讀者親身了解網路的必要條件有哪些。
▲人類藉由可相互理解的文字、聲音、動作溝通。
▲電腦吃電,使用電來溝通也是理所當然的。
讓2台電腦交流
老師都教導我們,遇到問題要divide & conquer(分解並各個擊退),一次設計全世界的網路可能跳太快了,就從最簡單的2台電腦開始吧。
參考人類的溝通行為,2個人在相互溝通時,以共同能夠理解的聲音、圖像、文字、動作傳遞訊息,那電腦呢?大家應該都知道電腦依賴著電能運作,使用電來傳遞資料也是合情合理的方式,使用電線將電腦連結在一起,改變線路上的電位差,藉以傳遞訊號。
當然,由於你是發明這項連結方式的人,當然也要決定電腦如何利用這條電線,如果說人類利用「手」創造圖像、「嘴巴」說話、「身體」扭動傳遞資訊,那電腦就利用「介面卡」改變電線的電位差。
連接2台電腦溝通的問題解決了,那3台電腦互連該怎麼辦呢?簡單啊!再插張介面卡,與另一台電腦連結不就好了嗎?
很好,我們成功的解決2台以及3台電腦的連接問題,但前面的問題都還是小問題,萬一今天所有的電腦都需要與其它電腦連結,豈不是要插上n張網路卡,n條電線才能夠溝通了嗎?
回頭檢視人類社會是如何解決類似的問題,在此筆者首先想到的是貨物的解決方案。如果甲地需要將貨物搬到乙地,也是開條道路就成了,但如果世界各地的商品想要互通有無,難不成需要特地建立許多專用道路搬運嗎?看看貨運的例子,採用的是物流倉儲中心的做法,無論需要送至何地的商品,一律先配送至這個倉儲中心之後,再送至各商品的目的地,或許電腦也可以採取這種集中之後再配送的作法。
▲3台電腦的連接情況,各台電腦皆有2張介面卡、2條電線與其它電腦連接。
▲利用1個盒子將所有傳輸電線串在一起
首先,我們需要1個夠大的盒子,能夠容量所有電腦的電線。接著我們需要類似門牌號碼的地址系統,就像貼在貨物上的配送單一樣,才能夠在集貨之後,依照門牌地址,決定要送去哪裡。這個部分也相當容易,將每張介面卡編號即可,並在送出資訊的時候,在資料之前聲明這份資料是給哪台電腦的東西,其它台電腦在收集到這些資料時,便能夠了解這並不是給我的東西,略過這份資料。由於這個盒子聚集了許多電腦線路在一起,我們將它稱之為集線器,好了,連結n台電腦的問題克服了。
到此為止,我們已經設計出1個可實用的電腦網路,也設計出1個集線器,避免電腦線材過多的問題,準備向全世界發表這個歡天喜地的新功能時,卻又發現了幾個問題。
首先,電腦是給人用的工具,這個網路應該具備某些彈性,當電腦或介面卡損毀時,接手的電腦能夠照常接收資料,意即當001電腦損毀時,頂替的002電腦能夠接收給001電腦的資料。其次,第二個問題則是無法擴編電腦網路的大小,網路的大小被限制在集線器的連結數量。
這2點看似不重要,但對於向全世界發布這個標準時,是不可缺少的使用彈性。究竟有什麼方式,能夠解決這2個問題呢?
第一個問題的解決方案其實不難,既然電腦是給人用的,只要在資料前註明這是給哪位仁兄的資料不就可以了嗎?可是電腦又很笨,不認得目前是誰在使用電腦,使用者也可能跳來跳去的使用其它台電腦,似乎要有1份清單標明小明、小黃、小白、小美⋯⋯這些不同的使用者,目前正在使用哪台電腦。
這份清單將介面卡編號(001、002、003⋯⋯)和使用者名稱(ming、yellow、mei⋯⋯)做連結,並隨時可供更新、查閱,這樣才知道小明目前使用哪台電腦,資料才不會處理錯誤。
▲利用表格,將人名與電腦做結合。
第二個問題的解決方法,同樣也是參考貨運的例子,物流業者在全世界不同地區建立獨立的物流中心,每個物流中心負責鄰近地區的貨物配送事宜,例如美國的物流中心負責北美洲部分,德國負責西歐部分。如果今天有件包裹需要從加拿大運抵英國,它的運送流程如下:
加拿大→美國→德國→英國
仿照物流業的例子,把集線器的其中1條線,拿去連接另外1台集線器不就可以了嗎?譬如,現在有個能夠連接4台電腦的集線器,全部的線材均已連結至電腦上,而現今因為種種因素,需要加入1台新電腦,只需把其中1台電腦的網路線從集線器上取下(現在有3台電腦連接在集線器上,2台尚待連接),把這個空出來的空間連結至第2台的集線器上,再將2台無法連接到第1台集線器的線材,轉移至第2台集線器上。掐指一算,原本2台4埠的集線器,原先可以連結2個獨立的網路,每個網路有4台電腦;但為了連結成1個更大的網路,這2台集線器分別貢獻了1埠出來,每台只剩下3埠可以連結電腦,一共組成6台電腦的網路。
雖然說連結電腦的數量變少了,但卻有更多的電腦可以相互溝通,只要我們加入更多的集線器,又會變成更大的網路。到此似乎也沒有什麼東西好改了,準備向全世界介紹你的發明吧!
▲為了將2個網路組合在一起,整體電腦數量反而是下降的
在這個自行設計網路的例子中,其實隱含了相當多的網路基礎概念,而現今網路也是依賴這些基本觀念所架設出來的。好比說,電腦介面卡的編號,對應現今網路產品的MAC位址。電腦的使用者名稱,對應網路中的IP位址。標示電腦使用者的清單,即是現今的DNS伺服器。
這些都是非常重要的概念,對於未來開始進入網路世界是相當重要的基礎,如果讀者有時間的話,請盡量搞懂這些對應關係,未來了解網路世界更為輕鬆。下期我們將會介紹TCP/IP與網路層級(包含DoD 4層和OSI 7層參考模型),而這些層級恰好也可以學到封包的組成結構,也是網路上資料能夠傳遞的標準、基礎。
本文同步刊載於電腦王雜誌
歡迎加入電腦王雜誌粉絲團
小妹大學是讀商管類組的,也從來沒碰過電腦(都請男性友人幫忙處理XD)。畢業後進入做網通的科技公司之後,試著要自學這些網路概念,但不管瀏覽了多少網路文章,都覺得像是天書一樣!
問公司裡的工程師這些入門概念或是路由器和閘道器和無線AP差在哪的這類問題,他們一時也無法解釋和分析其中的差異給一個外行人聽。
這系列的文章對我幫助很大,已加入最愛收藏囉<( ̄︶ ̄)>
希望以後還能看到更多這類深入淺出淺顯易懂的介紹文!^w^~
每次都剛好解決我的問題與疑惑 (≧▽≦)
感謝你 <( ̄︶ ̄)>