1、替代变迁

包含有替代变迁的页面叫做父页,当CPN网使用替代变迁的时候,替代变迁所表达的逻辑必须在某一个位置得到实现,实现替代变迁逻辑页面叫做子页或者子网。

将替代变迁相邻的库所叫做槽库所,也即是在替代变迁和草库所之间至少有一条弧相连。多重实例的现象,每个子页面的实例都是完全独立的,同一子页面的其他实例标识无关。

2、颜色集

单元颜色集由简单的元素组成,标号为();

color name=unit[with new_unit]

3、 LTS协议建模方面我们使用CPN Tools工具,CPN Tools是丹麦研究员Arhus开发的基于有色Petri网的计算机辅助设计工具,不仅支持CPN ML编程语言,颜色集、世间、层次化模型、状态空间分析,它具有编辑,模拟和分析有色Petri网的功能,支持时间CPN和分成CPN[162],CPN Tools基于Design/CPN开发,使用良好的人机界面即使重新设计用户图形界面(GUI),使用CPN协议仿真工具,用户可以轻松的建模,仿真和分析并行系统,由于CPN Tools使用ML语言来扩展模型,

CPN是一种能够对模型系统进行检验和建模的语言,适合分析和藐视具有并和同步等特征的系统,

CPN ML主要用于定义颜色集、变量和函数、CPN Tools支持的颜色集又单元型 unit 、整型int 、实数型real 乘积型 product 等,支持的函数有指数分布型,均匀分布函数、额泊松分布函数等。定义颜色集用关键字 var,而定义函数使用关键字fun ,定义一个整型变量a, fun c()=discrete(1,10) 定义一个函数 c() 表示随机产生一个从1到10的整数。使用者通过CPN ML定义颜色集、变量、和函数等可以减少变迁和库所的使用量。 对于大规模复杂系统建模有着很大的优势。特别是结合层次化,对模型进行层次建模,有利于理解且有效抑制“空间爆炸问题”

分层,监视器、和空间状态是CPNTools提供的另外三种重要的机制,分层CPNTools提供一种重要的机制,通过分层功能建立层次化模型,有助于模型表达和理解,层次模型不限制网络规模,可求解大规模的排队问题,有效的解决简单Petri网引起的组态爆炸问题,CPNTools通过替代变迁,融合库所等方式实现层次化建模。

本文使用CPN(Colored Petri Net)对TLS协议进行建模,使用仿真工具CPNTools分析TLS握手协议秘钥建立的相关性质,

Petri网是一种基于状态的建模方法,CPN是在Petri网基础上扩展而来,具有概念简单以及图形化表达的特点,Kumar和Spafford将Petri网应用于Web安全领域,[基于CPN的Oauth协议建模与分析7] , CPN在解决协议建模问题上有以下的优势:

层次化: 引入了层次化的网络结构,含有替代变迁和融合库所。可以利用多可彼此联系的CPN网子模型构建复杂系统的整体模型。

可以实现推理,具有变迁机制,库所被触发之后变迁到达新的库所,因果关系明确

可以处理并发和顺序性的问题,具有实践因子可以处理不同行为发生的时间

有较为完善的仿真工具,可以使用CPNTools工具进行可视化建模和房展分析

基础Petri网是一种由库所(P,Place)和变迁(T,Transition),有向弧(C,connection ),以及令牌(Token)等元素组成的简单过程模型。Petri网是一个三元组(P,T,F),FC(PxT)

下面给出CPN的定义:CPN=(P,T,C,Σ,V,F,G,E,I)他是一个九元组。其中

P:表示库所 p(Place ) 的有限集合

T:是变迁 t(Transition )的有限集合

C是有向弧c(Connection)的集合 (PxT)∪(TxP),有向弧智能有库所指向变迁,或者由变迁指向库所。不能指向同类型的节点。

是有限非空颜色集(Color set),建模时由建模者根据模型设计颜色集,赋予令牌更多的信息。

V是变量的集合,对所有的变量v 满足 Type[v]=

F Pà 是颜色的集合,为每个库所指定颜色集

G TàEXPRv是防卫表达式函数,它指定了变迁的防卫表达式,对所有的变迁t,都存在 : Type=[G(t)]=BOOL 防卫表达式的返回值必须是布尔类型

E CàEXPRv 是弧表达函数,它指定了每条弧表达式,对于所有的有向弧c都存在Type[E(a)]=F(p)ms  ,弧表达式的类型和与他相连接的库所的类型相同。

I :P

协议建模的:

首先协议的顶层模型:

定义协议的颜色集合变量如下:

colset DATA=string;

colset NO=INT;

colset NO*DATA=Product NO*DATA;

var success:BOOL;

CPN tools 帮助文档资料和实例的更多相关文章

  1. Atitit 文档资料管理同步解决方案

    Atitit 文档资料管理同步解决方案 流程 生成快照, 操作. 使用快照与dir对比,生成操作日志 /atiplat_cms/src/com/attilax/sync/SyncUtil.java p ...

  2. 关于PKCS的文档资料

    关于PKCS的文档资料,在这里查找: http://www.emc.com/emc-plus/rsa-labs/standards-initiatives/public-key-cryptograph ...

  3. 30页软件测试人面试宝典文档资料,助你拿下了百度、美团、字节跳动、小米等大厂的offer【内含答案】

    前言:看了一下桌边的日历,新的6月,已经过去5天了.明天又是周六了,大家准备怎么度过呢?趁着大家周末给大家分享一个软件测试工程师面试题汇总. 拿到大厂的offer一直是软件测试朋友的一个目标,我是如何 ...

  4. 迷上我成真恋爱学心理学挽回她PDF文档资料完整版情感技巧脱单教程

    迷上我成真恋爱学心理学挽回她PDF文档资料完整版情感技巧脱单教程 成真迷上我偷听女人心挽回她课程 百度网盘迷上我教程pdf地址 百度网盘挽回她教程pdf+视频的地址 备用地址淘宝百度网盘发货地址 百度 ...

  5. Niagara帮助文档资料整理

    1.任何软件额发布都会有说明文档,有的不会附具体实践的操作步骤,存在不懂得问题一般可以通过查看榜文文档解决问题 一些软件的帮助文档是一PDF格式存储在软件安装的目录下面,如Niagar workben ...

  6. Freemarker全部文档和具体实例

    自己查找到了一些相关的资料分享给大家,有兴趣的可以去看看! Freemarker全部文档:http://www.open-open.com/doc/list/101?o=p

  7. supervisor安装部署文档和管理实例

    Supervisord是用Python实现的一款非常实用的进程管理工具,类似于monit(关于monit见我的博客:用monit监控系统关键进程),monit和supervisord的一个比较大的差异 ...

  8. mpdf中文开发使用文档附demo实例

    官网URL:http://www.mpdf1.com/mpdf/index.php github:https://github.com/mpdf/mpdf 官方开发手册,英文的:http://www. ...

  9. VIM辅导:视频教程,文档资料,经典插件

    VIM辅导:25个vim视频' 教程 '资源   转自: http://blog.jobbole.com/10250/ 编注:@程序员的那些事 12月14日在新浪微博发起的<你最常用哪些文本编辑 ...

随机推荐

  1. ISO/IEC 9899:2011 条款6.10.1——条件包含

    6.10.1 条件包含 约束 1.控制条件包含的表达式应该是一个整数常量表达式,除了:标识符(包括那些词法上与关键字相同的)被解析为以下所描述的:[注:因为控制常量表达式在翻译阶段4期间被计算,所以所 ...

  2. [LeetCode] 337. House Robber III 打家劫舍 III

    The thief has found himself a new place for his thievery again. There is only one entrance to this a ...

  3. python:封装连接数据库方法

    config.py # 数据库测试环境 name = '***' password = '******' host_port_sid = '10.**.*.**:1521/bidbuat' Oracl ...

  4. 转载:Python Web开发最难懂的WSGI协议,到底包含哪些内容?

    原文:PSC推出的第二篇文章-<Python Web开发最难懂的WSGI协议,到底包含哪些内容?>-2017.9.27 我想大部分Python开发者最先接触到的方向是WEB方向(因为总是有 ...

  5. mongoDB索引相关

    参考链接:MongoDB索引管理-索引的创建.查看.删除 索引 db.集合名.ensureIndex({"key":1}) 使用了ensureIndex在name上建立了索引.”1 ...

  6. string 与 int double 的转化

    #include <iostream> #include <string> #include <sstream> using namespace std; int ...

  7. MySQL8.0.16 单机 Linux安装以及使用

    安装 先去下载 https://dev.mysql.com/downloads/mysql/ 然后上传到Linux 进入存放目录,解压到指定目录[我这里是/soft/mysql8] [root@loc ...

  8. Markdown 测试用例

    标题 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 字体 *斜体文本* ...

  9. (idea maven)mybatis-generator步骤

    1.新建一个maven项目,选择maven-archetype-webapp 点击next 2.项目名称,点击next 3.选择项目存放路径,然后点击finish 4.在main包下 添加包java和 ...

  10. JavaScript中的原型prototype和__proto__的区别及原型链概念

    问题 初学js的同学,总是搞不清楚js中的原型是什么东西,看着控制台打印出来的一串串__proto__,迷惑不已. 例如我定义一个Person,创建一个实例p,并打印实例. function Pers ...