文档介绍:通信软件设计方法杨雄编写二零零九年四月讲授内容1)LINUX概况2))LINUX开发环境学习(实验)3)通信系统和通信软件4)基于TCP-)SOCKET程序设计(实验)5)有状态与无状态通信协议程序设计6)LINUX内核程序设计7)低层232接口通信程序设计8))IP软件和链路层软件设计(实验)2本讲重点问题如何编写状态机程序3第五讲有状态与无状态通信协议程序设计协议与状态机状态机程序设计IP转发程序设计4协议与状态机什么是协议?5协议与状态机标准规范协议私有的协议协议就是通信规程,通信双方或多方的信息传输约定信息传输: 1、控制信息(数据);2、运载信息(数据)通信系统的核心就是协议6协议与状态机协议分为无状态协议与有状态协议无状态协议:信息处理和历史记录无关例如IP有状态协议:信息处理和历史记录有关例如TCP 有状态协议用状态机来表示或者状态图来表示7协议与状态机有限状态机的元素状态协议的一个逻辑概念,规定特定状态下可以接受特定事件和执行相应动作 事件PDU、时钟计数溢出、系统管理指令 动作功能程序8协议与状态机状态机简单例子2个状态4个事件若干动作状态S1Disconnected断开状态S2Connected连接事件E4–关闭(Shutdown)--------------------------------送关闭信息PDU给对方关闭时钟事件E1–本地初始化(Initialization)------------------------------送启动信息PDU给对方开启时钟事件E2–收到对方来的数据PDU(ProtocolMessage)------------------------------处理接收的PDU事件E3–时钟到(TimerExpiry)------------------------------定时处理9协议与状态机如何编写这个状态机程序?10