協議設計問題:這些協議如何設計出來?它們採用了哪些技術和方法來實現協議功能?瞭解協議設計原理對於已知協議分析和未知協議逆向分析都具有重要作用。
2.1 協議模型
(1)對於複雜協議,一般採用分層的方法進行設計。
(2)一個(n)實體向上一層所提供的服務由以下三部分構成:
1)(n)實體自己提供的某些功能;
2)從(n-1)層及其以下各層以及本地系統環境得到的服務;
3)通過與處在另一系統中的對等(n)實體通信而得到的服務;
(3)將(n)層對等實體間爲實現該層協議所交換的信息單元稱爲協議數據單元(PDU)。PDU通常由兩部分組成:用戶數據和協議控制信息(PCI)。根據PDU中是否攜帶用戶數據,可將其分爲兩類:數據PDU和控制PDU,後者不攜帶用戶數據。
(4)同一系統中相鄰兩層的實體進行交互之處,通常稱爲服務訪問點(SAP)。在進行交互時所要交換的一些必要信息稱爲服務原語,以表明需要本地或遠端的對等實體做哪些事情。
(5)OSI將層與層之間交換的數據單元稱爲服務數據單元(SDU),SDU就是數據PDU中的用戶數據,但不一定是一一對應關係。可以是多個SDU合成爲一個PDU,也可以是將一個SDU劃分成幾個PDU。
(6)服務和協議區別:
協議的實現保證了能夠向上一層提供服務;本層的服務用戶只能看見服務而無法看見下面的協議,下面的協議對服務用戶是透明的。
協議是“水平的“,協議是控制對等實體之間通信的規則;但服務是“垂直的”,即服務是由下層向上層通過層間接口提供的。
2.2 協議設計的基本內容
2.2.1 協議的通信環境
1、n層中任意兩個協議實體通過(n-1)SAP所形成的數據邏輯通路稱爲(n-1)層通道。用戶要求、(n-1)層通道的性質以及n層協議運行時的操作系統和硬件環境構成了n層協議的通信環境。
2、根據通道容納報文的數量,可以將通道分成3類:空通道、非緩衝通道和緩衝通道
3、通道的性質主要包括:
(1)通道的隊列性質
(2)回程時延RTT。RTT是報文從n層源端實體發出到該報文的應答信息達到該實體之間的信息。
(3)通道的差錯特性。包括報文的出錯率、報文的丟失率、報文的重複率、報文失序率。
(4)報文的可靠性
(5)報文的最大長度。
(6)通道的工作方式。
(7)通道的帶寬。“帶寬”是值在通道上能夠傳送的數字信號的速率,即數據率或者比特率。
2.2.2 協議提供的服務
1、面向連接的服務
虛電路
連接建立、數據傳輸和連接釋放
2、無連接服務
數據報、證實交付、請求回答
2.2.3 協議功能
2.2.3.1 連接管理
連接建立、連接釋放和連接維護
2.2.3.2 數據交換
2.2.3.3 差錯控制
2.2.3.4 流量控制:收端控制發端的發送數據速率以使得收端來得及接收,並且使網絡不致過載。
2.2.3.5 擁塞控制:若對網絡中某一資源的需求超過了該資源所能提供的可用部分,網絡的性能就要變壞。
擁塞控制的主要功能有:
(1)防止網絡因過載而引起的吞吐量下降和延遲增加
(2)避免死鎖
(3)在相互競爭的各用戶之間公平地分配資源
2.2.4 協議元素
2.2.4.1 服務原語和服務原語時序
一個完整的服務原語通常包括原語名字、原語類型和原語參數組成
2.2.4.2 協議數據單元pdu和pdu交換時序
2.2.4.3協議狀態
2.2.4.4 協議事件
輸入事件和輸出事件
2.2.4.5 協議變量
2.2.4.6 協議操作和謂詞
在什麼協議狀態下,在什麼輸入事件驅動下調用什麼協議過程;協議過程在什麼條件下采取什麼協議動作,輸出什麼事件或修改協議狀態和變量。
2.3 差錯控制技術
差錯控制是指在網絡通信過程中發現(檢測)差錯,並採取措施糾正,把差錯限制在所允許的儘可能小的範圍內的技術和方法。
硬件途徑
軟件途徑
2.3.1 差錯類型
通信鏈路差錯:有關通信鏈路上的故障、干擾造成的傳輸錯誤問題;
路由差錯:有關傳輸報文在路由過程中阻塞、丟失、死鎖以及報文亂序而造成傳輸差錯的問題
通信節點錯誤:有關通信中某節點的資源限制、環境條件或文本不符、協議同步關係以及操作錯誤、硬件故障等,可能影響通信鏈路的正確連接或正常通信的錯誤中斷等問題。
差錯:失真、丟失、重複、失序
2.3.2 差錯檢測技術
奇偶校驗
循環冗餘校驗CRC
算術校驗和
前向糾錯技術
2.3.3報文丟失、重複、失序處理技術
確認
計時器
重傳
序號