青岛农业大学理学与信息科学学院计算机网络与通信课程设计报告 设 计 题 目 停止等待协议的编程模拟 学生专业班级 计本 05 学生姓名(学号) 指 导 教 师 完 成 时 间 2007 年 10 月 17 日 实 习(设计)地点 机房 2007 年 10 月 17 日停止等待协议的编程模拟一、课程设计目的和任务《计算机网络与通信》课程讲述计算机网络的原理,尤其是 TCP/IP 协议栈的原理和应用,是一门理论性、应用性、实践性都比较强的课程。《计算机网络与通信实习》是学习完《计算机网络与通信》课程后进行的一次全面的综合实习,是本专业实践性重要环节之一。计算机网络与通信实习是从原理和实践的角度,在计算机上编程模拟实现计算机网络的基本协议。通过本实习,使我们对计算机网络的原理能有更加深刻的认识和理解,同时进一步锻炼自己的动手能力。在这次课程设计中,我设计的的是通过编译语言,编程模拟实现数据链路层协议中的停止等协议。二、分析与设计1.设计任务分析:停止等待协议是数据链路层的几个协议中最简单的协议,是具有最简单流量控制的数据链路层协议,是数据链路层各种协议的基础。此课程设计是基于 winsock编程,是在 VC++6.0 的 MFC 界面下和控制台下实现的。它采纳客户机/服务器(C/S)模型,即发送数据的一端为客户端,接收数据的一端为服务器端。停止等待协议就是通过双方的收发数据而达到相互通信的目的。本课程设计通过编程模拟实现停止等待协议,随机的发送数据,通过服务器的的接受结果和客户端的接受结果显示理解停止等待协议的原理,掌握其应用。2. 设计方案论证当收方收到一个正确的数据帧后,便会向发方发送一个确认帧 ACK,表示发送的数据正确接收。当发方收到确认帧后才能发送一个新的数据帧,这样就实现了接收方对发送方的流量控制。由于通信线路质量各方面的影响,数据帧从发送方到接收方传输的过程中可能会出现差错。为了保证数据的正确性和完整性,接收方在收到数据后,会用一定的方法对接收到的数据进行差错检验,所以接收方很容易检测出收到的数据帧是否出现差错。当接收方发现收到的数据出现差错时,就会向发送方发送一个否认帧 NAK,表示对方发送的数据错误。发送方会根据接收方发来的信息做出相应的操作。采纳这样的有效的检错机制,数据链路层可以对上面的网络层提供了可靠的传输的服务。3. 详细设计停止等待协议的算法如下:为了对停止等待算法有一个完整而准确的理解,下面给出...