AB协议的分析与应用.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AB协议的分析与应用

《通信系统软件开发》实验四报告——AB协议的分析与应用实验名称AB协议的分析与应用。软硬件平台操作系统:Windows10使用工具:6.0Visual、 SDL_TTCN_Suite4.2实验目的通过本次实验,了解AB协议的工作原理并修改它的某些部分,使之达到想要的效果。实验内容1. 熟悉AB协议,并回答相关问题:(1) 分析Abp example 的功能,简要说明流程,并说明是否陷入循环以及原因。(2) Abp example 中的定时器T1,两个是否一样?设置一个是否影响另一个?T1 的时间是否累积?比如开始设置T1定时2 秒,当还没timeout 时,再设置T1 定时now+2,总时间是否为4 秒,为什么?2. 修改任务任务一:Process NetworkLayer2 原功能只是简单的将收到的信息返回给数据层,再由数据层经物理层传回发送者,现在改进其功能,使之能够将原数据反转后在回传。任务二:Process NetworkLayer1 完成原env 的功能,要求该部分在初始化以后能自动发送3 次数据, 每次数据要编号(可以用原Pack 中的info表示),之后就是将收到的消息直接转发出去。实验步骤及结果分析(1)熟悉ABP协议,并回答相关问题:AB协议是最早的端到端通信协议之一。它是运行在数据链路层的一个简单的网络协议,用于重传丢失或损坏的帧数据。它可以被看成是使用窗口大小为1 bit的滑动窗口协议的特殊例子,而且设定一个简单的计时器来限制消息发送的顺序,来确保接收方在接收到消息后能及时回传确认,即它的功能是在不可靠的传输信道上完成数据的可靠传输。下面是用SDL描述该协议的OSI示意图。从图上可以看出,AB协议包括了以下几个部分:系统环境、物理层(PhysicalLayer)、数据链路层1(DataLayer1)、数据链路层2(DataLayer2)、网络层1(也就是系统环境)、网络层2(NetworkLayer2)。假设消息是从发送方A到接收方B,并且我们认为A和B的信道没有消息在传送。每个从A发到B的消息包含了一个数据域和一个1bit的sequence number(不是0就是1)。B有两个ACK序号可以发送到A作为确认号:ACK0和ACK1。当A发出一个消息时,它会定时地将这个消息以同一个sequence number来发送,直到它收到B回传的相同的sequence number的确认消息,然后A才转换另一个sequence number来发送下一个消息给B。如当B收到一个完好的消息并且sequence number为0时,它开始一直回传一个带ACK0的消息给A,直到它收到下一个sequence number为1的合法的消息,若收到,则开始一直回传带ACK1的消息,直到收到下一个sequence number为0的消息,如此循环。这意味着,当A已经发送了一个sequence number为1的消息后,可能仍会收到来自B的带ACK0的消息(这个时候A应该想接收的是ACK1的消息),这时候,A会把这种消息视为NAKs (Negative-Acknowledge Characters)而把它无视掉,然后继续发送sequence number为1的消息,直到它收到B回传的带ACK1的确认消息。为什么会进入循环?答:通过上面的工作原理分析可知,当环境发送第一条消息到时,它经过了:DataLayer1(seq为0,启动计时器T1,在规定的时间内想要接收来自接收方的带ACK0消息,如果收不到就一直发这一条消息)-PhysicalLayer1 -PhysicalLayer2 -DataLayer2-NetworkLayer2 -DataLayer2(回传带ACK0的消息,T1开始计时,期望收到seq为1的下一条消息,否则一直发送这条回传消息,问题就出现在这里)-PhysicalLayer2 -PhysicalLayer1 -DataLayer1(如愿收到带ACK0的消息,准备接收从环境或NetworkLayer1传来的消息并打它打包为seq=1的消息再发送给DataLayer2)-环境。由于环境只发送了一条消息给NetworkLayer2,而没有继续发送接下来的另外的消息,这首先会引起DataLayer1里面的T1超时再进入等待状态(等待从环境NetworkLayer1传来的下一条消息),然后会导致DataLayer2里面一直期待接收下一个seq=1的消息的T1计时器超时,超时后DataLayer2一直回传seq=0且带ACK0的消息(从PhysicalLayer1回传的消息不是DataLayer1想要的从NetworkLayer1传来的下一条消息,所以对DataLayer2回传的seq=0,ACK0的消息作无视处理),所以就

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档