官术网_书友最值得收藏!

1.7.4 實體、協議、服務和服務訪問點

當研究開放系統中的信息交換時,往往使用實體(entity)這一較為抽象的名詞表示任何可發送或接收信息的硬件或軟件進程。在許多情況下,實體就是一個特定的軟件模塊。

協議是控制兩個對等實體(多個實體)進行通信的規則的集合。協議在語法方面的規則定義了所交換的信息的格式;而協議在語義方面的規則就定義了發送者或接收者所要完成的操作,例如,在何種條件下數據必須重傳或丟棄;協議在同步方面的規則定義了收發雙方的時序關系,即在一定條件下應當發生什么事件。

在協議的控制下,兩個對等實體間的通信使得本層能夠向上一層提供服務。要實現本層協議,還需要使用下面一層所提供的服務。

一定要弄清楚,協議和服務在概念上是很不一樣的。

首先,協議的實現保證了能夠向上一層提供服務。使用本層服務的實體只能看見服務而無法看見下面的協議。也就是說,下面的協議對上面的實體是透明的。

其次,協議是“水平的”,即協議是控制對等實體之間通信的規則。但服務是“垂直的”,即服務是由下層向上層通過層間接口提供的。另外,并非在一個層內完成的全部功能都稱為服務。只有那些能夠被高一層實體“看得見”的功能才能稱之為“服務”。上層使用下層所提供的服務必須通過與下層交換一些命令,這些命令在OSI中稱為服務原語

在同一系統中相鄰兩層的實體進行交互(即交換信息)的地方,通常稱為服務訪問點 SAP (Service Access Point)。服務訪問點SAP是一個抽象的概念,它實際上就是一個邏輯接口,有點像郵政信箱(可以把郵件放入信箱和從信箱中取走郵件),但這種層間接口和兩個設備之間的硬件接口(并行的或串行的)并不一樣。OSI把層與層之間交換的數據的單位稱為服務數據單元SDU (Service Data Unit),它可以與協議數據單元PDU不一樣。例如,可以是多個SDU合成為一個PDU,也可以是一個SDU劃分為幾個PDU。

這樣,在任何相鄰兩層之間的關系可概括為圖1-20所示的那樣。這里要注意的是,第n層的兩個“實體(n)”之間通過“協議(n)”進行通信,而第n + 1層的兩個“實體(n + 1)”之間則通過另外的“協議(n + 1)”進行通信(每一層都使用不同的協議)。第n層向上面的第n + 1層所提供的服務實際上已包括了在它以下各層所提供的服務。第n層的實體對第n + 1層的實體就相當于一個服務提供者。在服務提供者的上一層的實體又稱為“服務用戶”,因為它使用下層服務提供者所提供的服務。

圖1-20 相鄰兩層之間的關系

計算機網絡的協議還有一個很重要的特點,就是協議必須把所有不利的條件事先都估計到,而不能假定一切都是正常的和非常理想的。例如,兩個朋友在電話中約好,下午3時在某公園門口碰頭,并且約定“不見不散”。這就是一個很不科學的協議,因為任何一方臨時有急事來不了而又無法通知對方時(如對方的電話或手機都無法接通),則另一方按照協議就必須永遠等待下去。因此,看一個計算機網絡協議是否正確,不能只看在正常情況下是否正確,而且還必須非常仔細地檢查這個協議能否應付各種異常情況

下面是一個有關網絡協議的非常著名的例子。

例1-1】占據東、西兩個山頂的藍軍1和藍軍2與駐扎在山谷的白軍作戰。其力量對比是:單獨的藍軍1或藍軍2打不過白軍,但藍軍1和藍軍2協同作戰則可戰勝白軍。現藍軍1擬于次日正午向白軍發起攻擊。于是用計算機發送電文給藍軍2。但通信線路很不好,電文出錯或丟失的可能性較大(沒有電話可使用)。因此要求收到電文的友軍必須送回一個確認電文。但此確認電文也可能出錯或丟失。試問能否設計出一種協議使得藍軍1和藍軍2能夠實現協同作戰因而一定(即100 %而不是99.999…%)取得勝利?

】藍軍1先發送:“擬于明日正午向白軍發起攻擊。請協同作戰和確認。”

假定藍軍2收到電文后發回了確認。

然而現在藍軍1和藍軍2都不敢下決心進攻。因為,藍軍2不知道此確認電文對方是否正確地收到了。如未正確收到,則藍軍1必定不敢冒然進攻。在此情況下,自己單方面發起進攻就肯定要失敗。因此,必須等待藍軍1發送“對確認的確認”。

假定藍軍2收到了藍軍1發來的確認。但藍軍1同樣關心自己發出的確認是否已被對方正確地收到。因此還要等待藍軍2的“對確認的確認的確認”。

這樣無限循環下去,藍軍1和藍軍2都始終無法確定自己最后發出的電文對方是否已經收到(圖1-21)。因此,在本例題給出的條件下,沒有一種協議可以使藍軍1和藍軍2能夠100%地確保勝利。

圖1-21 無限循環的協議

這個例子告訴我們,看似非常簡單的協議,設計起來要考慮的問題還是比較多的。

主站蜘蛛池模板: 晋城| 华坪县| 铁岭县| 高尔夫| 五大连池市| 桂东县| 敖汉旗| 孝昌县| 新竹县| 达日县| 衡水市| 潼关县| 梅州市| 通城县| 奉新县| 科尔| 开远市| 罗山县| 周口市| 德保县| 舟山市| 秦安县| 香港 | 招远市| 集贤县| 丰城市| 墨玉县| 庆城县| 黄石市| 施甸县| 平远县| 进贤县| 廉江市| 肃北| 耒阳市| 惠来县| 广东省| 阿合奇县| 芦山县| 南岸区| 天气|