CPN tools 幫助文檔資料和實例


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;

 

 

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM