2008无线SWE鉴定试题5—滑窗协议处理.ppt

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

考试介绍 1、根据给定需求,在规定时间内(4~6个小时)完成编程和调测。 2、提供统一的工程供编程及测试: 开发环境:Visual C++ 6.0; 3、编程语言:C/C++; 4、单独在自己的办公用机上完成; 通过标准与考试纪律 考试通过标准 程序无编译错误(编译无法通过的按0分处理); 鉴定小组设计测试用例进行测试; 满分:通过所有测试用例,且4个小时之内提交; 扣分项:4小时后每超过1小时扣10分,6个小时必须提交; 未通过测试用例扣分,不同用例分值可能不同; 60分为及格 考试结果提交 程序完成后,通过发送邮件的方式提交到部门对应的CMO; 只能提交一次; 提交时间以CMO收到邮件的时间为准; 考试纪律 参加考试的人员须单独完成 ,不允许互相讨论交流,更不允许互相拷贝,不得进行其他任何违反公平公正原则的活动; 试题下载到本地后,禁止“本地连接”,IT网络在整个考试期间均会进行监控,一旦发现违规(连接上网络,但在10分钟内没有提交结果的),取消考试成绩,并记入个人诚信档案,列为关键事件,将直接影响年度评定。 题目描述 要求:编程实现“简化的选择性重传协议”的接收端,请务必仔细阅读试题。 协议模型说明 发送端(client)?接收端(server)单向的数据发送。 通信协议:程序封装了socket并提供接口,考试者使用接口收发消息。 上层协议:发送端负责数据下发;在接收端,考试者调用接口传递数据给上层。 协议介绍 1、选择性重传协议 协议机制:发送端连续发送若干个数据帧,接收端检查到某帧出错后直接丢弃,继续接收后续正确的帧并放在缓冲区;发送端检测出错后,重传出错帧,接收端收到重传的帧后,与原来缓存的其余帧一起按正确顺序发送到协议上层。 数据传输示例: 1)接收端必须对接收到的每个数据帧单独发送确认,正确发ACK或出错发NAK。每个确认帧只确认一个数据帧。 2)发送端重发:收到帧2的NAK或等待帧2的ACK超时,重发帧2。 3)接收端缓存和数据重排:收到满足正确顺序的帧直接发送到上层;帧2出错之后的数据先缓存,等收到重发的帧2后重排数据,将数据按正确顺序发给上层。 协议介绍 2、选择性重传的滑动窗口机制 在选择性重传中,发送者和接收者之间需要采用 滑动窗口来限制未确认数据帧的数量,以避免接收端 收到过量数据而被冲垮。 发送窗口: 发送窗口内的序号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。 接收窗口: 接收窗口内的序号代表允许接收的帧。接收端为其窗口内的每一个序列号保留了一个缓冲单元。接收端的窗口大小是固定的。 窗口移动: 在某一时刻,窗口的状态如上图所示。当接收端接收到了接收窗口内的数据帧,并且满足 m<待确认帧号<=m+w 时,接收窗口向前移动。而当发送端收到了发送窗口内起始帧对应的确认帧之后,发送窗口也将向前移动。 编程要求(一) 协议的相关定义 协议的帧结构和必要参数定义在接口文件api.h中。 1、帧结构 字段和长度如右图,无需考虑字节序转换。 字段含义: 类 别--三种帧类别:数据帧(DATA),肯定确认帧(ACK),否定确认帧(NAK) 发送序号--对数据帧,指该帧的发送序号;对确认帧(ACK或NAK),该序号填0 确认序号--对数据帧,该字段是指发送端期望的第一个待确认数据帧的序号; 对确认帧,该字段值 = 接收端确认收到的数据帧的序号; 内 容--对数据帧,发送的数据内容,取值范围1~100,超出范围的认为是错误帧;对确认帧,填0 2、 帧序号和滑窗大小 帧序号范围为0~7,占3bit。 #define MAX_SEQ 7 /*最大序号*/ 接收窗口大小为4。发送窗口大小为4。 #define MAX_RECV_SIZE ((MAX_SEQ + 1)/2) 编程要求(二) 1、接收端基本功能 接收窗口维护:初始化,按协议要求正确移动窗口边界。判断数据帧发送序号,丢弃序号不在窗口中的数据帧,只接收在接收窗口内的帧。 数据帧接收和缓存:对落在接收窗口内的数据帧,如果不是按序接收到的,要进行缓存。 确认帧发送:1)对接收的数据帧,内容正确时,发送肯定确认帧;内容错误(不在1~100范围内)时,丢弃该帧,并发送否定确认帧。2)确认帧符合规定格式。3)每个正确发送的数据帧,发送端都能收到一个肯定确认帧。 传送数据到上层协议和输出结果:接收端将接收的数据,按发送序号的正确顺序提交给上层协议。 2、接收端异常处理 丢弃重复发送的帧。 当发送方的待确认序号是接收方已发送过的ACK序号,说明有ACK丢失,接收端要进行重发。 编程要求(三) 程序框

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档