协议验证技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的所有可达状态。该算法简
单明了,然而要将它付诸实
施时,我们还必须解决以下 一些问题。
第五章 协议验证技术
1.状态表示方法 协议状态用状态矩阵表示为:
E 1 C 21
M
C
n1
C 12 E2
M
C n2
L L
C 1n C 2n
M M
L E n
这部当里状所E态 有1,, 通EC道2ij…为可,协处E议理n实,成体为空in通到层道协协时议议,实的协体几议j的个状通协态道议可的实用状体数态的组。局 [E1,E2,…,En]表示(因为空通道只有一种状态)。
0 0 a?m
0
0
(2)
0 1
0
0
所以(2),(3),(4)状态是不可能出现的,即不 可达的)。
0 0
0
0
b?m (3)
0 0 b?ack
0
0
(4)
0 0
0
1
0 0
1
0
那么怎样判定(1)是可达状态,而(2),(3) 和(4)不是可达状态呢?
第五章 协议验证技术
A S
协议有多种表达形式,这包括:用自然语言描述的非形式化协议文本; 用形式描述语言(ESTELLE,LOTOS,SDL等)描述的协议规范;用协议模型 技术(FSM,petrinet,CCS等)表达的协议模型;以及用程序设计语言(C, pascal等)描述的协议代码。协议分析可在任何一种表达形式上进行,一 般地说,上述所有方法都可在这几种表达形式上进行(手工或软件工具)。 然而,除符号执行之外,人们都在协议模型上进行协议分析(简单,容易 形成确定算法)。 本章讨论三种分析方法,它们是可达性分析、不变性分析和等价分析。
for each successor state s of q if (s is not in A or W)
{ add s to W; analyze();
} delete q from W; } }
集合W包含未被分析的协议 状态,A包含已分析和正在 分析中的协议状态, 算法执 行之前,W包含initial state,A为空,算法执行完 毕之后,W为空,A包含协议
第五章 协议验证技术
5.2.1 穷尽可达性分析 穷尽(exnausive)可达性分析产生和检查
所有协议状态。算法5.1描述了穷尽可达性分析 的基本算法,该算法假定计算机的存储空间足 够大,计算速度足够高。
第五章 协议验证技术
算法5.1:exhausive reachability analysis start() { W={initial state};//工作集;将被分析的状态 A={};//被分析过的状态 analyze();//穷尽分析 } analyze() { if (W==empty) return; q=last element from W; add q to A; find all successsors of q; if (q==error_state) report_error(); else {
协议分析的目的是:对已设计的协议进行分析和校验 (这些已设计的协议大都是采用非形式化设计方法产生的 )
第五章 协议验证技术
协议分析包括许多方法,例如, (1)可达性分析(reachability analysis) (2)等价性分析(equivalence analysis) (3)不变性分析(invariance analysis) (4)符号执行(symbol executin)、模拟(simulation)等等。 这些分析工作可以手动完成。
第五章 协议验证技术
5.2 可达性分析 可达性分析(基于FSM模型技术)试图产生和检查协议所有 或部分可达状态。所谓可达状态指协议从初始状态开始经历 有限次转换之后可达到的状态,所有可达状态构成可达图 (reachability graph).可达性分析的最重要工作是产生和 检查可达图,判定是否存在死锁,活锁等协议错误。可达性 分析涉及三个重要技术: (1)怎样找到所有可达状态,构成可达图; (2)怎样检测死锁、活锁等协议错误; (3)怎样解决状态爆炸问题。
这里,entity(state)表示协议实体处于状态state中, action —point(state)表示作用点处于状态state中,! 表示发送,?表示接收。作用点的状态定义为“0”或 “1”。发送(!)结束后,状态为“1”;接收(?) 结束后,状态为“0”。AB协议系统有四个作用点,它 们是用户和S之间接口A,用户和R之间接口B,S和通 道之间接口a以及R和通道之间接口b。利用上述的事 件表达格式,图5.1的事件表述如下:
第五章 协议验证(分析)技术
5.1 概述 对协议本身的逻辑正确性进行校验的过程称之为验证
(protocol verification). 协议验证有两种途径: (1)协议分析(protocol analysis) (2)协议综合(protocol synthesis)
通常所说的协议验证指的是前者。协议综合(将在第六 章讨论)将协议设计过程和协议验证(分析)过程融合在一起, 它通过一组能确保所设计的协议是正确的规则,从一些基本协 议模块中(这些基本模块已证明是正确的)产生所希望的目标 协议。
第五章 协议验证技术
(1)....S(0) : A(1)? m (7)R(1):b(0)!ack
(2)....S(1) : a(0)!m (8) R(1):B(0)!m
a?ack 0 A?m
a!m
a
2
1
timeout
AB协议系统
b?ack 0
C 21
1
a!ack
a?m
C 12
0 drop 1
b!m
B R
0 drop
1
b!ack,B!m b?m
第五章 协议验证技术
为了解决这个问题,我们按下述格式定义交互事件:
entity(state):action—point(state)?/!message
第五章 协议验证技术
2.怎样找到所有可达的后继状态
不考虑报文顺序号,AB协议系统如图5.1所示,其中是R到
S的通道,协议状态由二维矩阵组成。初始状态有四个后继状
态:
0 0
0
0
Fra Baidu bibliotek
A?m (1)
1 0
0
0
很显然,状态(2),(3)和(4)不是可达状态 (因为初始状态中AB内部没有任何数据需要传输,
单明了,然而要将它付诸实
施时,我们还必须解决以下 一些问题。
第五章 协议验证技术
1.状态表示方法 协议状态用状态矩阵表示为:
E 1 C 21
M
C
n1
C 12 E2
M
C n2
L L
C 1n C 2n
M M
L E n
这部当里状所E态 有1,, 通EC道2ij…为可,协处E议理n实,成体为空in通到层道协协时议议,实的协体几议j的个状通协态道议可的实用状体数态的组。局 [E1,E2,…,En]表示(因为空通道只有一种状态)。
0 0 a?m
0
0
(2)
0 1
0
0
所以(2),(3),(4)状态是不可能出现的,即不 可达的)。
0 0
0
0
b?m (3)
0 0 b?ack
0
0
(4)
0 0
0
1
0 0
1
0
那么怎样判定(1)是可达状态,而(2),(3) 和(4)不是可达状态呢?
第五章 协议验证技术
A S
协议有多种表达形式,这包括:用自然语言描述的非形式化协议文本; 用形式描述语言(ESTELLE,LOTOS,SDL等)描述的协议规范;用协议模型 技术(FSM,petrinet,CCS等)表达的协议模型;以及用程序设计语言(C, pascal等)描述的协议代码。协议分析可在任何一种表达形式上进行,一 般地说,上述所有方法都可在这几种表达形式上进行(手工或软件工具)。 然而,除符号执行之外,人们都在协议模型上进行协议分析(简单,容易 形成确定算法)。 本章讨论三种分析方法,它们是可达性分析、不变性分析和等价分析。
for each successor state s of q if (s is not in A or W)
{ add s to W; analyze();
} delete q from W; } }
集合W包含未被分析的协议 状态,A包含已分析和正在 分析中的协议状态, 算法执 行之前,W包含initial state,A为空,算法执行完 毕之后,W为空,A包含协议
第五章 协议验证技术
5.2.1 穷尽可达性分析 穷尽(exnausive)可达性分析产生和检查
所有协议状态。算法5.1描述了穷尽可达性分析 的基本算法,该算法假定计算机的存储空间足 够大,计算速度足够高。
第五章 协议验证技术
算法5.1:exhausive reachability analysis start() { W={initial state};//工作集;将被分析的状态 A={};//被分析过的状态 analyze();//穷尽分析 } analyze() { if (W==empty) return; q=last element from W; add q to A; find all successsors of q; if (q==error_state) report_error(); else {
协议分析的目的是:对已设计的协议进行分析和校验 (这些已设计的协议大都是采用非形式化设计方法产生的 )
第五章 协议验证技术
协议分析包括许多方法,例如, (1)可达性分析(reachability analysis) (2)等价性分析(equivalence analysis) (3)不变性分析(invariance analysis) (4)符号执行(symbol executin)、模拟(simulation)等等。 这些分析工作可以手动完成。
第五章 协议验证技术
5.2 可达性分析 可达性分析(基于FSM模型技术)试图产生和检查协议所有 或部分可达状态。所谓可达状态指协议从初始状态开始经历 有限次转换之后可达到的状态,所有可达状态构成可达图 (reachability graph).可达性分析的最重要工作是产生和 检查可达图,判定是否存在死锁,活锁等协议错误。可达性 分析涉及三个重要技术: (1)怎样找到所有可达状态,构成可达图; (2)怎样检测死锁、活锁等协议错误; (3)怎样解决状态爆炸问题。
这里,entity(state)表示协议实体处于状态state中, action —point(state)表示作用点处于状态state中,! 表示发送,?表示接收。作用点的状态定义为“0”或 “1”。发送(!)结束后,状态为“1”;接收(?) 结束后,状态为“0”。AB协议系统有四个作用点,它 们是用户和S之间接口A,用户和R之间接口B,S和通 道之间接口a以及R和通道之间接口b。利用上述的事 件表达格式,图5.1的事件表述如下:
第五章 协议验证(分析)技术
5.1 概述 对协议本身的逻辑正确性进行校验的过程称之为验证
(protocol verification). 协议验证有两种途径: (1)协议分析(protocol analysis) (2)协议综合(protocol synthesis)
通常所说的协议验证指的是前者。协议综合(将在第六 章讨论)将协议设计过程和协议验证(分析)过程融合在一起, 它通过一组能确保所设计的协议是正确的规则,从一些基本协 议模块中(这些基本模块已证明是正确的)产生所希望的目标 协议。
第五章 协议验证技术
(1)....S(0) : A(1)? m (7)R(1):b(0)!ack
(2)....S(1) : a(0)!m (8) R(1):B(0)!m
a?ack 0 A?m
a!m
a
2
1
timeout
AB协议系统
b?ack 0
C 21
1
a!ack
a?m
C 12
0 drop 1
b!m
B R
0 drop
1
b!ack,B!m b?m
第五章 协议验证技术
为了解决这个问题,我们按下述格式定义交互事件:
entity(state):action—point(state)?/!message
第五章 协议验证技术
2.怎样找到所有可达的后继状态
不考虑报文顺序号,AB协议系统如图5.1所示,其中是R到
S的通道,协议状态由二维矩阵组成。初始状态有四个后继状
态:
0 0
0
0
Fra Baidu bibliotek
A?m (1)
1 0
0
0
很显然,状态(2),(3)和(4)不是可达状态 (因为初始状态中AB内部没有任何数据需要传输,