|
|
何為網路﹖
在定義上非常簡單﹕網路就是一群通過一定形式連接起來的電腦。一個網路可以由兩台電腦組成﹐也可以擁有在同一大樓裡面的上千台電腦和使用者。我們通常指這樣的網路為局域網(LAN﹐ Local Area Network)﹐由LAN再延伸出去更大的範圍﹐比如整個城市甚至整個國家﹐這樣的網路我們稱為廣域網(WAN﹐ Wide Area Network)﹐當然您如果要再仔細劃分的話﹐還可以有MAN(Matropolitan Area Network) 和 CAN(Citywide Area Network)﹐這些網路都需要有專門的管理人員進行維護。而我們最常觸的Internet則是由這些無數的LAN和WAN共同組成的﹐Internet僅是提供了它們之間的連接﹐但卻沒有專門的人進行管理(除了維護連接和制定使用標準外)﹐可以說Internet是最自由和最沒王管的地方了。在Internet上面是沒有國界種族之分的﹐只要連上去﹐在地球另一邊的電腦和您室友的電腦其實沒有什麼兩樣的。
因為我們最常使用的還是LAN﹐(即使我們從家中連上Internet﹐其實也是先連上ISP的LAN)﹐所以這裡我們主要討論的還是以LAN為主。LAN可以說是眾多網路裡面的最基本單位了﹐等您對LAN有了一定的認識﹐再去了解WAN和Internet就比較容易入手了﹐只不過需要了解更多更複雜的通訊手段而已。
網路能做些什麼﹖
在沒有網路的年代裡面﹐電腦和電腦之間要進行資料交換﹐最普遍的方法就是通過磁片等儲存媒體了﹕您得先從一台機器將資料copy到磁片﹐然後把磁片拿到另一台電腦再copy到上面去。但這樣的方法有其極不良的弊端﹕
- 如果您已經從原來的磁碟上得到了一份copy﹐然後其原來檔案又被更改了而您又不知道﹐將會如何呢﹖
- 如果有好幾個人然同時使用同一個檔案﹐您又如何將其各自的變更加以整合以達統一規範呢﹖
- 您又如何避免一些敏感資料不會被人們帶出去辦公室呢﹖
答案很明顯都是負面的﹐同樣的問題通過網路也不是完全能解決掉﹐但起碼得到了很大的改善。而且網路還可以為我們做到這些東西﹕
- 檔案管理
-
- 共享應用程式
-
- 共享週邊設備
-
- 和其他使網路用者交流
-
- 進行群組工作排程
- 收發電子郵件
- 進行電子會議
- 網路游戲
共享(sharing)﹐其實就是網路的精神所在。當然在一個網路環境裡面﹐我們是可以設定不同等級的共享和限制﹐以適合不同的使用者要求。很明顯﹐經理當然希望能知道各員工的工作情況(除了私人資料)﹐但銷售部的員工卻未必能看得到會計部的資料。這些限制﹐我們通常是通過使用者(Username)和密碼(Password)來進行設定的。在網路上的唯一身份就是您的使用者名稱和密碼了﹐如果您的帳號被人盜用了﹐出了什麼狀況也可能是追究到您的身上﹐所以設立一個比較難猜中的密碼﹐和保護好自己的密碼是使用網路的第一意識。
一些網路名詞
工作站(Workstation)
任何能夠提供對網路環境進行輸入的機器﹐都可以說是工作站﹐其主要定義元素就是“輸入”。這可以包括個人電腦、手持式掃描器、終端機、等等。每一工作站都有其自己的網路卡。
節點(Node)
每一個工作站、網路傳真機、網路印表機、檔案伺服器、或任何其它擁有自己唯一網路地址的設備都是節點。它們是怎樣獲得網路地址的呢﹖從網路卡那裡獲得。每一張網路卡在出廠的時候都會被廠家分配一個地址﹐使用者是不可能變更此地址的。
這樣的地址安排就如我們日常的家庭地址一樣﹐是用來區分各自的身份的。您的網路必須有能力去區別這一個地址有別於其它的地址。在網路裡面﹐有很多資料封包會由一個節點傳送到另一個節點﹐同時要確定封包會被正確的傳達目的地﹐而這個目的地就必須依靠這個網路卡地址來認定了。
伺服器(Server)
從技術角度而言﹐伺服器就是在網路中具備某些特定功能的集散地。伺服器也有分好些類型﹐比如﹐一個印表伺服器就是一台讓一群使用者儲列和處理列印工作的機器﹔一台傳真伺服器可以接受傳真請求、儲列和處理傳真等工作。建立一個印表伺服器﹐您可能需要騰空一台機器只用來專門處理列印服務﹐或是需要一些本身帶有網路卡的印表機。
最常見的伺服器莫過于檔案伺服器了。一個檔案伺服器就是一台儲存和管理檔案、應用程式和數據、以及對其負責保安服務的電腦。它可以對您的數據提供集中控制﹐和建立一個共同的地方為您的檔案進行集中備份。
封包(Packet)
封包是能夠在網路上面進行傳輸的最小資訊單位。一個封包包含有發送端節點地址、接收端節點地址、和這兩個節點之間需要傳送的數據。
網路形態(Topology)
這一解釋牽涉到網路上的各節點之物理和邏輯關係。從表面上看﹐就是這網路的“長像”。可以從兩個角度(或曰形態)看待您的網路﹕物理上的和邏輯上的。
網路物理形態
這種形態就是講述一個網路上面的各個節點之間在物理上面的佈置﹐和它們在總體配置上看去的樣子。如果您在紙上將各台電腦的位置標示出來﹐同時將連接它們的網線(Cable)也畫出來﹐您就會比較清楚的看到其物理形態了。比如﹕總線狀(bus)、環狀(ring)、或是星狀(star)。
網路邏輯形態
這種形態講述的是信息如何在網路中行走。我們不妨舉個例子來模擬一下﹐好讓我們更好理解邏輯形態﹕
假如您有一份長達400頁的文件由台南送到台北﹐而且必須最遲明天送到﹐那麼您很可能會使用網中人快遞服務(假設已經成立 ^_^)了。不過要處理這個傳送﹐您還必需要使用網中人快遞的信封和地址標籤。同時﹐您必需提供發信人和接收人的地址﹐當然少不了您那400頁文件啦。
在您的網路上﹐從一台電腦傳送數據到另一台電腦﹐也需要相同的資料﹕它需要您的發送端地址、接收端地址和數據數項資料。正如剛剛所述﹐這些資料都包含在封包裡面了。邏輯形態就接管著如何將這封包在網路中傳輸了。
- 首先﹐邏輯形態會判定這個封包的格式﹐一如您必須按網中人快遞的地址標籤格式來填寫地址一樣。您必須使用網路能夠明白的地址格式。
- 邏輯形態會判定有多少數據需要攜帶﹐一如網中人快遞也有規定一個標準信封只能最多裝30頁文件一樣。
- 然後邏輯形態會判定使用什麼方法來追蹤在網路傳輸的封包。有些邏輯形態則不會追蹤封包而假設一切無誤﹐有些則會對路徑中的每一個步驟進行追蹤。
如果您已經聽過乙太網(Ethernet)或者令牌環(Token Ring)﹐其實您已經接觸過邏輯形態了。每一種邏輯形態常常會和網路物理形態聯係起來﹐但物理形態卻不一定就是邏輯形態。如下圖﹐在物理上面我們可以說它是一個 Star 網路形態﹐然而在邏輯上﹐它卻很可能是 Token Ring 網路形態。
在後面﹐我們將會對不同的邏輯形態進行講述﹐包括它們各自的優缺點。這是一個非常重要的題目﹐因為不同類型的網路形態會影響到您需要在您的網路安裝什麼類型的網路卡。在一個複雜的網路裡面﹐可以由好幾種不同類型的網路形態共同組成。
連線材料
網路卡
如果您還記得在電腦基礎裡面的知識﹐在設定任何插卡的時候﹐我們都需要知道它的IO和IRQ(有些還需要DMA)等設定。因為網路卡可以說是我們進入網路世界之門﹐如果網路卡不工作﹐那麼您也就被屏之門外了。所以﹐首先要選擇和安裝好網路卡是非常重要的一關。
現在的網路卡多會帶有一張磁片﹐除了裡面提供了給不同作業系統使用的Driver之外﹐應該還有一個設定程式的。它可以用來設定網卡的IO、IRQ、DMA、或是使用PnP﹔也可以設定連線類型﹐比如﹕BNC、RJ45﹐或AUTO﹔同時還可以選擇使用Boot ROM與否。有些還帶有測試程式來確定網卡是否正常工作。
正如前面所述﹐不同的網路形態會決定不同的網路卡﹐但不管使用何種類型的網路卡﹐關鍵的還是它是工作的﹐而且還要考慮到它的穩定性和速度。現在市面上通常見到的是Ethernet 10/100網路卡﹐那個10/100就是速度﹐也可以說是傳輸量﹕100Megabits/每秒﹐注意﹕千萬不要將Mbps和MBps搞混了﹐因為前者是每秒Millions of bits﹐而後者是每秒Millions of bytes (1byte=8bits﹐相差8倍之多哦~~ Byte是電腦的運算單位﹐而bit則是網路的傳輸單位﹐要注意分清楚)。那個10/100的意思就是支持10Mbps和100Mbps兩種速度的網卡。以前10/100Mbps網卡的價錢比單純10Mbps的網卡貴幾乎十倍價錢﹐不過現在它們的價錢也相差不多了﹐(當然﹐名牌子的10/100網卡還依然很貴)。
要連上網路﹐首先要設定好網路卡。
網線
雖然網路卡設定好了﹐離開網線什麼地方也接不上去。
選擇一個網線系統也要考慮到很多因素﹐比如﹐您的網路架構---您需要什麼樣的物理形態和邏輯形態﹖什麼樣的網線既不會超支預算又可以符合傳輸要求(速度和距離)﹖您需要什麼樣的接頭來連接它們﹖等等。同時﹐不同類型的數據要求(如純文字、大量的圖片、影象、和語音等)﹐以及電腦之間的距離長短﹐也會影響到網線的取材。
網線也有分好幾種類型﹕
- 雙絞線(Twisted Pair Cable)
- 通常由兩對或四對相互纏繞的銅線組成﹐為什麼要把線纏繞著呢﹖因為任何電流流經導體都會產生電波干擾(RFI﹐ Radio Frequency Interference)﹐但是如果兩條線相互的旋轉纏繞著的話﹐彼此產生的干擾就會相互抵消掉。雙絞線還分為屏蔽雙絞線(STP﹐Shielded Twisted Pair) 和非屏蔽雙絞線(UTP﹐Unshielded Twisted Pair)。其唯一分別是STP有一個導電金屬層將所有雙絞線保護起來﹐提供更透徹的抗干擾能力。當然﹐STP比UTP要貴多了﹐但在一些UTP實在應付不來的場合裡﹐還是物有所值的。
Elecrtonics Industry Association (EIA), Telecommunications Industry Association (TIA), 和 National Electrical manufacturers Association (NEMA) 等機構對雙絞線建立了5個標準等級。按照等級高低﹐級數越高﹐其每英尺的絞接數目也越多﹐其抗干擾能力也越強。這5個種類分列如下﹕
- CATEGORY1﹐這是一種從1983年就被廣泛使用的老式電話線﹐它不適合於任何高速數據傳輸﹐只不過其得名於將線絞接起來而已。
- CATEGORY2﹐此種線可以傳輸高達4Mbps的數據﹐其擁有兩個特征﹕1) 在一英尺直線距離最少有3個絞接。 2) 沒有任何兩對線是相同的絞接色樣的﹐這可以降低線線之間的交叉對講(crosstalk)。比如其中一對線在每英尺之內使用了3個絞接﹐而另外一對則使用31/8個絞接。(注意﹕其後的3個等級也具備這兩個特性﹐只是要求更嚴格而已)
- CATEGORY3﹐這是您能夠由來做LAN網線的最低等級了﹐它可以最高傳輸10Mbps的數據﹐同時構造上面也要比CAT1和CAT2要好。
- CATEGORY4﹐可以用來給16Mbps的Token Ring網路使用的最低等級﹐實際上﹐對LAN而言﹐最好將此等級作為最低等級了﹐而非CAT3。
- CATEGORY5﹐無論在速度上和抗干擾能力上﹐這個才是您真正需要的等級﹐其最高傳輸速度可以達到100Mbps。
CAT5等級網線被指定可以使用在FDDI (Fiber Distributed Data Interface)網路上面﹐定義了如何將銅線和光纖在同一網路環境的整合﹐它被設計成為配合光纖導線而提供更好的多媒體(語音和影像)過載網路方案。
- 同軸網線(Coaxial Cable)
- 也稱為BNC網線(得名於Bayonet-Naur Connector)。其構造是﹕中央是一條被隔離層保護著的銅導芯﹐其外隔著一層絕緣體還有一層導體金屬網﹐在最外層則是保護外皮。它有更好的屏蔽能力﹐如果您需要比雙絞線更高的抗干擾要求﹐但又用不起光纖的話﹐Coaxial可以說是您的選擇。不過傳輸上面﹐Coaxial只能最高有10Mbps。
Coaxial Cable也分為4類﹕
- Ethernet, 厚0.4英寸﹐也常被稱為10Base5﹐其標準由 Institue for Elecrical & Electronic Engineers (IEEE)制定。
- RG-58A/U﹐厚0.18英寸﹐也常被稱為10Base2。
- RG-59/U﹐厚0.25英寸﹐用在Cable TV和ARCnet(一種古老網路形態)上面。
- RG-62/U﹐厚0.25英寸﹐用在ARCnet和IBM 終端上面。
要注意的是﹐雖然後面三種網線差不多大小﹐但卻是不可以調換使用的。而在這四種類型之中﹐只有兩種是適合於LAN使用的﹕10Base5和10Base2。我們使用這些名稱是有其意思的﹐其中的信息可以分拆成以下部份﹕速度、頻寬、和信號在網線中行走的最長距離。
拿10Base5為例﹕首先是速度﹐10代表10Mbps﹐這個前面解釋過了﹔最後是信號距離﹐5代表500米(大約1640英尺)﹐然後是中間部份了﹐頻寬﹕
何為頻寬呢﹖沒得解釋﹐就是頻寬﹗而且越多越好。如果要形象地理解頻寬﹐我們可以拿一條高速公路來做例子。如果此公路是四線行車的﹐那麼汽車就好比是數據﹐這樣就有四條傳輸數據的通道了。如果在交通在非繁忙時候﹐每輛車以100KMph行走輕鬆有餘﹐但在高峰期呢﹖就跟台灣的高速公路差不多了。這情形跟網路的交通是一樣的﹐解決方法有兩個﹕一是在高峰期減少封包的傳輸﹐例如利用工作排程將一些比較繁重的網路傳送工作安排到晚上或非繁忙時間﹔另一種方法就是增加頻寬了﹐跟我們的MODEM從33.6Kbps換到56Kbps一樣。
而頻寬的分割方式也有兩種﹕一種叫Baseband﹐另一種叫Broadband。再以高速公路為例﹕前者將整條公路並成一條線﹐這樣可以容許比較大載量的卡車通過﹔後者則將公路分成數條行車線﹐可以允許數量小車一次通過。如果貨物來到公路一端﹐使用Baseband﹐我們就用大容量的卡車﹐一次出發一輛的運送﹐不管誰的貨物﹐也不管貨物多大﹐都要排隊輪候﹔如果利用Broadband﹐我們就用小點的車﹐分配給各人一條車道(但卻不可以轉換車道哦)﹐這樣排隊的人就比較少了。這兩種方式各有其優缺點﹕如果貨物都比較大﹐而且目的地都相同的話﹐Baseband比較有效﹔如果貨物都比較散﹐而且也送到不同的地方去﹐則Broadband有效。但是如果貨物有時候多﹐有時候少﹔有些人多貨﹐有些人少貨呢﹖就變得很複雜了﹕如果用Basedband﹐那些多貨的人﹐也要等前面那些少貨的先發送走了才輪到他﹐但少貨的人卻可以早點完成運輸﹔如果使用Broadband﹐多貨的人就不用等少貨的人﹐但少貨的人也比較晚完成運輸﹐而且要是多貨的人不多﹐那麼空出來的車道也就浪費掉了。
凡 此種種﹐都要視乎情況而定﹐但車道一旦劃好了﹐要改就不可能了。
好了﹐那麼我們也應該知道10Base5裡面的Base是怎麼樣的頻寬了吧。不過在講到頻寬的時候﹐我們還要了解一個概念﹐就是流量﹕即是資料每秒所流過的數量(以頻寬乘以時間為極限)。頻寬的流量都是有極限的﹐我們可以稱這個極限為100%飽和量。因為我們在網路中使用bit來做單位﹐而電腦運算則以byte單位(1byte=8bits)﹐所以在數值上﹐流量只是頻寬的1/8。例如您使用56KMODEM來下載資料﹐如果您發現程式顯示的是4Kps的話﹐那麼您當時的流量就是50%了。
這裡我還要提醒一下10Base2的2並不是真正的200米﹐準確來說應該是185米﹐200只是取比較好聽的近似值罷了。而10BaseT的T則代表Twisted Pair。
- 光纖網線(Fiber Optic Cable)
- 到目前為止﹐我們所介紹的都是以電子方式傳遞的介質﹐而光纖網線則是以光為傳遞方式的介質﹐其完全是不受電波干擾的。在這種網線上﹐光只在塑料或玻璃纖維裡面傳導﹐其外面則由一層薄薄的被稱為cladding的外衣保護著﹐然後整根或多根導線則隔著一層絕緣材料被包裹在塑膠外套裡面。
使用光纖的最大好處是其傳輸量大﹕可達155Mbps﹔傳輸距離遠﹕信號有時候可以傳送好公里而不會削弱。所以光纖網線一般都會用來做高速網路的龍骨(Backbone)﹐也通常是用來做長途電話通訊和FDDI的導線。光纖比起Coaxial和UTP來說﹐也更難遭到竊聽﹐所以也多用來傳送機密通訊。
光纖最大的壞處是價錢高﹐而且架設費用也很高。不過近年來隨著光纖的普及﹐其造價也急跌許多﹐相信不久的將來﹐使用光纖在辦公室架網恐怕也是很平常的事情。
- 無線網路
- 除了以上說的有形網線之外。在某些特殊的環境中﹐我們還可以使用無線技術將電腦連接起來。因為在一個網路工程當中﹐線路鋪設所佔的成本是頗高的。如果工程結構比較複雜﹐或因制度而令到網線鋪設費用過高的話﹐使用無線通訊未嘗不是好的提案。當然﹐無線網路對辦公室的物理環境影響最少﹐節點的可移性也是非常吸引的。
在無線網路裡面﹐每台電腦都必須要安裝特殊的網卡和天線來傳送和接收數據。但無線網路的傳輸能力暫時還差強人意﹐大概只有242Kbps﹐應付一般的文字檔案或許還可以﹐要是傳送大量的圖片或音像則恐力有不逮了。不過現在新的IEEE802.11 PCMCIA標準已經可以達到1Mbps或2Mbps了。
網線接頭
- BNC
- 假如您要使用Coaxial Cable的話﹐那您很可能需要BNC接頭了﹐其形為圓狀﹐後接Coaxial網線﹐前面中間是根銅針﹐外面是個可以旋轉的金屬環。在BNC連線上面﹐您必須在網路的兩端使用50歐姆的終端電阻﹐而且在網線和網卡之間必須使用T型接頭。連接BNC和T型接頭也很容易﹐把接頭對准卡口套進去然後順時針擰上就可以了。您的手指應該會感覺到是否擰好了﹐如果不確定重複試試就是了﹐這點很重要﹐要是因為其中一個接頭沒寧好﹐可能會導致整個BNC連線失敗哦。
不過BNC連線在使用上面﹐現被發現越來越多的弊端﹐比如﹕接頭不牢靠、終端不穩定、接頭與網線連接不好、網線容易斷、等等。其中最不好的是﹕只有其中任何一部份出問題﹐都可能會影響整個網路﹐而且除錯也比較困難。(不同於下面介紹的RJ45連線﹐RJ45如果有問題只會影響有問題的機器而不會是整個網路)。另外﹐要是自己動手做BNC網線的時候﹐要注意網線最短不能少於1米。
- RJ-45
- RJ-45接頭通常是給雙絞線使用的。其形狀很似我們日常使用的電話接頭﹐不過其體積比較大些而已。仔細數數接頭﹐上面應該有8根銅線﹔其另一邊是個可壓式的塑料卡荀﹐當您把它插進網卡或牆跟的插座﹐這個卡荀就會把接頭鎖好在插座裡面﹐要取出來把卡口按下則可。
使用RJ-45的連線﹐都必須使用集線器(HUB)﹐所有的電腦都必須先接到HUB上面才可以彼此溝通。如果只是兩台電腦之間的連線﹐您也可以不要HUB﹐但您得為您的RJ-45接頭動動手術﹕將一端的第1線接到另一端的第3線、一端的第2線接到另一端的第6線(方向是網線在接頭左邊﹐銅線向上面﹐從上到下數)。
- 其它接頭
- 除了上面兩種我們比較常見之外﹐還有諸如 D-Shell Connector、Token Ring Connector、和 Fiber Optic Connector等接頭﹐不過這裡也就不一一說明了。
我們可以在下面的列表中看看各網線的特征﹕
網線類型
| 傳輸速度
| 傳輸距離
| 接頭類型
|
BNC RG58
| 10 Mbps
| 185 m
| BNC
|
CAT3 UTP
| 10 Mbps
| 91 m
| RJ-45 / Token Ring
|
CAT4 UTP
| 16 Mbps
| 91 m
| RJ-45 / Token Ring
|
CAT5 UTP
| 100 Mbps
| 91 m
| RJ-45 / Token Ring
|
CAT3 STP
| 10 Mbps
| 91 m
| RJ-45 / Token Ring
|
CAT4 STP
| 16 Mbps
| 91 m
| RJ-45 / Token Ring
|
CAT5 STP
| 100 Mbps
| 91 m
| RJ-45 / Token Ring
|
Fiber Optic
| 155 Mbps
| 4827 m
| ST
|
網路架構
在這裡我們將要討論一些網路物理和邏輯形態﹐以及它們各自的特征﹐同時也會開始介紹IEEE的802.x標準。
網線的困繞
要組網﹐當然先要將個機器連接起來啦。假如您喜歡的話﹐我們可以將每兩個網路節點都直接用網線連接起來﹐如果材料夠﹐地方又允許的話﹐這完全是有可能的。那麼按此接法﹐我們需要的網線數量 = 節點數目 x ( 節點數目 - 1 ) / 2 ﹐也可以從下面的列表中直接看出來﹕
節點數目
| 所需網線數量
|
5 | 10
|
8 | 28
|
25 | 300
|
哇﹗如果有一百台電腦起不是整個辦公室都佈滿網線了﹖﹗而且網線也需要錢買的啊﹐所以實際上﹐是沒有人會採用這樣的連線方法的。
物理形態
- 星狀形態(Star Topology)
- 一個星狀的網路形態裡面﹐在中央是一個集線器(hub)﹐或MAU (Multistation Acces Unit)﹐所有的工作站、伺服器和印表機都接到hub上面﹐看上去就象一顆星星向四週放射星光一樣﹐因而得名。hub通常有兩種﹕惰性(passive) hub和活性(active) hub。前者僅僅是將各個接口(port)連接起來﹐也就是將上面的那個接線方法從一個辦公室縮小為一個盒子罷了﹐再無其它功能了﹔而後者除了會起到增益器(Repeater)的作用之外(其實這是活性hub的最基本功能了)﹐還可能肩負網橋(Bridge)和路由器(Router)的功能(這兩種功能稍後會解析)。
星狀的形態裡面﹐hub是不可缺少的部件﹐如果一個hub的接口都接滿了﹐我們還可以引一條線出去接另外一個hub﹐這樣就有另外一個星星了﹐但最多可以串接4個hub (也就是共5個)。
星狀形態的優點是﹕
使用星裝形態﹐伺服器無需知道信息請求是從哪個節點來的﹐也不必擔心回應給誰﹐只需知道哪個port就可以了﹐然後hub會決定如何傳遞給真正的機器。這也給除錯帶來方便﹐如果有哪台機器不能連上網路﹐我們只需要查看這台機器和hub之間的連接就是了。如果您的機器都四散東西﹐甚至樓上樓下的﹐使用星裝形態的話﹐你就不必擔心如何將它們整體的連接起來﹐只需關心各台機器怎樣集中到hub而已。
- 總線形態(Bus Topology)
- 在bus形態裡面也有兩個類型﹕一是Thick Ethernet﹐另一是Thin Ethernet。前者使用一條厚厚的中央網線(10base5)﹐兩頭帶有終端電阻﹐然後各接點再通過一條較幼的網線連到這條厚線上面﹔而後者則只使用10base2 網線將所有的節點連接起來﹐網線和節點之間使用T型接口連接﹐而在兩端的接點則各連接一個終端電阻。
Thick Ethernet
Thin Ethernet
Bus形態的最大問題是出現問題的時候的問題(﹖﹖﹖廢話啦~~)﹐網路這時候需要整個停下來檢查﹐如果是因為終端電阻沒接好那還好辦﹐換一個就可以。但要是其中一個節點有問題的話﹐你就得慢慢找出來了。在star形態裡面﹐要是該節點有問題﹐受影響的僅是其接點罷了。但在bus上面則不同﹐如果一個節點是關閉的話﹐封包會略過它而直接通過T型接頭傳給下一個開著的節點﹐然而﹐要是該有問題的接點開著的話﹐也會接收和發送封包﹐但卻會令到網路越來越慢甚至停頓下來。
順便一提﹐我們在給10Base2網路除錯的時候﹐通常先從中間斷起﹐就是將其中一個終端電阻接到中間的節點去﹐然後檢查各自分開的部份﹐找有問題那邊﹐再繼續斷開中間﹐如此一直到找到問題的節點為止。
Bus形態唯一好處是便宜﹕無需hub而且省cable、省錢。如果在家裡玩玩或接點不多﹐Bus形態也是值得考慮的。
- 環狀形態(Ring Topology)
- 一般來說﹐這樣的形態還是比較少見的﹐因為其佈線是一個非常頭痛的問題﹐您大概可以從下圖窺見一斑﹕
Ring形態可以說補足了bus的短處﹐且無需使用終端電阻。因為其使用的是雙網線連接﹐當然其佈置數量也是雙倍增加了。但在一般的辦公室環境裡面甚少會見到物理Ring形態的網路﹐其通常是用來做為連接數建築物之間的高速龍骨幹網﹐如FDDI等。
邏輯形態
雖然我也知道我很囉嗦﹐但我還是要提醒大家﹐網路形態和邏輯形態是兩碼子事情﹐在學習邏輯形態的時候我建議您先將物理形態忘記掉。
- Bus
- 我想Ethernet恐怕是最佳的邏輯bus形態例子了﹐它也是現在最普遍的LAN類型。
這個邏輯bus形態是如何工作的呢﹖很簡單﹐就是每次只能有一個節點在網路上傳遞數據給其它節點﹐其形式是通過對整個網路進行廣播(broadcast)。然後其它接點收聽到廣播之後﹐就看看數據是否傳個自己的﹐如果是﹐則接收下來﹔如果不是﹐則略過。每一節點都有一個自己用的48bit的地址(也可以稱為Node ID﹐也就是在前面說的網卡地址了)﹐而每一個在網路中傳輸的數據都是直接送給這個地址的。
當任何一個節點進行廣播的時候﹐所有的其它節點都會收聽得到。其情形就像我們上課一樣﹐老師說﹕“第幾排第幾號同學出來拿作業﹗”雖然全班同學都聽得到﹐但卻只有一位同學可以拿到。Bus形態也和這種形式很類似﹐當然具有更嚴謹的一套法則啦。在bus上面的數據都是以封包(packet)形式傳遞的﹐封包送出來之後﹐會同時向bus兩端廣播﹐當目的地接收到給它的封包﹐也不是據為己有的﹐而是複製一份給自己﹐而原來的封包則還是會繼續被送給下一個節點﹐直到封包抵達終端電阻才會被銷毀。
任何類型的數據要在這一網路上面傳遞的話﹐都必須嚴格的遵循既定的封包格式﹕Data Link Layer Frame 格式﹐是給網路用來安排數據的。Ethernet的Data Link Layer Frame看起來如圖﹕
序言 (Preamble)
| 目的地 地址 (Destination)
| 來源地址 (Source)
| 信息類型 (Message Type)
| 數據 (Data)
| 封包監測資料 (Frame check sequence)
|
8 bytes
| 6 bytes
| 6 bytes
| 2 bytes
| 46-1500 bytes
| 4 bytes
|
每一個packet都不可以超過1518bytes﹐這樣就可以確保任何一個工作站都不會佔用網路太久。在工作站對網路廣播之前﹐都會先傾聽一下有沒其它人在使用網路﹐如果聽起來很安靜﹐則它會發送廣播。但要是網路上仍然嘈嘈的呢﹖(這個情形就是bus形態最擔心的)﹐這時候工作站就需等待了。 假如節點A和節點B相隔得太遠的話﹐當他們傾聽的時候可能都還沒聽得到對方有話要說﹐就都同時把封包出去﹐這就是所謂的碰撞(collision)了。如果當一個碰撞發生了﹐整條網線都會充滿了頻率震蕩﹐如果第一個節點監測到有這樣的頻率震蕩﹐它就會發出一個更高頻的信號去告訴別的節點碰撞已經發生﹐這樣全部節點都不會再發送封包了。這時候﹐每一個節點都會隨機的等待一段時間再重新進行廣播﹐總共可以進行16次嘗試大家才會最終放棄。不過其情形也不會好到哪裡﹐因為在大家等待之後﹐彼此都有封包要發送﹐誰都想先發送自己的封包﹐如果節點越多﹐距離越長﹐發生碰撞的機會也就越高。
情形就象上課時您要發言﹐得先看看有沒有其它同學在發言﹐如果已經有人在說話了﹐那你就先等他/她講完再舉手。要是兩個人都同時舉手﹐老師就會宣佈重新再舉手﹐這時候大家可以在一秒鐘之內再舉手﹔要是還是一樣﹐那麼可以再於兩秒之內任何時段舉手﹔再來就4秒、8秒、16秒....的延續下去﹐要試過16次都還一樣﹐沒辦法了﹐大家都不要說好了。
在網路上﹐我們稱這樣的方法為 CSMA/CD (Carrier-Sensing Multiple Access with Collision Dectection)。要注意的是﹐所有這些處理過程都必須在Ethernet 網卡上面進行﹐也就是說﹐如果您要選用Ethernet形態﹐那麼你就必須全部使用Ethernet網卡。
Ethernet可以在bus, star 等物理形態上面使用。10baseT就是使用star的物理形態﹐但邏輯上卻是bus形態來的﹐同樣也是Ethernet﹐使用的是IEEE802.3標準。
- Token Ring
- Token Ring網路在物理上也和100BaseT Ethernet一樣使用star形態﹐只不過代替hub的是MAU而已﹐一個MAU可以連接八台電腦﹐然後還可以連接到另一個MUA。一塊Token Ring網卡上面﹐其中有端會帶有一個D-shell類型的接頭﹐而另一端則有一個odd-looking IBM接頭。在Token Ring上面無需使用終端電阻﹐網線的一頭接到網卡﹐另一頭接在MUA就可以了。
我們還記得在Ethernet系統上面使用廣播形式傳送封包﹐然而在Token Ring裡面﹐每一個節點都只會得到其前面的一個節點送來的信息。Token Ring的靈魂所在是一個叫做 Token Packet的封包。為了避免碰撞發生﹐Token Ring可以確保每次只能有一個工作站可以發送資料﹐它們使用token packet(或曰token stick)來達到這一目的。只有獲得這個Token packet的接點才可以發送資料。
舉個例子﹐同學們在班上為了避免同時有兩個人發言﹐於是就使用一個令牌﹐由一個同學傳給下一個同學﹐然後最後的同學傳回給最前面的同學。拿到令牌的同學﹐看看如果令牌是空的﹐就把說話寫在令牌上面(寫滿為止﹐如果不夠用﹐等下次再寫)﹐然後註明來源地址和目的地址﹐然後將令牌傳給下一位同學。接到令牌的同學﹐會檢查目的地址﹐如果不是給自己的﹐就傳給下一位﹐如果地址是給自己的﹐則抄一份保存﹐原來的令牌照樣傳遞下去。因為令牌是繞著圓圈的傳遞﹐所以始終會到自己手上的。當那位原先發送信息的同學收回令牌﹐看到來源地址是自己的﹐就把令牌擦乾淨﹐然後把令牌交給下一位同學﹐就算他還有話要說﹐也要這樣做。如果下一位同學沒有東西要寫﹐就簡單的把令牌交給下再一位則可﹔如果有東西要寫﹐就重複剛才的規則。
Token Ring上使用的是類似的方法﹐只是略有不同而已﹕當一個節點獲得Token Packet並完成了信息準備之後﹐它會傳給下一個節點﹐如果沒有人接下來﹐就再傳一次﹐如果第二次都沒有人要﹐則給整個網路發送一個solicit successor fram的常規請求﹐詢問“有誰想要這一個Token啊﹖”﹐如果有節點回應這個請求﹐它就把Token直接傳到該地址。
不過同是使用Ring形態的FDDI則略有不同﹐也拿剛才的例子說明﹕凡是拿到令牌的同學﹐先把要說的東西寫在紙條上面﹐也註明是誰寫給誰的﹐然後把紙條夾在令牌上傳給下一位﹔要是沒有話要說就把令牌直接傳給下一位即可。等收到令牌的時候﹐就看看信息是否給自己的﹐如果是就抄一份保存下來﹐如果同時還有信息要送呢﹐再按格式填寫紙條﹐也夾在令牌上面傳給下一位同學。等令牌在繞回來的時候﹐檢查上面的那些紙條﹐如果發現發信人是自己的話﹐就把紙條拿下來﹐然後撕掉就行了。
在網路上﹐我們稱這種方法做﹕Token Passing。
- IEEE802.3 vs. IEEE802.5
- 我們稱Ethernet的傳遞形式為廣播(broadcast)形式﹐Token Ring使用的則是指定(dedicated)形式﹔broadcast屬于probabilistic形式的協定﹐也就是不能夠保證工作站可以獲得接通網線的能力。Token Ring則屬于deterministic形式的協定﹐也就是使用一套規則來保證工作站有接通網線的能力。在IEEE定標準面﹐Ethernet屬于802.3標準﹐而Token Ring則屬于802.5標準:
特性類項
| IEEE 802.3
| IEEE 802.5
|
邏輯形態
| Bus
| Single Ring
|
物理形態
| Star, Bus
| Star
|
介質
| Optic fiber, Twisted Pair, Coaxial Cable
| Twisted Pair
|
頻寬
| 10 Mbps
| 4 or 16 Mbps
|
連接形式
| CSMA/CD
| Token Passing
|
過載信息
| Single
| 1(4 Mbps)或 Multiple(16 Mbps)
|
最大封包體積
| 1518 bytes
| 4500 (4 Mbps) 18000 (16 Mbps)
|
節點數目
| 1024
| 260
|
節點間隔
| 2.8m (minimum)
| 100m (maximum)
|
最長網路距離
| 2.8km
| 不等
|
另外還要一提的是﹐有個IEEE802.4標準﹐在物理上使用bus形態的﹐但卻以Token Passing的形式來傳遞資料。和Token Ring一樣﹐只有得到Token的節點才可以發送資料﹐但一旦其獲得了接收節點的確認回應﹐就得把Token交給下一節點了。在網路裡必須有一套機制來追蹤哪一個節點會是下一個得到Token的節點。在網路上面會有一個master的角色﹐如果token丟失或由某些原因不能傳送﹐master會先對全網路發出請求﹐然後宣佈取消舊的token而重新發放一個﹐它比任何其它節點要有最優先權獲得Token。
不過比起Token Ring的star形態來說﹐802.4畢竟還是有其不足之處的。比如在802.5裡面使用的mart hub﹐有能力偵測到工作不良的節點﹐從而可以把Token繞過它來傳遞﹐同時會指示出哪一個節點有問題﹐而802.4則做不到這點。
五四三原則
我們知道網線的傳輸距離都是有限的﹐如果節點之間的距離太遠﹐我們就需要在中間使用增益器(Repeater)來將信號放大後繼續傳輸。如果使用802.3協定的時候﹐有一個原則我們是必需遵守的﹕五四三原則。意思就是網路上最多只能有﹕
- 5個網段(segment)。所謂segment就在物理連接上最接近的一組電腦﹐在一個BNC網段裡面最多只能接30台電腦﹐且網線總長不能超過185m。
- 4個增益器。也就是將信號放大的裝置。
- 3個電腦群體(population)。這個不好理解﹐也就是說前面所說的5個segment之中﹐只能有3個可以裝電腦﹐其它兩個不行。
這個原則看上去就好像這樣﹕
網路管理模式
在前面我們已經講過網路的物理形態和邏輯形態了﹐雖然很不好理解和容易混亂﹐但對於學習網路來說卻是不可少的一課。採用什麼樣的網路管理模式﹐可以不受網路形態的限制﹐但離開了網路形態則什麼模式也是徒然的。在這一章裡﹐我們主要講述 Client / Server 和 Peer / Peer 的網路管理模式﹐同時也會對各自的優缺點進行評估。
Client / Server 網路
類似于歷史悠久的Mainframe/Terminal網路﹐Client/Server網路也有一個中央電腦來看管整個網路和處理client的請求﹐但主要分別是﹐client電腦都有能力處理自己的電腦運算﹐而dumb terminal則只俱有輸出和輸入功能而已。一般在比較大型的辦公室裡面﹐使用的都是Client/Server網路。
相對於Peer/Peer網路﹐Client/Server網路可以提供更好的集中管理和控制﹐同時在擴展能力上也比較強﹐(雖然P/P網路也容易擴展﹐但如果超過50台電腦就不那麼好玩了)。或許C/S網路最討好的是能夠提供嚴謹和更充份的網路安全服務﹐而避免了沒有經過批准的連接。大多數C/S網路使用者必須先輸入使用者名稱(ID)和密碼(password)才能連接網路﹐ID和password永遠是一對的。當使用者繼續嘗試使用到網路服務(如檔案﹐程式)的時候﹐不同的ID所擁有的權限是不同的﹐比如有些只能讀取﹐有些則可以修改﹐有些甚至可以刪除和建立。再到程式的使用﹐也可以在設定上是否需要秘碼﹐如果有設定需要﹐可以使用相同的網路密碼﹐也可以使用不同的ID和密碼。離開了ID和密碼﹐您將使用不到任何的網路資源。雖然在P/P網路上面也有密碼﹐但其設定和管理上面則比C/S鬆散得多。
下面讓我們看看各種不同的Server(伺服器):
- 磁碟伺服器(Disk Server)
- 也就是在網路中一個提供中央儲存檔案和數據的地方﹐當其它client連上來之後﹐就如使用本地的硬碟一般。但當client讀寫資料寫的時候卻需要點技術了。
我們知道當電腦讀取本機硬碟的時候﹐會先到FAT (File Allocation Table)找到檔案的位置﹐然後硬碟將移動磁鐵去讀取該檔案。但在Disk Server上面的FAT可跟本機的FAT不一樣的﹐那麼當一個client向server要求讀取檔案的時候﹐server會將自己的FAT複製一份給client﹐然後cliant先將這個FAT複製件存儲在RAM裡面﹐而後每次要讀取檔案就先從這個複製件中尋找。但問題又來了﹐因為disk server是在網路中提供好幾個使用者的﹐要是您剛剛獲取了一份FAT複製件﹐然後別的使用者有在上面增加了檔案﹐那樣您獲得的FAT就過時了﹐而您又不知道其改變了﹐當您要回存資料的時候﹐因為FAT的改變﹐很可能會造成資料的流失。
為了解決這一問題﹐通常disk server會將硬碟分割成好幾個標籤(volume)﹐然後給不同的使用者以不同的volume﹐而另外設立一個唯讀的public空間給全部使用者共用。
- 檔案伺服器(File Server)
- 您已經了解到使用Disk Server存在的問題和複雜性了﹐在今天﹐file server已經變的最普遍不過了。一個file server會有自己的作業系統﹐就有如一個外殼般包圍著磁碟操作系統﹐然後作業系統會過濾掉從網路傳來的命令﹐然後翻譯成作業系統能夠懂得命令。
File server 和 disk server都很相似﹕都是提供一個中央的儲存空間給網路使用﹐它們最大的分別是file server會維護和使用著自己的FAT﹐而disk server只提供FAT的複製本。當client 要求檔案的時候﹐file server 會從硬碟中找到這個檔案﹐然後寄一份複製件給client使用。
其情形就像這樣﹕client 問 : “對不起﹐我要一份檔案。”disk server會回答﹕“別煩我﹐自己去FAT找啦﹗”﹔然而file server則會這樣回答﹕“沒問題﹐我找給你﹐請稍等。”
當您聽到有關於檔案伺服器的討論的時候﹐或許您還聽過指定檔案伺服器(Dedicated file server)和非指定檔案伺服器(non-dedicated file server)。它們又是什麼東東呢﹖前者是一個專門負責檔案管理的工作﹐除此之外別的什麼都不管﹐其終生目標就是提供檔案服務﹔而後者通常是一台工作站﹐只不過分擔著檔案服務功能﹐其記憶體也分一半給工作站事務﹐另一半則提供檔案服務。既然如此﹐為什麼不乾脆使用指定伺服器呢﹖這樣又快又安全~~~ 。哎呀~﹐以前的PC可不同現在這樣便宜哦﹐如果那時候您是老闆的是﹐就不是這麼想了。
- 程式伺服器(Application Server)
- 從字面上理解﹐當然是存放程式的伺服器啦。如果您有在自己電腦安裝程式的經驗就知道﹐程式必須要先等作業系統安裝好才能安裝﹐同時也得為它們安排空間存放。但如果有上百台電腦要安裝的話﹐不僅要重複著大量的工作﹐而也浪費很多空間(整體而言)。如果使用application server﹐我們只需在上面安裝一次主程式﹐然後在各client上面安裝體積少很多的client程式就可以了。有些DOS的程式﹐甚至連client程式都無需安裝呢﹐直接使用就可以了。無論如何﹐您得先確定您所使用的程式有網路功能﹐要不然您還是使用不到application server的好處。
Peer / Peer 網路
Peer/Peer 網路帶出的是和 Client/Server 完全不同的網路概念。與其在網路上建立中央控制的機器﹐取而代之的是﹐每台電腦都保存著自己的程式在本地硬碟上﹐它們也各自有著自己的週邊設備。
通過共享﹐每一台電腦都可以是工作站﹐同時也可以是一個伺服器﹐它們之間的地位都是平等的。在使用中﹐將它們集中在同一工作組就可以了﹐您可以為每一個共享的服務設立密碼保護﹐只有知道密碼才可以使用。
- 安裝Peer/Peer網路
-
我們今天使用的Windows95或98就已經具備了Peer/Peer網路的功能了﹕
- 您只要為每台電腦安裝好網路卡﹐並且網線也連接好(BNC的話﹐別忘了終端電阻﹔hub的話別忘了接通電源)。
- 然後在控制板裡面﹐找到網路這個圖標並打開它﹐然後在“組態”裡面按“新增... -> 服務 -> 新增... -> Microsoft -> File and printer sharing for Microsoft network”。
- 然後按“確定”﹐再到“識別資料”裡面﹐給您的電腦取一個有別其它的“電腦名稱”﹐但“工作群組”則要選擇一個相同的。
- 然後在“存取控制”裡面選用“共用級存取控制”﹐再來按“確定”則可。假如您的機器是按我在“電腦基礎”裡面教的方法來安裝的話﹐您無需使用Windows CD﹐等一會按“確定”讓機器重新啟動則可。
- 等重新啟動之後﹐你任意右選一個磁碟或資料夾﹐再選擇“資源分享”﹐繼續選擇“資源分享”﹐再設定“存取類型”和“密碼”之後﹐您會看到您剛才選的資料夾下面會多了一隻手﹐那就大工告成了。
- 然後您在其它機器重複這些步驟﹐您就可以在“網路上的芳鄰”看到彼此共享出來的資料了。
沒有任何一種網路可以說是對任何情形都是最好的。Client/Server網路擁有比較好的網路安全服務﹐但Peer/Peer相對來說卻提供了比較靈活且便宜的方案﹔Client/Server通常都需要由專門的人員來管理﹐也比較難安裝﹐而Peer/Peer卻需要比較少的培訓則可使用了。
通訊協定
由于網路的迅猛發展﹐出現了許多供網路使用的軟體和硬體﹐為了讓它們都能夠有效的溝通﹐我們需要建立一些規則。在這一章裡面﹐會向大家介紹目前比較通用的網路通訊協定﹐和模擬數據是如何的從一個節點傳送到另一個節點﹐從功能上面看看通訊協定的定義。
何為通訊協定﹖
如果節點A要將一個packet送給節點B﹐它們就必須使用相同的通訊協定了。一個比較好理解的講法是﹕通訊協定就是一些標準和規則。例如﹐電話響起來的時候﹐為什麼接電話的人先說“喂~”﹐而不是打電話的人先介紹自己呢﹖我們可以說習慣上如此﹐那麼這個習慣行為就是回答電話的通訊協定了。當然﹐您和您親愛的或許不是這樣接電話的﹐那麼您們使用的就是另一套協定了。
LAN的工作就是幫助應用程式利用網路獲得、管理、和安排數據。每一個節點都通過一張網路卡(NIC, Network Interface Card)連接到網路﹐再由此和其它的節點溝通。在每一個獨立的工作站上面﹐已經安裝了一些應用程式﹐如Word, Excel等。這些程式如果想使用網路上面的資源﹐比如在伺服器上面的數據、網路印表機、電子郵箱等等﹐會使用網路軟體(network software)去和NIC溝通﹐然後NIC再和網路上的其它節點溝通。所有這些信息都要經過轉換﹐就必須要使用通訊協定來確保所有這些參與者﹐能夠彼此理解對方和進行有效的溝通。
正如您所見到的﹐在節點與節點之間﹐最先的交流是在NIC的層次上。當數據從一個節點通過NIC傳送到另一個節點之後﹐數據再從NIC傳送到網路軟體。而這個網路軟體就是我們所說的傳輸通訊協定(Transport protocol)了﹐在雙方的機器上都會有這些transport protocol。對於這個網路軟體﹐我們可以從好些不同的角度去理解﹐不過我們可以簡單的從三個層次去看﹕
第一﹐也是最容易的理解的﹐就是NIC的驅動程式。他負責處理網路卡和傳輸協定之間的溝通。網路卡的廠家都會提供一支驅動程式讓您使用一些特定的協定﹐您可以使用同一張卡來供不同的作業系統使用。只要這張網卡在“物理”上是兼容的﹐那你就可以在作業系統上面使用了﹐當然﹐您不能將Ethernet網路卡當Token Ring來使用啦。也就是說﹐您大可不必只依賴一個牌子的廠家。
我們也知道要讓網路卡工作﹐除了要使用正確的驅動程式之外﹐您還得要確定IRQ和IO要正確。另外﹐在網路卡上面﹐還有一個以12個十二進位數字的48bit的物理地址(Physical Address)﹐也叫MAC(Media Access Control) Address或 Node ID﹐等名稱﹐相信我們前面也聽過數次了。這個地址其實分為兩個部份﹐前面六個數字為Manufacture ID﹐也就是廠家ID﹔而後面的六個才是Card ID。如果我們見到一張卡的MAC地址是﹕02608C67CD54﹐那麼我們可以知道這張卡是3Com的﹐因為02608C就是3Com的ID。然後基于這個物理地址﹐我們就可以把邏輯地址設定於其上了。物理地址我們是無法更改的﹐而且您也很難找到兩張相同物理地址的網路卡﹔但邏輯地址則是由網路管理者設定。就好比您不能將公司門牌給改了﹐但您喜歡給您的公司起什麼名字都可以﹐只要不會和其它公司搞混了就行。如果使用不同的傳輸協定﹐邏輯地址的格式也不相同﹐後面我們會就會講到這問題了。但無論是物理地址還是邏輯地址﹐要在網路上面溝通的話﹐就必須不同﹐否則就是所謂的地址衝突了。
下面我們以IPX為例子認識一下邏輯地址﹕
- 內部網路地址(Internal Network Address)。簡單地說﹐internal address是用來識別每一台機器是“誰”。很重要一點是﹐這個內部IPX號碼在網路中對每一台機器來說必須是唯一的。例如Novell NetWare使用內部IPX號碼來識別網路中的伺服器﹐當您安裝NetWare Server的時候﹐您會被問及接受或更改一個隨機產生的內部IPX號碼﹐然後這個號碼就成了該server的ID了。當您從工作站中輸入slist命令﹐您就可以看到每一台server的ID都被列出來了。
- 外部網路地址(External Network Address)。除了internal address之外﹐還有一個external address呢﹐這是用來識別一個網路或一個在網路中的網段(segment)的。如果在網路上面同時有兩台server出現﹐那麼它們就必須使用相同的external address了。這個external address好比是用來識別所有的server在“哪裡”的。在Novell Netware裡面﹐只有Server才需要設定external address﹐工作站使用的是其登錄所在的server的external address。
一個完整的IPX地址會是這個樣子的﹕1C9FDB42 : 2E701AID﹐在“﹕” 前面的部份為external address﹐而後一部份則為internal。不過這樣設定也有一個潛在的危險﹐如果您在安裝Novell server的時候一不留神﹐接受了程式自選的External Address﹐那樣就很可能不能和其它server溝通了﹐而且在接下來的安裝中﹐您會被諸如 wrong router address 等錯誤信息煩死﹗程式通常也可以提示您正確的號碼﹐但如果您有兩張網路卡在上面﹐您就要自己設定了。如果您的號碼輸入錯誤﹐您或許不可能修改系統的AUTOEXEC.NCF檔案﹐而external和internal地址都包括在這個檔案裡面﹐所以務必小心﹗
第二。在網路處理程式的另一端﹐有一個軟體叫重導向(Redirector)。我們知道在單機作業模式下﹐當程式呼叫檔案IO的時候﹐會由作業系統接管這個請求﹐然後再傳給BIOS﹐再到硬體那裡。如果當程式呼叫的檔案IO為網路地址的時候﹐那麼redirector就會接管這個請求﹐而重新導向到網路上面去﹐把請求交給對方機器。
例如﹐當您使用Word的之後﹐要開啟一個在網路磁碟上面的檔案﹐將會如何呢﹖從Word的角度去看﹐它根本不知道有網路這回事﹐它只知道有一個和多個像A﹕、B﹕、C﹕這樣的磁碟。就像您吃麥當勞的時候﹐您不用知道漢堡包是怎樣製作出來的﹐您只需知道魚柳包、雞柳包和拿到什麼樣的Kitty貓就是了。Word在設計上並不是應用於非本地磁碟上的﹐當要使用存儲在網路上面的數據的時候﹐就必須有一種軟體能夠以磁碟代號的形式告訴Word才行。所以﹐如果您告訴Word去一個在叫FILESER1的伺服器之DOC目錄下面找檔案﹐那麼redirector軟體就會接管這個請求了。
然而﹐redirector在這個網路軟體集團裡面﹐也只是一個角色而已﹐要真正能夠拿回資料﹐我們還得需要另一位能士的配合﹕ Redirector只是工作在client上面﹐而在server那邊﹐還必須有一個檔案系統(File System)﹐或曰mounter﹐來接應redirector的請求。在網路世界中﹐有許多種這樣的file system﹐最出名的有 Novell的 NetWare File System、Unix網路的Network File System (NFS)、以及Microsoft 的New Technology File System (NTFS)。在client端的redirector必須要和在server上面的file system兼容(使用相同的協定)﹐否則client也只能望洋興嘆而已。
第三。終于來到這章的戲肉了﹗出場的就是通訊協定﹐也就是節點和節點之間在網路上搬運數據的方法。我之所以將這三個層次的中間部份留在現在才說﹐是因為它是最抽象的。您或許可以這樣想象﹕NIC驅動程式負責和NIC之間的溝通且儘力討其歡心﹔在client上面的redirector和在server上面的mounter﹐則和程式溝通﹐也極盡體貼之能事﹔然後通訊協定﹐則出盡法寶綴合NIC驅動程式和redirector(或mounter)﹐並建立起網路通訊的交通規則。
正如前述﹐通訊協定只是一些標準和規則而已﹐而這些規則令到交流的融合性得以標準化。就如我們不能離開一些經已認同的規矩去使用電話一樣﹐我們的網路也需要一些共同的溝通語言﹐才能讓所有機器相互交流而不至于混亂。LAN和LAN之間的通訊也一樣需要一些網路語言﹐所以它們都需要有語言大師的本領才行。事實上﹐網路語言有多種多樣﹐由于它們在設計之初只為了應付不同的工作﹐而且它們大部份都從來不考慮要和其它網路兼容的。傳輸協定雖然可說琳琅滿目﹐然而不幸得很﹐各自的廠商都有各自的一套偏好﹐但又非常幸運的是﹐大部份新的網路作業程式都支持超過一種協定﹐可以和不同的作業系統溝通﹐比起以前獨沽一味的情形的確容易多了。
下面我們就淺略的瀏覽一些您將會在網路上運用到的通訊協定。
NetBEUI
讓我們回到IBM最初進軍個人電腦網路的時代﹐他們當時的確需要一個很基本的網路通訊協定﹐但他們並不打算用此來建構大型網路﹐僅僅供數十台電腦甚至更小的網路而已。基于這個訴求﹐就誕生了Network Basic Input/Output System﹐或稱NetBIOS。NetBIOS其實只有18個命令(command)來讓網路的電腦能夠建立、維持、和使用連接服務。不過IBM在不久後又再推出了NetBIOS的延伸版本﹕NetBIOS Extened User Interface﹐或稱NetBEUI﹐基本上是BetBIOS的改良版本而已。然而﹐BetBIOS和NetBEUI終究是不同的﹕BetBEUI事實上可以說是一個傳輸協定﹐而NetBIOS充其量只是一組命令來讓系統可以使用網路而已﹐在技術角度來看﹐它是一個Application Program Interface (API)。
NetBEUI可以算是您能夠用到的最快通訊協定了。這個“最快”是指它可以將格式化資料放進封包裡面﹐而接收節點又可以迅速的解讀到內容。然而﹐NetBEUI卻有一個最致命的弱點﹕它不是可路由(routable)協定﹐也就是不能夠和其它網路的機器對講。NetBEUI在本地網路裡面是非常優秀的協定﹐但如果您想和設在其它網路的機器溝通﹐NetBEUI就不是您所需要的了。如果您想實現和其它網路的電腦溝通﹐您極有可能必需通過路由設備或路由軟體來實現﹐但無論用哪一樣﹐很遺憾﹐NetBEUI都做不到。
TCP/IP
美國國防部開發的 Transmission Control Protocol / Internet Protocol (TCP/IP)﹐當初是用來配合ARPANET (Advanced Research Projects Agency Net)來處理不同硬體之間的連接問題的﹐比如Sun系統和Mainframe、Mainframe和個人電腦之間的連接。
Internet Protocol (IP)工作於網路層(以後會繼續和大家探討 OSI 的網路層級)﹐它提供了一套標準讓不同的網路有規則可循﹐當然﹐前提是您想使用IP從一個網路將封包路由到另一個網路。IP在設計上是用來在LAN和LAN及PC和PC之間進行傳輸的。
您可以把IP看成是游戲規則﹐而TCP則用來詮釋這些規則的。雖然TCP/IP原先是專門為幾所大學和機構的使用而設計的﹐但現在TCP/IP已經成為最流行的通訊協定了﹐我們使用的Internet就是用TCP/IP來傳送封包的了。下面就讓我們看看TCP/IP是怎樣工作的﹕
假如您的公司在好些地方都有分公司﹐各自都有著自己的本地網路(LAN)﹐在總公司跑的是Novell網路﹐但分公司大部份都是用麥金塔電腦。當Mac有數據要傳送給PC的時候將會如何呢﹖
首先﹐TCP會在這兩個平臺建立起一個可以提供全雙工檢錯(對雙向的數據都進行錯誤檢測)的連接。
接著﹐IP制定好溝通規則以及Mac和PC之間的連接port。到這裡為止﹐TCP已經準備好數據了﹐如果數據太大﹐IP就將之分拆成幾份較小的封包﹐並且在封包上面加上一個新的header(轉送地址)﹐確保封包會被正確傳送。TCP還會加上標籤說明數據的種類及其長度。
再下來﹐IP將封包轉換成標準的編碼格式並將之傳送給PC。
最後﹐在PC上面的TCP將封包解碼並翻譯成PC能夠懂的格式﹐也就是它自己所使用的網路協定。您可以從下圖看到這個過程﹕
TCP/IP可以說是現行協定中用途最廣的協定之一﹐由于它嘗試在所有硬體上實現所有事情。不過﹐它也是最慢的傳輸協定之一﹐在某些情形之下﹐它的速度只有NetBEUI的七成。由於TCP/IP在設計上可供多種硬體部件使用﹐所以它是一個可路由協定。
DLC
Data Link Control協定﹐為國際標準IEEE802.2協定﹐它主要被用於兩個主要原因﹕
第一﹐許多Token Ring網路是使用DLC 來讓PC工作站和mainframe網關(gateway)溝通的。如果您使用Token Ring而且在CONFIG.SYS裡面又有三個裝置驅動程式是以DXM開頭的﹐那您就是使用DLC 驅動程式了。
第二﹐如果您有一些網路印表機本身直接通過JetDirect網卡連上網路的﹐那麼您或許需要DLC 來控制印表機了。
IPX/SPX
Internetwork Packet Exchange (IPX) 是一個Novell協定﹐可以在網路設備之間建立、維持和終止通訊連接﹐他既負責數據的傳出﹐也負責傳入。當數據抵達的時候﹐IPX會讀取數據的地址﹐和將之搬運到網路伺服器或工作站的正確地方。如果伺服器或工作站需要送出數據﹐IPX則會確定好數據封包地址﹐然後再通過網路路由出去。
Sequenced Packet Exchange (SPX) 協定則是用來控制網路處理過程﹐諸如處理丟失封包或其它狀況。
雖然IPX和SPX都是屬于Novell的﹐但他們的使用並不限制於Novell網路。作為一個傳輸協定﹐IPX/SPX可以被用在許多不同的硬體上面﹐所以IPX/SPX也是一個可路由協定。
多種傳輸堆疊(Multiple Transport Stack)
到現在﹐有兩件事情是最明顯不過的﹕首先﹐沒有任何一個協定說得上是最好的﹔其次﹐您或者很想將上面所說的四個協定全跑上﹐而好消息是﹕您可以這樣做﹗
現行網路模式是可以支持多傳輸協定的﹐我們稱之為協定堆疊(protocol stack)。比如﹐您可以在client機器上面安裝多個協定﹐而server機器卻只裝一個協定。如果您的client同時連接好幾個server﹐這完全是可能的﹕IPX可以和Novell server溝通、DLC可以讓工作站和mainframe gateway對講、和TCP/IP可以使用Internet mail路由、等等。
但要令到以上這些協定同時工作﹐我們還需要用一個方法將網路卡和協定堆疊連接在一起﹐也就是將網路傳輸層和網路卡驅動程式捆綁在一起﹐即在NIC driver和transport stack之間建立一個軟體連接﹐這樣在它們之間就需要一個很重要的標準界面了。通常有兩個競爭者在爭拼這一戰場﹕Novell的ODI和Mircosoft的NDIS。下面我們就探討一下網路捆綁界面和應用程式界面是如何工作的。
網路捆綁界面 (NBI)
由於網路卡驅動程式的不足﹐您還必需額外的軟體來令到通訊協定工作﹐因為NIC driver在設計上只會和一個協定對講﹕IPX/SPX或NetBEUI或TCP/IP。這時﹐ Network Binding Interface (NBI)就派得上用場了﹐NBI 可以提供一個共同的前端接面給設備驅動程式﹐Open Datalink Interface (ODI) 和 Network Driver Interface Specification (NDIS)都可以做到這點。這樣﹐NIC driver就無需再直接和什麼IPX、TCP/IP或NetBEUI之類的協定打交到了﹐它只需要一個ODI 或 NDIS 界面就可以了﹐它們可以將這些協定“翻譯”給NIC 聽。
我們可以從下圖看看client和server的傳輸過程中﹐網路軟體中各組件之間的關係﹕
網路應用程式界面 (API)
正如您在上面所讀到的﹐大多數應用程式其實都不為意到網路的存在﹐不過有些程式﹐如果e-mail或群組程式﹐是必須認知到網路﹐更可以說﹐它們是應網路而生的。它們要能夠“插入”到網路中﹐並和其它在網路機器上面跑的程式溝通。程式設計者建立的網路應用程式﹐都要適應於網路給應用程式的一套指令﹐這些指令就是所謂的 API 了。
如果您懂得開汽車的話﹐您一定知道當初學開車的時候是先學如果踏油門、如何踩煞車、如何轉向等基本動作。我們可以將這些動作看成是一些“原始命令”﹐通過這些命令我們就可以做出將汽車倒出車庫然後開到目的地﹐雖然學車的時候是沒有諸如“倒出車庫”的動作。那麼我們就可以將API當成是那些學車的“基本動作”的操作界面。
在那些網路服務中﹐比如redirector﹐可以居於各種不同的傳輸協定之上﹐如果沒有API﹐您的網路軟體程式就要開發一個redirector程式來接通IPX/SPX﹐又要另外一個redirector程式接通TCP/IP了。其實來來去去都是同一個redirector﹐只是和不同的協定連接而已﹐而API則提供了一個共同的界面給所有網路服務使用。這樣﹐我們就算開 BMW 或 Benz 都知道如何操作了﹐但您未必會開游艇哦﹐因為汽車和游艇 API 是不同的。剛才說的redirector 並不是寫來供通訊協定使用﹐而是給一個API (在我們的例子中是NetBIOS)使用﹕NetBIOSI可以居於IPX/SPX、NetBEUI、和TCP/IP 這些協定之上。這樣有個好處是﹐您可以改變您的通訊協定﹐而無需重寫您的網路服務﹐因為您的網路服務是針對API來寫的。API會接管您的網路請求﹐然後運用正確的通訊協定進行工作。
您或許聽過 socket 這個詞﹐它其實就是API了。有網路世界中﹐有三種API您或許會接觸到的﹕
- Novell Sockets
- NetBIOS
- TCP/IP Sockets (用來和Internet上面的其它網路溝通)
OSI 模式
有好幾個主要電腦廠家﹐如IBM、DEC、Burroughs等﹐都有設計它們各自的網路結構和通訊協定﹐如果採用這些設計的機器﹐在其各自的網路上面運作良好﹐但卻不能在不同廠家的機器之間進行溝通。為了解決這個問題﹐International Standardization Organisation (ISO) 於1978年開始開發一套標準架構﹐終於成功推出 Reference Model for Open System Interconnection (OSI) 作為其標準﹐它提供了一個很有用的模式去理解各個不同層面的網路協定。
OSI 模式共有七個層面﹐且它們可以被劃分為兩組﹕
- 網路群組﹕由實體層、資料連接層、和網路層組成。
- 使用者群組﹕由傳輸層、會談層、表現層、和應用層組成。
您也可以從下圖看到些協定層的排列﹕
應用層 (Application) |
表現層 (Presentation) |
會談層 (Session) |
傳輸層 (Transport) |
網路層 (Network) |
資料連接層 (Data Link) |
實體層 (Physical) |
前面我們集中討論的就是其中的低層協定﹐也就是網路協定﹐這些功能是保障數據在網路中能夠迅速且準確的轉送。
- 實體層
- 在這層裡面您必須作出一些機械和電子方面的決定﹐也就是要定義出在終端和網絡之間要使用的設備﹐同時﹐採用何種佈線也要在這裡決定出來。
- 資料連接層
- 在這層指定了要採用的信息單元(message unit)是什麼﹐(通常在LAN上面的信息單元被稱為packet或frame)﹐以及它們的格式、和如何通過網絡。每一個packet都會被賦予一個地址碼和偵錯監測值(checksum)。有一個Binary synchronous communications協定﹐會判定出一個封包如果在丟失的情況下﹐要等待多久會被重新發送﹐這個協定也是在這層裡面定義。總體來說﹐這層的工作就是保證一個無錯誤的數據傳輸。
- 網路層
- 這層就好比是一個中間人界乎於網絡功能和使用者功能之間。它會定義出封包在網路中移動的路由和其處理過程﹐這層還決定了網路是如何進行管理功能的﹐比如﹐發送狀態信息給接點和規範封包的流動等。
一個有趣的事情是﹐網路層還能將底層協定(網路功能)對上層協定(使用者功能)躲起來﹐這樣在網路的使用者就可以使用不同種類的硬體了﹐這是非常好的事情﹐假如您用來建網的材料都不盡相同的話。
在底下的三層之上﹐還有四層是屬于使用者功能範圍的﹐不過它們也常常會被整合在一起。您要記住的一點是﹕無論程式設計者如何定義這些協定﹐(例如﹐把它們分為兩層或四層)﹐這四層在實際上都會被執行的。
- 傳輸層
- 在這層﹐將會設定節點地址的傳達﹐還有錯誤檢測和修正的方法。
- 會談層
- 這層定義了如何連接和掛斷連接﹐和在網路上面的數據如何交換。
- 表現層
- 在這層﹐定義了數據的語法(syntax)、變更、和格式。當應用程式的語法和格式都不同的時候﹐這層還將定義了如何翻譯這些不同。
- 應用層
- 這是最後一層了﹐它定義了應用程式是如何進入OSI模式進行傳送。它自己並不屬于應用程式﹐但它支持使用者的應用程式﹐如﹕檔案傳送、密碼驗證、和網路工具等。
以上所列舉的協定層並非是他們的詳細定義﹐只是一個框架而已。您可以把OSI的協定模式當成是人體的骨架﹐當您套上這個框架之後﹐您就差不多可以描繪出大致形狀了﹐雖然外表會有所不同﹐但骨子裡還是一樣的。
這裡還有一個tips﹕如果您忘記了這些協定層的排列順序﹐您可以參照這句話﹕Please Do Not Take Sales Person's Advice。
網路作業系統
當您在規劃網路的過程中﹐使用什麼樣的網路作業系統(NOS, Network Operating System)會是一個非常關鍵的考慮﹐其直接影響到您連到其它網路的能力﹐和節點間如何交流﹐還有您可以使用哪些應用程式﹐以及數據的可攜性﹐等等因素。我們將會在這章裡面看看一些比較流行的NOS和其功能﹐這將有助於您選擇一個適合自己的NOS。
Client / Server 系統
如果您要集中控制和管理您的網路和資源的話﹐您就應該找Client/Server的網路作業系統了﹐比如LAN Manager、LAN Server、Windows NT、NetWare、和BanyanVINES等﹐當然還有現在炙手可熱的Linux啦。
- LAN Manager
- OS/2當初是IBM和Microsoft共同開發的﹐不過在80年代中期﹐IBM和Microsoft翻臉的時候﹐IBM卻保留了OS/2下來。不過其後他們都有繼續生產各自的系統﹐Microsoft發展的是LAN Manager﹐而IBM的則是LAN Server。雖然IBM的OS/2才算是正宗的版本﹐但LAN Manager 和其它的OS/2基礎的網路系統在功能上都極其相似﹐所以我們這裡就以LAN Manager為例子就好了。
LAN Manager系統主要分為兩個部份﹕redirector和server。正如我們在前面討論過了﹐redirector控制這網路資料的流向﹐決定這資料從哪裡送到哪裡。redirector還有一個功能﹐就是配置工作站所連著的資源﹐讓其它工作站可以找到這些資源。而server部份則處理網路排程、安全、列印服務、和檔案管理等事務﹐它還包括各種不同的網路管理工具﹐可以幫助您找到諸如不良資訊、安裝漏洞、和網路瓶頸等信息。
LAN Manager還可以將幾個不同的server當成一個server﹐那樣工作站就只需要一個密碼就可以連接到網路中的不同server了。它還有遠端管理功能﹐您可以從任何工作站使用supervisor身份登錄網路並提取網路管理工具。最後﹐LAN Manager還有網路稽查功能﹐讓網路管理員能夠追查有多少使用者連到什麼設備去了﹐也可以知道多少人在使用哪些檔案和應用程式等。您也可以知道使用者有否連上網路和什麼時候連上來的﹐假如您發現某君正在使用一個檔案﹐而他不應該這時候還在網路上面的﹐如果不是別人盜用了他的戶口﹐那麼他去使用這個檔案就好可能有問題了。
在網路安全方面(這是任何client/server系統的重要功能)﹐LAN Manager採用的是美國政府的DES (Data Encryption Standards) 標準﹐對網路密碼進行加密。如果一個使用者開啟了一個帶有網路密碼的檔案﹐可是他卻不能夠知道其它使用者的密碼的。就如其它網路一樣﹐LAN Manager也能讓網路管理員保護特定的目錄、甚至整個檔案伺服器、或個別檔案。作為網路管理員﹐您可以決定哪些使用者可以連接哪些網路資源﹐這完全由您做主。
LAN Manager還有一個很好用的工具叫hot fix﹐當網路要將一個資料寫進硬碟的時候﹐如果hot fix檢測到上面有壞磁區的話﹐馬上會將資料再複製一份另外存到一個保留的空間去﹐然後嘗試修復這個壞區﹐如果失敗則會將壞區做好記號再把資料寫到另外的地方去。
LAN Manager還可以和Mac機器溝通﹐讓您可以和Mac工作站交換資料。同時還支持TCP/IP﹐它有一整套工具可以輔助TCP/IP協定﹐所以網路也就具備了擴展的餘地了。除了TCP/IP﹐LAN Manager也支持Novell網路﹐使用其自帶的工具﹐您可以很輕鬆的就連上Novell網路。
如果您要安裝LAN Manager的話﹐有幾個服務您是要知道的﹕
Redirector (RDR)﹐它可以讓工作站對網路發出請求﹐諸如使用網路印表機或從檔案伺服器獲取檔案等
Messager (MSG)﹐可以讓您在工作站之間發送、接收、儲存、和轉送訊息(message)﹐如果您想接收諸如“Network is going down in five minutes”這樣的信息﹐那麼您就需要跑message服務了。
Receiver (RCV)﹐只允許您使用網路磁碟發送和接收信訊息﹐不過這個服務顯然已經過時且很少有人用的了。
Server (SRV)﹐讓您擁有全部的功能﹐如果您要這台工作站或伺服器可以分享它的硬碟、印表機、等設備﹐那麼您就要跑server服務了。
不過有一個安裝指引您或許可以借鑒﹕所有的工作站都要跑redirector服務﹐否則就不能發出網路請求了﹐如果您要安裝的機器是一台client機器﹐或許這個服務就可以了。在您的AUTOEXEC.BAT檔案裡面加入NET START這個命令﹐就可以載入這個服務了。是否要在client上面安裝message服務﹐則是見人見智了﹐因為它有時候會令到機器當機﹗
- Windows NT
- 在client/server網路系統裡面﹐Mircrosoft的Windows NT (New Technology) 可以說是冒起最快新貴﹐其市場佔用率憑Microsoft的強勢推銷在過去數年間有著很大的提升。(其後我會另開篇幅專門討論NT的各種功能和設定)。NT可以說是Mircrosoft最頂尖的作業系統了﹐而且Microsoft也不遺餘力的促使其下的Windows系統朝著和NT整合的方向發展﹐即將推出的Windows2000﹐可以說是已經將Widnows系統和NT系統合併在同一個系列了。
由於NT提供的是一個圖形環境來管理網路﹐所以您的NT伺服器必需具備VGA或更好的螢幕。在client/server系統家族中﹐NT可以說是少數使用非指定(non-didicated)伺服器的系統之一。連上NT網路也是非常簡單的事情﹐如果您已經安裝有Windows NT、Windows 95/98、或Windows for Workgroup等桌上系統﹐這些工作站在連上網路的時候自動的就可以看到NT伺服器﹐(當然要提供合法的登錄和密碼啦)。如果您跑的是DOS﹐那麼您就要安裝NT所提供的驅動程式了。
NT還提供IPX傳輸協定﹐所以也很容易和Novell伺服器或工作站溝通。另外NT還支援遠端連接服務(RAS, Remote Access Services)﹐可以讓人們在遠端通過撥接連上NT伺服器去﹐RAS可以同時支援高達256個連接。(後面我們還會再討論遠端連接服務的)。
- Novell NetWare
- NetWare可以說是Novell公司全副精力的傑作﹐從其“硬撼式”的市場策略到其CNE(Certified NetWare Engineer)體系(使用者在通過一系列的考試可以獲得Novell認證的工程師資格)﹐Novell已經成功地展現人前﹐並曾一度執局域網路系統(LAN)的牛耳﹐其既有的陣地實在不容忽視﹐因而許多其它的網路系統都會設計和Novell網路連接的功能。
Novell努力試圖適合任何人們去做任何事情﹕如果您跑Apple網路﹐Novell可以和AppleTalk File Protocol (AFP)一起工作﹔如果您有LAN Manager或 3Com網路﹐NetWare可以連上來讓您工作﹔從物理的星形態到Token Ring到邏輯Bus﹐總之您能夠安排得出的網路形態﹐NetWare都可以在上面跑﹔不想用client/server而只喜歡peer/peer網路麼﹖Novell也有提供peer/peer版本的Personal NetWare﹗一言敝之﹐Novell試圖令您無藉口不選擇NetWare來作為您的網路系統。
NetWare對您的磁碟作業系統來說是一個殼程式(shell﹐就如一個外殼一個把DOS包在其中﹐其名因此而起)﹐當有指令到達﹐不管是來自本機的還是網路的﹐都必需經過shell。和redirector的功能一樣﹐shell會知道一個功能是本機的還是網路的﹐如果是本地的﹐他讓本機作業系統來接管﹔但如果是網路的﹐NetWare就接下來並自己和伺服器的BIOS對講。
列如﹐有一個工作站程式要儲存一份檔案﹐它會告訴作業系統﹐然後再到BIOS﹐再到磁碟將資料寫上。當一個在Novell網路的工作站告訴作業系統它要儲存資料﹐這時候NetWare就會插話來問程式需要存到哪裡去。程式當然不知道網絡磁碟和本地磁碟的分別啦﹐它或許隨便回答﹕“H:磁碟吧。”而這個磁碟正是伺服器磁碟在工作站上面的對應邏輯磁碟名稱﹐這樣NetWare就會接管這個操作﹐然後發出指令到伺服器的檔案系統將資料寫入。
NetWare還有幾路板斧是非常了得的﹐籍此可以提高獲取檔案的速度﹐下面我們逐一介紹一下﹕
Directory Hashing﹐NetWare用來提高獲取檔案的一個方法是保持一份目錄樹和Novell版本的FAT的複印本在記憶體上面﹐所以它找到一份檔案的速度比直接到硬碟尋找的速度會多了。到RAM和到硬碟找目錄樹的速度相差可大了﹕如果去硬碟找﹐需要的時間大概為幾千份之一秒﹔而到RAM找則只需要幾百萬份之一秒。而且﹐NetWare同時還對保存在記憶上面的目錄樹按規則排列好﹐令到它更容易瞄準檔案的位置。
Disk Caching﹐這個處理會將一些最常用的資料在RAM上面保留一個copy﹐和上一個方法一樣﹐到RAM獲取資料的速度比到硬碟上面找快多了。這樣當有請求獲取這些常用資料的時候﹐其速度就可以提高好幾百倍了。
Elevator-seeking﹐不知道您還記得在“電腦基礎”裡面講述CPU Cache之 Write Back和Write Through模式麼﹖NetWare的這個Elevator-seeking跟Write Back的方法簡直如出一徹﹕當伺服器同時接到多個檔案請求的時候﹐它並不是按請求先後順序來讀取檔案﹐而是按照磁碟磁頭移動順序來讀取檔案。
對DOS的使用者來說﹐NetWare還有一個很有用的功能叫做mapping﹐可以簡化工作站和檔案伺服器的連接。Novell使用一系列的map跟檔案伺服器上的不同目錄鏈接(link)起來﹐所以在工作站上面﹐這些目錄就被看成好些邏輯磁碟一樣了。
NetWare在系統安全上面也是非常考究的﹐您可以分別從下面的項目來了解﹕
- Login ID
- Trustee rights
- Directory rights
- File attributes
使用者每次連上網路都必需提供使用者名稱和密碼﹐這將決定使用者在網路上獲得的權力。如果密碼只對某些檔案或目錄具備讀取的權力﹐那麼他就不能夠修改任何的檔案了﹔掉過來﹐如果密碼具備最高(full)權力﹐那麼使用者就可以執行任何動作了。作為系統管理員﹐在設定使用者權限的時候都要非常小心。
Novell網路將每位使用者都看成是一個trustee﹐可以指定其對資源擁有以下不同的權限﹕
- 讀取一份開啟的檔案
- 寫入一份開啟的檔案
- 開啟現行檔案
- 建立新檔案
- 刪除現行檔案
- 為目錄/子目錄設定其它trustee的權限
- 修改檔案屬性
如果管理員喜歡的話﹐可以針對一個磁碟裡面的特定目錄對某一使用者設定不同的權限﹐例如﹐可以讓其對整個磁碟擁有全部權限﹐但對某些特定目錄或檔案卻只能具備讀取的權力。雖然NetWare在預設的情況下﹐trustee對子目錄會具備與父目錄相同的權限﹐但還是可以對網路上每個目錄和子目錄設立不同的權限的。
這還不止﹐在最後一道防線上﹐網路管理員還可以針對每個檔案建立屬性﹐來限制如何和什麼時候可供使用者使用。您可以參考下面所列舉的檔案屬性﹕
共享與非共享﹐如果一個檔案是共享的﹐當一個使用者在使用它的時候﹐其它使用者也可以使用﹔如果為非共享﹐則在同一時間內不能超過一個使用者使用(甚至連讀取也不可能)。
讀/寫和唯讀您或許已經對這兩個屬性非常熟悉了﹕如果一個檔案是唯讀的﹐任何使用者都可以讀取它和進行修改﹐但所做的修改卻不會影響到源檔案﹐而只能夠以另外的檔案名稱儲存﹐(這樣的限制對於一些由一人領導的分組項目非常便利﹐這樣領導者對源檔案的修改也就心中有數了)﹔如果使用者對檔案具備讀和寫的能力﹐則可以將修改和回存到原來的檔案﹐而原來的檔案除非有備份﹐否則就會從此灰飛煙滅了。
您可以在NetWare3.x的文字模式使用Syscon﹐或在NetWare4.x的圖形界面使用NETADMIN來進行權限設定﹐Netware帶有一套完整的工具幫您設定諸如目錄、使用者、trustee、檔案屬性等系統安全項目。
- Linux
- 在本世紀末的網路操作系統這一田野上﹐還奔跑著一匹驃駻的黑馬﹕這﹐就是Linux了。對於那些受Microsoft強力促銷下漸感窒息的人士﹐Linux的出現﹐無異是一股清流。畢竟在IBM停止發展OS/2系統之後﹐還能有一套系統抗衡Mircrosoft的霸業﹐的確是令人鼓舞的事情。
Linux是由一位名叫Linus B. Tovalds的芬蘭人在1991年推出來的﹐它是一套類UNIX的桌上型系統。眾所週知﹐UNIX的商業版本價格都相當昂貴﹐並非一般用戶玩得起﹐Liux系統﹐好比是UNIX這隻昔日王府堂前燕一樣﹐飛入了尋常百姓家﹕因為它是免費的﹗而且系統要求一點也不高﹐如果您嫌棄您的486機器跑Windows NT實在老態籠鐘﹐換Linux試試﹐您會覺驚奇這機器怎麼忽然後生百倍了呢﹗而且它提供的服務比NT毫不遜色﹐甚至更加穩定﹗
哇﹗﹗還不趕快找Linux試試﹖﹖﹗且慢﹐Linux也不是毫無暇瞝的。首先﹐Linux雖然對硬體要求不高﹐但對使用者要求卻不低﹕如果您對電腦和網路沒一定基礎﹐要玩Linux恐怕會感到非常吃力(這其實是我寫這個網頁的真正動機)﹔而且如果您對技術問題沒有持之以恆的解決精神﹐您的脾氣最好多修養修養﹐否則很容易暴三字經(其實對任何系統都如此)﹔如果您獨愛Windows的花俏﹐您會覺得它醜醜的﹐當然情人眼裡出西施﹐等你發現已經迷戀上了她﹐您或許視其它的界面如糞土(不過也不應該夜郎自大﹐開口閉口除了Linux其它都一文不值﹐沒有虛懷若谷的胸襟﹐其實和Linux自由奔放的精神格格不入﹐充其量只是葉公好龍而已﹐也徒增別人的反感﹐唉~~~ 題外話啦﹐暫且打住 ^_^ )。
好了﹐閒話休提﹐言歸正傳。Linux主要部份是其核心(kernel)﹐且版本更新得比較頻繁﹐目前或許已經到了2.2x版本了。然後一些distributor另外加上一些軟體連同kernel組合在一起﹐以package的形式推出Linux﹐這樣就成了各種不同的Linux版本了﹐我們比較熟悉的有RedHat、Slackware、Debian、SuSE等distribution﹐它們也有各自的發行版本。雖然這些distribution也會對其包裝收取一定的費用﹐但如果您有Internet連線﹐和肯花時間蒐集﹐其實裡面的所有package連同kernel都可以免費的得到。更值得一提的是﹐您可以對您的kernel進修更新而無需重新安裝所有的軟體。
Linux主要是以TCP/IP為通訊協定﹐而且許多功能都必需依靠TCP/IP﹐不過它也提供了和Netware及Microsoft Network的連接能力。而且Linux的架構和服務都是Unix的標準﹐許多程式已經經過多年的開發和改進﹐比如 FTP、Telnet、SMTP、HTTP等﹐所以穩定性和效率上面都非常優秀﹐因而備受近年來蓬勃發展的互聯網服務供應商(ISP)的青睞。假如您本來就對Unix有所接觸﹐那麼學起Linux將完全不會感覺陌生﹔如果您想進入Unix的世界﹐Linux可以說是最佳之門了。
和Unix系統一樣﹐Linux也是一個完全的多人多工(Multi User & Multi Task)的網絡系統﹐這概念和NT網絡的資源分享完全不同﹕在NT網絡中﹐每台工作站(或伺服器)每次只能允許一位使用者登陸﹐雖然其它使用者也能從網絡中使用到其共享出來的資源﹐但這些動作歸根結底都只是redirector的傑作而已﹐使用者本身還是必需使用自身的CPU和程式來做到這些動作﹔然而﹐在Linux網絡上面﹐一台工作站可以允許多位使用者同時登陸﹐並使用的資源完全是本機的(除了基本的輸入輸出和網卡這些設備)﹐也就是說﹐在這台機器上面的設備和程式﹐都是直接給使用者支配﹐而不僅是共享著。不過﹐現在Microsoft的Back Office 系列(基本上以NT為主)的Terminal Server﹐也開始具備相似Linux的多使用者環境了。
為了讓操作更加方便和更具親和力﹐Unix一早(甚至比MS Windows更早)就已經有圖形面的Xwindows系統了﹐今天Linux之XWindows更加好用和漂亮﹐而且可供選擇的X 界面也非常多種多樣﹐如﹕Open Look、Fvwm、KDE、等等。只要您喜歡﹐您可以在同一台機器上配置多個X 界面並輕易的在它們之間切換﹐這可不同于MS Windows的換換背景和顏色那樣哦﹐而是整個外觀都是不同的。
Linux也支援中文環境﹐比如聞名台灣的CLE (Chinese Linux Extensions)﹐就可以將純英文環境的Linux給改頭換面到中文環境去﹐不過﹐純中文的Linux也在相繼推出和開發中﹐比如大陸的Turbo Linux就是一個純中文的Linux系統。
以往玩Linux的時候﹐硬體的支援是一個很頭痛的問題﹐不過現在的Linux kernel所支持的硬體也越來越多﹐且也越來越新﹐有些硬體廠家在其新產品上已經加進了Linux版本的驅動程式了。當然﹐無可否認的是﹐Linux的硬體支援方面在目前來說﹐還不及Windows那麼普遍﹐尤其是對一些最新的顯示卡和一些古怪週邊來說。
和NT一樣﹐以後我還會另闢專門的文章討論Linux的各種服務及其架設。
Peer / Peer 系統
正如前面在比較Client/Server和Peer/Peer網絡的時候已經提到﹐P/P網絡在成本和管理難度上面都要比C/S網絡要低﹐所以在一些較小型的公司網絡裡面﹐Peer/Peer還是有其受歡迎之處的。下面讓我們一起看看幾個主要的P/P網絡操作系統﹕
- LANtastic
- 這是一個很早期的P/P網絡系統﹐它專門就是設計給那些對集中管理模式要求不高的小公司。不過它也具有諸如LAN Cache(也就是將資料存放在RAM來提高儲存速度)和印表機共享等功能。網絡的安全考慮在LANtastic上面是非常原始的﹐主要針對每一獨立的檔案和目錄而已。
LANtastic使用的也是Ethernet環境﹐屬于IEEE802的標準。它也有Windows版本﹐可以讓您在Windows環境中分享資源和接收e-mail等。
LANtastic自帶有一個叫做Network Eye的網絡管理工具﹐可以讓使用者看到還有誰在網絡上﹐及分享著什麼資源。您還可以“轉播”其它使用者的螢幕到自己的機器上﹐這樣您還可以看到他們在做些什麼東東呢﹗LANtastic在您的工作站上面總共可以支持到32個這樣的模擬屏幕。
- MS Windows
- 在此一家族中﹐從Windows For Workgroups到Windows95和Windows98這些系統﹐都自帶有P/P的網絡功能了﹐(在上面討論P/P網絡的時候就介紹過如何安裝Win95的P/P網絡)。
既然同是Mircosoft的產品﹐他們當然支持NDIS這個網卡驅動界面了﹐不過他們同時對ODI也是支持的﹐這樣令到這些系統受到的硬體支援也特別多﹐而且有些網絡卡廠商只提供MS Windows的驅動程式而已。
配合著它們的圖形界面﹐在這些平臺上面分享磁碟、檔案、打印機等動作﹐很輕鬆的就可以完成。假如您使用Windows95/98系統來架設一個50台機器或更小的P/P網絡﹐相信並不需要很大的力氣﹕只要將網卡和連線設定好﹐然後安裝相同的通訊協定(比如NetBEUI)﹐再逐一設定好資源分享﹐這樣就大功告成了﹗
- Apple Talk
- 說到蘋果﹐當然除了現代諺語“每天一個蘋果﹐醫生遠離我”所指的水果之外﹐我們還不能忘記這個和IMB兼容電腦分庭抗禮的電腦公司啦﹐也不能忘記這個優越的圖形系統先驅對今天電腦界面的影響。事實上﹐很多人根本就把其下的麥金塔(Mac)系統稱做蘋果機器﹐當然﹐領導今日電腦之透明時尚的iMac﹐也令不少發燒友趨之若騖。
當初蘋果公司開發AppleTalk的目的也只是針對P/P網絡而已﹐不過 AppleShare File Server或其類似程式﹐也可以當client/server來跑。AppleTalk其實是一個很簡單的LAN﹐而且它令到Mac的傳統用戶免除了硬體方面的頭痛﹕所有System 7.x 的Mac都本身自帶有peer/peer網路卡了﹐如果您想用這些系統開啟網路的時候﹐您全部要做的就是﹕找一根電話線﹐兩個終端器﹐然後啟動另外一台Mac而已。
不過 Mac網路使用的物理網路形態和我們前面討論的網路形態卻是不同的﹐它跑的是 daisy-chain topology﹐看起來有的像bus﹐不過布線比較整齊﹐通常會走在牆壁裡面而不是到處掛得像意大利麵條一樣﹐而且使用的不是coaxial而是UTP網線。不過﹐您也可以在star形態上面跑Mac﹕一種是靜態punchdown blocks﹐並沒有增益和路由功能﹐網路總長只有3000英尺﹔另一種為動態的concentrator﹐具有多埠(Multiport)增益器﹐且每一條網線都可以支持3000英尺的傳輸距離。
不過Mac卻可以跑任何種類的邏輯形態﹕Ethernet、Token Ring、或者AppleTalk等。AppleTalk盡管可以使用增益器(repeater)﹐但由於節點ID的限制﹐最多只能支持254個設備﹕128個工作站和126個伺服器/印表機。它的網路距離也因採用的種類不同而異﹕LocalTalk﹐這是一個PC版本的AppleTalk﹐使用的是STP網線﹐它可以有24個節點且可以擴展至1800英尺﹔PhoneNet﹐使用的是UTP網線﹐可以擴展到1000英尺﹐但就可以有32個節點。如果您想要一個大的和快的網路﹐您最好還是使用Ethernet了(AppleTalk只有230.4Kbps的傳輸速度)。
Mac的Ethernet也有兩種﹕Phase 1可以有最多254個設備﹐除了速度可以有10Mbps之外﹐其它和AppleTalk一樣﹔Phase 2也可以支持254個設備﹐不過還可以橋接(bridge)到另外一個Phase 2 網路。技術上而言﹐在Phase 2 上您可以有一千六百萬個地址(因為Ethernet卡採用的是48-bit的地址)﹐但您卻要有一個大得駭人的辦公室和冷卻系統。
網路系統比較
我們已經簡單地認識了一些主要的網路作業系統﹐不過您或許會有花多眼亂之感﹐不知如何選擇一套適合自己環境的系統﹐下面我們嘗試列舉出一些選擇網路系統時的參考因素﹕
- 網路體積
- 也就是節點數目﹐數目越大﹐就越應該考慮client/server系統﹐主要是基於集中管理的考慮。
- 指定的網路管理員
- 如果您有專門的網路管理人員(除了網路管理﹐其它事情都不理)﹐您或許已經使用的是client/server系統了﹐因為這些系統都比較複雜和需時設定。而Peer/Peer系統﹐通常都是各自的使用者在管理自己的機器﹐他們不需要很專業的網路管理知識﹐但卻具備了一般的電腦使用能力﹐而且網路管理並不是他們的主要職責。
- 集中式網路控制
- 如果您對您的網路系統安全比較注重﹐且試圖使用集中管理模式﹐那麼您也應該考慮Client/Server系統。不過﹐好多小公司使用網路僅是共享檔案和週邊設備﹐其實Peer/Peer也足夠了。然而員工數目越多﹐就越應該考慮C/S系統。
- 員工培訓
- 假如您要安裝一個只有25台機器的Peer/Peer網路﹐可能一個週末就可以搞定﹐而且使用者也無需特別的培訓。但在相同大小Client/Server環境中﹐需要兩個星期去完成其設定一點也不出奇(根據要求而定)﹐然後使用者還得要學習如何使用該種網路和語法技巧等知識。
- 成本
- 如果在50台機器的數目以下﹐Peer/Peer網路會比較便宜﹐但如果超過100台的話﹐在某些情況下﹐Peer/Peer可能比Client/Server更加昂貴﹐比如License等因素。
- 網路軟體的兼容性
- 通常一些網路備份程式和工作排程程式﹐都只能在一些特定的網路中工作﹐當您選擇這些groupware的時候﹐就得留意區分它們究竟是在哪些網路上面使用。
- 我們可以從下面類別中看看不同的網路作業系統的比較﹕
類項/系統
| Client/Server
| Peer/Peer
|
OS/2
| NetWare
| Linux
| Windows NT
| Personal NetWare
| LANtastic
| WFW
| Win95/98
|
密碼加密
| X
| X
| X
| X
|
|
|
| X
|
系統追蹤
| X
| X
| X
| X
|
|
|
|
|
Mac 連接
| X
| X
| X
| X
|
|
|
|
|
TCP/IP
| X
| X
| X
| X
| X
| X
| X
| X
|
IPX/SPX
| X
| X
| X
| X
| X
| X
| X
| X
|
長檔案名
| X
| X
| X
| X
|
|
|
| X
|
圖形網路管理界面
| X
| X
| X
| X
|
|
|
|
|
超越LAN之外 --- Internetworking
基本上我們前面所接觸的都是在LAN的範圍﹐但時至今日的網絡﹐尤其是internet的蓬勃發展﹐我想也很少網絡會獨立在局域之內吧﹐所以了解一些網路和網路之間的通訊是勢在必行的了。
在某些定義來看﹐一個LAN就好像一台放大比例的電腦﹐只不過更加複雜而已﹔那麼在LAN和LAN之間組建網路﹐我們稱之為internetworking﹐比如﹕
- 圖書館可以通過它安排聯網借還
- 可以將各醫院的病人記錄集中管理
- 銀行可以通過它進行轉帳
- 報館之間可以進行新聞交換
- 旅行社可以為客人預定全世界的機票和座位
等等﹐可以說internetworking所帶來的便利遠超過我們能夠想象的。
Internetworking設備
- 增益器(Repeater)
- 我們已經在前面講述過repeater的功能了﹕它是用來放大傳輸信號的。當我們的網路線路過長的時候﹐信號會因為損耗而減弱甚至丟失﹐這樣的話﹐repeator就可以在中間幫我們將信號接收下來﹐然後把它放大重新繼續傳送以達到我們預定的距離。準確來講﹐repeater不能算是internetworking的設備﹐僅可以算是網路的延伸設備﹐基本上它做到的只是重複它所收到的信號而已。
- 橋接器(Bridge)
- 它是一個硬體或軟體用來連接不同的網路區段(segment)的設備﹐(一個segment就是一個無需借助internetworking設備連接的電腦群體)。例如﹐您可以用一個bridge來連接兩個Ethernet segment、或連接一個Token Ring segment到一個Ethernet segment、或連接一個Mac segment到一個PC segment。只要網路間使用相同的上層協定(如IPX或TCP/IP)﹐bridge就可以成功的將任何網路連接到其它網路﹐它們之間的溝通就無需理會對方使用的是何種機器(網路硬體)了。
一個bridge的資料傳輸主要有三個步驟﹕
- Discovery﹐就是bridge的任意一端告訴bridge有資料需要傳送到另一端
- Filtering﹐接著bridbe過濾(filter)資料並將協定翻譯給目的端
- Forwarding﹐然後bridge將資料傳送(forward)給目的端的正確地址
其實bridge是很簡單的﹐就像一座橋架於不同的網路之間﹐您可以將它想象成兩個國家之間的邊境橋樑﹐而兩國都使用著自己各自的語言﹕一邊說Token語﹔另一邊說Ether語。由於兩國過從甚密﹐然語言又互不相通﹐所以他們就聘請了一個傳譯員坐在橋中間﹐再另外聘兩個跑腿各站兩邊。當說Token語的跑腿來告訴傳譯員他們有信息傳到另一邊﹐傳譯員首先將地址翻譯成Ether語﹐再將信息重新裝進Ether國的信封﹐然後叫說Ether語的跑腿將信送到該地址去。傳譯員一點也不在乎信是從哪邊過來的﹐他只關心的是地址準確就行。
為什麼我們說﹐使用橋的時候網路之間要使用相同的上層協定呢﹖您可以將這些上層協定看成是語言規則。無論是說Token語還是說Ether語﹐他們都使用相同的方法﹕用口來說﹗假如Token國人用畫畫來溝通﹔而Ether國人卻用跳舞來溝通﹐(也就是說他們使用不同的上層協定)﹐那麼﹐這個傳譯員也只有乾瞪眼的份兒了。
另外﹐bridge除了是一個傳譯員之外﹐它還可以充當交通警察。當我們發現網路過于繁忙的時候﹐那麼我們就可以將網路分成兩個或多個segment﹐而bridge就可以幫助網路更好的管理交通和解決瓶頸問題了。
- 路由器(Router)
- 和bridge差不多﹐router也是一個用來將資料從一個網路節點傳送到其它網路的硬體或軟體設備﹐並能把資料從出發地使用的協定翻譯成目的地使用的協定。
在使用bridge的時候﹐它的傳譯員會要求所有信息先得經他才能傳出去﹐就算是同一國度裡面的人民相互分享資料﹐也必需先送給傳譯員而確定他無需進行翻譯傳遞。這方面﹐router比bridge聰明些﹐也不像bridge那樣勞碌。在router上面的傳譯員﹐會先問跑腿﹕“這資料要送哪裡去的啊﹖”如果資料是傳遞到相同的國度裡去﹐router就根本無需理會﹐而讓資料按其正常的方法傳遞﹐就如根本沒有router存在一樣。只有那些需要翻譯的資料﹐router才會理會。簡單來說﹐bridge會對所有信息進行檢查﹐看看是否要翻譯傳遞﹐而router僅對那些需要翻譯的信息進行處理。
和bridge不同的是﹕bridge需要所有的segment使用相同的傳輸協定(transport protocol)﹔而router則要求他們使用相同的路由協定(routing protocol)﹐通常是router自己使用的特定協定。還要一種叫做Brouter(我也不知道如何翻譯好)的設備﹐可以應用於不同的傳輸協定上面﹐它揉合了bidge和router的優點所在﹕既可以使用不同的上層協定﹐也可以直接將數據以最快的路徑傳遞。當然﹐它的問題是比較難昂貴﹐而且安裝也是件非常頭疼的事情﹕它需要對每一不同的網路進行細緻的調校。如果您有一個比較複雜的具有多種平臺的大型網路環境﹐使用brouter通常可以獲得最佳的效能﹐盡管安裝比較困難﹐但一旦設好了﹐自是受益非淺。
- 網關(Gateway)
- Gateway可以說是internerworking的最後設備了﹐它通常是一些硬卡跑著一些軟體﹐專門是設計給兩個完成不同的網路結構(比如PC網路和SNA Mainframe)之間進行溝通的。如若bridge和router使用的傳譯員僅能夠翻譯語言﹐gateway這個更高級的翻譯卻能完全的將各自不同的交流模式進行翻譯﹐並能讓對方可以理解﹐不管他們使用的是畫畫還是跳舞。
Bridge的使用
正如剛才提到bridge的時候﹐已經知道它的主要功能就是過濾(filter)和傳遞(forward)﹐當bridge接到一個封包的時候﹐它就得問自己﹕“這個封包究竟是留在這個區段內﹐還是應該傳遞到下一個區段呢﹖”
讓我們先假設在兩個Ethernet區段之間架設了一個bridge﹐您有一個資料想從區段甲的節點A送到區段乙的節點B﹐其過程有的像這樣﹕當節點A送出的封包抵達bridge的時候﹐bridge會先檢查封包的來源地址和目的地址﹐如果是寄往同一區段的其它節點的話(在bridge的同一邊)﹐橋就不會向區段乙進行廣播了﹐我們稱這功能為過濾﹐這樣區段乙就減少了無必要的交通了﹐參考下圖﹕
但是﹐如果封包是要傳遞到另外一個區段的﹐那麼bridge就將封包向另外一邊廣播﹐這動作我們稱之為傳遞﹕
Bridge通常是獨立協定之外的﹐可以同時支持多個協定﹐它只關心封包的來源和目的地址﹐不管封包使用的是IPX還是TCP/IP﹐bridge都毫不理會。只要它讀得懂來源和目的地址﹐就能夠判定要對封包進行過濾還是傳遞。有一種learning bridge會保持一個表格記錄哪些地址屬于哪個區段﹐每次有封包在網路中廣播的時候﹐bridge都會參照記錄檢查其封包地址﹐並進行必要的更新。但並不是所有bridge都會這樣做﹐有些比較低檔的bridge就不管三七二十一﹐凡是接到封包就給它傳遞出去﹐我們稱這樣的bridge為forward-only bridge﹐請參考下圖﹕
大多數的bridge都只能夠連接兩個網路區段﹐如果您的網路擴展到一定範圍的時候﹐您就要考慮增加bridge了。然而﹐當使用多個bridge的時候﹐您也會有風險遇到looping的問題。這通常發生在當區段之間有超過一個路徑的時候﹕
如上圖所示﹐當區段甲的節點A對區段乙的節點B進行廣播﹐有兩個bridge接收到信息﹐並認為目的地是在區段乙﹐也就將封包傳遞出去了。當節點B接收到這兩個封包的時候﹐很有可能不知道它們是相同的數據﹐如果節點B將兩份資料都寫到同一個檔案裡面的話﹐就會造成數據損毀的情形了。
不過可以告訴大家的是﹐bridge looping只會在Ethernet邏輯形態和Bus物理形態上面出現﹐但使用802.5的Token Ring網路對它是免疫的。
有些bridge也可以連接兩個以上的區段﹐當有廣播封包(就是給所有節點的封包)要發送的時候﹐由於它是要傳遞給網路上所有節點的﹐bridge就會將它傳遞給所有連接上來的區段﹐我們稱這樣的情形為flooding。越多這樣的廣播封包﹐flooding的出現也就越頻繁﹐網路也就越慢﹕
當您有一個定點封包傳到bridge的時候﹐bridge就要判定究竟對此封包進行過濾還是傳遞﹐如果連接到它的區段超過兩個的話﹐它還要知道究竟傳遞到哪個網段去。一些低檔的bridge﹐並不會像learning bridge那樣會記住地址屬於哪個區段﹐然後它就簡單地會向所有連接的區段進行廣播﹐這樣一些不必要交通也就多起來了﹕
那究竟我們如何避免flooding呢﹖下面有兩個選擇﹕
- 如果您需要使用一個bridge來連接多個區段﹐確定您購買的是learning bridge﹐也就是能夠追蹤每個節點地址的bridge。
- 您還可以購買half-bridge﹐也就是使用一對bridge將過濾和傳遞工作分開。見圖﹕
Half-bridge也有被稱做remote bridge﹐通常是配對的用來連接兩個區段﹐而各自只負責一半處理。例如﹐有一個封包要由區段甲的節點A送到區段乙的節點B﹐先會到達區段甲的half-bridge﹐這個half-bridge只會記著自己所連接的區段之內的地址﹐如果地址不是在此區段﹐那麼就將封包傳給另外一個half-bridge﹔當另外的half-bridge收到封包之後﹐看看地址是否屬于它所屬的區段﹐如果不是的話﹐這個封包就會被忽略﹐也不會被重發。這樣﹐網路的交通就會被限制在最低的情況之下了。
Bridge的標準
由於bridge只有很低的處理能力﹐如果網路交通太忙的話﹐有可能出現封包丟失的情形。為了解決這樣的問題﹐一些bridge的標準相繼的被開發出來﹐通常有兩個標準是比較廣泛被接受的﹐它們是﹕spanning tree和source-route bridging標準。而且﹐這些標準還可以解決looping和flooding的問題呢﹗不錯哦~~
- Spanning Tree Standard
- 此標準裡面﹐網路會有一個root bridge﹐然後其下還有一些child bridge﹐這個root bridge會決定目的封包要傳遞給哪一個child bridge。由於上級bridge只會將封包傳遞給包含該目的地址的下級bridge﹐因而也就避免了looping的可能性了。
Spanning Tree是由Digital Equipment Corporation (DEC)開發的﹐是專門給802.3 (邏輯bus或Ethernet)和802.4(token bus)網路使用的。給802.5的Token Ring使用的是下個要說的標準。
- Source-route Bridging Standard
- 在Source-rout Bridging標準裡面﹐發送端節點要先判定哪個傳送路徑是最佳的﹐再將封包傳給bridge﹐然後再傳給目的地的bridge。這時候bridge可以當成網關(gateway)一樣。它們的連接如下圖﹕
當一個bridge判定了兩個節點之間的最佳路徑之後﹐就會永遠地使用此一路徑﹐就算以後還有更佳路徑的出現也不會被考慮的了。如果您想您的bridge能夠適應不同的網路交通層次﹐並能報告出進行橋接過程的錯誤信息﹐那麼您需要的並非bridge﹐而是router了。
Router的使用
Router有那些功能呢﹖先讓我們先將它和bridge做一個透視比較﹕
- Router可以在節點間進行多工處理
- Router可以直接和使用者設備對講
- Router可以協助管理網路交通
- 不像bridge﹐router並不會閱讀所有在網路上面的封包﹐只會閱讀那些需要進行路由的封包
- 由於router是用來連接不同網路的﹐所以他們並不能獨立協定之外
為了更好的了解router的功能﹐您最好先要明白router是如何工作的﹐以及它和bridge的分別。它們主要的分別是它們如何看待所連接上來的區段﹕當使用bridge連接兩個網路的時候﹐它們僅屬于同一網路之內的兩個區段﹔如果使用router來連接兩個網路﹐將會有兩個router分別連接各自獨立的網路。
如下圖所見﹕當網路1的節點A要傳送一個封包網路6的節點B﹐節點A會先將封包傳給連接到網路1的router 1。當router 1接到封包的時候﹐他就得要判定哪條是最佳的傳遞給網路6 的路徑。通常最佳的路由路徑對會在好幾個不同的router之間跳來跳去的﹐但無論如何﹐在router將送出封包之前﹐都會根據當前情況而選擇最佳的路徑﹐而不像bridge那樣﹕一旦選定了路徑﹐就永遠固定下來。Router具備這種搜索路徑的能力是非常有用的﹐然而是基於它能否看到其它router的能力而定。
由於Router 1分別連接到Router 2、3、4﹐它會知道它們有多忙以及它們和哪些網路連接著﹐這樣﹐當Router 1有封包要傳遞到其它網路的時候﹐它就會看看哪條路徑在當時是最快的。由於router 2和4都比較忙﹐所以router 1也就選取了沒那麼忙的router 3為路徑了。
每次當封包從一個router傳到另一個router的過程﹐我們稱之為“hop”,為了找到一條最少hop數的路徑﹐封包的路徑通常會在中游就會被改變而補償網路交通的變化。例如﹐在網路1的節點A有一個封包要送到網路4的節點B﹐必需經過router1、2、3和4﹐您可以從下圖看到初始路徑的選擇﹕
然而﹐當封包從Router 1移到Router 2的時候﹐Router 2或許會說﹕“嗯~~ 我可以將這個封包傳給Router 3﹐不過~~ Router 3現在看起來挺忙的﹐我想封包如果經由Router 5﹐然後到6﹐再到7﹐再到4或許比較快些咧﹐因為5、6、7好像比較清閑。”這條路徑就會改變成下圖那樣了﹕
雖然這路徑要經的hop數目更多﹐但它依然是比經由繁忙的router 3 要快。
當封包在進行路由的時候﹐有兩組地址是router必需追蹤的﹕封包的來源和目的地址﹐以及datalink的來源和目的地址。網路來源地址和目的地址通常是這樣的一個組合﹕網路號碼和節點地址﹐這兩個地址在路由的任何過程中都不會改變。但datalink地址(例如﹕封包從哪台router來和要送到哪個router去)﹐記錄著即刻需要從一個router傳到下一個router的傳遞信息﹐而最終抵達目的地。您可以從下圖看到這過程是如何工作的﹕
正如您所見到的﹐router和router之間必需相互認識才能讓路由工作正常﹐更重要的是﹐對使用者而言﹐所有工作站都必須知道它們直接連到哪個(些)router去。每次當一個router加入到網路中的時候﹐它都會向WAN上面的其它router廣告自己的地址和其所連接的網路﹕
當其它router接收到這樣的廣播信息之後﹐就會將資料加入本身的路由表(routing table)去﹐如果越多router加入﹐那麼路由表也就越大。至於路由表的格式則視乎所使用的路由協定而定﹐這些協定都會規定出諸如﹕如何產生路由表、如何對建構的表格進行追蹤、要保存什麼樣的資料、以及每個router如何和別的router進行溝通等細節。其中有一個比較簡單的路由協定叫做 Routing Information Protocol (RIP)。
當您開啟一個RIP router的時候﹐它會先建立好自己的路由表﹕首先﹐它向所有它連接的網路廣播自己地址﹐並廣告其它在WAN上面的router這些信息。然後大約每隔一分鐘﹐router就會對資料進行更新﹐在其余時間﹐它會傾聽其它router的廣告信息﹐如何將所有新信息加進自己的路由表。這裡的最重要字眼是“新”﹐每次當router的狀態或連接發生改變的時候﹐它都會廣播這些信息﹐讓其它router將舊信息刪除掉﹐換成新的信息。這樣﹐如果WAN上面有一個router工作不良的話﹐其它router就會知道﹐而不會再將封包傳送給它了。
您可以把RIP router看成是極度信任別人的一伙﹕它們之間不斷地相互交談﹐但永遠只相信最後告訴它們的router所說的。不過﹐這樣有一個潛在的問題﹐如果其中一個router有一個錯誤的關于別的router的信息﹐然後將這不實信息在WAN上傳播開﹐其它router接收到信息後就會更新它們的路由表﹐而不實的路由表會導致封包的傳送速度變慢。其情形就如下圖一樣﹕
為了繞過這個問題﹐許多新的路由協定都只會廣播其直接連的網路信息﹐也就增加了資料的可信性了。
Gateway的使用
Gateway的工作比bridge和router都要複雜許多﹕Bridge只是簡單的看看封包資料的來源和目的地址﹐然後將資料傳遞到正確的地方﹔Router則會看看封包資料然後把封包傳給其它router﹐一路的改變datalink的來源和目的地址﹐但並不改變封包裡面的資料﹔但是Gateway卻實際上可以有效地將資料從一種協定標準轉換成另一種協定標準﹐它在處理使用完全不同協定的網路間的數據傳輸過程中﹐可以使用兩種方法﹕tunneling和terminal emulation。
- Tunneling
- 這是最常用﹐而且也是最少處理器耗費的方法。使用tunneling﹐gateway會先使用第一個網路的格式傳送封包﹐並將之包裹在雙方都容易理解的格式﹐然後在另外一個網路中﹐使用另一種格式進行傳送。概念上﹐tunneling和郵局系統差不多﹕如果您使用公司內部便條傳一個memo給同辦公室的同事﹐只要填上發信人和收信人﹐然後交由秘書就可以﹔但如果要經過郵局寄信給分公司的某經理的話﹐則不能使用這樣的格式了﹐因為郵局不知道如何處置這便條才好﹐所以您必須將便條裝進郵局標準信封(也就是所謂的雙方都容易理解的格式)裡面﹐然後郵局將信件傳到(路由)分公司經理﹐然後他把郵局信封(路由信封)撕掉﹐就可以得到您的便條了﹔假如便條是用英文寫的﹐而那經理卻只識中文﹐那麼就要找秘書給翻譯(數據轉換)了。
比如說﹐我有一個Novell IPX封包要從我的PC送給在AppleTalk網路上面的Mac﹐而Netware和AppleTalk都可以理解TCP/IP﹐這樣﹐我就可以進行資料傳輸了﹕PC將封包裝進一個TCP/IP“信封”裡面﹐然後將封包發送出去﹐當抵達Mac之後﹐將TCP/IP信封撕掉而得到真正的封包﹐但此時Mac依然是讀不懂封包內容的﹐它還的做些數據轉換工作才能看的懂PC的數據。不過﹐數據轉換卻不是gateway的問題哦﹐一旦數據從PC網路抵達Mac網路﹐gatewate的任務就大功告成了。如果您記不起前面討論TCP/IP時候的圖示﹐現在也可以重溫一下﹕
- Terminal Emulation
- 另一種gateway方法是使用terminal emulation。Mainframe原本在設計上並不是和PC溝通的﹐它們是使用dumb terminal(笨終端)進行通訊的﹐這樣﹐當一台PC要和mainframe通訊的時候﹐它在轉換過程中就得將自己當成終端才行。通常有兩種方法可以進行終端模擬﹕終端模擬卡和終端模擬軟體﹐同時﹐也有兩個途徑來成功地執行終端模擬﹕
PC Emulation Card﹐或稱為gateway card﹐您可以將它插進每一台需要連接mainframe的PC﹐不過這通常都很費勁才能將之調整正確﹐因為這比較容易引起資源衝突或是系統不穩定等問題。您可以從下圖看到這樣的配置﹕
Gateway Server
您也可以專門指定一台PC為工作站處理所有的模擬工作﹐這樣的PC就成為gateway server了﹐模擬卡只需安裝在這台機器之上就可以﹕
這樣所有工作站都使用模擬軟體連接到gateway server﹐再通過模擬卡和mainframe溝通﹐不過通常終端模擬都會有下面的不利因素﹕
- 比較昂貴﹐您必須購買額外的硬體和軟體來讓您的PC和mainframe溝通。
- 額外的軟體和硬體也容易引起更多的設備衝突。
- 比較慢﹐每次您要由一個作業系統要求另外一個系統﹐都需要時間。
為了繞過這些問題﹐您或許可以考慮使用gateway server﹐不過您依然還是會碰到這些問題的﹐只不過將問題集中在一台機器而不是在所有機器而已﹐而且那些使用軟體的工作站還依然可能會碰到軟體上面的麻煩。
至此為止﹐相信您也已經有一定的概念去如何使用各種不同的設備將您的LAN連到WAN上面了吧。如果您管理的是一個小辦公室﹐那您很有可能是邀請外面的商家幫您連接您的LAN﹐然而﹐當您的網路成長的時候﹐對各種WAN設備的需求也會顯得越來越重要了。
電信 (Telecommunication)
在今天﹐越來越多辦公室工作都在辦公室之外來做﹐許多人以為電信(Telecommunication)都只會發生在那些完全在家裡辦公的人士﹐但這只是使用電信的其中一種情形而已﹐但凡需要使用電話技術去連接中央資源的人們﹐都可以說是電信的使用者。比如某些“neighborhood work center”就提供了一個工作場所給好些不同公司的僱員﹐讓他們無需真正去到辦公室幹活﹐當然﹐那些流動工作者﹐通常都得在路上工作﹐也是使用電信的最佳例子。
對公司而言﹐電信的優點主要有這些﹕
- 可以招募更廣地域的僱員。
- 可以保留一些好的僱員﹐如果他們因為某些原因要搬離到其它地方去。
- 公司對那些比較喜歡靈活工作環境的僱員更具吸引力。
- 可以減少因為生病、交通、或是惡劣天氣因素引起的缺勤。
- 辦公室費用會大幅度減少。
對僱員而言﹐電信可以為他們帶來這些便利﹕
- 他們可以從居所到不同的地方工作。
- 可以保持一份好工作﹐就算是必須搬遷到其它地方。
- 可以有一個更加靈活的工作環境。
- 再無上班路途之苦。
當然﹐電信也有其自身的缺點存在的﹐也不是對所有人都適合﹐主要是因為過于零散和缺少有效的監督和輔助﹐而且也有技術上面的問題。電信的問題可以來源於﹕
人為因素﹕
- 因為社交的隔絕而引起的孤燥和厭倦﹐有些人比較喜歡和別人交往才能有精神。
- 家人的打擾和分心。
- 缺乏監督和紀律去獨立工作。
- 較差的時間安排。
選擇一位合適的符號電信條件的應徵者是最佳的解決之道﹐您要挑的是一個管理性和自覺性比較強﹐且有良好的效能評估能力的人選﹐而非那些效率低下﹐且要不斷督促﹐踢一踢才動一動的懶木頭。另外﹐如果您一早就和他們約法三章﹐並做出有效的安排﹐這對雙方都比較容易地過渡。
設備因素﹕
許多電信工作都和電腦有關﹐這樣對那些大多數只有一台電腦的電信人來說﹐將會是個問題﹕如果在辦公室裡面﹐假如工作站壞掉了﹐您還可以到其它的機器繼續工作﹐然後等機器修理好﹔但在家的話就得停工了﹐在電腦修好之前﹐只能乾等。另外﹐一些電信問題﹐諸如modem壞掉等狀況﹐也會打斷和辦公室的連線﹐對這些技術問題﹐您也無可耐何﹐只能儘量避免而已﹕盡可能使用比較好的﹐穩定的硬體和軟體就是了。
遠端控制 Vs 遠端連接
一旦您有僱員決定使用電信連接﹐您就要在兩種電信手段之間做出決定﹕遠端控制(Remote Control)﹐和遠端連接(Remote Access)。兩者其實都使用相同的設備﹕一個modem、一條電話線、一台電腦﹔內裡不同之處在於和辦公室的電信連接方法﹐而這則取決於進行何種的電信作業和使用什麼的軟體去做。
- Remote Control
- 在使用遠端控制的時候﹐使用者實際上是在家裡通過modem控制和使用一台網絡上面的電腦。這需要在辦公室的網絡上面設置一台host電腦﹐然後將家裡的電腦設置為remote電腦。如果您玩過pcAnywhere之類的軟體﹐相信對此並不陌生。遠端電腦實際上是作為遠端使用者的“前端”﹐讓他/她可以用鍵盤輸入數據和從熒幕上看到結果﹐在遠端電腦和辦公室之間傳輸的僅是輸入和輸出而已﹐所有運算工作都在host機器上完成﹕包括應用程式、處理器運算等等﹔遠端電腦基本上可以不需安裝應用程式﹐使用的其實是host上面的。
簡單來說﹕遠端控制﹐好比是將host電腦的熒幕線和鍵盤線延長到remote端那樣。
遠端控制對那些需要大量數據的文字模式程式非常好用﹐但如果使用圖形界面的程式﹐諸如windows和windows程式﹐則會緩慢得多。為了解決這個問題﹐有些遠端控制程式只傳送熒幕畫面變更的部份﹐從而減少數據的交通。
除了在使用windwos的時候比較慢之外﹐遠端控制也有其一些缺點﹕
- 您必須要有超過一台的電腦參與電信過程﹕一台在辦公室的host機器﹐和一台在家的remote機器。
- 其安裝也需要額外的佈線安排、電源、冷卻、和空間。
- 如果host機器當掉了﹐遠端使用者並不能將之重新啟動。
- 當工作站做為host工作的時候﹐其它使用者就不能使用它了。
- 也有安全上面的問題。取決于軟體的功能﹐很有可能是當遠端使用者連接之後﹐其它人會坐到host前面而使用它。現在大多數的遠端控制軟體﹐都會要求遠端使用者在連接成功之後還要提供使用者和密碼來登錄﹐您要確定您的遠端程式包括有此功能。
- Remote Access
- 遠端連接﹐(也有人稱之為remote nodes)﹐是將遠端的電腦當成是網路其中的一個節點﹐而不是另一台PC的控制器。這時候遠端機器必須進行所有的運算處理﹐所有的程式也安裝在本地的硬碟上面。使用遠端連接需要在兩端的機器上面安裝遠端連接軟體﹐而實際上﹐遠端機器也是辦公室網路中的一員﹐只不過不是通過網線而是電話線連接到網路上面而已。使用者先要撥號連接到遠端連接伺服器(可以是和檔案伺服器同一台機器﹐也可以專門指定一台)﹐然後再登錄上網路使用網路資源﹐一如在辦公室裡面一樣(當然除了速度之外)﹐另外﹐安全係數也因軟體而異。
當使用者獲取檔案之後﹐一切工作都只在遠端電腦進行﹐只有當回存或獲取新檔案才需要連接檔案伺服器﹐因而﹐如果您跑的是一些widows圖形界面程式的話﹐遠端連接對比遠端控制來說應該是個較佳的選擇。不過﹐遠端連接也需要跟多的時間去獲取檔案﹐還記得在電腦基礎裡面講述過電腦是如何工作的麼﹖“記憶體﹗”﹐使用遠端連接的機器必須要先將檔案整份載入後才能工作﹐如果檔案比較大的話﹐那麼下載時間也就比較長了﹐而不像遠端控制那樣只等待螢幕回應了。
- 哪一個比較好﹖
- 當您真的要在遠端控制和遠端連接之間做取舍的時候﹐有幾點您是必須要考慮的﹕
- 使用者設備如何﹖他們要使用什麼樣的程式來工作﹖
- 機器的硬體兼容性如何﹖記憶體容量多大﹖
- 兩種方法究竟要如何在您的網路中工作﹖
與其說﹕您在選擇遠端控制還是遠端連接﹐到不如說﹕您要選擇下載屏幕(對DOS程式來說並不算什麼大不了﹐但對windows程式來說則要多加留心了)﹔還是選擇下載檔案。無論您怎樣挖空心思﹐電信在這一點上﹐是無法和辦公室網路的速度媲美的。不過﹐您也有一個選擇就是﹕分別使用遠端控制和遠端連接進行不同的分工﹐他們並非是魚與熊掌的關係。
Modem連接
Modem可以說是在電信過程中最常使用的硬體之一﹐當然您也可以使用ISDN、xDSL、Cable Modem等設備﹐不過這些服務並不是所有地方都可以得到﹐通常只有在大城市才有﹐如果在小的鄉村地方﹐畢竟電話網路才是最普及的。
MODEM這一詞其實是由兩個詞組成的﹕MOdulator/DEModulator(調制/解調器)。它好比一個翻譯﹐將電腦的信號轉換成電話線可以攜帶的模擬信號(我們日常使用的電話線都是模擬制式的)﹐然後在另一端再將模擬信號轉換回電腦信號。不過﹐事實上並不是所有modem都可以對講的哦﹐越是高速的modem﹐越是曲高和寡。要在modem之間溝通﹐它們都必須使用兼容的調制、錯誤控制、和數據壓縮等協定﹐下面我就分別對這些協定做一個簡單的了解﹕
- 調制協定
-
一般人買modem都只關心其速度﹐比如28.8Kbps或33.6Kbps﹐甚少留意它們使用的是什麼樣的調制協定﹐只有到了56K的時候﹐我們才會關心它是x2的﹐還是flex的﹐還是V9.0的。究竟這些協定代表了什麼呢﹖正如我們剛才討論的﹐modem是用來在電話線和電腦之間進行信號轉換的設備﹐調制協定則建立起信號轉換的規則﹐ 就好像國民黨和共產黨進行談判之前﹐都先磋商好哪些項目會真的擺到談判桌上一樣﹐否則一個高唱兩國論﹐另一個文功武嚇的話﹐就什麼也談不攏了。調制協定建立起諸如﹕速度、同位檢測、和位元同步等基本規則﹐而這些因素都決定了雙方modem的數據傳輸速度。或許您也聽過下面這些modem調制協定了吧﹕
- V.32bis
- 許多9600bps的modem都使用V.32協定﹐緊接其後的一個由International Telegraph and Telephone Consultative Committee (CCITT)制定的協定被稱為V.43bis﹐則成為14.4modem的標準﹐對比V.32來說﹐V.32bis具有一下的優點﹕
- 更快﹕跑14.4Kbps而不是9600bps。
- 更聰明﹕當信號達不到14.4K的時候﹐會自己退回到1200、9600、7200、甚至4800bps的速度去。
- V.34
- 在1993年之前它都被稱為V.Turbo﹐V.34不僅應用於28.8的modem﹐也能支持33.6的速度﹐可以從33.6Kbps降到2400bps的速度。V.34一度被認為是能達到的最快modem速度了。
- V.90
- V.90的推出有點特別﹐這要先了解一下56Kx2和56KFlex之爭了﹕早在1996年﹐著名的modem廠商US Robotics 推出了一款叫x2的modem突破了33.6的極限﹐但x2不是開放技術﹐這逼使其它競爭者聯合起來開發另一個56K的標準與之較量﹐終于Rockwell的Flex標準逐漸被各廠商所擁戴﹐而且市場佔有率也迅速的擴大。然而﹐這兩個標準卻是不兼容的﹐就好像錄影帶有NTSC和PAL制式之情形一樣。這給ISP和用戶都帶來了很大不便﹐而且令成本也高漲不少﹐最後大家都認識到兩者之爭對彼此都沒好處﹐這就是V.90產生的背景了。
V.90雖然說是可以支持56K的速度﹐但在實際應用中﹐由於電話線路的限制﹐其實最多只能達到53K﹐而且﹐這僅是對下載速度而言﹐用戶端的上載速度依然維持在33.6的速度﹐因此﹐56K可以說是第一個非對稱式的modem標準了。
- 錯誤控制協定
- 您應該知道8bit構成1byte﹐而一個byte則可以做為一個ASCII字母使用﹐其實所謂的ASCII字母只不過一堆不同的bit組合而已。在modem傳輸中都是以bit來做為單位的﹐如果因為電話線噪音和其它因素影響﹐而令到數據丟失﹐那麼重組出來的bit的排列就很可能不是原來的樣子了﹐這也就是為什麼糾錯協定變得如此重要的原因了。
錯誤控制協定在技術上面非常複雜﹐恐怕超出這裡要說的範圍了﹐不同﹐有兩種主要的modem檢錯手段我們也可以略為認識一下的﹕
- 可以將所有數據都發送兩次﹐並查看兩份數據是否一致。
- 在發送前和接收後﹐使用不同的數學功能對數據中的byte進行檢查﹐查看得出來結果是否吻合。
第一種方法不是不可行﹐只是略顯迂腐而已﹐因為如果第一個數據被干擾了﹐第二個也很有可能重蹈複徹。
第二種方法看來比較可靠﹐一旦數據通過了檢閱﹐由功能所產生的額外bit就會被忽略。
通常有兩種糾錯協定被廣泛採用的﹐它們是﹕MNP 4 和 V.42﹐如果數據在公共電話網路傳輸過程中損毀的話﹐這些協定就會告訴發送端modem重發損毀的數據。
MNP﹐為Microcom Network Protocols的簡稱﹐實際上MNP有2、3、4這幾個不同的錯誤控制協定(MNP 5 則和數據壓縮一起使用)﹐而MNP 4是最廣泛使用的協定﹐甚至一度成為行業標準﹐因為除了Microcom之外也沒有其它機構開發錯誤控制協定了﹐不過這情形在V.42推出之後得到了改變。
V.42﹐它是有CCITT在1988年建立的﹐它實際上使用兩個錯誤控制手段﹕Link Access Procedure for Modems (LAP-M)是其主要的錯誤控制協定﹐不過當它不能使用LAP-M的時候還可以使用MNP 4。
- 數據壓縮協定
- 數據壓縮協定規定了發送端modem如何進行數據壓縮及接收端modem如何進行解壓的方法。當modem使用數據壓縮的時候﹐必須要有錯誤檢測的能力(以備數據在壓縮和解壓過程中損毀之需)。不過您要留意一點﹐就是使用數據壓縮不是任何時候都是最快的﹐在某些情形﹐數據壓縮甚至會拖慢傳送速度呢。
數據壓縮的協定主要有﹕MNP 5 和 V.42bis。MNP 5 揉合了錯誤控制協定 MNP 4在內﹐最高壓縮比為2:1﹐不過它有一個比較蠢笨之處是﹐對那些已經壓縮了的檔案﹐例如 .ZIP當案﹐依然還會進行再次進行壓縮﹐這樣就會毫無意義的將傳送速度拖慢下來了。
V.42bis協定是在1989年被開發的﹐可以說是一種較好的數據壓縮協定﹐除了可以對數據進行壓縮處理外﹐它還可以提供V.42的糾錯能力﹐所以您的V.42bis modem就無需同時安裝和V.42協定了。它的最高壓縮比可以達到4:1﹐而且比MNP 5更高效﹐因為它可以動態的偵測一些無用字串﹐且不會對已經壓縮過的數據進行壓縮。
雖然看上去數據壓縮是個不錯的主意﹐不過在您考慮使用數據壓縮modem的時候﹐還有幾件事情要注意的﹕首先﹐並不是所有數據都可以使用壓縮的﹐許多ZIP檔案通常都已經被壓縮過了﹐而且許多圖像格式的檔案也是如此﹐使用數據壓縮對這些檔案也無能為力﹐徒耗時間而已。如果您使用諸如winzip等軟體對好幾個檔案壓縮成為一個檔案﹐再進行傳輸﹐這在直接使用網線連接的網路來說確實是個不錯的主意﹐不過對modem而言﹐卻需要更多的時間將一份較大的檔案傳送出去﹐這樣反而比逐個逐個小檔案要更慢﹐如果您的modem使用MNP 5這樣的協定﹐它還會再嘗試一次壓縮﹐也就更慢了。
再者﹐許多modem對實際的數據壓縮評估都過份樂觀﹐例如有些modem標榜自己的傳送速度如何如何﹐其實很大成數都是將壓縮數據包括在內﹐而這些數據大部份都是一些壓縮比例較高的檔案。
- 數據緩衝
- 在使用高速modem進行傳輸的時候﹐如果您的機器是比較舊的型號的﹐很可能您的通訊口和modem的速度並不相配。電腦用來控制通訊口的軟體是鑲嵌在一個叫 Universal Asynchronous Receiver Transimiter (UART)的晶片組。通常我們會使用三種不同的UART晶片組﹕5250、16450、和16550﹐而只有16550可以支持高速的數據傳輸。如果您使用的不是16550﹐您可以有四個途徑去獲得﹕
- 您可以買一個UART晶片組來更換﹐不過這樣做一點都不容易(看看那些焊腳就嚇死了﹗)﹐所以這不是一個值得推薦的提議。
- 您可以使用軟體工具來模擬16550﹐在多數情形下一個它們應該做得到﹐不過也不便宜就是了(TurboComm曾買到$25美金)。
- 您可以可以購買帶16550的I/O卡﹐通常都會有兩個通訊口和一個列印口。
- 內置式modem﹐許多高速的內置式modem都自帶有16550的晶片組的。
除了要使用16550 UART來支持高速modem之外﹐您還要考慮另外一個題目﹐就是數據的流量控制。毫無疑問的是﹐您會希望數據從您的PC盡可能快的流向modem﹐不過問題是﹐modem通常都沒有那麼快的能力處理從PC傳來的數據﹐為解決這問題﹐我們可以使用硬體或是軟體來控制數據的流量﹐而且硬體控制是最通常被採用的方法﹐尤其是對高速modem而言。
最流行的硬體流量控制手段是CTS/RTS(Clear To Send/Requst To Send)。在連接modem和PC之間的RS232界面﹐有兩條信號線分別叫做CTS和RTS﹕發送端modem使用CTS﹐而接收端modem則使用RTS。當發送端modem可以進行數據發送的時候﹐它會通過CTS傳一個信號給PC﹐這樣PC就會將數據傳給modem﹐如果PC傳送的速度太快﹐以至modem再不能處理的時候﹐modem就會停止CTS的信號﹐這樣PC就知道該讓modem歇歇了。在接收端﹐如果PC處理的速度不夠modem傳來數據的速度快的話﹐然後PC就會停止CTS的信號﹐直到PC可以進行處理為止。
這樣的情形我們就需要為modem建立一個緩衝區﹐來接管那些還沒來得及處理的數據﹐同時要配合流量控制一起使用。
好了﹐相信您能堅持閱讀以上那些孤燥乏味的文章也真不容易﹐雖然還有很多東西沒有觸及到﹐但我也實在不想讓您打瞌睡去了。網路概論可以暫時討論到這裡﹐如果以後還有時間再做補充吧。下面要討論的其實要比以上的文章更晦澀難懂﹐如果您對它們沒什麼興趣的話﹐也不必細究﹐只挑一些您認為必要的部份來看就是了﹐不過關于IP地址部份﹐我還希望您能夠多了解一下的﹐因為在管理IP網路的時候會變得很重要。

www.study-area.org © 2001
Netman 網中人
Last Updated: March 28, 2000
|