網(wǎng)絡(luò)協(xié)議分析

第一章 概述

一、協(xié)議定義

  1. 為網(wǎng)絡(luò)中互相通信的對等實體間進行數(shù)據(jù)交換二建立的規(guī)則、標(biāo)準(zhǔn)或約定,保證實體在計算機網(wǎng)絡(luò)中有序地交換數(shù)據(jù)。


    實體及對等實體.png
  2. 協(xié)議是關(guān)于分布式系統(tǒng)進行信息交換時地一種約定,協(xié)議應(yīng)按照語言地方式進行定義。即:網(wǎng)絡(luò)協(xié)議就是具有規(guī)定文法、語法和語義地語言。


    文法語法及語義
  3. 延伸為計算機通信協(xié)議
    協(xié)議時計算機網(wǎng)絡(luò)和分布式系統(tǒng)中各種通信實體或進程間相互交換信息是必須遵守的一組規(guī)則或約定。

二、協(xié)議三要素

語法、語義、同步

  1. 語法
    網(wǎng)絡(luò)協(xié)議中地語法體現(xiàn)為數(shù)據(jù)報文中的控制信息和各種控制報文的結(jié)構(gòu)、格式。
  2. 語義
    協(xié)議數(shù)據(jù)報文中的控制信息和控制報文所約定的含義,即需要完成何種動作發(fā)出何種控制信息做出何種響應(yīng)
  3. 同步
    同步是指事件發(fā)生順序的詳細(xì)說明。具體來說,同步是指通信過程中各種控制報文傳送的順序關(guān)系
    常用建立通信雙方的有限狀態(tài)機的方法來描述網(wǎng)絡(luò)協(xié)議。

三、網(wǎng)絡(luò)體系結(jié)構(gòu)

采用層次式結(jié)構(gòu)

網(wǎng)絡(luò)體系結(jié)構(gòu)=計算機網(wǎng)絡(luò)的各層+各層協(xié)議的集合

ISO的OSI/RM:

七層模型

IETF的TCP/IP:
網(wǎng)絡(luò)訪問層、互聯(lián)網(wǎng)層、傳輸層、應(yīng)用層

TCP/IP協(xié)議結(jié)構(gòu)

四、協(xié)議標(biāo)準(zhǔn)化

符合其用途
促進貿(mào)易、交流和技術(shù)轉(zhuǎn)讓
簡化以提高可用性
規(guī)定一類設(shè)備必須能夠執(zhí)行的任務(wù)或者描述一個裝置和它的安全特征。

五、協(xié)議工程

協(xié)議工程

1. 協(xié)議工程學(xué)用形式化方法描述協(xié)議設(shè)計和維護中的各個過程。

2. 協(xié)議工程過程

集成化、形式化的協(xié)議開發(fā)過程。

  • 集成化
    協(xié)議描述、驗證、實現(xiàn)和測試等技術(shù)前后銜接。
  • 形式化
    指用形式描述技術(shù)FDT貫穿協(xié)議開發(fā)的各個階段。

目的:減少協(xié)議開發(fā)過程中潛在的錯誤,提高協(xié)議開發(fā)的效率,促進協(xié)議標(biāo)準(zhǔn)化的發(fā)展。

3. 協(xié)議開發(fā)過程

協(xié)議設(shè)計、形式描述、驗證、實現(xiàn)、測試、運行

協(xié)議開發(fā)過程

設(shè)計

根據(jù)協(xié)議的需求說明構(gòu)造協(xié)議的非形式描述文本稱為協(xié)議設(shè)計。
包括:協(xié)議環(huán)境分析、協(xié)議的功能設(shè)計、協(xié)議組織形式的確定、協(xié)議元素的構(gòu)造、協(xié)議文本的編制等。
遵循原則:結(jié)構(gòu)化、模塊化等。
結(jié)果:非形式描述協(xié)議文本。

形式描述

形式描述模型
1. 有限狀態(tài)機FSM
2. Petri網(wǎng)
形式描述語言
CCITT制定的SDL

驗證

兩項工作

1.在語法和語義方面進行驗證
2.進行計算機模擬

驗證的主要內(nèi)容

1.可達(dá)性分析
2.死鎖和活鎖檢測
3.協(xié)議的有界性和完整性檢查
4.協(xié)議的動作序列檢查
5.通道溢出檢查等

驗證方法

1.模型檢查
最常見方法:可達(dá)性分析。包括狀態(tài)窮舉、狀態(tài)隨機枚舉、狀態(tài)概率枚舉等方法。
2.證明:推理演算,嚴(yán)密證明
3.模擬:通過模擬試驗測試協(xié)議的各種性質(zhì)

實現(xiàn)

協(xié)議實現(xiàn)是指由協(xié)議規(guī)范到協(xié)議的可執(zhí)行目標(biāo)代碼的過程
協(xié)議實現(xiàn)的自動化:協(xié)議工程的主要目的之一。
通過形式化描述技術(shù)可實現(xiàn)半自動化。步驟:
1.利用翻譯程序?qū)f(xié)議的形式描述文本轉(zhuǎn)換成與機器無關(guān)的源代碼
2.手工編寫與機器有關(guān)的、在協(xié)議規(guī)范中沒有描述的問題的處理代碼。

測試

驗證一個協(xié)議的實現(xiàn),主要考慮:
1.協(xié)議一致性測試
1.1 檢測新協(xié)議實現(xiàn)是否能滿足該協(xié)議規(guī)范所規(guī)定的規(guī)則。
1.2 如果協(xié)議實現(xiàn)不能通過一致性測試,則說明該協(xié)議實現(xiàn)與其他同樣通過一致性測試的協(xié)議實現(xiàn)不能在同一個全局系統(tǒng)中很好地協(xié)調(diào)工作。
1.3 一致性測試的基礎(chǔ):FDT
1.4 一致性測試要解決的問題:
-> 測試系統(tǒng)設(shè)計
測試方法和測試系統(tǒng)體系結(jié)構(gòu)
-> 測試序列的產(chǎn)生
“徹底性”、“標(biāo)準(zhǔn)化”。測試序列的自動生成和形式化描述。
1.5 測試序列生成器
可以產(chǎn)各種可能發(fā)生的情況組合,測試所實現(xiàn)的協(xié)議是否在各種正常非正常情況下均能正確工作。
2.對協(xié)議實現(xiàn)的評價。
要求
1.徹底性 須徹底測試所實現(xiàn)的協(xié)議
2.標(biāo)準(zhǔn)化 使用的測試集須是標(biāo)準(zhǔn)的

性能

主要包括吞吐量和時延
目的:
改善協(xié)議機制,提高執(zhí)行效率。

協(xié)議維護

六、思考題

1.“軟件工程”和“協(xié)議工程”的關(guān)系。
區(qū)別:
協(xié)議工程比軟件工程更加一體化,形式化。協(xié)議工程的目的是減少協(xié)議開發(fā)過程中潛在的錯誤,提高協(xié)議開發(fā)效率,促進協(xié)議標(biāo)準(zhǔn)化的發(fā)展。
協(xié)議工程的開發(fā)過程包括:
設(shè)計,描述,驗證,實現(xiàn),性能分析和測試
軟件工程的開發(fā)過程包括:
可行性分析,需求分析,概要設(shè)計,詳細(xì)設(shè)計,具體開發(fā)。
聯(lián)系:
協(xié)議工程和軟件工程都是為了簡化開發(fā)過程,協(xié)議工程時以協(xié)議軟件為研究對象的軟件工程。
2.選擇一個網(wǎng)絡(luò)協(xié)議,說明該協(xié)議的三要素。

第二章 協(xié)議設(shè)計

一、兩種標(biāo)準(zhǔn)

1. OSI/RM

法律上的國際標(biāo)準(zhǔn)——開放系統(tǒng)互聯(lián)參考模型,并沒有得到市場的認(rèn)可。只要遵循OSI標(biāo)準(zhǔn),一個系統(tǒng)就可以和位于世界上任何地方的、也遵循這同一標(biāo)準(zhǔn)的其他任何系統(tǒng)進行通信。

1.1 各層基本功能

ISO/OSI各層基本功能

1.2 OSI失敗的原因

  1. OSI的專家們?nèi)狈嶋H經(jīng)驗,他們在完成OSI標(biāo)準(zhǔn)時缺乏商業(yè)驅(qū)動力;
  2. OSI的協(xié)議實現(xiàn)起來過于復(fù)雜,而且運行效率很低;
  3. OSI標(biāo)準(zhǔn)的制定周期太長,因而使得OSI標(biāo)準(zhǔn)生產(chǎn)的設(shè)備無法及時進入市場;
  4. OSI的層次劃分不太合理,有些功能在多個層次中重復(fù)出現(xiàn)。

2. TCP/IP

非國際標(biāo)準(zhǔn),但常被稱為事實上的國際標(biāo)準(zhǔn)。

2.1 TCP/IP各層對應(yīng)的主要協(xié)議

TCP/IP各層及主要協(xié)議

2.2 IP數(shù)據(jù)包的轉(zhuǎn)發(fā)過程

整體情況

在具體的物理網(wǎng)絡(luò)的鏈路層,只能看見MAC幀而看不見IP數(shù)據(jù)報。IP層抽象的互聯(lián)網(wǎng)屏蔽了下層很復(fù)雜的細(xì)節(jié),在抽象的網(wǎng)絡(luò)層上討論問題,就能夠使用 統(tǒng)一的、抽象的IP地址,研究主機和主機或主機和路由器之間的通信
個別情況

兩個路由器的IP地址并不出現(xiàn)在IP數(shù)據(jù)報的首部中,路由器只根據(jù)目的站的IP地址的網(wǎng)絡(luò)號進行路由選擇

路由情況

二、為什么要分層

1. 分層的好處

  • 各層之間是獨立的
    由于每一層只實現(xiàn)一種相對獨立的功能,因而可將一個難以處理的復(fù)雜問題分解為若干個較容易處理的、更小一些的問題。這樣,整個問題的復(fù)雜程度就下降了。
    某一層并不需要知道它的下一層是如何實現(xiàn)的,而僅僅需要知道該層通過層間的接口所提供的服務(wù)。
  • 靈活性好
    當(dāng)任何一層發(fā)生變化時,只要層間接口關(guān)系保持不變,則在這層以上或以下的各層均不受影響。故易于擴充或者改變協(xié)議。
  • 結(jié)構(gòu)上可分割開
    各層可以采用最合適的技術(shù)來實現(xiàn)
  • 易于實現(xiàn)和維護
    因為整個的系統(tǒng)已被分解為若干個相對獨立的子系統(tǒng),使得實現(xiàn)和調(diào)試變得容易。
  • 能促進標(biāo)準(zhǔn)化工作
    因為每一層的功能及其所提供的服務(wù)都已有了精確的說明。

2. 不分層的后果

如果不分層,每一個新的應(yīng)用程序都必須為每個網(wǎng)絡(luò)重新實現(xiàn)一次。

三、OSI模型的核心

服務(wù)、接口、協(xié)議

  • Service – says what a layer does
    指某一層向上一層提供的一組原語(操作),一個服務(wù)由一組原語正式說明,用戶進程通過這些原語來訪問服務(wù)
    定義了該層準(zhǔn)備代表其用戶執(zhí)行哪些操作,但不涉及如何實現(xiàn)這些操作
  • Interface – says how to access the service
    規(guī)定了有哪些參數(shù),以及結(jié)果是什么
  • Protocol – says how is the service implemented
    一組規(guī)則,規(guī)定了同一層的對等實體之間所交換的數(shù)據(jù)包或者報文的格式和含義。
    對等實體利用協(xié)議來實現(xiàn)他們的服務(wù)定義,可以自由改變協(xié)議,只要不改變呈現(xiàn)給他們的用戶的服務(wù)即可。

服務(wù)與協(xié)議是完全分離的,服務(wù)涉及層與層之間的接口,協(xié)議涉及不同機器上兩個對等實體之間發(fā)送的數(shù)據(jù)包

四、n層協(xié)議模型

協(xié)議模型
  • 相關(guān)概念
    實體、(n)服務(wù)、(n)用戶、SP、SAP、TSAP、NSAP

1. 實體

在OSI中,實體(entity)表示任何可以發(fā)送和接收信息的硬件或軟件進程。在許多情況下,實體就是一個特定的模塊。

2. SP-服務(wù)原語

在進行交互時所要交換的一些必須信息或命令,以表明需要本地的或遠(yuǎn)端的對等實體做什么事情。

  • 4種服務(wù)原語
    Request (請求): 一個實體希望得到某種服務(wù)
    Indication (指示):把關(guān)于某一事件的信息告訴某一實體
    Response (響應(yīng)):一個實體愿意響應(yīng)某一事件
    Confirm (證實):把一個實體的服務(wù)請求加以確認(rèn)并告訴它

3. SAP-服務(wù)訪問點

同一系統(tǒng)相鄰兩層的實體進行交互的地方。服務(wù)用戶通過在一個SAP遞交數(shù)據(jù)并從另一個SAP讀出。

  • TSAP-傳輸服務(wù)訪問點(端口)
  • NSAP-網(wǎng)絡(luò)服務(wù)訪問點(例如IP地址)

4. 服務(wù)

一個(n)實體向上一層所提供的服務(wù)由以下三部分構(gòu)成:
(1) (n)實體自己提供的某些功能。
(2) 通過與處在另一系統(tǒng)中的對等(n)實體的通信而得到的服務(wù)。
(3) 從(n-1)層及其以下各層以及本地系統(tǒng)環(huán)境得到的服務(wù)。

服務(wù)與協(xié)議:
本層的服務(wù)用戶只能看見服務(wù)而無法看見下面的協(xié)議。下面的協(xié)議對上面的服務(wù)用戶是透明的。
協(xié)議是“水平的”,即協(xié)議是控制對等實體之間通信的規(guī)則。
服務(wù)是“垂直的”,即服務(wù)是由下層向上層通過層間接口提供的。
“透明”-指存在但看不見的事物
“虛擬”-指看起來存在但實際上不存在的事物

5. 協(xié)議數(shù)據(jù)單元PDU

將(n)層對等實體之間,為實現(xiàn)該層協(xié)議所交換的信息單元稱為協(xié)議數(shù)據(jù)單元PDU (Protocol Data Unit)。通常將第n層的協(xié)議數(shù)據(jù)單元記為(n)PDU。

  • 組成
    PDU通常由用戶數(shù)據(jù)協(xié)議控制信息PCI組成
    PCI一般作為首部加在用戶數(shù)據(jù)的前面,有時也可作為尾部加在用戶數(shù)據(jù)后,如檢驗和。
  • 類型
    1.數(shù)據(jù)PDU
    2.控制PDU,不攜帶用戶數(shù)據(jù)
  • 不同的協(xié)議層次的PDU表示法
    1.物理層:比特(bit);
    2.數(shù)據(jù)鏈路層:幀(frame)或信元(cell);
    3.網(wǎng)絡(luò)層 :分組或包(packet)
    4.運輸層 :分段(segment)、數(shù)據(jù)報(datagram)
    5.應(yīng)用層:消息(message)

6. 服務(wù)數(shù)據(jù)單元SDU

OSI將層與層之間交換的數(shù)據(jù)的單元稱為服務(wù)數(shù)據(jù)單元SDU。
一個(n)服務(wù)數(shù)據(jù)單元就是(n)服務(wù)所要傳送的邏輯數(shù)據(jù)單元。

PDU與SDU的區(qū)別與聯(lián)系:
SDU就是數(shù)據(jù)PDU中的用戶數(shù)據(jù),但不一定是一一對應(yīng)關(guān)系。
可以是多個SDU合成為一個PDU(稱為“拼裝”),也可以是將一個SDU劃分為幾個PDU(稱為“分段”)。

PDU和SDU

7. 通道

N層中任何兩個協(xié)議實體通過(n-1)SAP所形成的邏輯數(shù)據(jù)通路稱為(n-1)層通道。

n層協(xié)議的通信環(huán)境:

1.用戶應(yīng)用要求
2.(n-1)層通道(Channel)的性質(zhì)
3.n層協(xié)議運行時的操作系統(tǒng)和硬件環(huán)境

通道的類型:

1.空通道-報文的發(fā)送時間和延遲時間為0的通道
2.非緩沖通道-通道中 最多只有一個正在傳送中的報文
3.緩沖通道-允許有多個報文停留的通道

通道性質(zhì):

(n-1)層通道的性質(zhì)對n層協(xié)議的構(gòu)成有非常重要的影響

1.通道的形成方式

A和B建立并獨占一條連接,此時(n-1)層應(yīng)提供有連接服務(wù)
A和B與其它協(xié)議實體一起共享一條連接
A和B利用(n-1)層提供的無連接服務(wù)進行通信
如果(n-1)層為物理層,A和B可獨占一條物理信道,或共享一條物理信道

2.通道的隊列性質(zhì)

除物理層外,一般可將(n-1)層通道看作是隊列通道。
即一個數(shù)據(jù)報文從n層源端協(xié)議實體發(fā)出之后要在n層以下各層多次存貯轉(zhuǎn)發(fā),在每個存貯轉(zhuǎn)發(fā)處就存在一個隊列。
隊列的主要性質(zhì)是平均隊列長度以及最大隊列允許長度
隊列越長,那么數(shù)據(jù)報文在通道中的時延就會越大;
如果隊列長度達(dá)到最大允許長度,那么后續(xù)的數(shù)據(jù)報文將會丟失 。

3.回程時延RTT

RTT是從n層源端實體發(fā)出報文到該報文的確認(rèn)信息到達(dá)該實體之間的時間間隔,它包括目標(biāo)實體收到報文之后,對報文進行處理然后發(fā)出確認(rèn)信息的時間。

時延的產(chǎn)生

4.差錯特性
  • 參數(shù):
    報文的出錯率、報文的丟失率、報文的重復(fù)率、報文失序率
  • 差錯特性與它的形成方式有關(guān):
    1.如果通道是利用(n-1)層的有連接服務(wù)形成的,那么傳遞的報文不會失序;
    2.如果通道是利用(n-1)層的無連接服務(wù)形成的,或是物理信道,則報文的順序就有可能失序。
5.可靠性

通道的可靠性是指通道無故障,如連接中斷、復(fù)位等。

6.報文的最大長度或最大傳輸單元MTU

通道所能接收的最大報文長度。主要影響n層協(xié)議的報文分段、拼接等功能。

7.工作方式

-單工、半雙工、全雙工
-同步與異步

8.通信方式
  1. 點對點-任意兩個N 層協(xié)議實體利用一條(N - 1)層通道通信,協(xié)同完成指定協(xié)議功能。如TCP連接,UDP點對點方式。
  2. 點對多點-任意兩個以上N 層協(xié)議實體利用多條(N - 1)層通道通信,協(xié)同執(zhí)行一定的任務(wù)。如ATM的點對多點連接,UDP的廣播方式。
9.安全性

對用戶數(shù)據(jù)加密和安全控制(如口令、權(quán)限)

10.通道的帶寬

通信線路的帶寬也稱通頻帶,用頻率來度量。
通道的帶寬可進一步分為前向帶寬、后向帶寬、峰值帶寬等。

五、協(xié)議提供的服務(wù)

1. 面向連接的服務(wù)

  • 三個階段:
    連接建立、數(shù)據(jù)傳輸和連接釋放
  • 在傳送數(shù)據(jù)時是按序傳送的
  • 比較適合于在一定期間內(nèi)要向同一目的地發(fā)送許多報文的情況
  • 網(wǎng)絡(luò)層:虛電路服務(wù)
  • 永久虛電路:適于兩個用戶需要經(jīng)常進行頻繁的

2. 無連接的服務(wù)

  • 不能保證報文的丟失、重復(fù)、失序
  • 三種類型:
    1.數(shù)據(jù)報-不需要接收端做任何響應(yīng)
    2.證實交付(可靠的數(shù)據(jù)報)-對每一個報文產(chǎn)生一個證實給發(fā)放用戶,這個證實來自提供服務(wù)的層。
    3.請求應(yīng)答-收端用戶每收到一個報文,就向發(fā)端用戶發(fā)送一個應(yīng)答報文。始于“事務(wù)”中的通信。
  • 適于傳送少量零星的報文

3. 思考題

  1. 面向連接的服務(wù)和無連接服務(wù)的選擇。
    答:
    強調(diào)數(shù)據(jù)傳輸?shù)耐暾浴⒖煽啃院涂煽刂菩詴r,選擇面向連接的服務(wù)。
    強調(diào)數(shù)據(jù)傳輸性能時,選擇無連接的服務(wù)。
  2. HTTP協(xié)議利用有連接的TCP作為傳輸通道,并不斷建立連接和斷開連接。這樣做的好處與壞處分別是什么。
    答:
    好處:管理簡單,存在的連接都是有用的連接。一定程度保證完整性、可靠性。
    壞處:如果請求過于頻繁,將在TCP的建立與關(guān)閉上浪費時間和帶寬。

六、協(xié)議功能

(N)層協(xié)議為了向上一層提供服務(wù),必須實現(xiàn)一定的功能。

1. 基本的協(xié)議功能的類型

  • 連接管理
  • 數(shù)據(jù)交換
    --
  • 差錯控制
  • 流量控制
  • 擁塞控制

1.1 連接管理

兩種連接:

點對點、點對多點

三種主要功能:
連接建立

雙方協(xié)商工作參數(shù):初始序號
信用量、QoS。協(xié)商失敗則連接建立失敗。

連接釋放

突然釋放-立即關(guān)閉
文明釋放-成功發(fā)送所有數(shù)據(jù)后關(guān)閉

連接維護

如Keep-alive查詢、參數(shù)變更等。

針對延遲的保護措施:
  • 如TCP三次握手機制
  • 基于時鐘的連接管理方法

1.2 數(shù)據(jù)交換

數(shù)據(jù)的發(fā)送與接收:
  • n層協(xié)議接收n層用戶遞交的(n)SDU,將之轉(zhuǎn)換成(n)PDU,從(n-1)層通道發(fā)送出去;
  • 反之,它接收(n-1)層通道的(n)PDU,提取其中的(n)SDU,將之轉(zhuǎn)交給n層用戶。
協(xié)議支持的用戶數(shù)據(jù)、類型:

塊數(shù)據(jù)、流數(shù)據(jù)、批數(shù)據(jù)、優(yōu)先數(shù)據(jù)、帶外數(shù)據(jù)、緊急數(shù)據(jù)、編碼數(shù)據(jù)。

實現(xiàn)數(shù)據(jù)傳輸?shù)淖庸δ埽?/h5>
  • 對齊
  • 分段和合段
  • 拼裝和分離
  • PDU的裝配與拆裝(封裝/解封裝)
  • SDU編碼與解碼
  • 加校驗和
    以(n)數(shù)據(jù)的全部或部分作為輸入,產(chǎn)生一個固定大小的校驗和作為輸出。
  • 抖動補償
    使得協(xié)議能接受任何類型的通信量模式的SDU數(shù)據(jù)流作為輸入,產(chǎn)生一個連續(xù)的SDU流作為輸出。
  • 帶外數(shù)據(jù)、緊急數(shù)據(jù)的發(fā)送和接收

1.3 差錯控制

差錯:丟失、重復(fù)、亂序等。
(n-1)通道提供的數(shù)據(jù)通道的可靠性越高,則n層協(xié)議需實現(xiàn)的差錯控制機制則越少。

  • 序號
  • 確認(rèn)
  • 計時器
  • 重傳
序號:

序號是確認(rèn)和重傳的基礎(chǔ),此外序號可用于流量控制。

1)三種不同的產(chǎn)生方式
  • SDU序號
    對每個SDU都編號,從SDU序號得到PDU的序號。若某個SDU被分段攜帶在多個PDU中,應(yīng)附加一個SDU分段號。
  • PDU序號
    對PDU連續(xù)編號,不管它們攜帶的SDU的數(shù)據(jù)量。
  • 字節(jié)序號
    對SDU的每個字節(jié)編號。PDU的序號來自與它所攜帶的SDU的第一個字節(jié)序號和最后一個字節(jié)的序號。
2)如何防止序號重復(fù)

使用一個非常大的序號空間。
使得在數(shù)據(jù)單元從一端到另一端的最大可能延遲時間L內(nèi),所有從源點發(fā)送出去的新數(shù)據(jù)單元都有不同的序號。

3)序號空間的大小與信道特點、確認(rèn)方法、流量控制方法和PDU中的數(shù)據(jù)字段長度有關(guān)
  • 如果信道的質(zhì)量比較好,則序號空間要求比較大,從而可以連續(xù)發(fā)送多個數(shù)據(jù)單元,提高協(xié)議效率
  • 采用周期性確認(rèn),序號空間就不一定要很大
  • 在停止等待協(xié)議中,只需要0和1兩個序號即可
  • 一般來說,序號空間的大小與數(shù)據(jù)字段的長度成反比
確認(rèn):

接收者顯式地通知發(fā)送者所發(fā)送的數(shù)據(jù)的接受情況

1) 被確認(rèn)的對象
  • PDU
  • 字節(jié)
2)確認(rèn)的情況
  • 已正確到達(dá)
  • 還沒有收到
  • 收到但有錯
3)確認(rèn)分為三種類型
  • 肯定確認(rèn)(Ack)
  • 否定確認(rèn)(Nak)
  • 選擇確認(rèn)(Select Ack)
    指示收到的和沒收到的PDU
4)兩種發(fā)送方式

在一種協(xié)議中,通常兩種確認(rèn)形式并存。

  • 獨立確認(rèn)
    使用一個確認(rèn)PDU來攜帶確認(rèn)信息。可隨時發(fā)送。
  • 應(yīng)答攜帶
    將確認(rèn)信息放在數(shù)據(jù)PDU中發(fā)送,可提高協(xié)議效率,要求接收方有數(shù)據(jù)發(fā)送時才能發(fā)送確認(rèn)。
5)如何標(biāo)識被確認(rèn)的對象

用被確認(rèn)的數(shù)據(jù) PDU或字節(jié)的序號來標(biāo)識

6)累計確認(rèn)

如果否定確認(rèn)或肯定確認(rèn)的語義是表示所給定的序號之前的所有序號(包括或不包括本序號)的數(shù)據(jù)PDU都已被成功地接收了,則該確認(rèn)又稱為累計確認(rèn)。

計時器:

檢測數(shù)據(jù)PDU、確認(rèn)PDU或重傳請求信號的丟失。

1)超時值的設(shè)置
  • 依賴于PDU的往返時間RTT
  • 使用算法,動態(tài)估計往返時間和定時值
2)計時器超時值設(shè)置不當(dāng)會導(dǎo)致什么后果?

如果超時值設(shè)置太短,連續(xù)大量的數(shù)據(jù)重傳,嚴(yán)重情況下將加劇網(wǎng)絡(luò)的擁塞程度,出現(xiàn)更多數(shù)據(jù)丟失 ;
如果超時值設(shè)置太長,出現(xiàn)數(shù)據(jù)丟失而得不到及時糾正,也會降低協(xié)議的性能。

3)TCP協(xié)議中的計時器
  • 重傳計時器
  • 堅持計時器
  • ?;钣嫊r器
  • 時間等待計時器
重傳:

發(fā)送者重傳:

  • 由確認(rèn)PDU所指出的數(shù)據(jù)PDU
  • 重傳計時器超時仍未收到確認(rèn)的數(shù)據(jù)PDU
1)基于滑動窗口的重傳方法
  • 回退n幀
    接收方直接地丟棄所有不按序到達(dá)的數(shù)據(jù)PDU。
    發(fā)送方從第一個否定的確認(rèn)或發(fā)生超時的時刻所指出的數(shù)據(jù)PDU的序號開始,重傳所有后續(xù)數(shù)據(jù)PDU。

  • 選擇重傳
    發(fā)送方只重傳否定確認(rèn)、選擇確認(rèn)和超時的時刻所指出的那些數(shù)據(jù)PDU

1.4 流量控制

指“接收端控制發(fā)送端的數(shù)據(jù)發(fā)送速率以消除接收端緩存溢出的可能性,并使網(wǎng)絡(luò)不致過載”

1)為什么使用流量控制?
  • 接收方接受能力有限
  • 緩存不夠
  • 處理能力不夠
2)舉例
  • 停等協(xié)議
  • 滑動窗口

1.5 擁塞控制

在某段時間,若對網(wǎng)絡(luò)中某一資源(鏈路容量、交換節(jié)點中的緩沖區(qū)、處理機)的需求超過了網(wǎng)絡(luò)所能提供的可用部分,網(wǎng)絡(luò)的性能就要降低。這種情況就叫做擁塞(congestion)。

1)擁塞控制的主要功能
  • 防止網(wǎng)絡(luò)因過載二引起吞吐量下降和延遲增加
  • 在互相競爭的各用戶之間公平地分配資源
  • 避免死鎖:直接死鎖,重裝死鎖
    直接死鎖-由互相占用了對方需要地資源而造成地死鎖。
    重裝死鎖-由于分組不完整無法交付給主機產(chǎn)生地死鎖。
2)擁塞控制與流量控制地區(qū)別和聯(lián)系

區(qū)別:
流量控制只在一對給定的發(fā)送方和接收方之間,控制發(fā)送方以不超過接收方處理能力的速率發(fā)送數(shù)據(jù)。
擁塞控制是一個全局性的過程,涉及到網(wǎng)絡(luò)中所有的主機、所有的路由器,以及與降低網(wǎng)絡(luò)傳輸性能有關(guān)的所有因素。

聯(lián)系:
流量控制限制了進入網(wǎng)絡(luò)中地信息總量,可以在一定程度上減緩擁塞地作用。

2. 其他功能

  • 無活動控制
  • 通信量(流量)監(jiān)控
  • 通信量填充(防止通信量分析)
  • 通信量整形
  • 路由選擇
  • 媒體訪問控制

七、協(xié)議元素

協(xié)議三要素

語法、語義、同步

協(xié)議的主體

狀態(tài)-事件轉(zhuǎn)換機制

協(xié)議六元素

并不是所有協(xié)議都必須包含以下六種元素。多個協(xié)議功能組成一個完整的協(xié)議之后,這六種元素一般使必須的。

元素之間的有機聯(lián)系:在什么協(xié)議狀態(tài)下,在什么輸入事件驅(qū)動下,調(diào)用什么協(xié)議過程;協(xié)議過程在什么條件下(謂詞),采取什么協(xié)議動作(操作),輸出什么事件或修改哪些協(xié)議狀態(tài)和變量。
在上述元素中,通常用狀態(tài)變遷表或狀態(tài)轉(zhuǎn)換圖來描述協(xié)議的狀態(tài)、事件、操作和謂詞。

  • 服務(wù)原語和服務(wù)原語時序
  • 協(xié)議數(shù)據(jù)單元PDU和PDU交換時序
  • 協(xié)議狀態(tài)
  • 協(xié)議事件
  • 協(xié)議變量
  • 協(xié)議操作和謂詞

1. 服務(wù)原語及其時序

一般用服務(wù)規(guī)范(Service Specification)來定義和描述N層協(xié)議向外部所提供的服務(wù)。
服務(wù)規(guī)范定義了服務(wù)用戶和服務(wù)提供者之間的交互作用的規(guī)則,包括:服務(wù)原語和服務(wù)原語時序。
N 層協(xié)議的服務(wù)原語和原語參數(shù)詳細(xì)準(zhǔn)確地描述了N層協(xié)議和它的服務(wù)用戶之間的接口。

1)根據(jù)服務(wù)原語對服務(wù)的分類:

1.需要證實的服務(wù)
2.不需要證實的服務(wù)

2)一個完整的服務(wù)原語通常包括

原語名字、原語類型、原語參數(shù)


原語

2. PDU及其時序

N層協(xié)議的PDU從語法和語義上詳細(xì)準(zhǔn)確地定義了n層協(xié)議實體之間交換的信息(PDU編碼格式/協(xié)議使用的詞匯表)。

3. 協(xié)議狀態(tài)

  • 局部狀態(tài):單個協(xié)議實體在某時刻的執(zhí)行情況
  • 全局狀態(tài):參與執(zhí)行某種協(xié)議功能的所有協(xié)議實體的狀態(tài)總和。包括(n-1)層通道。

N層協(xié)議必須定義所有的協(xié)議狀態(tài)。

4. 協(xié)議事件

1)根據(jù)用途分類
  • 輸入事件
    a.收到一個PDU
    b.收到n層服務(wù)用戶的一條服務(wù)原語
    c.內(nèi)部事件(如計時器超時)
  • 輸出事件
    a.發(fā)送一個PDU
    b.向n層服務(wù)用戶發(fā)出一條服務(wù)原語
2)根據(jù)事件的作用范圍分類
  • 通信事件
    收發(fā)服務(wù)原語或收發(fā)PDU,又可分為同步事件和異步事件。
  • 內(nèi)部事件:如計時器超時。
3)協(xié)議事件的三個性質(zhì)
  • 成對性
    指一個事件的發(fā)生總是伴隨著另一個事件的發(fā)生。通信事件成對,內(nèi)部事件不成對。
  • 原子性
    指事件要么不發(fā)生,一旦發(fā)生就一定完成。
    具有原子性的事件被稱為原子事件。
  • 時序性
    指發(fā)生的事件在時間上是有先后順序的。
    事件時序性決定了狀態(tài)的時序性。

5. 協(xié)議變量

保存協(xié)議運行的歷史數(shù)據(jù)、運行參數(shù)的變量,以及協(xié)議機制本身所設(shè)置的變量。

常見的協(xié)議變量:

  • 發(fā)送序號變量
  • 接受序號變量
  • 重發(fā)時間間隔變量

6. 協(xié)議操作和謂詞

每種協(xié)議功能都是通過一組協(xié)議過程的執(zhí)行來實現(xiàn)的。
協(xié)議過程:協(xié)議在輸入事件的驅(qū)動下,在一定條件下,執(zhí)行一系列的操作或動作。

一定條件:
這些約束條件涉及協(xié)議參數(shù)、協(xié)議變量、協(xié)議運行環(huán)境等。將描述這些約束條件的語句稱之為謂詞(predicate)。

這些操作包括:
-產(chǎn)生輸出事件
-清楚和設(shè)置計時器
-修改協(xié)議變量
-改變協(xié)議狀態(tài)

原子過程:
原子過程包含多個協(xié)議操作,并且過程一旦啟動之后,所有包括的操作一次性完成,不經(jīng)歷中間協(xié)議狀態(tài),不被其它過程打斷。
一般來說,在協(xié)議運行時,可將它從一個狀態(tài)到另一個狀態(tài)的轉(zhuǎn)換處理成原子過程。

八、協(xié)議組織

協(xié)議組織是指將相關(guān)協(xié)議功能和協(xié)議元素組成一個完整協(xié)議的過程。

這個過程涉及以下技術(shù)和方法:

  • 協(xié)議層次化
  • 協(xié)議階段化
  • 協(xié)議分類
  • 協(xié)議的運行方式

1. 協(xié)議層次化

如果n層協(xié)議的功能和結(jié)構(gòu)仍然很復(fù)雜,可將n層協(xié)議的眾多功能進一步分成多個子層。
子層的劃分可使復(fù)雜協(xié)議的結(jié)構(gòu)變得清晰,有利于協(xié)議的設(shè)計、驗證、實現(xiàn)和測試。但是,子層的劃分可能降低協(xié)議性能。

2.協(xié)議階段化

可將n層協(xié)議分成多個運行階段,每個階段只涉及到一部分協(xié)議功能。如OSI體系結(jié)構(gòu)的運輸層協(xié)議的正常運行被分為三個階段:連接建立階段、數(shù)據(jù)傳輸階段、連接釋放階段。

3.協(xié)議分類

由于不同用戶的需求以及協(xié)議的運行環(huán)境的不同導(dǎo)致協(xié)議的復(fù)雜性。因此,可以將協(xié)議分成不同類別或不同級別,每類協(xié)議只適用于特定用戶和特定環(huán)境,那么復(fù)雜協(xié)議就會變得簡單。

4.運行方式

協(xié)議運行方式有三種:

  • 協(xié)議交替 - n層內(nèi)的多個協(xié)議或一個協(xié)議的多個類別或一個協(xié)議的多個協(xié)議功能交替活躍
    可在不同時間內(nèi)適用于不同用戶和不同通道的協(xié)議環(huán)境。相比并發(fā)和并行性能低。
  • 協(xié)議并發(fā) - 同時活躍,并發(fā)運行
    可在同一時間內(nèi)適用多種協(xié)議環(huán)境
  • 協(xié)議并行 - 同時活躍,同時運行
    協(xié)議性能更好

九、協(xié)議文本

協(xié)議文本是協(xié)議設(shè)計階段的最終結(jié)果。
協(xié)議文本中,最重要、最主要部分是協(xié)議元素的描述。必須對每一項協(xié)議元素作出準(zhǔn)確、清晰、無二義性的定義。此外,協(xié)議的各元素是有機聯(lián)系的,協(xié)議文本應(yīng)清晰表達(dá)這些關(guān)系。

十、協(xié)議設(shè)計方法

1. 設(shè)計原則

  • 簡單
  • 模塊化
  • 有界性
  • 健壯性
  • 一致性

其中,最基本的是:簡單和模塊化。

2. 分層的原則

  • 當(dāng)需要有一個不同等級的抽象時,就應(yīng)當(dāng)有一個相應(yīng)的層次
  • 每一層的功能應(yīng)當(dāng)是非常明確的
  • 選擇的層與層的邊界應(yīng)該使通過這些邊界的信息量盡量地少
  • 難點:層次太少會使每一層協(xié)議太復(fù)雜,太多則在描述和綜合各層的系統(tǒng)時難度較大。

3. 自頂向下的設(shè)計方法

協(xié)議設(shè)計方法

第三章 協(xié)議形式化描述技術(shù)

  • 有限狀態(tài)機FSM
  • Petri網(wǎng)
  • SDL

一、形式化技術(shù)的產(chǎn)生

過去人么習(xí)慣使用自然語言描述協(xié)議。
優(yōu)點:方便易懂
缺點:不嚴(yán)格、不精確、結(jié)構(gòu)不好、沒有描述標(biāo)準(zhǔn)、有二義性。不同的人對協(xié)議描述的理解不同。難以進行驗證、實現(xiàn)和測試自動化。

解決辦法:形式化技術(shù)

是將協(xié)議工程各階段在技術(shù)上銜接起來的紐帶。

形式描述模型FDM

  • 狀態(tài)變遷模型:
    有限狀態(tài)機FSM
    擴展的有限狀態(tài)機EFSM模型
    通信有限狀態(tài)機CFSM模型
    Carl Adam Petri的Petri網(wǎng)
  • 時態(tài)邏輯TL
  • 進程代數(shù):
    通信系統(tǒng)演算CCS(以進程代數(shù)為基礎(chǔ))
    通信順序進程CSP(以CCS為基礎(chǔ))

形式描述語言FDL

  • ISO制定的Estelle和LOTOS
  • CCITT制定的SDL
    ……

模型與語言

模型:
對象或系統(tǒng)的抽象(OSI/RM)
描述對象或系統(tǒng)的方法或技術(shù)(FSM/PetriNet)

形式語言:
具有嚴(yán)格的語法和語義;
可精確、完全表述協(xié)議的功能及行為;
以一種或多種數(shù)學(xué)方法或形式模型為基礎(chǔ)。如SDL基于擴展的FSM和抽象數(shù)據(jù)類型。

二、FSM

1. 有限狀態(tài)機FSM的幾個概念

狀態(tài)(State)

指的是對象在其生命周期中的一種狀況,處于某個特定狀態(tài)中的對象必然會滿足某些條件、執(zhí)行某些動作或者是等待某些事件。

事件(Event)

指的是在時間和空間上占有一定位置,并且對狀態(tài)機來講是有意義的事情。事件通常會引起狀態(tài)的變遷,促使?fàn)顟B(tài)機從一種狀態(tài)切換到另一種狀態(tài)。

轉(zhuǎn)換、轉(zhuǎn)移、變遷、遷移(Transition)

指的是兩個狀態(tài)之間的一種關(guān)系,表明對象將在第一個狀態(tài)中執(zhí)行一定的動作,并將在某個事件發(fā)生且滿足某個特定條件時進入第二個狀態(tài)。

動作(Action)

指的是狀態(tài)機中可以執(zhí)行的原子操作,所謂原子操作指的是它們在運行的過程中不能被其他消息所中斷,必須一直執(zhí)行下去。

2. 形式化定義

FSM和非確定FSM,可以看成僅接收輸入并發(fā)生狀態(tài)改變,但無任何輸出的自動機。


FSM的形式化定義

對于不確定的有限自動機NFA,其下一時刻狀態(tài)為一個狀態(tài)子集。

3. Moore機和Mealy機

具有輸出的自動機器模型按照輸出的不同分成兩類:

  • Moore 機:輸出與狀態(tài)有關(guān)
  • Mealy機:輸出與狀態(tài)和輸入有關(guān)

Moore機在接收輸入串的過程中不斷改變狀態(tài)并在每個狀態(tài)上有字符輸出。
Mealy機只是在接收輸入串的過程中不斷改變狀態(tài),并且字符輸出與當(dāng)前狀態(tài)及輸入串有關(guān)。

有限狀態(tài)機可看作是Moore機的一個特例
Moore機可看作是Mealy機的一個特例

Moore機FSM形式化定義

Mealy機FSM形式化定義

4. 如何設(shè)計FSM

  • 理解系統(tǒng)的功能:
    通過系統(tǒng)的需求與實現(xiàn)的目標(biāo),理解系統(tǒng)的運轉(zhuǎn)過程
    可以通過系統(tǒng)的流程圖,劃分出系統(tǒng)的各功能模塊
  • 確定FSM的設(shè)計策略
  • 整理出系統(tǒng)的全部輸入和輸出
  • 構(gòu)造狀態(tài)空間
    從系統(tǒng)中抽象出全部的系統(tǒng)狀態(tài),進行狀態(tài)分割,構(gòu)造FSM的狀態(tài)空間
  • 明確系統(tǒng)各狀態(tài)之間的遷移關(guān)系
  • 明確各狀態(tài)遷移關(guān)系所對應(yīng)的輸入事件與輸出事件
  • 確定FSM
    畫出系統(tǒng)狀態(tài)遷移圖或狀態(tài)遷移表,明確系統(tǒng)FSM的所有要素
  • 狀態(tài)空間簡化
    FSM狀態(tài)空間的簡化,盡可能使?fàn)顟B(tài)重復(fù)利用,消除冗余的狀態(tài),簡化設(shè)計,降低系統(tǒng)復(fù)雜度,提高可靠性
  • 系統(tǒng)編碼
    對輸入、輸出、各狀態(tài)及各狀態(tài)轉(zhuǎn)移關(guān)系根據(jù)設(shè)計策略進行編碼
    其它的設(shè)計階段

5. FSM的優(yōu)點

  • 簡單性
  • 可預(yù)測性
  • 易于實現(xiàn)
  • 易于測試

6. 停等協(xié)議

停等協(xié)議甲乙雙方

將甲乙兩方各自的有限狀態(tài)機合在一起,用一個有限狀態(tài)機來描述整個系統(tǒng)。這回導(dǎo)致狀態(tài)數(shù)目大大增加,因此需要合并一些狀態(tài),考慮一些次要的細(xì)節(jié)。


合并后的狀態(tài)變遷圖

7. FSM的簡化

  • 狀態(tài)層次化
  • 使用原子過程
  • 使用協(xié)議變量
    可大大減少狀態(tài)機的狀態(tài)數(shù)。
  • 隱藏內(nèi)部協(xié)同事件
  • 簡化通道FSM
    如果n層協(xié)議采用同步通信方式,那么不管(n-1)層通道是否是緩沖通道,都可以處理成非緩沖通道;
    如果報文傳送時間和延遲時間對協(xié)議機制無影響,或者只影響協(xié)議變量的值,那么非緩沖通道可處理成空通道。

8. FSM的錯誤模型

可達(dá)性分析:
死鎖
活鎖
無限分支
不可達(dá)狀態(tài)

其他:
輸出錯
轉(zhuǎn)移錯
輸出轉(zhuǎn)移錯

9. EFSM

FSM的缺點:

  • 處理復(fù)雜問題時可能發(fā)生狀態(tài)空間爆炸
  • FSM可以很好地描述狀態(tài)間地遷移特性,但無法很好地描述輸入輸出間地變換特性
  • FSM只反映協(xié)議事件和協(xié)議狀態(tài)之間地關(guān)系,不能表達(dá)其他協(xié)議元素

FSM擴展模型地目的:

  • 增強FSM描述能力
  • 簡化描述
  • 使各狀態(tài)之間地變遷清晰化
  • 最終提高對局部以至整個模型地描述與分析能力
  • 可被用作為以后開發(fā)者描述解決方案地工具

其中,明顯的缺點為:
FSM不能方便地描述對變量地操作
缺少描述任意數(shù)值的傳送能力

從兩個方面對FSM進行擴展:

  • 變量
    如果變量的取值范圍是有限的,則變量的加入并沒有增加FSM的計算能力。 可以用有限狀態(tài)機來描述一個取值范圍有限的變量。
    優(yōu)點:
    變量地引入豐富了FSM地狀態(tài)變遷函數(shù)地表達(dá)能力,還可以減少FSM的狀態(tài)空間

  • 引入一組操縱變量地算術(shù)和邏輯操作符

三、PetriNet

Petri網(wǎng)是一種圖形化的數(shù)學(xué)工具,適合于描述和分析并發(fā)、異步、分布式的系統(tǒng),特別便于描述系統(tǒng)中進程或組件的順序、并發(fā)、沖突以及同步等關(guān)系。
Petri網(wǎng)也是一種狀態(tài)變遷模型,它允許同時發(fā)生多個狀態(tài)變遷,因而Petri網(wǎng)是一種并發(fā)模型??捎脕砻枋鐾ㄐ畔到y(tǒng)中各異步組件之間的關(guān)系。

Petri網(wǎng)所處的狀態(tài)是由標(biāo)記的分布來決定的。

1. Petri網(wǎng)形式化定義

Petri網(wǎng)的四元組

2. Petri網(wǎng)的狀態(tài)變遷

發(fā)生變遷的條件:

  • 必須有1個或多個變遷滿足變遷條件
    變遷條件:
    某個變遷tj的所有輸入位置中都必須有標(biāo)記存在,并且當(dāng)輸入位置有多條弧線指向這個變遷時,該輸入位置也至少具有和弧線數(shù)相等的標(biāo)記數(shù);
    所有輸入位置中的標(biāo)記數(shù)都必須大于或者等于該輸入位置指向tj的弧線數(shù)。

  • 必須發(fā)生點火
    所謂點火就是發(fā)生了一些事件(1個或多個),而這些事件所對應(yīng)的變遷滿足變遷條件。

標(biāo)記移動規(guī)則:

發(fā)生點火后,標(biāo)記要重新分布。

  • 從點火的變遷tj的所有輸入位置中均取出標(biāo)記,每個位置取出的標(biāo)記數(shù)等于該位置指向點火的變遷tj 的弧線數(shù);
  • 然后再將標(biāo)記送入tj 的所有輸出位置中去,送入每個位置的標(biāo)記數(shù)等于點火的tj 指向該位置的弧線數(shù)。

一個簡單的例子:

圖1

圖2

圖3

狀態(tài)變遷類型:

  • 順序變遷
    只有t1點火后t2才能點火
  • 并發(fā)變遷
    t1和t2可同時點火
  • 互斥變遷
    t1和t2只能有一個點火。一個點火后另一個就不能再點火了。

3. PetriNet的擴充

  • 基于標(biāo)記和位置的擴充
    一個位置中的不同標(biāo)記用不同的名字或標(biāo)識號來表示——有色Petri網(wǎng)
  • 基于輸入函數(shù)和輸出函數(shù)的擴充
    允許每個位置減少或增加多個標(biāo)記,并再弧線上標(biāo)上增加或減少的標(biāo)記數(shù)
  • 基于變遷的擴充
    在變遷上標(biāo)明謂詞和動作——謂詞-動作Petri網(wǎng)

4. PetriNet的性質(zhì)

  • 行為性質(zhì) - 與初始標(biāo)記量有關(guān)的性質(zhì)
  • 結(jié)構(gòu)性質(zhì) - 與初始標(biāo)記量無關(guān)的性質(zhì)

行為性質(zhì):

  • 可達(dá)性
  • 有界性
  • 活性
  • 可逆性
  • 可覆蓋性
  • 可持續(xù)性
1)可達(dá)性
  • 可達(dá)的
    如果存在一系列變遷t1, t2, …, tn的發(fā)生使得Petri網(wǎng)的標(biāo)記向量轉(zhuǎn)換為Mn,則稱標(biāo)記向量Mn是從M0可達(dá)的 。
  • 變遷的引發(fā)序列
    將M0 t1, M1 t2, M2 t3, …, tnMn稱為變遷的引發(fā)序列,記為σ,或簡記為σ=t1, t2, …, tn。
  • 可達(dá)標(biāo)記向量集
    所有可達(dá)的標(biāo)記向量形成一個可達(dá)標(biāo)記向量集,一般記為R(M0)。
  • 引發(fā)序列集
    從M0出發(fā)的所有可能引發(fā)序列形成一個引發(fā)序列集,一般記為L(M0)。
2)有界性
  • 有界性
    在一個Petri網(wǎng)中,如果存在一個非負(fù)整數(shù)k,使得從M0開始的任一可達(dá)標(biāo)記向量中的位置p上的標(biāo)記數(shù)都不超過k,則稱位置p為k有界。
    如果Petri網(wǎng)中每一位置都是k有界的,則稱該Petri網(wǎng)為k有界。
    有界性意味著位置中的標(biāo)記數(shù)量不會無限地增加。
  • 安全性
    如果位置p為1有界,則稱位置p是安全的。如果Petri網(wǎng)中每一位置都是1有界的,則稱該Petri網(wǎng)是安全的。
3)活性

活性:反映的是系統(tǒng)中無死鎖的特性。

  • 潛在可引發(fā)的
    在一個Petri網(wǎng)中,初始標(biāo)記向量為M0,如果存在一個標(biāo)記向量M∈R(M0)(可達(dá)標(biāo)記向量集),使得變遷t使能(滿足變遷條件),則稱t是潛在可引發(fā)的。
  • 變遷在M0下是活的
    如果對任何M∈R(M0),變遷t都是潛在可引發(fā)的,則稱t在標(biāo)記向量M0下是活的。即從M0可達(dá)的任一標(biāo)記向量出發(fā),都可以通過執(zhí)行某一變遷序列而最終引發(fā)變遷t。
  • Petri網(wǎng)是活的
    如果所有變遷t都是活的,則稱該Petri網(wǎng)是活的,或者稱M0是網(wǎng)的活標(biāo)識。

變遷t的活性等級劃分:
L0 - 沒有任何一個變遷序列可以引發(fā)變遷t,即該變遷是“死的”
L1 - 在某些變遷序列中,變遷t至少被引發(fā)一次
L2 - 在某些變遷序列中,變遷t至少被引發(fā)k次
L3 - 在某些變遷序列中,變遷t可無限次被引發(fā)
L4 - 在每個變遷序列中,變遷t至少被引發(fā)一次

4)可逆性

在一個Petri網(wǎng)中,如果存在一個引發(fā)序列σ=t1, t2, …, tn,使得從該Petri網(wǎng)的任一可達(dá)標(biāo)記向量M出發(fā)可以返回到初始標(biāo)記向量M0,則稱該Petri網(wǎng)是可逆的。

5)可覆蓋性

在一個Petri網(wǎng)中,對于標(biāo)記向量M,如果存在一標(biāo)記向量M′,任一位置p,都有:位置p在M′中的分量的值都大于等于該位置在M中的分量的值,則稱標(biāo)記向量M是可覆蓋的。

6)可持續(xù)性

在一個Petri網(wǎng)中,如果對于任何兩個滿足變遷條件的變遷,其中一個變遷被引發(fā)以后,另一個變遷仍然滿足變遷條件,則稱該Petri網(wǎng)是可持續(xù)的。

7)公平性

在一個Petri 網(wǎng)中,對于兩個變遷t1, t2,如果其中一個變遷可以引發(fā) 而另一個變遷不可引發(fā)的這種情況出現(xiàn)的最大次數(shù)是有界的,稱這兩個變遷具有有界公平關(guān)系。
如果該Petri網(wǎng)中,任意一對變遷都存在有界公平關(guān)系,則稱該Petri網(wǎng)為有界公平網(wǎng)。

結(jié)構(gòu)性質(zhì):

  • 結(jié)構(gòu)活性
    存在活的初始標(biāo)記向量M0
  • 結(jié)構(gòu)有界性
    Petri對任何初始標(biāo)記向量都有界
  • 可重復(fù)性
    存在一個初始標(biāo)記向量和一個引發(fā)序列,使得所有變遷被引發(fā)無限次,則稱該Petri網(wǎng)為可重復(fù);
    如果使得部分變遷被引發(fā)無限次,則稱該Petri網(wǎng)為部分可重復(fù)。
  • 相容性
    如果存在一個初始標(biāo)記向量M0和一個引發(fā)序列σ∈L(M0),使得所有變遷至少被引發(fā)一次,則稱該Petri網(wǎng)為相容的;
    如果使得部分變遷至少被引發(fā)一次,則稱該Petri網(wǎng)為部分相容的。
  • 結(jié)構(gòu)有界公平性
    對于任何初始標(biāo)記向量,如果兩個變遷之間總存在有界公平關(guān)系,則稱這兩個變遷具有結(jié)構(gòu)有界公平關(guān)系;
    如果一個Petri網(wǎng)對于任何初始標(biāo)記向量都是有界公平的,則稱該Petri網(wǎng)為結(jié)構(gòu)有界公平的 。

5. Petri網(wǎng)在協(xié)議描述中的應(yīng)用

  • 停等協(xié)議
不編號的停等協(xié)議
編號的停等協(xié)議
  • 讀寫


    讀寫進程

第四章 協(xié)議形式描述語言(SDL)

SDL是基于擴展有限狀態(tài)機抽象數(shù)據(jù)類型的混合技術(shù)。SDL既可描述系統(tǒng)的概要設(shè)計,亦可描述系統(tǒng)的詳細(xì)設(shè)計。

一、SDL的三種語法形式

1. 圖形表示的SDL/PR

較適合于描述系統(tǒng)的結(jié)構(gòu)和控制流

2. 用文字短語表示的SDL/PR

較適合于機器處理

3. 程序語言形式的SDL,X.250

二、SDL系統(tǒng)結(jié)構(gòu)

1. 概述

在SDL中,整個系統(tǒng)由多個互連的抽象機(擴展的有限狀態(tài)機FSM)所組成。
每個抽象機的動態(tài)行為由其他抽象機或環(huán)境的交互和對交互數(shù)據(jù)的操作來描述。

SDL/PR使用的主要符號:


SDL/PR使用的主要符號

2. SDL的靜態(tài)結(jié)構(gòu)

一個SDL應(yīng)用的靜態(tài)結(jié)構(gòu)由系統(tǒng)、功能塊、進程、過程和通道構(gòu)成。

SDL的靜態(tài)結(jié)構(gòu)

1)系統(tǒng)

規(guī)范所描述的對象稱為一個系統(tǒng)。
根據(jù)系統(tǒng)與環(huán)境之間是否有交互,將系統(tǒng)分為開放的和封閉的。

一個系統(tǒng)的規(guī)范描述由以下部分組成:
所有通道、信號(Signal)、信號表(Signal List)、預(yù)定義的數(shù)據(jù)類型與/或宏(macro)的定義;一個或多個功能塊。

2)功能塊

功能塊含有進程,并用來構(gòu)造系統(tǒng)。功能塊通過通道互連,并通過通道連接到系統(tǒng)邊界。
在描述功能塊時,進程、過程(Procedure)、服務(wù)類型、數(shù)據(jù)類型和信號均可作為功能塊描述規(guī)范的一部分。

3)進程

可保留和處理數(shù)據(jù),數(shù)據(jù)受進程的局部變量(由該進程定義)約束。
利用信號,數(shù)據(jù)值可在進程之間傳送,也可傳送給環(huán)境或從環(huán)境接收。

4)通道

通道充當(dāng)功能塊之間以及功能塊與系統(tǒng)邊界之間傳輸信號的媒介。既可以是單方向的,也可以是雙方向的。

在SDL中,將系統(tǒng)、功能塊、進程等稱為代理。各個代理用塊圖來表示,一個代理可以對應(yīng)多個塊圖。

三、SDL對系統(tǒng)動態(tài)行為的描述

1. SDL的結(jié)構(gòu)化概念

系統(tǒng)中的每一個功能塊由一組進程或一組子功能塊組成,進程間通過信號路由(Signal routes)或功能塊的子結(jié)構(gòu)(Substructure)相連接。
子功能塊又可由一組進程或一組子功能塊組成。這樣可得到一個系統(tǒng)的分級多層描述:功能塊樹 (Tree of Blocks)

2. 動態(tài)行為描述

  • 各功能塊包含若干個進程,SDL系統(tǒng)的動態(tài)行為具體表現(xiàn)為各進程的實例的并發(fā)操作 (Instance,即進程的一次活動,用PId來表示) 。

  • 進程的狀態(tài)與動作是用擴展的FSM來建模的。
    1.進程狀態(tài)的變化受外來信號激勵,同時,進程也可向環(huán)境返回響應(yīng)信號。
    2.一個進程可同時收到多個信號。
    SDL設(shè)置了隊列以暫時存放這些信號(一般采用先進先出的方式)。
    3.進程也可自行處理保留信號。
    保留信號是指在某些狀態(tài)下需等待其他信號到達(dá)并處理之后才能處理的信號。

四、SDL中的數(shù)據(jù)

在SDL中,數(shù)據(jù)的定義一般基于抽象數(shù)據(jù)類型。
“抽象數(shù)據(jù)類型”是指其定義并不描述(數(shù)據(jù))類型是如何實現(xiàn)的,而僅僅描述當(dāng)將操作符(Operators)應(yīng)用到該類型的數(shù)值上時產(chǎn)生何種結(jié)果。

1. SDL預(yù)定義數(shù)據(jù)類型

SDL定義了一些預(yù)定義的數(shù)據(jù)類型,
如布爾(Boolean)、整數(shù)(Integer)、自然數(shù)(Natural)、實數(shù)(Real)、字符(Character)、字符串(Charstring)、進程標(biāo)識符(PId)、時刻(Time)、持續(xù)時間(Duration)。
此外,SDL還預(yù)定義了一些產(chǎn)生器(Generator),
如數(shù)組(Array)、串(String)、計時器(Timer)和冪集(Powerset)等。
這些預(yù)定義的數(shù)據(jù)類型可在任何級別上的SDL描述中使用。
用戶還可用上述數(shù)據(jù)類型自行定義其他的數(shù)據(jù)類型。

2. 類

在SDL中,類(Sort) 是值的集合。集合中的元素個數(shù)可以是有限的,也可以是無限的,但不能為空。
一般來說,SDL中的數(shù)據(jù)類型定義包括三個部分:類定義,操作符(Operators)定義和等價式(Equations)定義。

1)類定義

例:Boolean類定義


Boolean類定義

  • 值與操作符的組合構(gòu)成詞

  • 等價式
    給出規(guī)則,說明給定類中的哪些詞表示同一個值

  • 等值類
    由值相等的詞所構(gòu)成的集合,稱為等值類。將詞的集合分為多個子集。

第五章 協(xié)議驗證技術(shù)

一、驗證的含義

正確性
完整性
一致性

驗證協(xié)議的實現(xiàn) 一致性測試

Verification 在功能方面驗證
Validation 語法方面驗證

二、驗證的方法

1. 非形式化驗證

主要通過遍歷和代碼檢查

2. 形式化驗證

以形式描述技術(shù)為前提,主要將形式描述技術(shù)與推理技術(shù)結(jié)合。
一方面可以獲得無二義性的協(xié)議規(guī)范,另一方面可以借助計算機輔助工具來幫助實施自動或半自動驗證。

  • 模型檢測
    基于狀態(tài)搜索

  • 演繹驗證
    基于定理證明

1)模型檢測/模型檢查/模型檢驗

本質(zhì)上是用嚴(yán)密的數(shù)學(xué)方法來驗證設(shè)計是否滿足預(yù)設(shè)的需求,從而自動化地發(fā)現(xiàn)設(shè)計中的錯誤。是一種檢查給定模型是否滿足某一邏輯規(guī)則的方法。

  • 基本思想
    (1)用狀態(tài)遷移系統(tǒng)(S)表示系統(tǒng)的行為,用模態(tài)/時序邏輯公式(F)描述系統(tǒng)的性質(zhì)。
    (2)“系統(tǒng)是否具有某種期望的性質(zhì)”就轉(zhuǎn)化數(shù)學(xué)問題“狀態(tài)遷移系統(tǒng)S是否是公式F的一個模型?”
    公式表示:S |= F?

  • 過程描述
    1.建立模型
    2.描述系統(tǒng)性質(zhì)
    3.驗證

  • 模型檢測方法
    最常見方法:可達(dá)性分析、不變性分析
    特性:
    能給出反例
    自動化程度高
    問題:
    狀態(tài)空間爆炸

2)演繹驗證方法

定理證明方法:

  • 步驟
    1.將實現(xiàn)方案和功能描述都轉(zhuǎn)換為一種形式邏輯,如命題邏輯、一階邏輯(First Order Logic, FOL)、高階邏輯(Higher Order Logic, HOL)等
    2.建立公理系統(tǒng),作為驗證的依據(jù),并將協(xié)議性質(zhì)構(gòu)造成一組代數(shù)定理
    3.根據(jù)公理系統(tǒng),使用定理證明器,通過邏輯推理、邏輯歸約等手段,構(gòu)造證明過程,證明實現(xiàn)方案和功能描述等價

  • 問題
    入門難,前兩步難

三、協(xié)議性質(zhì)

協(xié)議驗證的最主要任務(wù)是檢查協(xié)議是否滿足規(guī)定的協(xié)議性質(zhì)。

  • 一般性質(zhì)
  • 特殊性質(zhì)

也有文獻將其分為安全性和活動性。
活動性體現(xiàn)在終止性和進展性兩個方面。

1. 一般性質(zhì)

  • 可達(dá)性
  • 沒有死鎖
  • 沒有活鎖
  • 弱活鎖
  • 時間相關(guān)的活鎖(臨時阻塞)
  • 無狀態(tài)二義性
  • 有界性
  • 可恢復(fù)性或自同步性
  • 互斥性
  • 公平性
  • 終止或進展
1)可達(dá)性

協(xié)議的各種可能狀態(tài)之間的可達(dá)關(guān)系。

2. 特殊性質(zhì)

  • 完整性
  • 一致性

3. 一般性質(zhì)和特殊性質(zhì)

協(xié)議驗證著重于一般性質(zhì)
協(xié)議測試著重于特殊性質(zhì)

四、可達(dá)性分析

檢查協(xié)議描述中是否有不可達(dá),死鎖、未定義、活鎖等協(xié)議模型錯誤;包括狀態(tài)窮舉,狀態(tài)隨機枚舉,狀態(tài)概率枚舉等方法。

可達(dá)性分析是最常用的協(xié)議驗證方法,它試圖產(chǎn)生和檢查協(xié)議所有或部分可達(dá)狀態(tài)。

  • 全局狀態(tài)(Global state): 協(xié)作的協(xié)議實體以及連接這些協(xié)議實體的通道的整體狀態(tài)。
  • 可達(dá)狀態(tài): 指協(xié)議從初始狀態(tài)開始經(jīng)歷有限次變遷之后可到達(dá)的狀態(tài)。
    所有可達(dá)狀態(tài)構(gòu)成可達(dá)圖

可達(dá)性分析的三個重要技術(shù):
怎樣找出所有可達(dá)狀態(tài),構(gòu)成可達(dá)圖。
怎樣檢測死鎖、活鎖等協(xié)議錯誤。
怎樣解決狀態(tài)空間爆炸問題。

可達(dá)性分析練習(xí)

1. 可達(dá)性分析原理:

采用窮舉法檢查同一層內(nèi)兩個或多個協(xié)議實體間所有可能的交互所產(chǎn)生的全局狀態(tài)。
從一個給定的初始狀態(tài)開始,觸發(fā)所有可能的變遷(用戶命令、超時、消息發(fā)送、接收等),產(chǎn)生新的全局狀態(tài)。
對每一個新產(chǎn)生的狀態(tài)重復(fù)執(zhí)行上述過程直到?jīng)]有新的狀態(tài)產(chǎn)生(某些變遷將導(dǎo)致系統(tǒng)返回到已產(chǎn)生的狀態(tài))。
對于一個給定的初始狀態(tài),這種分析能夠確定協(xié)議可能產(chǎn)生的所有結(jié)果。

2. 可達(dá)性分析算法

  • 窮盡性可達(dá)性分析算法
  • 受控部分搜索算法
    1.限制深度法
    2.散開搜索法
    3.定向搜索法
    4.概率搜索法
    5.隨機選擇法
  • 隨機模擬算法

1)窮盡性可達(dá)性分析算法

窮盡性可達(dá)性分析算法
  • 深度優(yōu)先與廣度優(yōu)先
    當(dāng)發(fā)現(xiàn)一個錯誤時,在廣度優(yōu)先算法中,必須依據(jù)從狀態(tài)集合A 中得到的信息來重構(gòu)從初始系統(tǒng)狀態(tài)開始的路徑。(先進先出, W中無法按執(zhí)行序列保存之前的狀態(tài));
    在深度優(yōu)先算法中,一個重要的優(yōu)點是,當(dāng)發(fā)現(xiàn)錯誤時,算法能從初始狀態(tài)開始通過一系列有效的狀態(tài)轉(zhuǎn)換到達(dá)錯誤點。無需重構(gòu)從初始系統(tǒng)狀態(tài)開始的路徑,因為這個序列已被集合W中的堆棧排序中隱含定義了。(先進后出, W中按執(zhí)行序列保存了之前的狀態(tài))。

先廣搜索的優(yōu)點:優(yōu)先發(fā)現(xiàn)執(zhí)行序列短的錯誤狀態(tài);
先深搜索方法的優(yōu)點之一是占用存貯空間小。
假定每個狀態(tài)有兩個后繼狀態(tài),算法執(zhí)行m步之后,對于先深搜索方法,W的長度為m;而對于先廣搜索方法,W的長度為2m。

2)受控部分搜索算法

一般來說,受控部分搜索算法較全局搜索方法有效和可行。但是,這種方法不能保證協(xié)議無錯。通常需要執(zhí)行多次才能得到比較可信的結(jié)果。

3)隨機模擬算法

隨機模擬/隨機遍歷


隨機模擬算法

隨機模擬算法與協(xié)議系統(tǒng)的大小和復(fù)雜性無關(guān),即使是無限大的系統(tǒng),也可以應(yīng)用。因此,對于復(fù)雜的驗證問題,這種算法也許是唯一可用的方法。

4)三種算法的比較

  • 窮盡性可達(dá)性分析算法的優(yōu)點在于可以證明協(xié)議中沒有錯誤,但問題在于其應(yīng)用范圍有限。(系統(tǒng)狀態(tài)數(shù)目非常大時可能發(fā)生狀態(tài)空間爆炸/對于復(fù)雜的協(xié)議搜索質(zhì)量會下降)
  • 受控部分搜索算法的目的是證明錯誤地存在而不是證明沒有錯誤。它在一定程度上能夠解決空間爆炸問題。其缺點是:協(xié)議中的錯誤的可能位置難以預(yù)測;無法保證其狀態(tài)空間大小與可用內(nèi)存相匹配;有效搜索的部分狀態(tài)空間大小是協(xié)議相關(guān)的,只能通過實驗確定;為了尋找最優(yōu)方法,需要按不同的選擇策略多次驗證。
  • 隨機模擬算法與協(xié)議系統(tǒng)的大小和復(fù)雜性無關(guān),即使是無限大的系統(tǒng),也可以應(yīng)用。因此,對于復(fù)雜的驗證問題,這種算法也許是唯一可用的方法。其缺點是沒有明確的終止,無法判斷是否已訪問系統(tǒng)的所有可達(dá)狀態(tài),因此,只能發(fā)現(xiàn)協(xié)議中的錯誤,而不能證明協(xié)議中沒有錯誤。

3. 基于可達(dá)性分析的協(xié)議錯誤檢測

  • 死鎖
  • 非定義的輸入事件
  • 無意義事件
  • 活鎖

4. 狀態(tài)空間爆炸問題的解決

  • 部分搜索算法
  • 部分規(guī)范描述和驗證
  • 選擇大的動作單元
  • 分解或劃分
  • 按斷言來分類狀態(tài)

五、不變性分析

如果一個系統(tǒng)的某個性質(zhì)能用一個確定的邏輯表達(dá)式描述,并且恒為真(不隨系統(tǒng)的狀態(tài)變化或執(zhí)行序列而改變),那么這個性質(zhì)稱為系統(tǒng)的不變性質(zhì),簡稱為系統(tǒng)不變性(system invariance)。

  • 協(xié)議不變性分析的兩個工作:
    1.完全正確地找出系統(tǒng)的不變性質(zhì)
    2.驗證不變性表達(dá)式是否恒為真

1. 不變性分析的途徑

  • 不變性證明系統(tǒng)(通常采用歸納法)
  • 不變性監(jiān)測系統(tǒng)
1)不變性證明系統(tǒng)

采用歸納法:
驗證初始狀態(tài)的不變性表達(dá)式是否成立;
假定某個狀態(tài)的不變性成立,驗證從該狀態(tài)開始的所有相關(guān)事件過程中不變性是否成立。

2)不變性監(jiān)測系統(tǒng)

借助監(jiān)測軟件和監(jiān)測方法對模擬運行或符號執(zhí)行中的協(xié)議進行不變性校驗的過程稱之為不變性監(jiān)測。

第七章 一致性測試技術(shù)

驗證一項新的協(xié)議實現(xiàn),通常需要進行多項測試。一般要考慮以下四個方面:

  • 一致性測試(conformance testing)
    一致性測試旨在檢測所實現(xiàn)的協(xié)議實體(或系統(tǒng))與協(xié)議規(guī)范的符合程度(而驗證則是檢查形式化規(guī)范的邏輯正確性)

  • 互操作測試(interoperateability testing)
    檢測同意協(xié)議的不同實現(xiàn)版本的互通能力和互操作能力

  • 性能測試(performance testing)
    非功能測試,主要檢測協(xié)議實體或系統(tǒng)的性能參數(shù)。

  • 魯棒性測試(robustness testing)
    檢測協(xié)議實體或系統(tǒng)在各種惡劣環(huán)境下運行的能力。

一、 一致性測試與驗證

“一致性測試”的目的是檢查一個給定協(xié)議實現(xiàn)的外部行為是否符合協(xié)議的規(guī)范。
“驗證”檢查形式化規(guī)范的邏輯正確性。

二、 功能測試與結(jié)構(gòu)測試

  • 功能測試
    協(xié)議實現(xiàn)是否實現(xiàn)了協(xié)議規(guī)范的所有功能;協(xié)議實現(xiàn)是否可以正確地以與協(xié)議規(guī)范一致的方式拒絕錯誤輸入。
    問題:復(fù)雜性;難以標(biāo)準(zhǔn)化。

  • 結(jié)構(gòu)測試
    協(xié)議實現(xiàn)的控制結(jié)構(gòu)與規(guī)范的結(jié)構(gòu)是否一致。如果二者的狀態(tài)集等價并且狀態(tài)轉(zhuǎn)換相同,則二者具有相同的結(jié)構(gòu)。
    問題:無法完全檢查,常需要增加一些限制條件。

三、 一致性測試的前提

假定協(xié)議標(biāo)準(zhǔn)本身是正確的。

通過一致性測試可以給用戶提供兩個信息:
通過了一致性測試的協(xié)議實現(xiàn),具有協(xié)議所要求的各種能力。
在具有代表性的通信實例中,被測試的協(xié)議實現(xiàn)的外部特性與協(xié)議標(biāo)準(zhǔn)的要求一致。

四、一致性測試要求

  • 靜態(tài)一致性要求
  • 動態(tài)一致性要求

DCR和SCR
動態(tài)一致性是指協(xié)議規(guī)范中規(guī)定的通信實例中的協(xié)議實現(xiàn)所必須呈現(xiàn)的外部特性的組合或允許的各種選擇性組合;
而靜態(tài)一致性是指協(xié)議規(guī)范中為了使協(xié)議實現(xiàn)能夠互連而定義的功能類別、功能單元的分組以及選擇性功能等。

五、一致性測試級別

ISO 9646將協(xié)議一致性測試分為四級,由低到高分別為

  • 基本互連測試
  • 能力測試
  • 行為測試
  • 一致性分解測試

行為測試可分兩級:
覆蓋性測試:只要求測試序列歷經(jīng)IUT的所有變遷至少一次即可。
窮盡性測試:要求檢查每個變遷的前后狀態(tài)。

六、一致性測試模型

七、一致性測試流程

八、一致性測試方法

一致性測試方法決定了 測試集的產(chǎn)生和描述方法、測試執(zhí)行系統(tǒng)的結(jié)構(gòu) 等。
ISO 9646中定義了四種標(biāo)準(zhǔn)的抽象測試方法:

  • 本地測試法(Local Mehtod)
  • 分布式測試法(Distributed Method)
  • 協(xié)調(diào)測試法(Coordination Mehtod)
  • 遠(yuǎn)程測試法(Remote Method)。

本地測試法:


本地測試法

分布式測試法:


分布式測試法

協(xié)同測試法:


協(xié)同測試法

遠(yuǎn)程測試法:


遠(yuǎn)程測試法

上述這幾種測試法是最基本的,適于單層協(xié)議測試,有許多變種,如渡船測試法(Ferry Method)、多方測試法及騎跨式(Astride)測試法等。

九、測試集

測試集包括兩部分:
測試序列
測試數(shù)據(jù)

對同一測試序列的事件施加不同的測試數(shù)據(jù)(即測試事件攜帶不同參數(shù)),就產(chǎn)生不同的測試?yán)?。一個測試序列對應(yīng)多個測試?yán)?/p>

測試集具有層次結(jié)構(gòu):
  1. 測試集由多個測試組組成。每一測試組覆蓋某一類測試目的。
    比較常用的測試組劃分方法是根據(jù)協(xié)議的不同狀態(tài),為每一狀態(tài)的測試目的集合構(gòu)造一個測試組。測試組由多個測試?yán)M成,每一測試?yán)槍δ骋粶y試目的。
  2. 利用測試步(Test Step) ,可以將測試?yán)K化。所有測試步都是按照測試事件的順序或其它較小的測試步來定義的,因此,全部測試步等效于測試事件的序列。
  3. 測試事件是測試?yán)蜏y試步的最小單位,是測試步內(nèi)規(guī)范的基本單元。


    測試集的層次結(jié)構(gòu)

十、測試表示方法

描述測試系統(tǒng)和IUT的行為。

通用的協(xié)議測試表示方法需滿足的要求:
  1. 所描述的測試集應(yīng)該是系統(tǒng)獨立的。
  2. 可以描述任一協(xié)議的一致性測試集。
  3. 能為測試集的設(shè)計人員提供自動或半自動支持工具以加快測試集開發(fā)過程。
  4. 降低整個測試集的開發(fā)和維護費用。
  5. 提高協(xié)議一致性測試集的標(biāo)準(zhǔn)化程度,以增強開放系統(tǒng)之間的互操作性。
  6. 易于學(xué)習(xí)和掌握,對于測試操作人員而言,易于理解。
描述測試集的方法:
  • SDL、ESTELLE、LOTOS
  • 編程語言
  • 樹型記法、表型記法
    易于被測試人員理解。ISO將二者綜合,提出樹表組合記法TTCN。
TTCN:

TTCN提供兩種表示方法:樹型記法和表型記法
樹型記法主要用于描述測試事件之間的時序關(guān)系,即描述協(xié)議的動態(tài)行為。
表型記法主要用于簡化所有靜態(tài)數(shù)據(jù)的表示,如數(shù)據(jù)類型、PDU和ASP的格式、與測試事件相關(guān)聯(lián)的測試判決等等。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,532評論 25 708
  • MySQL對大家來說,都應(yīng)該很熟悉了,從大學(xué)里的課程到實際工作中數(shù)據(jù)的存儲查詢,很多時候都需要用到數(shù)據(jù)庫,很多人也...
    三分青年閱讀 2,188評論 1 5
  • 平水八庚 柴米油鹽維稼穡,今非昔比我猶耕。 雙親年邁思田穢,人子當(dāng)先自苦撐。 注: 穢,荒廢,荒蕪,長滿野草之意。...
    懦愚閱讀 544評論 23 26
  • 親愛的你 你看見了嗎 深空之中飄落的太陽雨 傍晚的紅暈?zāi)菢拥撵届?街邊的畫展沉默著 粉色里淡淡的誓言 是不是永不哭...
    漪葉子閱讀 322評論 0 0
  • 你的才能是什么? 你做什么會讓你靈魂喜悅,你在做什么的時候會讓你廢寢忘食,你做什么的時候才最有成就感。 你要知道你...
    離錢最近的運營YUKI閱讀 309評論 1 0