利用停止等待协议传输数据文件实验(ppt 25页)

上传人:Za****n* 文档编号:159450222 上传时间:2022-10-09 格式:PPTX 页数:24 大小:424KB
返回 下载 相关 举报
利用停止等待协议传输数据文件实验(ppt 25页)_第1页
第1页 / 共24页
利用停止等待协议传输数据文件实验(ppt 25页)_第2页
第2页 / 共24页
利用停止等待协议传输数据文件实验(ppt 25页)_第3页
第3页 / 共24页
点击查看更多>>
资源描述
实验2:利用停止等待协议传输数据文件停止等待协议停止等待协议:一种最简单的(但效率较低的)差错和流量控制协议 基本原理:发送方发完一数据包后,需要等待接收方的应答信息发送方收到正确认信息ACK:接收方接收正确,发送方可发送下一数据包发送方收到负确认信息NAK:接收方接收错误,发送方应重发出错的数据包停止等待协议的基本工作过程 发送方接收方发送数据包1发送数据包2接收数据包1正确发送正确认ACK接收正确认ACK接收数据包2错误发送负确认NAK重发数据包2接收负确认NAK接收数据包2正确发送正确认ACK发送数据包3接收正确认ACK接收数据包3正确发送正确认ACK接收正确认ACK数据包丢失数据包在传输过程中丢失,接收方未接收到任何数据发送方在发送数据包后启动定时器规定时间内没有收到确认信息,则认为数据包丢失,需重传该包重传次数达到一定的值,则数据传输失败确认信息丢失确认信息在传输过程中丢失发送方采用定时器,定时器溢出后重发数据包数据包编号接收方收到与前一数据包编号相同的数据包后需要将其抛弃停等机制至少需要两个编号(通常为0和1)确认信息需要指明收到数据包的编号。ACK1:准备接收编号为1的数据包;ACK0:准备接收编号为0的数据包停止等待协议的效率 停止等待协议的效率lVLvVLvlvlTTTTe21122)(传输速率V在某种传输介质中是固定的信道的长度L越长、数据速率v越高、发送的数据位数l越少,传输效率越低差错检测奇偶校验(parity check)校验和(checksum)循环冗余校验码(CRC,cyclic redundancy code)奇偶校验停等协议中通常使用纵向的奇偶检验发送方在发送的数据块后扩展一个字节扩展字节中的第j位保证所有发送数据字节中第j位1的个数为奇数或偶数。偶校验码中第j位pj的计算公式奇校验码中第j位pj的计算公式njjjjjbbbbp.210njjjjjbbbbp.210循环冗余校验码发送方接收方发送数据 f(x)生成多项式 G(x)f(x)xk.G(x)=Q(x)+R(x)G(x)实际发送:f(x)xk.+R(x)数据字段校验字段f(x)xk.R(x)发送数据 f(x)生成多项式 G(x)R(x)=R(x)接收正确R(x)=R(x)接收出错发送f(x)xk.G(x)=Q(x)+R(x)G(x)循环冗余校验码举例1 1 0 0 1 1 0 0 0 01 1 0 0 1G(x)1 1 0 0 11 0 0 0 01 1 0 0 11 0 0 1R(x)1 0 0 0 0 1Q(x)f(x).xk1 1 0 0 1 1发送数据比特序列CRC校验码比特序列1 0 0 1带CRC校验码的发送数据比特序列1 1 0 0 1 1 1 0 0 11 1 0 0 11 1 0 0 11 1 0 0 11 1 0 0 101 0 0 0 0 1停止等待协议BSCBSC:一种典型的面向字符型停止等待协议BSC:使用ASCII码中的10个控制字符完成通信控制功能BSC:规定了数据报文、控制报文的格式BSC:规定了协议的操作过程特点:规程简单、容易实现,比较适宜于在中低速网络中使用控制字符符号名称编码功能说明SOH序始01H数据报文中报头的开始STX文始02H数据报文中正文的开始ETX文终03H数据报文中正文的结束EOT送毕04H传输结束ENQ询问05H询问对方并请求对方予以响应ACK正确认06H接收方正确接收数据报文后的响应NAK负确认15H接收方接收数据报文错误的响应DLE转义10H修改紧随其后字符的语义SYN同步16H收发双方的字符同步ETB组终17H成组传输时的组结束标记报文格式数据报文常用的控制报文确认:SYN SYN 0/1 ACK否认:SYN SYN NAK询问:SYN SYN ENQ传输结束:SYN SYN EOT透明数据传输为什么提出透明数据传输?BSC中的数据以字符为单位数据字符与控制字符有可能相同解决方法:转义字符DLE如果数据字符与控制字符相同,则在数据字符前增加DLEDLE也是控制字符,正文中出现DLE时也需要增加DLEBSC协议的执行过程停止等待协议编程实验在异步串行口上实现停等协议,实现文件的可靠传输简化的停止等待协议目的:在不影响停等协议基本思想的基础上简化编程和实验过程简化后使用的控制字符:STX、ETX、EOT、ENQ、ACK和DLE简化后的数据报文格式界面示意图选择发送和接收文件explicit CFileDialog(BOOL bOpenFileDialog,LPCTSTR lpszDefExt=NULL,LPCTSTR lpszFileName=NULL,DWORD dwFlags=OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,LPCTSTR lpszFilter=NULL,CWnd*pParentWnd=NULL,DWORD dwSize=0);选择发送和接收文件示例CString FileName;CFileDialog GetFileName(TRUE,NULL,NULL,OFN_HIDEREADONLY,文本文件(*.txt)|*.txt|,NULL,0);if(GetFileName.DoModal()=IDOK)FileName=GetFileName.GetPathName();磁盘文件操作virtual BOOL Open(LPCTSTR lpszFileName,UINT nOpenFlags,CFileException*pError=NULL);virtual UINT Read(void*lpBuf,UINT nCount);virtual void Write(const void*lpBuf,UINT nCount);virtual void Close();磁盘文件操作示例CFilerwFile;/需要读取的文件charBufBUFFER_SIZE;/读取和写入缓冲区intlen,Len;if(!rwFile.Open(FileName,CFile:modeRead|CFile:modeWrite|CFile:typeBinary,NULL)/打开文件/错误处理rwFile.Write(Buf,len);/将缓冲区Buf中len个字节写入文件len=rwFile.Read(Buf,Len);/从文件中读取Len个字节的数据放入Buf中/返回的len为实际读到的字节数RecvFile.Close();/关闭文件,文件操作结束练习和思考通过改变传输速率、数据包长度、模拟长线路等操作定性地观察停止等待协议的效率简化的停止等待协议使用奇偶校验码对传输的正文信息进行校验。奇偶校验实现简单但检错率不高。请查阅相关资料,将本实验的奇偶校验改为循环冗余校验,以提高检错率
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!