熱點推薦:
您现在的位置: 電腦知識網 >> 電腦常識 >> 正文

網絡基礎:通訊協議

2013-11-11 13:41:59  來源: 電腦常識 

  由於網路的迅猛發展﹐出現了許多供網路使用的軟體和硬體﹐為了讓它們都能夠有效的溝通﹐我們需要建立一些規則
  在這一章裡面﹐我會向大家介紹目前比較通用的網路通訊協定﹐和模擬數據是如何的從一個節點傳送到另一個節點﹐從功能上面看看通訊協定的定義
  何為通訊協定﹖
  一個比較好理解的講法是﹕通訊協定就是一些標准和規則例如﹐我們看到紅燈就要停綠燈才可以走者就是一種協定了若是彼此使用不同的協定那就會造成混亂澳洲(或英聯邦)開車考左行使台灣則靠右只要所在國家不變那麼該協定就可以運作但是當到達協定不一樣的國家就得進行協定上的轉換了否則不出車禍才怪!
  在網路通訊中如果主機 A 要將一個 packet 送給主機 B﹐它們就必須使用相同的通訊協定
  LAN 的工作就是讓應用程式利用網路獲得﹑管理﹑和安排數據每一個節點都透過一張網路卡(NIC Network Interface Card)連接到網路﹐再由此和其它的節點溝通在每一個獨立的工作站上面﹐已經安裝了一些應用程式﹐如 Word﹑Outlook 等這些程式如果想使用網路上面的資源﹐比如在伺服器上面的數據﹑網路印表機﹑電子郵箱等等﹐會使用網路軟體(network software)去和 NIC 溝通﹐然後 NIC 再和網路上的其它節點溝通所有這些信息都要經過轉換﹐就必須要使用通訊協定來確保所有這些參與者﹐能夠彼此理解對方和進行有效的溝通
  正如您所見到的﹐在節點與節點之間﹐最先的交流是在 NIC 的層次上當數據從一個節點通過 NIC 傳送到另一個節點之後﹐數據再從 NIC 傳送到網路軟體而這個網路軟體就是我們所說的傳輸通訊協定(Transport protocol)了﹐在雙方的機器上都會有這些 transport protocol對於這個所謂的網路軟體﹐我們可以從好些不同的角度去理解﹐不過我們可以簡單的從三個層次去看﹕
  第一﹐也是最容易的理解的﹐就是 NIC 的驅動程式
  它負責處理網路卡和傳輸協定之間的溝通網路卡的廠家都會提供一支驅動程式讓您使用一些特定的協定﹐您可以使用同一張卡來供不同的作業系統使用只要這張網卡在物理上是兼容的﹐那你就可以在作業系統上面使用了換而言之﹐您大可不必只依賴一個牌子的廠家當然﹐您不能將 Ethernet 網路卡當 Token Ring 來使用
  我們也知道要讓網路卡工作﹐除了要使用正確的驅動程式之外﹐您還得要確定 IRQ 和 IO 要正確另外﹐在網路卡上面﹐還有一個由 組十六進位數字組成的 bit 的物理位址(Physical Address)﹐也叫 MAC(Media Access Control) Address 或 Node ID﹐等名稱﹐相信我們前面也聽過數次了這個位址其實分為兩個部份前面三組數字為 Manufacture ID﹐也就是廠商 ID﹔而後面的三組是 Card ID如果我們見到一張卡的 MAC 位址是﹕CCD﹐那麼我們可以知道這張卡是 Com 的﹐因為 C 就是 Com 的ID透過這兩組 ID 我們可以在實體上區分各自的網路卡理論上來說全世界沒有兩張卡的 MAC Address 是相同的而且我們也不應去修改它
  然後﹐基於這個物理位址﹐我們就可以把邏輯位址捆綁於其上物理位址我們是無法更改的﹐而且您也很難找到兩張相同物理位址的網路卡﹔但邏輯位址則是由網路管理員來設定就好比您不能將公司地址門牌給改了﹐但您喜歡給您的公司起什麼名字或搬到別的地址去都可以﹐只要不會和其它公司搞混了就行
  如果使用不同的傳輸協定﹐邏輯位址的格式也不相同(後面我們會就會講到這問題了)但無論是物理位址還是邏輯位址﹐要在網路上面溝通的話﹐就必須不同﹐否則就是所謂的位址沖突啦
  下面我們以 IPX 協定為例子認識一下邏輯位址﹕
  · 內部網路位址(Internal Network Address)
  簡單地說﹐internal address 是用來識別每一台機器是很重要一點是﹐這個內部 IPX 號碼在同一個網路中﹐對每一台機器來說必須是唯一的例如 Novell NetWare 使用內部 IPX 號碼來識別網路中的伺服器﹐當您安裝 NetWare Server 的時候﹐您會被問及接受或更改一個隨機產生的內部 IPX 號碼﹐然後這個號碼就成了該 server 的 ID 了當您從工作站中輸入 slist 命令﹐您就可以看到每一台 server 的 ID 都被列出來
  · 外部網路位址(External Network Address)
  這是用來識別一個網路或一個在網路中的網段(segment)用的如果在同一個網路上面同時有兩台 server 出現﹐那麼它們就必須使用相同的 external address 了這個 external address 好比是用來識別所有的 server 在哪裡在 Novell Netware 裡面﹐只有 Server 才需要設定 external address ﹐工作站使用的是它登錄所在的 server 的 external address
  一個完整的 IPX 位址會是這個樣子的﹕CFDB : EAID﹐在 前面的部份為 external address﹐而後一部份則為 internal不過這樣設定也有一個潛在的危險﹐如果您在安裝 Novell server 的時候一不留神﹐接受了程式自選的 External Address﹐那樣就很可能不能和其它 server 溝通了﹐而且在接下來的安裝中﹐您會被諸如 wrong router address 等錯誤信息煩死﹗程式通常也可以提示您正確的號碼﹐但如果您有兩張網路卡在上面﹐您就要自己設定了如果您的號碼輸入錯誤﹐您或許不可能修改系統的 AUTOEXECNCF 檔案﹐而 external 和 internal 位址都包括在這個檔案裡面﹐所以務必小心﹗
  第二在網路處理程式的另一端﹐需有一個重導向(Redirector) 的軟體
  我們知道在單機作業模式下﹐當程式呼叫檔案 IO 的時候﹐會由作業系統接管這個請求﹐然後再傳給 BIOS﹐再到硬體那裡如果當程式呼叫的檔案 IO 為網路位址的時候﹐那麼 redirector 就會接管這個請求﹐而重新導向到網路上面去﹐把請求交給對方機器
  例如﹐當您使用 Word 的時侯﹐要開啟一個在網路磁碟上面的檔案﹐將會如何呢﹖從 Word 的角度去看﹐它根本不知道有網路這回事﹐它只知道有一個和多個像 A﹕﹑B﹕﹑C﹕這樣的磁碟就像您吃麥當勞的時候﹐您不用知道漢堡包是怎樣制作出來的﹐您只需知道魚柳包﹑雞柳包和拿到什麼樣的 Kitty 貓就是了Word 在設計上並不是應用於非本地磁碟上的﹐當要使用存儲在網路上面的數據的時候﹐就必須有一種軟體能夠以磁碟代號的形式告訴 Word 才行所以﹐如果您告訴 Word 去一個在叫 FILESER 的伺服器之 DOC 目錄下面找檔案﹐那麼 redirector 軟體就會接管這個請求了
   
  然而﹐redirector 在這個網路軟體集團裡面﹐也只是其中一個角色而已﹐要真正能夠拿回資料﹐我們還得需要另一角色的配合﹕ Redirector 只是工作在 client 上面﹐而在 server 那邊﹐還必須有一個檔案系統(File System)﹐或曰 mounter﹐來接應 redirector 的請求
  在網路世界中﹐有許多種這樣的 file system﹐最出名的有 Novell 的 NetWare File System﹑Unix 網路的 Network File System (NFS)﹑以及 Microsoft 的 CIFS (Common Internet File System)在 client 端的 redirector 必須要和在 server 上面的 file system 兼容(使用相同的協定)﹐否則 client 也只能望 file 興歎而已
  第三終於來到這章的戲肉了﹗出場的就是通訊協定﹐也就是節點和節點之間在網路上搬運數據的方法
  我之所以將這三個層次的中間部份留在現在才說﹐是因為它是最抽象的您或許可以這樣想象﹕NIC 驅動程式負責和 NIC 之間的溝通且盡力討其歡心﹔在 client 上面的 redirector 和在 server 上面的 mounter ﹐則和程式溝通﹐也極盡體貼之能事﹔然後通訊協定﹐則出盡法寶綴合 NIC 驅動程式和 redirector (或 mounter)﹐並建立起網路通訊的交通規則
  正如前述﹐通訊協定只是一些標准和規則而已﹐而這些規則令到交流的融合性得以標准化就如我們不能離開一些經已認同的規矩去使用道路一樣﹐我們的網路也需要一些共同的溝通語言﹐才能讓所有機器相互交流而不至於混亂
  LAN 和 LAN 之間的通訊也一樣需要一些網路語言﹐所以它們都需要有語言大師的本領才行事實上﹐網路語言有多種多樣﹐由於它們在設計之初只為了應付不同的工作﹐而且它們大部份都從來不考慮要和其它網路兼容的傳輸協定雖然可說琳琅滿目﹐然而不幸得很﹐各自的廠商都有各自的一套偏好但又非常幸運的是﹕大部份新的網路作業程式都支持超過一種協定﹐可以和不同的作業系統溝通﹐比起以前獨沽一味的情形的確容易多了
  下面我們就淺略的浏覽一些您將會在網路上運用到的通訊協定
  NetBEUI
  讓我們回到 IBM 最初進軍個人電腦網路的時代﹐他們當時的確需要一個很基本的網路通訊協定﹐但他們並不打算用此來建構大型網路﹐僅僅供數十台電腦甚至更小的網路而已基於這個訴求﹐就誕生了Network Basic Input/Output System﹐或稱 NetBIOS
  NetBIOS 其實只有 個命令(command)來讓網路的電腦能夠建立﹑維持﹑和使用連接服務不過 IBM 在不久後又再推出了 NetBIOS 的延伸版本﹕NetBIOS Extened User Interface﹐或稱 NetBEUI﹐基本上是 NetBIOS 的改良版本而已然而﹐NetBIOS 和 NetBEUI 終究是不同的﹕NetBEUI 事實上可以說是一個傳輸協定﹐而 NetBIOS 充其量只是一組命令來讓系統可以使用網路而已﹐在技術角度來看﹐它是一個 Application Program Interface (API)關於 NetBIOS 與 NetBEUI 的技術分歧請參考
  Netbios Network Basic Input/Output System Protocols
  NetBios NetBEUI NBF SMB CIFS Networking
  NetBEUI 可以算是您在 LAN 中能夠用到的最快通訊協定了這個最快是指它可以將格式化資料放進封包裡面﹐而接收節點又可以迅速的解讀到內容然而﹐NetBEUI 卻有一個最致命的弱點﹕它不是可路由(routable)協定﹐也就是不能夠和其它網路的機
From:http://tw.wingwit.com/Article/Common/201311/4691.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.