网络软件设计10-有状态设计.ppt_第1页
网络软件设计10-有状态设计.ppt_第2页
网络软件设计10-有状态设计.ppt_第3页
网络软件设计10-有状态设计.ppt_第4页
网络软件设计10-有状态设计.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络软件设计 服务器的有状态与无状态有状态协议设计 制作主讲 段景山 2 状态由服务器维护的 关于服务器与客户机正在进行的交互的信息称为状态 信息 不是指服务器和客户机交互的数据 而是关于交互过程本身有状态服务器保存状态信息的服务器程序例 认证服务器需要记录与客户交互的状态 正在认证 等待用户名 等待口令 已认证等无状态服务器不保存状态信息的服务器程序例 聊天应用 有状态与无状态服务器 3 有状态服务 为什么要求设计有状态服务器任务需求可以减少报文开销 利用报文间的相关性 有状态服务器面临的问题增加实现的复杂程度需要复杂的协议控制系统在多个状态下转换时 可能因错误事件而导致 进入非期望状态 死锁 崩溃可以设计有限状态机来指导软件实现 4 无状态是一个协议问题 为什么要设计无状态服务任务需求服务实现简单 可靠性强一个报文的意义不依赖先前的报文 状态的依赖性究竟网络应用软件是有状态的还是无状态的从系统的角度 系统是 无状态 的系统能不断为各次通信服务从功能实现角度 复杂的通信应采用有状态方法设计 5 有限状态机 一种直观 全局 准确的协议描述方法 状态 转换 事件 动作 缺点时序性不强 6 有限状态机的基本结构 状态 实体有有限个状态每一时刻 实体只处于其中一个状态事件 事件引起实体产生动作 如收到PDU 定时器到时等事件按发生的顺序排在事件队列中 等待处理事件可能有附加条件动作 处理队列中的一个事件 转移到下一状态不同状态下 对同一事件可能有不同的处理方法最简动作 忽略事件 保持状态 图中可省略不画 FSM 事件 状态1 状态2 事件e1 动作a1 事件e2 动作a2 事件e3 动作a3 7 例 以停等协议为例 讲解利用有限状态机实现有状态设计发送方发送完一个数据包后 需得到接收方的确认才能发送下一个数据包若接收方超时没有确认 发送方将重传 8 停等协议的状态机 1 状态机 Ns Nr 发送 接收 递交 上层DU 协议实体 PDU ACKTo 对等实体 PDU ACKFrom 对等实体 状态机的位置 9 停等协议 2 状态的确定 0 ACK 1 ACK 发送方 接收方 准备发送帧1 准备发送帧0 等待帧1 等待帧0 10 停等协议状态机 准备发送帧0 准备发送帧1 等待接收帧0 等待接收帧1 接收方 发送方 11 有限状态机小结 状态状态是复合的由多个要素形成如 准备发送帧0状态刚发送了帧1上层有一个待发的SDU收到了对前一帧的应答等待刚发送的帧的应答还没有超时系统的状态是稳定的不触发就不变化制定状态的结果可能不唯一 状态1 状态2 x 12 有限状态机小结 事件转换的输入条件若是别的状态的动作造成转换 则跃迁的状态是不稳定状态 不应出现可以是对等实体的动作状态机一次只处理一个事件如果有必要处理多个事件 应定义为复合事件 状态1 状态2 事件1 动作1 事件2 动作1 动作2 动作2 事件1 事件2 动作3 事件1 动作1 事件2 动作2 状态3 状态1 事件3 动作3 13 有限状态机小结 动作动作一定由事件触发不触发就自发产生动作是不稳定状态某些转换不一定产生动作 动作不一定伴随状态转换触发不一定有动作产生 不一定造成状态转换 状态1 动作1 事件1 x 状态1 事件2 动作2 事件3 14 有限状态机的作用 1 指导协议实现根据有限状态机形成状态转移表 状态转移表 15 状态转移表 停等协议的状态转移表 16 状态转移表 停等协议的状态转移表 等待帧0 等待帧1 发送ACK 收到帧0 发送ACK 收到帧1 17 fsm程序框架 根据状态转移表形成fsm程序可能的框架 fsm 当前状态 事件 switch 事件 case事件1 case事件2 default ignore returnnext state action1 next state xxx main state initial while 1 waiteforaevent state fsm state event fsm c if 当前状态 X 18 改进的fsm程序框架 main state initial while 1 waiteforaevent switch state caseX state x fsm event caseY state y fsm event x fsm 事件 switch 事件 case事件1 case事件2 default ignore returnnext state action1 next state xxx 19 有限状态机的设计 事件的产生停等协议的事件接收到数据 Information ACK定时器利用select 接收到数据read事件 进一步判决为Information ACK等定时selecttimeout超时 计时例 定时器为5秒 timeout可设为5秒 如果select返回值为0则认为超时或者timeout设为1秒 连续五次select返回值为0 则认为超时 20 有限状态机的设计 main state initial while 1 waiteforaevent switch state caseX state x fsm event caseY state y fsm event main timeout 5 while 1 retval select timeout if retval 0 event TIMEOUT elseif FD ISSET s read checkthedatatype event datatype switch state 21 停等协议的有限状态机设计 事件定义 defineEVENT RECV01 defineEVENT RECV12 defineEVENT ACK3 defineEVENT TIME4状态定义 defineSTATE SEND01 defineSTATE SEND12 defineSTATE RECV03 defineSTATE RECV14 22 停等协议的有限状态机设计 PDU设计事件产生 retval select timeout if retval 0 event TIMEOUT elseif FD ISSET s read checkthedatatype event datatype structPDU chartype charsequence num charlen chardata 100 sendbuf recvbuf recv s 停等协议的有限状态机设计 停等协议缓冲区设计发送方 单个帧的发送缓冲以备超时重传时使用structPDUsendbuf 接收方 单个帧的接收缓冲structPDUrecvbuf 23 事件处理 例 发送状态 24 switch state caseSTATE SEND0 state S0 fsm event break caseSTATE SEND1 state S1 fsm event break 25 intS0 fsm intevent intnext state next state STATE SEND0 switch event caseEVENT ACK sendbuf len fread sendbuf data sizeof char sizeof sendbuf data Fid sendbuf sequence num 1 sendbuf type FRAME DATA send sock char 26 停等协议的有限状态机设计 事件处理 例 接收状态 switch state caseSTATE RECV0 state R0 fsm event break caseSTATE RECV1 state R1 fsm event break intR0 fsm intevent intnext state next state STATE RECV0 switch event caseEVENT RECV0 duplicateframeProgramLog Dicardframe0 Duplicate sendacksendbuf type FRAME ACK sendbuf len 3 send ns char 停等协议的有限状态机设计 完善细节起始状态第一个帧的发送是 没有 条件触发的结束状态接收方需要知道还有没有新的数据 28 案例 某嵌入式终端主控程序设计 需求界面控制 29 30 需求功能控制 31 基于状态机的主控设计 主程序架构 32 事件驱动基本架构 33 状态设计 34 状态转移图 35 状态转移表 36 主程序ser

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论