2022年网络协议分析 .pdf
《2022年网络协议分析 .pdf》由会员分享,可在线阅读,更多相关《2022年网络协议分析 .pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络协议分析姓名学号:班级名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - 一、实验题目(1) 验证数据链路层协议的安全性(2)AB 协议(3)GO-BACK-N协议二、实验环境搭载在 windows 下安装 spin , 将 spin.exe的路径添加到环境变量path中,若电脑有 gcc,则直接将其路径写入path,若无则安装 Dev-c+,将其内所包含的gcc 写入 path 。然后运行 xspin525.tcl,即可启动
2、spin 完成实验。三、实验目的 1. 学习 PROMELA语言,并用它描述常见协议并验证。 2. 练习协议工具 spin 的使用,并对协议的执行进行模拟。四、编程实现 1.数据链路层的协议正确性验证协议条件分为报文应答会出错且丢失,因此信道共有五中形式的信号,即发送的数据信号、ACK信号、 NAK信号,丢失信号和出错信号;定义两个信道,用在发送方实体和接收方实体进行数据传送;定义两个进程, 分别是发送方进程和接受进程,发送方在接受到错误的信号或 ACK序列号不匹配时,进行重传。接收方,收到错误信息时,发送 Err ,NAK ,Mis 信号,正确时返回ACK信号。具体程序如下:proctype
3、 SENDER(chan InCh,OutCh) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - byte SendData; byte SendSeq; byte ReceivedSeq; SendData=5-1; do :SendData=(SendData+1)%5; again: if :OutCh!Msg(SendData,SendSeq) :OutCh!Msg(SendData,SendSeq) :OutCh!M
4、sg(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; 名师资料总结 - -
5、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 15 页 - - - - - - - - - if :timeout - goto again :InCh?Mis(0,0) - goto again :InCh?Err(0,0)-goto again :InCh?Nak(ReceivedSeq,0)- goto again :InCh?Ack(ReceivedSeq,0)- if :(ReceivedSeq=SendSeq)-goto progress :(ReceivedSeq!=SendS
6、eq)- end2: goto again fi fi; progress: SendSeq=1-SendSeq; od; proctype RECEIVER(chan InCh,OutCh) byte ReceivedData; byte ReceivedSeq; byte ExpectedData; byte ExpectedSeq; do :InCh?Msg(ReceivedData,ReceivedSeq)- if :(ReceivedSeq=ExpectedSeq)- 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
7、师精心整理 - - - - - - - 第 4 页,共 15 页 - - - - - - - - - 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(Receiv
8、edSeq,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!=Expect
9、edSeq)- 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 15 页 - - - - - - - - - if :OutCh!Mis(0,0); :OutCh!Nak(ReceivedSeq,0); :OutCh!Err(0,0); fi fi :InCh?Err(0,0)-OutCh!Nak(ReceivedSeq,0); :InCh?Mis(0,0) - skip; od; init run SENDER(ReceiverToSender,SenderToRece
10、iver); run RECEIVER(SenderToReceiver,ReceiverToSender); 2.AB 协议根据 AB协议状态转换图用PROMELA 语言进行描述。其中由于S1状态和 S3状态发送的信息是一致的,故将两个状态合一。定义两个发送和两个接收进程,分为A发送 B接收,B发送 A接收。具体程序如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - - - - - mtype = Err,a,b; chan Sender
11、ToReceiver = 1 of mtype,byte; chan ReceiverToSender = 1 of mtype,byte; proctype A_SENDER(chan InCh, OutCh) S5: if :OutCh!a(0) :OutCh!Err(0) fi; if :InCh?Err(0)- goto S5 :InCh?b(0)- goto S1 :InCh?b(1)- goto S1 fi; S1: if :OutCh!a(1) :OutCh!Err(0) fi; if :InCh?Err(0)- goto S5 名师资料总结 - - -精品资料欢迎下载 - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年网络协议分析 2022 网络 协议 分析
限制150内