
557
17
網路基礎
現代分散式電腦系統廣泛地運用網路。了解網路通訊是建置這種系統的一
個必要部分,因為這種通訊是任何網路服務的基礎。一個
協定
(
protocol
)
是兩方(現代通常是電腦程式)議定的一種「語言」,用來與彼此溝
通。網路基本上分為兩類:連線導向(connection-oriented)的和無連
線(connectionless)的,我們會在後面的「網路原理」中涵蓋,它們各
自都有自己的協定。這兩類網路都能在各式各樣的傳輸機制(transport
mechanisms)上運作,這多虧了無處不在的 TCP/IP 堆疊,以及最初設計
來支援 BSD Unix 網路作業的
socket
介面。
通訊的整體工作將網路分為各個
協定層
(
protocol layers
),以分離不同
的功能。資料能以許多方式在系統間運送,例如透過 Ethernet、序列連結
(serial link)等等,如果你必須處理其中所有的差異,應用程式碼就會變
得不必要地複雜。ISO(International Standards Organization)定義了一種
七層的模型(seven-layer model),但這實務上證明沒必要那麼複雜,TCP/
IP 用的就是一種四層的模式(four-layer model)。
應用程式程式碼實作了
行程
(
process
)或
應用程式
(
application
)層,負
責可能在不同電腦上執行的兩個行程間的訊息交換(TCP/IP 在本地端的行
程之間也運作得一樣好)。這一層傳遞訊息到
主機對主機
(
host-to-host ...