- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
网络协议工程SPIN实验报告
摘要:本文重要介绍了一种基于模型检测的协议自动分析工具SPIN的使用。对经典的AB协议在抱负状态、信道有误码无丢失和信道有误码有丢失三种不同环境中分别进行建模,并运用SPIN进行自动分析。在信道有误码有丢失的情况中,我们分别设立了两种错误,以进一步观测协议的运营,分析协议存在的问题。从而加深对协议验证技术和形式化描述技术的结识和理解,进一步掌握运用PROMELA语言对协议进行建模,同时掌握SPIN的基本操作,熟悉运用SPIN对网络协议进行分析,提高实验能力。
关键词:模型检测;AB协议;SPIN。
0.引言
随着计算机通信与网络技术的迅猛发展,网络技术在人们平常的工作、学习和生活的各个方面都得到了普遍地运用。各种网络通信系统在提供越来越丰富的功能的同时,其设计和实现也日益复杂。面对复杂网络系统的挑战,传统的自然语言进行的协议描述,虽然具有表达能力强、可读性好、方便的优点,但是存在不严格、不精确、没有描述标准和存有二义性等缺陷。形式化方法使得对网络通信系统的描述、实现和测试变得容易,在对于协议实现、测试的自动化和协议验证上得到了广泛运用。
本文重要介绍一种基于模型检测的协议自动分析工具SPIN及其在分析网络协议中的应用。
1.SPIN概述
随着计算机通信与网络技术的迅猛发展,网络技术在人们平常的工作、学习和生活的各个方面都得到了普遍运用。各种网络通信系统在提供越来越丰富的功能的同时,其设计和实现也日益复杂。面对复杂网络系统的挑战,传统的自然语言进行的协议描述,虽然具有表达能力强、可读性好、方便等优点,但是存在不严格、不精确、没有描述标准和存有二义性等缺陷。形式化方法使得对网络通信系统的描述、实现和测试变得容易,在对于协议实现、测试的自动化和协议验证上得到了广泛运用。
本文重要介绍一种基于模型检测的协议自动分析工具SPIN及其应用。
1.1SPIN概述
SPIN(SimplePROMELAInterpreter)是一种用丁对并发系统验证模型检测器,采用深度优先搜索算法,偏序化简和on-the-fly策略从不同的角度来解决模型检测方法中普遍存在的状态空间爆炸问题,其适合对协议验证。SPIN支持随机、交互和指导性的自动机验证,它重要针对设计规范进行检测。最早是由贝尔实验室的形式化方法与验证小组于1980年开始开发的。1995年偏序简约和线性时态逻辑转换的引入使得SPIN的功能进一步扩大。2023年推出的SPIN4.0版本支持C代码的植入,应用的灵活性进一步增强。随后2023年推出的SPIN4.1版本加入了深度优先搜索算法,2023年连续推出SPIN5.2版本,这使得SPIN的发展又上一个新台阶。NASA使用SPIN检测在1996年火星探测者所存在的错误,结果发现一些错误是可以在发射之前就可以被检测并改正的。SPIN从此就被用来检测土星火箭控制软件和一些应用与外层空间的程序。因SPIN有良好的算法设计和非凡的检测能力,得到了ACM(AssociationforComputingMachinery)(世界最早的专业计算机协会)的认可,在2023年授予SPIN的开发者Holzmann享有声望的软件系统奖。迄今为止SPIN也是唯一获得ACM软件系统奖的模型检测工具。
SPIN通过模仿系统的执行并产生C程序,探测系统的状态空间,最终验证系统的属性是否满足,如不满足,通过提供系统轨迹的形式帮助使用者找出违反对的性属性的状态。SPIN作为一种形式化自动验证工具,其目的是:提供系统建模语言,用于直观、明确地描述系统模型规约,而不考虑具体实现细节;功能强大而简明的描述系统应满足性质属性规定的逻辑表达法:提供一套验证系统建模逻辑一致性及系统是否满足所要验证性质的方法。它以PROMELA为输入语言,用线性时态逻辑(LTL)公式描述系统必须满足的性质。SPIN可以对大型的协议系统进行有效的对的性分析,即使这个系统覆盖了最大限度的状态空间。SPIN一方面从一个描述的协议系统的高层模型规格开始,经分析没有语法错误后,对系统的交互进行模拟,直到确认系统设计拥有预期的行为;然后,SPIN将产生一个明C语言描述的验证程序,经检查器编译后被执行,执行中假如发现了违反对的性说明的任何反例,则可反馈给交互模拟机,通过重现细节剔除引起错误的因素。图1-1描述了SPIN模拟和检测的过程。
PROMELA解析器
PROMELA解析器
LTL公式解析和转换器
SPIN
语法错误报告
验证机产生器
交互模拟
模型优化测试器
执行on-the-fly验证
反例
图1-1SPIN模拟和检测的过程
1.2SPIN安装及使用
SPIN可以在很多平台上运营,具有很多版本,我们在这个实验中是在Windows764位操作系统中,基于Cygwinl
文档评论(0)