我們把帶針的接口叫做"公"﹐而把帶孔的那端叫做"母"﹐相信這樣很容易分辨吧﹖至於 為什麼要這樣稱呼﹖相信不用多解釋吧﹗ ------------ 好了﹐到這裡相信我們都知道電腦是怎樣運作的了﹕它會吃會拉(輸入和輸出)﹐它還有 腦子(CPU)﹐還要有記憶(Memory)才工作。 ------------ cache的緩衝模式還有兩種 :Write Through 和 Write Back。究竟它們的工作模式有什 麼分別呢﹖前者是按順序的接一個資料就傳遞一個資料出去﹐而後者則是先將資料按一 定數量接受下來﹐然後將相同地址的資料一次過整批送出。好比一部電梯﹐如果按先入 先出的規矩﹐即在write through模式下﹐要是第一個客人去3樓﹐第二個去2樓﹐然後 第三個也是去3樓的話﹐這電梯就得先到3樓﹐然後2樓﹐然後再去3樓﹔但如果在write back 模式下﹐電梯先到2樓把第二個送出去﹐然後再到3樓把第一和第三送出去﹐效率 顯然快多了。 ------------ 每個設備都有自己的IO地址。就好像自家的門牌一樣﹐只能是唯一的﹐否則郵差就不知 道該送給誰了。 ------------- 那麼IRQ又是什麼東東啊﹖IRQ其實是英文Interrupt Request的縮寫﹐interrupt就是中 斷的意思﹐這好像不好理解。不過如果想像一下﹕不管您忙個半死或是在發呆﹐要是忽 然有電話進來找您做事情﹐就是interrupt了﹐因為“中斷”了目前的狀況。有了這個 概念之後﹐下面就跟您講一個電腦故事(純屬虛構)﹕ 話說CPU在剛開始的時候很神氣﹐自以為精力旺盛﹐每隔一定時間到處問其它的周邊設 備﹕“您有工作要我處理嗎﹖”﹐一個一個的輪著問下去﹐周而復始。如果週邊有東西 要處理﹐就回答﹕“啊~~您來得正好﹐這些都是孝敬您老人家的啦﹗”﹔要是沒有東西 要處理﹐就回說﹕“您老真是忙﹐最好不要增加您負擔啦﹐您還是問問下一位吧 ^_^ ”。這樣的情形是CPU一天到晚都沒有空(雖然它也最怕閑)﹐不過要是數據一多起 來﹐CPU既要處理運算又要到處問周邊﹐也實在應付不來﹐周邊們也就開始投訴﹕“您 這老頭怎麼這麼慢啊﹖害我等這麼久﹐我還有一大堆東西等著呢﹗”於是矛盾就產生 了。 俗話說路不轉人轉嘛﹐大家於是坐下來商量一個法子來解決這個矛盾。CPU首先發難﹕ “以後我只處理運算好了﹐再也不去求您們、看您們的臉色啦﹐我忙都忙死了還要受您 們氣哦﹖﹗”說完翹起二郎腿抽煙去了。這下周邊們可就緊張了﹐都過去求CPU老人家 給條生路﹐否則它們的飯碗也難保了耶。最先是系統時鐘求說﹕“CPU老哥﹐行行好 吧﹐我也知道您老很忙﹐以後也就不要勞動您老來找我啦﹐我有事情自會登們拜訪的 啦。不過﹐您得給個通道我才行啊﹐要不怎麼找您啊﹖”CPU白了它一眼說﹕“憑什麼 要給您開這後後門啊﹖”系統時鐘就說﹕“哎呀﹐您老也不是不知道啊﹐如果沒有我﹐ 大家都不知道時間﹐也都不會幹活啦﹐所以我是一定要這麼一個通道的﹐要不然還是您 來找我好了~~”也一副耍賴樣子。CPU想想也倒有道理﹐就說﹕“好吧﹐不過也不用您 親自送來啦﹐我開一條專線給您﹐就像克林頓和江澤民那種﹐只要這電話一響﹐我就知 道是您了。然後等我有空就過去拿好了﹐您這麼慢吞吞的我也受不了啦。”於是CPU給 系統時鐘開了第一條專線﹐號碼為“0”。 哎呀這下其餘的周邊都忙著討好CPU、紛紛要專線號碼。鍵盤是第二個發言的﹐因為要 輸入指令都要靠它嘛。CPU也就把第二條專線給了它﹐號碼為“1”。然後其它的也一窩 蜂的湧來要號碼﹐CPU一時也應接不暇﹐胡亂的塞給它們一個號碼﹐結果一號通訊口 (COM1)得到了號碼4﹐COM2得到了3﹐硬碟得到了5﹐軟碟得到了6﹐列印口得到了7。同 時CPU也公佈了游戲規則﹐如果專線同時響的話﹐越小號碼的越優先處理。 因為參加這次的會議也只有這麼多﹐於是皆大歡喜散會了。 不過好景不長﹐因為後來加入的周邊越來越多﹐專線明顯不夠用﹐但專線總機就只有這 麼8條線﹐沒法子﹐增加多一台總機﹗剛好專線2還閒著﹐就用來接第二台總機好了﹐另 一頭在第二台總機那邊接到9號去了(其實應是1號﹐因為號碼是從0開始而且是延續第一 總機的﹐所以就變成9了)。這樣一來﹐按照前面定的規矩﹐從第二總機進來的(因為2號 線都會響)就比3號以上的號碼更加優先了。考慮到硬碟越來越忙(既要裝作業系統、又 要裝檔案、又要當虛擬記憶體...)﹐於是把硬碟從5號接到14號去﹐另外還預留了15號 給第二個IDE (還記得IDE硬碟怎麼連接嗎﹖) 同時也給一些新用戶分配了號碼﹕系統即 時鐘用了8號、數值資料處理器用了13號。這樣5、9、10、11、12、(有時15)暫時都空 著﹐等有需要的時候看情況分配給周邊設備。但這裡有點巧妙的是﹕2號和9號其實都是 同一個號碼﹐您不能分別把2 號給A然後9 號給B﹐這樣是不能工作的﹐也就是所謂的 IRQ衝突了﹔要是同時把3 號都給COM2和網卡﹐更明顯是衝突的﹐要麼把網卡改到其它 還閒著的號碼去﹐要麼乾脆把COM2關掉才可以解決這問題。 從那時候各自也相安無事﹐誰要有東西要處理﹐就撥通專線通知CPU有資料傳送﹐然後 CPU就把資料拿來處理。這裡的專線請求就是IRQ了﹐專線號碼就是IRQ號碼﹐專線總機 就是IRQ控制器。相信現在容易理解了吧 ^_^ ------------- 對一個檔案來說﹐路徑只有一條﹐也就是說﹐在同一個目錄裡面不能有兩個相同的檔案 名稱﹐如果硬是用相同名稱的話﹐則可以放在不同的目錄裡面。就好像人名一樣﹐在自 己的家裡面﹐父母給您起了一個名字﹐那麼這名字就不能給其它第弟妹妹了﹔但您不能 限制別的父母給他們的孩子用您的名字哦﹐如果真那麼巧一樣姓名的話﹐那麼要區分您 和他/她﹐就要說明是誰家的孩子才知道了。 -------------- 為什麼我們需要為某些裝置安裝驅動程式呢﹖事實上電腦上的每一個設備都需要有自己 的驅動程式才能使用﹐只不過作業系統已經帶備了大部份的驅動程式了。驅動程式英文 為“driver”﹐也就是“司機”的意思﹐不管是小汽車﹐大卡車﹐火車﹐輪船﹐飛機﹐ 還是太空穿梭機﹐駕駛它們的人就是driver了。但不是每一個driver都會開全部這些工 具的哦﹐就算是開汽車﹐職業車手和我們這些普通司機開起來就大有分別。在電腦的設 備上也如此﹐不是任何一個driver都可以用來驅動所有設備的﹐尤其是那些非標準設 備﹐您最好就是使用廠家提供的driver了。雖然有些所謂的generic driver也可以驅動 大部份相類的設備﹐就算不是專業車手﹐到賽道上還是可以開車的﹐但速度和安全嘛﹐ 就可想而知了﹐當然﹐這和汽車的可控性和車手的車技也是有著莫大關係啦。 ---------------- 網路邏輯形態 這種形態講述的是信息如何在網路中行走。我們不妨舉個例子來模擬一下﹐好讓我們更 好理解邏輯形態﹕ 假如您有一份長達400頁的文件由台南送到台北﹐而且必須最遲明天送到﹐那麼您很可 能會使用網中人快遞服務(假設已經成立 ^_^)了。不過要處理這個傳送﹐您還必需要使 用網中人快遞的信封和地址標籤。同時﹐您必需提供發信人和接收人的地址﹐當然少不 了您那400頁文件啦。 在您的網路上﹐從一台電腦傳送數據到另一台電腦﹐也需要相同的資料﹕它需要您的發 送端地址、接收端地址和數據數項資料。正如剛剛所述﹐這些資料都包含在封包裡面 了。邏輯形態就接管著如何將這封包在網路中傳輸了。 1﹐首先﹐邏輯形態會判定這個封包的格式﹐一如您必須按網中人快遞的地址標籤格式 來填寫地址一樣。您必須使用網路能夠明白的地址格式。 2﹐邏輯形態會判定有多少數據需要攜帶﹐一如網中人快遞也有規定一個標準信封只能 最多裝30頁文件一樣。 3﹐然後邏輯形態會判定使用什麼方法來追蹤在網路傳輸的封包。有些邏輯形態則不會 追蹤封包而假設一切無誤﹐有些則會對路徑中的每一個步驟進行追蹤。 ------------ 這個邏輯bus形態是如何工作的呢﹖很簡單﹐就是每次只能有一個節點在網路上傳遞數 據給其它節點﹐其形式是通過對整個網路進行廣播(broadcast)。然後其它接點收聽到 廣播之後﹐就看看數據是否傳個自己的﹐如果是﹐則接收下來﹔如果不是﹐則略過。每 一節點都有一個自己用的48bit的地址(也可以稱為Node ID﹐也就是在前面說的網卡地 址了)﹐而每一個在網路中傳輸的數據都是以這個地址為傳送和接收依據的。 當任何一個節點進行廣播的時候﹐所有的其它節點都收聽得到。其情形就像我們上課一 樣﹐老師說﹕“第幾排第幾號同學出來拿作業﹗”雖然全班同學都聽得到﹐但卻只有一 位同學可以拿到。Bus形態也和這種形式很類似﹐當然具有更嚴謹的一套法則啦。 ----------- 何為頻寬呢﹖沒得解釋﹐就是頻寬﹗而且越多越好。如果要形象地理解頻寬﹐我們可以 拿一條高速公路來做例子。如果此公路是四線行車的﹐那麼汽車就好比是數據﹐這樣就 有四條傳輸數據的通道了。如果在交通在非繁忙時候﹐每輛車以100KMph行走輕鬆有 餘﹐但在高峰期呢﹖就跟台灣的高速公路差不多了。這情形跟網路的交通是一樣的﹐解 決方法有兩個﹕一是在高峰期減少封包的傳輸﹐例如利用工作排程將一些比較繁重的網 路傳送工作安排到晚上或非繁忙時間﹔另一種方法就是增加頻寬了﹐跟我們的MODEM從 33.6Kbps換到56Kbps一樣。 而頻寬的分割方式也有兩種﹕一種叫Broadband﹐另一種叫Baseband。再以高速公路為 例﹕前者將整條公路併成一條線﹐這樣可以容許比較大載量的卡車通過﹔後者則將公路 分成數條行車線﹐可以允許幾部小車一次通過。如果貨物來到公路一端﹐使用 Broadband﹐我們就用大容量的卡車﹐一次出發一輛的運送﹐不管誰的貨物﹐也不管貨 物多大﹐都要排隊輪候﹔如果利用Baseband﹐我們就用小點的車﹐分配給各人一條車道 (但卻不可以轉換車道哦)﹐這樣排隊的人就比較少了。這兩種方式各有其優缺點﹕如果 貨物都比較大﹐而且目的地都相同的話﹐Baseband比較有效﹔如果貨物都比較散﹐而且 也送到不同的地方去﹐則Broadband有效。但是如果貨物有時候多﹐有時候少﹔有些人 多貨﹐有些人少貨呢﹖就變得很複雜了﹕如果用Broadband﹐那些多貨的人﹐也要等前 面那些少貨的先發送走了才輪到他﹐但少貨的人卻可以早點完成運輸﹔如果使用 Baseband﹐多貨的人就不用等少貨的人﹐但少貨的人也比較晚完成運輸﹐而且要是多貨 的人不多﹐那麼空出來的車道也就浪費掉了。 凡此種種﹐都要視乎情況而定﹐但車道一旦劃好了﹐要改就不可能了。 ------------ 工作站對網路廣播之前﹐都會先傾聽一下有沒其它人在使用網路﹐如果聽起來很安靜﹐ 則它會發送廣播。但要是網路上仍然嘈嘈的呢﹖(這個情形就是bus形態最擔心的)﹐這 時候工作站就需等待了。 假如節點A和節點B相隔得太遠的話﹐當他們傾聽的時候可能都還沒聽得到對方有話要 說﹐就都同時把封包送出去﹐這就是所謂的碰撞(collision)了。如果當一個碰撞發生 了﹐就會在網線產生一個頻率漣漪( frequecy ripple)。如果第一個節點監測到有這樣 的 ripple ﹐它就會發出一個高頻信號去清除所有其它信號。這個信號告訴所有節點碰 撞已經發生﹐這樣全部節點都不會再發送封包了。這時候﹐每一個節點都會隨機的等待 一段時間再重新進行廣播﹐總共可以進行16次嘗試大家才會最終放棄。不過其情形也不 會好到哪裡﹐因為在大家等待之後﹐彼此都有封包要發送﹐誰都想先發送自己的封包﹐ 如果節點越多﹐距離越長﹐發生碰撞的機會也就越高。 情形就象上課時您要發言﹐得先看看有沒有其它同學在發言﹐如果已經有人在說話了﹐ 那你就先等他/她講完再舉手。要是兩個人都同時舉手﹐老師就會宣佈重新再舉手﹐這 時候大家可以在一秒鐘之內再舉手﹔要是還是一樣﹐那麼可以再於兩秒之內任何時段舉 手﹔再來就4秒、8秒、16秒....的延續下去﹐要試過16次都還一樣﹐沒辦法了﹐大家都 不要說好了。 在網路上﹐我們稱這樣的方法為 CSMA/CD (Carrier-Sensing Multiple Access with Collision Dectection)。 --------- 我們還記得在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。 ----------- 物理地址我們是無法更改的﹐而且您也很難找到兩張相同物理地址的網路卡﹔但邏輯地 址則是由網路管理者設定。就好比您不能將公司門牌給改了﹐但您喜歡給您的公司起什 麼名字都可以﹐只要不會和其它公司搞混了就行。 ------------ 當您使用Word的之後﹐要開啟一個在網路磁碟上面的檔案﹐將會如何呢﹖從Word的角度 去看﹐它根本不知道有網路這回事﹐它只知道有一個和多個像A﹕、B﹕、C﹕這樣的磁 碟。就像您吃麥當勞的時候﹐您不用知道漢堡包是怎樣製作出來的﹐您只需知道魚柳 包、雞柳包和拿到什麼樣的Kitty貓就是了。 ------------ 您或許可以這樣想象﹕NIC驅動程式負責和NIC之間的溝通且儘力討其歡心﹔在client上 面的redirector和在server上面的mounter﹐則和程式溝通﹐也極盡體貼之能事﹔然後 通訊協定﹐則出盡法寶綴合NIC驅動程式和redirector(或mounter)﹐並建立起網路通訊 的交通規則。 ------------ 程式設計者建立的網路應用程式﹐都要適應於網路給應用程式的一套指令﹐這些指令就 是所謂的 API 了。 如果您懂得開汽車的話﹐您一定知道當初學開車的時候是先學如果踏油門、如何踩煞 車、如何轉向等基本動作。我們可以將這些動作看成是一些“原始命令”﹐通過這些命 令我們就可以做出將汽車倒出車庫然後開到目的地﹐雖然學車的時候是沒有諸如“倒出 車庫”的動作。那麼我們就可以將API當成是那些學車的“基本動作”的操作界面。 這樣﹐我們就算開 BMW 或 Benz 都知道如何操作了﹐但您未必會開游艇哦﹐因為汽車 和游艇 API 是不同的。當然﹐如果有台汽車的油門是在左邊、煞車在右邊、離合器卻 在中間、不用方向盤而是用搖竿﹗我們也可以說這台車的 API 是不同的。 ---------- 其實bridge是很簡單的﹐就像一座橋架於不同的網路之間﹐您可以將它想象成兩個國家 之間的邊境橋樑﹐而兩國都使用著自己各自的語言﹕一邊說Token語﹔另一邊說Ether 語。由於兩國過從甚密﹐然語言又互不相通﹐所以他們就聘請了一個傳譯員坐在橋中 間﹐再另外聘兩個跑腿各站兩邊。當說Token語的跑腿來告訴傳譯員他們有信息傳到另 一邊﹐傳譯員首先將地址翻譯成Ether語﹐再將信息重新裝進Ether國的信封﹐然後叫說 Ether語的跑腿將信送到該地址去。傳譯員一點也不在乎信是從哪邊過來的﹐他只關心 的是地址準確就行。 為什麼我們說﹐使用橋的時候網路之間要使用相同的上層協定呢﹖您可以將這些上層協 定看成是語言規則。無論是說Token語還是說Ether語﹐他們都使用相同的方法﹕用口來 說﹗假如Token國人用畫畫來溝通﹔而Ether國人卻用跳舞來溝通﹐(也就是說他們使用 不同的上層協定)﹐那麼﹐這個傳譯員也只有乾瞪眼的份兒了 ------------ 在使用bridge的時候﹐它的傳譯員會要求所有信息先得經他才能傳出去﹐就算是同一國 度裡面的人民相互分享資料﹐傳譯員也要先檢查一下﹐確定是否要進行翻譯傳遞。這方 面﹐router比bridge聰明些﹐也不像bridge那樣勞碌。在router上面的傳譯員﹐會先問 跑腿﹕“這資料要送哪裡去的啊﹖”如果資料是傳遞到相同的國度裡去﹐router就根本 無需理會﹐而讓資料按其正常的方法傳遞﹐就如根本沒有router存在一樣。只有那些需 要翻譯的資料﹐router才會理會。簡單來說﹐bridge會對所有信息進行檢查﹐看看是否 要翻譯傳遞﹐而router僅對那些需要翻譯的信息進行處理。 ------------ 如若bridge和router使用的傳譯員僅能夠翻譯語言﹐gateway這個更高級的翻譯卻能完 全的將各自不同的交流模式進行翻譯﹐並能讓對方可以理解﹐不管他們使用的是畫畫還 是跳舞。 ---------- 概念上﹐tunneling和郵局系統差不多﹕如果您使用公司內部便條傳一個memo給同辦公 室的同事﹐只要填上發信人和收信人﹐然後交由秘書就可以﹔但如果要經過郵局寄信給 分公司的某經理的話﹐則不能使用這樣的格式了。因為郵局不知道如何處置這便條才 好﹐所以您必須將便條裝進郵局標準信封(也就是所謂的雙方都容易理解的格式)裡面﹐ 然後郵局將信件傳(路由)到分公司經理﹐然後他把郵局信封(路由信封)撕掉﹐就可以得 到您的便條了﹔假如便條是用英文寫的﹐而那經理卻只識中文﹐那麼就要找秘書給翻譯 (數據轉換)了。 ------------ 或許我們可以用郵局系統來更形象的看看封包header是怎樣工作的﹕ 當您有一份報價單(data)要寄給海外的客戶﹐將之交給秘書之後﹐秘書會幫你把信封 (header1)打好﹐然後貼好郵票投進郵筒﹐然後郵局將信件分好類﹐再把相同地區的郵 件放進更大的郵包(header2)附運﹐然後航空公司也會把郵件和其它貨物一起用飛機貨 櫃(hearder3)運達目的機場﹔好了﹐目的地機場只接管不同飛機所運來的貨物﹐然後把 郵包(header2)交給對方郵局﹐郵局把郵件分好類之後﹐把信封(header1)遞送到客戶那 裡﹐然後客戶打開信封就可以看到報價單(data)了。 由此可見﹐網路的層級分工﹐其實跟我們日常的生活模式也有許多相似的功能﹕ 上例子中的飛機好比是“實體層”﹐我們當然也可以選擇使用輪船或汽車等運輸工具﹔ 我們也可以把機場管理局﹐或碼頭、車站的管理機構看成是“資料連接層”﹐他們會規 定了不同的交通工具使用的不同規則﹐例如﹕班次、泊位、進場/出場時間間隔、接管/ 分發貨物、等等﹔ 郵局可以說是“網路層”﹐到底使用那個機場、港口、車站﹐或是貨物經由哪條路徑傳 遞最迅速﹐這些都由郵局來管好了﹔ 要是您寄的資料有一本書那麼厚﹐但郵局一次最多只能幫你寄十頁﹐那麼您就得將資料 拆開﹐編好序號﹐分裝在好幾個信封裡﹐再進行郵寄﹐這和“傳送層”的“打包”功能 差不多﹔如果您同時還和好幾個客戶洽談好幾樣事務﹐您也得分辨出哪些資料是屬於哪 個客戶的﹐“傳送層”也有類似的追蹤功能﹔ “會談層”相信也不難理解﹐先假設您和客戶之間的溝通都必須使用郵件(沒有電話﹐ 傳真﹐更沒有email)﹐您總不會茂茂然的就先把報價單寄出去吧﹖您會先征詢對方的同 意﹐才會開始寄出去﹐然後您可以告訴對方報價單全部寄送完畢﹐那麼得到對方確認之 後﹐就可以說完成一次“會談”了﹔ 如果您的秘書聰明能幹﹐還能夠幫您翻譯各國語言和文件格式﹐那您以經有了“表現 層”了﹔ “應用層”更不用多說了﹐您和您的客戶不會只收發報價單吧﹖還有很多合同啦、預算 啦、策略啦、邀請啦、等一大堆東西﹐可能除了生意上的﹐間或還會聊聊男人和女人呢 ! ----------- 為什麼我們需要為IP劃分等級呢﹖這是為了管理上面的需要。如果您要組建一個單一的 IP網路﹐那麼您得分配相同的Net ID給所有主機﹐而各主機的Host ID卻必須是唯一 的﹐也就是說沒有任何兩個Host ID會是一樣的。如果您的網路還要連上internet或其 它網路﹐那麼您使用的Net ID也必須是唯一的﹐否則就會造成衝突了。好比您家的電話 號碼﹐如果是1234567(Host ID)的話﹐那麼在相同區號(Net ID)裡﹐其他人將不會再使 用這個號碼﹐然而﹐你不保證在其它區號裡面也有1234567這個號碼哦﹔但如果台北使 用了區號02的話﹐台南就不能使用02了。無論如何﹐整個區號加電話號碼必須是唯一 的。同樣的道理﹕整個IP地址(Net ID + Host ID)在internet上也必須是唯一的。有一 個很特別的Net ID﹕ 127 (即二進位的01111111)﹐是保留給本機回路測試使用的﹐其 不可能被運用於實際的網路中去。另外在指定Net ID和Host ID的時候﹐換成二進位的 話﹐不可以是全部為0﹐也不可以是全部為1。因為當Host ID全部為0的時候﹐指的是網 路本身識別碼﹔而全部為1的時候﹐則為全域廣播地址﹐即發送廣播封包使用的地址。 ------------- 如果您喜歡看二次世界大戰間諜片的話﹐應該知道什麼叫密碼電報和公碼電報吧﹖公碼 電報就是使用一套公認的規則﹐將資料轉換成特定的電波信號發送出去﹐然後接收到信 號的那一端也使用公認的規則將信號還原成資料。而密碼電報呢﹖是使用一套只有發送 者和接收者才知道的規則來發送信號和將信號還原。雖然發送出去的電波任何人都接收 得到﹐但如何還原資料﹐也就是如何破解這個秘密的規則﹐就成了反間諜的一項重要任 務了。聞說日本偷襲珍珠港之前﹐任何飛機都不能發送通訊﹐也就是為了避免遭美軍攔 截到信號從而破解﹐因而偷襲相當成功。不過﹐其策劃者山本五十六後來也是因為美軍 破解了日方的密碼電報﹐獲知其行蹤﹐在太平洋上空將其飛機擊落。 那麼﹐我們在網路傳遞資料的時候﹐如果沒有加密的話﹐就好比是公碼電報。不過﹐我 們也可以和接收者擬定自己的一套“密碼電報”﹕我們可以用自己的規則將資料加密後 才傳遞出去﹐然後﹐利用秘密的管道將規則傳遞給對方﹐這樣﹐資料的保密性就大大提 高了。我們稱這樣的加密方法為“單一鍵值加密”。 ------------- 在使用“公用鍵值加密”的時候﹐任何人都可以使用公開的鍵值進行加密﹐但需要配合 另一個私有鍵值同時工作才能將資料解密。其情形就好像這樣﹕ 我打制了一把只有自己才擁有的鎖匙﹐另外再打制另外一把鎖匙掛在門口﹐任何人都可 以拿去複製。 然後郵局提供一個標準鐵罐來傳遞資料﹐這鐵罐本來是沒有上鎖的。 如果朋友想傳遞資料給我﹐他就先把我掛在門口的鎖匙拿去複製﹐然後用複製好的鎖匙 將鐵罐鎖上。 一但鐵罐鎖上了﹐只有用我的私有鎖匙才能夠打得開。除非是開鎖專家﹐別人休想看到 裡面的東西。 這樣﹐傳送者和接收者就無需事先約定好加密的鍵值了﹕任何人都可以將公用鍵值公佈 在網路上﹐任人下載﹐然後用之加密資料送來﹐也只有知道私有鍵值的人才能夠將資料 還原。不過﹐這個時候﹐保護好私有鍵值不被盜竊﹐就成了最重要的保密工作了。 ------------- 好了﹐既然我們已經可以基本操控這台 Linux 機器之後﹐就要對之動點手術了﹐讓它 更適合自己的環境。就像喜歡飆車的朋友﹐總免不了要對心愛的座架改裝改裝一樣。 要改車﹐除了要改彈簧、輪子、氣喉、擾流等﹐要想車子真正能發揮性能﹐當然免不了 改引擎啦。下面我們進行的核心編譯﹐就是為 Linux 改引擎了。之後我們還要裝 Xwindows等等﹐那是座椅、方向盤、表板等這些‘內籠’改裝了。這些修改﹐都一一顯 示了使用者的個人風格﹐而且也有許多產品可供選擇﹐就如除了“momo”我們還可以選 擇“無限”一樣。 ------------ daemon 又怎麼知道哪個請求該傳給誰呢﹖如果您沒忘記我們在“網路基礎”中討論 TCP 封包時提及的 ip 和 port 的話﹐應該知道 ip 是門牌﹐port 是門口。但我們不 妨可以這樣想象﹕一個門牌可以有好幾個門口哦~~~。 如果沒有 daemon﹐每一 service 各佔一個門口﹐它們得自己聽有沒有人來敲門。有了 daemon 之後﹐所有門口都由 daemon 來聽﹐各 service 在客廳上打麻將﹐只有當 daemon 呼叫某某 service ﹐才會去處理工作。如果 daemon 打瞌睡了﹐或偷會情人去 了﹐那麼各 service 就一直打麻將下去....當然﹐也有些 service 還是愛自己坐在門 口的﹐因為外面的美女特多~~~ -------------- |