CSU通信网原理课程设计

上传人:鲁** 文档编号:512257390 上传时间:2023-05-02 格式:DOCX 页数:77 大小:418.46KB
返回 下载 相关 举报
CSU通信网原理课程设计_第1页
第1页 / 共77页
CSU通信网原理课程设计_第2页
第2页 / 共77页
CSU通信网原理课程设计_第3页
第3页 / 共77页
CSU通信网原理课程设计_第4页
第4页 / 共77页
CSU通信网原理课程设计_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《CSU通信网原理课程设计》由会员分享,可在线阅读,更多相关《CSU通信网原理课程设计(77页珍藏版)》请在金锄头文库上搜索。

1、中南大学通信网原理课程设计报告 班 级: 姓 名: 学 号: 指导老师: 实验地点: 完成日期: 电子信息工程系信息科学与工程学院目 录第一部分:课程设计的目的与任务1一、课程设计的目的1二、课程设计的主要任务1第二部分:滑动窗口协议仿真2一、 课程设计目的及要求2二、 设计思想2三、 设计流程图2四、 开发环境4五、 关键代码分析4六、 仿真运行10第三部分:网络即时通讯程序12一、 课程设计目的及要求12二、 设计思想12三、 设计流程图13四、 开发环境14五、 关键代码分析14六、 运行与调试20第四部分:课程设计心得体会23第五部分:参考文献24第六部分:附录24一、 滑动窗口协议仿

2、真24二、 网络即时通讯程序33编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页 共1页第一部分:课程设计的目的与任务 一、课程设计的目的 通信网原理课程设计是为电子信息工程专业本科生开设的必修课,有2 学分,既是对通信网原理课程实验教学环节的补充,又是一门实践性很强的综合强化训练课程。计算机网络或Internet 网已成为现代最重要的通信网,未来各种通信网都将以计算机网络和IP 协议为核心实现互连互通。因此,本课程设计的主要任务是在掌握计算机网络TCP/IP 等典型协议原理的基础上,通过编程设计对网络协议或算法进行模拟实现,并应用相应网络协议来开发一个网络应用系统。其

3、目的是通过将理论与实践相结合,使学生进一步深入理解通信网的工作原理,掌握网络应用开发技术,学会应用所学理论知识来分析和解决实际问题,培养网络技术研究与开发的基本能力以及创新精神。二、 课程设计的主要任务 通过本课程教学,要求学生熟悉TCP/IP 协议工作机制、熟悉基于Socket 的网络通信程序的设计方法,熟练掌握至少一种编程语言及工具的使用。通过设计和调试有关程序,掌握一种网络协议或算法的编程实现方法或具体应用,同时设计一个相对独立的网络应用程序。第二部分:滑动窗口协议仿真一、 课程设计目的及要求1、 程序按照滑动窗口协议实现端对端的数据传送。包括协议的各种策略,如包丢失、停等应答、超时等都

4、应有所仿真实现。2、 显示数据传送过程中的各项具体数据;双方帧的个数变化,帧序号,发送和接受速度,暂停或重传提示等。3、 增加其它附加创新功能。二、 设计思想滑动窗口协议是TCP使用的一种流量控制方法。本次课程设计模拟仿真1比特滑动窗口协议,即停等协议。该协议规定,发送方每发送一帧后就要停下来,等待收到接收方正确接受的确定后再继续发送下一帧。如果在规定的最大时延内没有收到接收方的确认信号,则重新发送该帧。为了确认每次发送的帧是以前发过的还是新发送的,接收方需要发送方对每一帧加一个编号。由于停等协议规定只有一帧确认发送完成后才可以发送下一帧,因而只用一比特来编号就可以了。三、 设计流程图新数据或

5、重发数据处理时间最大时延确认信号发送数据接收方发送方四、 开发环境Window7,VC+五、 关键代码分析1、 定义及初始化守法窗口typedef struct /*接收窗口*/int rMAXSIZE;int front;int rear;wrece;void Init(wsend *ws,wrece *wr) /*对发送和接收窗口进行初始化*/ws-front=ws-rear=0;wr-front=wr-rear=0;2、 说明发送窗口的发送情况int SEND(wsend *ws,wrece *wr,int frame)if(ws-rear+1)%MAXSIZE=ws-front)ret

6、urn 0; /*发送窗口已满*/if(ws-front=ws-rear) /*若窗口为空,则直接进入*/ws-sws-rear.snum=frame;ws-sws-rear.timeout=1;ws-rear=(ws-rear+1)%MAXSIZE;wr-rwr-rear=frame;wr-rear=(wr-rear+1)%MAXSIZE;return 1;else /*若窗口不为空,则判断是否是可传送的帧*/ if(frame=(ws-sws-rear-1.snum)+1)ws-sws-rear.snum=frame;ws-sws-rear.timeout=1;ws-rear=(ws-re

7、ar+1)%MAXSIZE;wr-rwr-rear=frame;wr-rear=(wr-rear+1)%MAXSIZE;return 1;else if(framesws-rear-1.snum)+1)printf(该帧已发送!n);else if(frame(ws-sws-rear-1.snum)+1)printf(该帧不可发送!n);3、 说明接受窗口的接受情形int RECE(wrece *wr,int frame,int ack)if(wr-front=wr-rear) return 0; /*接收窗口为空*/else /*接收窗口接收帧号,并返回确认*/if(wr-rwr-front

8、=frame) wr-front=(wr-front+1)%MAXSIZE;printf(第%d帧出接收窗口,向发送窗口返回确认。n,frame);acki=frame;i+;else printf(该帧不是期望收到的帧,舍弃。n);return 1;int ACKNOWLEDGE(wsend *ws,int ack)int j;if(ws-front=ws-rear) return 0; /*发送窗口为空*/if(ack0=ws-sws-front.snum) /*发送窗口进行确认处理*/ws-front=(ws-front+1)%MAXSIZE;for(j=0;jfront;b=wr-fr

9、ont;printf(发送窗口:);while(arear)printf(%3d ,ws-sa);a+;printf(n);printf(接收窗口:);while(brear)printf(%3d ,wr-rb);b+;printf(n);4、 接受错误要求重新发送main()int frame,a,flag=0; /*frame帧号,a指向窗口当前位置,flag是否有重发(0没有,1有)*/ int err;char end=n,ch,ACK;int ack5; /*定义一个可存储5个确认信息的*/wsend *ws;wrece *wr;ws=(wsend *)malloc(sizeof(w

10、send);wr=(wrece *)malloc(sizeof(wrece);Init(ws,wr);printf(程序开始运行n);while(end!=y&end!=Y)/*传送处理*/a=ws-front; while(arear)if(ws-sa.timeout=6) ws-sa.timeout=1;flag=1;printf(重发第%d帧n,ws-sa);else ws-sa.timeout+;a+;if(flag=0)printf(请输入需传送的帧号(0代表不输入):);scanf(%d,&frame);if(frame!=0)err=SEND(ws,wr,frame);if(er

11、r=0)printf(发送窗口已满!n);printf(接收窗口期待接收到的帧号为:%dn,wr-rwr-front);六、 仿真运行第三部分:网络即时通讯程序一、 课程设计目的及要求1、 用户登录功能:客户端登录到聊天服务器,服务器管理所有登录的客户,并将客户列表及状态发送到各个客户端显示;2、 用户呼叫功能:用户可通过客户端向服务器发起呼叫请求;服务器搜索被呼叫的用户,如果检测到此用户处于在线状态,则通知此用户的客户端程序;当被叫用户做出响应后,在主叫方和被叫方之间建立连接,双方就可以聊天或进行媒体流传输;3、 用户消息也可以通过服务器转发,实现一对一和多对多聊天;4、 增加其它附加创新功能。二、 设计思想实现网络即时通讯的基本思想是由客户端将信息发送到服务器端,然后由服务器端判断将信息发往某个特定的用户还是所有用户。为实现用户登录功能,可以建立一个用户信息的数据库或文件,来实现用户的登录或注册。用户聊天功能的实现需要在用户登录进入聊天室时建立一个链接,该链接由服务器端监控,由此来实现用户在线数量的控制和在线人数的显示。当某一用户发起对另一用户的聊天请求时,由服务器端判断该用户是否在线,规定只能向在线用户发送消息。若该用户在线,则将发送用户发送来的消息通过链接转发到接收用户的客户端上,由客户端显示。如果发送用户发送的消息是对所有人的,则将该消息转发至所有人。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号