西电协议分析与设计上机报告.docxVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西电协议分析与设计上机报告 协议分析与设计上机报告 7 proctype SENDER(chan InCh,OutCh) 8 { 9 byte SendData; 10 byte SendSeq; 11 byte ReceivedSeq; 12 SendData = MAXSEQ-1; 13 do 14 ::SendData = (SendData+1)%MAXSEQ; 15 again: if 16 ::OutCh!Msg(SendData,SendSeq) 17 ::OutCh!Err(0,0) 18 ::OutCh!Miss(0,0) 19 fi; 20 21 if 22 ::timeout - goto again 23 ::InCh?Miss(0,0) -goto again 24 ::InCh?Err(0,0) -goto again 25 ::InCh?Nak(ReceivedSeq,0) - 26 end1: goto again 27 ::InCh?Ack(ReceivedSeq,0) - 28 if 29 ::(ReceivedSeq == SendSeq) -goto progress 30 ::(ReceivedSeq != SendSeq) - 31 end2: goto again 32 fi 33 fi; 34 progress : SendSeq = 1 - SendSeq; 35 od; 36 } 37 38 proctype RECEIVER(chan InCh,OutCh) 39 { 40 byte ReceivedData; 41 byte ReceivedSeq; 42 byte ExpectedData; 43 byte ExpectedSeq; 44 45 do 46 :: InCh?Msg(ReceivedData,ReceivedSeq) - 47 if 48 ::(ReceivedSeq == ExpectedSeq) - 49 assert(ReceivedData == ExpectedData); 50 progress: ExpectedSeq = 1- ExpectedSeq; 51 ExpectedData = (ExpectedData + 1)%MAXSEQ; 52 if 53 ::OutCh!Miss(0,0) 54 ::OutCh!Ack(ReceivedSeq,0); 55 ::OutCh!Err(0,0); 56 ExpectedSeq = 1- ExpectedSeq; 57 ExpectedData = (ExpectedData + 4)%MAXSEQ; 58 fi 59 ::(ReceivedSeq!=ExpectedSeq) - 60 if 61 ::OutCh!Nak(ReceivedSeq,0); 62 ::OutCh!Err(0,0); 63 fi 64 fi 65 ::InCh?Err(0,0) - OutCh!Nak(ReceivedSeq,0); 66 ::InCh?Miss(0,0) - skip 67 od; 68 } 69 70 init 71 { 72 atomic 73 { 74 run SENDER(ReceiverToSender,SenderToReceiver); 75 run RECEIVER(SenderToReceiver,ReceiverToSender); 76 } 77 } 实验截图 一致性验证: 无进展循环验证 人为加入错误进行验证 6-6 AB协议 因为根据状态图,S3状态和S1状态一致,所以将S3状态与S1状态合并。在该过程中,一共有3种信号a,b,Err,所以我们定义mtype = {a,b,Err}。 然后定义两个信道,用于在发送方实体A和接收方实体B进行数据传输。 chan AtoB = [1] of {mtype,byte}; chan BtoA = [1] of {mtype,byte}; 主要过程为: 发送方处于S5状态,并发送报文a(0)(模拟出错用Err(0)),此时处于S4等待应答。 当接收方处于S4并接收到报文,如果是a(0)或者是a(1)则转向S1状态,并发送报文b(1)且转到S2状态;如果是Err(0)则转向S5状态,并发送报文b(0)且转到S4状态。 而发送方如果收到的应答是b(

文档评论(0)

185****9651 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档