分布式通信是什么?
分布式進程通信 網絡層及以下的各層實現了網絡中主機之間的通信,但是數據通信不是最終的目的; 計算機網絡最本質的活動是分布在不同地理位置的主機之間的進程通信,以實現各種網絡服務功能; 設置傳輸層的主要目的就是要實現分布式進程通信。 進程和進程通信是操作系統中的一個最基本的概念; 程序是一個在時間上按照嚴格次序的前后相繼的操作序列,是一個靜態的概念; 進程是一個動態的概念,它是一個程序對某個數據集的執行過程; 正在運行的進程叫做運行態; 等待分配CPU的進程叫做就緒態; 等待其它的條件的進程叫做等待態; 進程狀態反映出進程執行過程的變化; 要保證系統正常地工作,操作系統必須對進程的創建、撤消與狀態轉換進行控制; 從進程的觀點看,操作系統的核心則是控制和協調這些進程的運行,解決進程之間的通信。 在解決單機環境下操作系統的進程通信中: BSD UNIX 引入了管道(pipe)、命名管道(named pipe)和軟中斷信號(signal)機制; AT&T UNIX引入了消息(message)、共享存儲區(shared memory)和信號量(semaphore)等; UNIX系統的消息、共享存儲區和信號量統稱為進程通信(inter process communication,IPC)機制; IPC機制也不適應于網絡環境中的進程通信。 用一句最簡單的話去描述計算機網絡,那就是: 計算機網絡是分布在不同地理位置的多臺獨立的計算機系統的集合; “獨立的計算機系統”意味著連網的每一臺計算機的操作與資源是由自己的操作系統所管理; 用戶共享的網絡資源及網絡所能提供的服務功能最終是通過網絡環境中的分布式進程通信來實現的。 網絡環境中的進程通信與單機系統內部的進程通信的主要區別: 網絡中主機的高度自治性; 不是在同一個主機系統之中,沒有一個統一的高層進行控制與管理; 網絡中一臺主機對其它主機的 活動狀態 位于其它主機系統中的各個進程狀態 這些進程什么時間參與網絡活動 希望與網絡中哪一臺主機的什么進程通信 一概無從知道
1.網絡環境中分布式進程通信需要解決: 進程命名與尋址方法 多重協議的識別 進程間相互作用的模式
2.網絡環境中進程標識 在一臺計算機中,不同的進程用進程號或進程標識(process ID)惟一地標識出來 網絡環境中完整的進程標識應該是: 本地主機地址-本地進程標識 遠程主機地址-遠程進程標識 進程地址也叫做端口號(port number)
3.多重協議的識別 UNIX操作系統的TCP/IP的傳輸層就有TCP協議和UDP協議; 網絡環境中一個進程的全網惟一的標識需要一個三元組來表示:協議,本地地址,本地端口號。 網絡環境中一個完整的進程通信標識需要一個五元組來表示: 協議 本地地址 本地端口號 遠地地址 遠地端口號 在UNIX操作系統中: 三元組又叫做半相關half-association 五元組叫做一個相關association