由於網路的迅猛發展﹐出現了許多供網路使用的軟體和硬體﹐為了讓它們都能夠有效的溝通﹐我們需要建立一些規則。
在這一章裡面﹐我會向大家介紹目前比較通用的網路通訊協定﹐和模擬數據是如何的從一個節點傳送到另一個節點﹐從功能上面看看通訊協定的定義。
何為通訊協定﹖
一個比較好理解的講法是﹕通訊協定就是一些標准和規則。例如﹐我們看到紅燈就要停、綠燈才可以走,者就是一種協定了。若是彼此使用不同的協定,那就會造成混亂:澳洲(或英聯邦)開車考左行使、台灣則靠右。只要所在國家不變,那麼該協定就可以運作,但是當到達協定不一樣的國家,就得進行協定上的轉換了。否則,不出車禍才怪!
在網路通訊中,如果主機 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 要正確。另外﹐在網路卡上面﹐還有一個由 6 組十六進位數字組成的 48bit 的物理位址(Physical Address)﹐也叫 MAC(Media Access Control) Address 或 Node ID﹐等名稱﹐相信我們前面也聽過數次了。這個位址其實分為兩個部份:前面三組數字為 Manufacture ID﹐也就是廠商 ID﹔而後面的三組是 Card ID。如果我們見到一張卡的 MAC 位址是﹕02-60-8C-67-CD-54﹐那麼我們可以知道這張卡是 3Com 的﹐因為 02608C 就是 3Com 的ID。透過這兩組 ID ,我們可以在實體上區分各自的網路卡。理論上來說,全世界沒有兩張卡的 MAC Address 是相同的,而且我們也不應去修改它。