网络协议分析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络协议分析 姓名 学号: 班级 一、实验题目 考证数据链路层协议的安全性 (2)AB协议 (3)GO-BACK-N协议 二、实验环境搭载 在windows下安装spin,将spin.exe的路径增加到环境变量path中,若电脑有gcc,则直接将其路径写入path,若无则安装Dev-c++,将其内所包括的gcc写入path。而后运转xspin525.tcl,即可启动spin达成实验。 三、实验目的 学习PROMELA语言,并用它描绘常有协议并考证。 练习协议工具spin的使用,并对协议的履行进行模拟。 四、编程实现 数据链路层的协议正确性考证 协议条件分为报文应答会犯错且抛弃,所以信道共有五中形式的 信号,即发送的数据信号、ACK信号、NAK信号,抛弃信号和犯错信 号;定义两个信道,用在发送方实体和接收方实体进行数据传递;定 义两个进度,分别是发送方进度和接受进度,发送方在接遇到错误的 信号或ACK序列号不般配时,进行重传。接收方,收到错误信息时, 发送Err,NAK,Mis信号,正确时返回ACK信号。详细程序以下: proctypeSENDER(chanInCh,OutCh) { byteSendData; byteSendSeq; byteReceivedSeq; SendData=5-1; do ::SendData=(SendData+1)%5; again:if ::OutCh!Msg(SendData,SendSeq) ::OutCh!Msg(SendData,SendSeq) ::OutCh!Msg(SendData,SendSeq) ::OutCh!Msg(SendData,SendSeq) ::OutCh!Msg(SendData,SendSeq) ::OutCh!Msg(SendData,SendSeq) ::OutCh!Msg(SendData,SendSeq) ::OutCh!Msg(SendData,SendSeq) ::OutCh!Msg(SendData,SendSeq) ::OutCh!Msg(SendData,SendSeq) ::OutCh!Msg(SendData,SendSeq) ::OutCh!Err(0,0) ::OutCh!Mis(0,0) fi; if ::timeout-gotoagain ::InCh?Mis(0,0)-gotoagain ::InCh?Err(0,0)-gotoagain ::InCh?Nak(ReceivedSeq,0)-gotoagain ::InCh?Ack(ReceivedSeq,0)- if ::(ReceivedSeq==SendSeq)-gotoprogress ::(ReceivedSeq!=SendSeq)-end2:gotoagain fi fi; progress:SendSeq=1-SendSeq;od;} proctypeRECEIVER(chanInCh,OutCh) { byteReceivedData; byteReceivedSeq; byteExpectedData; byteExpectedSeq; do ::InCh?Msg(ReceivedData,ReceivedSeq)- if ::(ReceivedSeq==ExpectedSeq)- assert(ReceivedData==ExpectedData); progress:ExpectedSeq=1-ExpectedSeq; ExpectedData=(ExpectedData+1)%5; if ::OutCh!Mis(0,0) ::OutCh!Ack(ReceivedSeq,0); ::OutCh!Ack(ReceivedSeq,0); ::OutCh!Ack(ReceivedSeq,0); ::OutCh!Ack(ReceivedSeq,0); ::OutCh!Ack(ReceivedSeq,0); ::OutCh!Ack(ReceivedSeq,0); ::OutCh!Ack(ReceivedSeq,0); ::OutCh!Ack(ReceivedSeq,0); ::OutCh!Ack(ReceivedSeq,0); ::OutCh!Ack(ReceivedSeq,0); ::OutCh!Ack(ReceivedSeq,0); ::OutCh!Ack(ReceivedSeq,0); ::OutCh!Err(0,0); ExpectedSeq=1-ExpectedSeq; ExpectedData=(ExpectedData+4)%5; fi ::(ReceivedSeq!=ExpectedSeq)- if ::OutCh!Mis(0,0); ::Out

文档评论(0)

158****3214 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档