通信网原理课程设计报告.docx
《通信网原理课程设计报告.docx》由会员分享,可在线阅读,更多相关《通信网原理课程设计报告.docx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、中 南 大 学通信网原理课程设计报告 专业班级 电子信息1002班 姓名学号 指导教师 陈科文、支国明、周扬 设计时间 2013年7月 电子信息工程系 信息科学与工程学院 目录 第一章 距离矢量路由算法实现11.1、课程设计目的与主要任务11.1.1、课程设计目的11.1.2、课程设计主要任务11.2、课程设计题目和设计21.3、设计思想31.4、编程实现过程的详细说明51.4.1、程序界面设计51.4.2、总体工作流程图51.4.3、关键函数和语句的说明61.4.4、设计结果的演示与分析等。101.5、设计总结111.6、参考文献111.7、附录:源程序代码12第二章 文件传输192.1、课
2、程设计目的与主要任务192.1.1、课程设计目的192.1.2、课程设计主要任务192.2、课程设计题目和设计202.3、设计思想212.4、编程实现过程的详细说明232.4.1、程序界面设计232.4.2、总体工作流程图232.4.3、设计结果的演示与分析242.5、设计总结272.6、参考文献272.7、附录:源程序代码28第一章 距离矢量路由算法的实现1.1 课程设计目的及主要任务 本次课程设计的目的是通 过将理论与实践相结合,使学生进一步深入理解通信网的工作原理,掌握网络应 用开发技术,学会应用所学理论知识来分析和解决实际问题,培养网络技术研究 与开发的基本能力以及创新精神。本课程设计
3、的主要任务是在 掌握计算机网络TCP/IP等典型协议原理的基础上,通过编程设计对网络协议或 算法进行模拟实现,并应用相应网络协议来开发一个网络应用系统。1.2 课程设计要求(1)系统功能要求:编写距离矢量路由选择算法演示程序,能根据网络拓扑和线路延迟的变化自动更新路由表,并输出结果。可从文件(格式自定)中读取网络拓扑结 构,包括连通状态和直连两点间延迟,可输出任一点的邻接结点和对应的延迟。按照图的最短路径算法构造网络的初始路由表,能输出任意两点间的延迟 和最短路径;可以改变任一点邻接结点的路由表和之间的延迟,按照距离矢 量路由选择算法计算出新的路由表。要求: 能正确的输出路由信息。 (2)运行
4、条件:基于C_free程序的平台(3)用户操作要求:能够输入相应路由值,并能继续或结束程序运行1.3 设计思想 (1)实验原理:路由以矢量(距离、方向)的方式被通告出去的,其中距离是根据度量来定义的,方向是根据下一跳路由器定义的。被认为是“依照传闻进行路由选择”,RIP协议使用距离矢量算法,网络工作时路由器之间利用此协议更新路由表项,每隔2分钟更新一次。路由表项格式:(direction,jump,next)分别表示目的网络地址,跳数(距离),下一跳路由地址当某路由器A收到相邻路由器B发来的路由信息(D,J,N)后执行以下分析:首先修改(D,J,N)(D,J1,B)1 如果A没有到D的路由信息
5、,则生成路由表项(D,J1,B);否则22 A有到D的路由信息(D,?,B)?就是116任意值,则将其更新为(D,J1,B);否则33 A有到D的路由信息(D,K,X)其中KJ1,X!B,则将其更新为(D,J1,B);否则44 什么都不做。这是自己做本实验时总结的原理。 (2)关键问题:要实现线路延迟的变化即时更新路由表;构造最短路径程序。1.4 程序设计(1)流程图接受到数据包YES广播帧广播帧?NOYES将帧发送到其上层为本设备的帧?NO目的设备为本设备的子设备YES直接到目的设备路由NONO是否有路由能力NONONO是否选择路由为该目的路由沿树选择路由YESYES开始选择最短路由到下一跳
6、路由(2) 关键函数说明:第一个是INITDATA: void InitData(FILE *pfile)char num10;int i = 0;char c;int m, n;fseek(pfile, 0, 0); /文件指针从距0位置0距离开始读取for (m = 0; !feof(pfile) & m 7; m+) /feof(pfile),文件尾返回1,不是返回0.即不是文件尾部且m7循环.for (n = 0; !feof(pfile) & n = 0 & c = 9) | c = -) /*如果读到数字或符号.本题路由权值只能0到9*/numi+ = c; /*end of el
7、se if*/ /*end of while*/ /*end of for (n = 0*/ /*end of for (m = 0*/第二个是Outputroutdata: void OutputRoutData()int i, j;printf( );for (i = 0; i MAX_ROUTES; i+)printf( %c , i + 65);printf(n);for (i = 0; i MAX_ROUTES; i+)printf(%c , i + 65);for (j = 0; j MAX_ROUTES; j+)if (dataij.dis =10)printf( %d, dat
8、aij.dis);elseprintf( %d, dataij.dis);if (dataij.from 0)/如果未经过其它节点 所以直接相连的路由下一跳为-1printf( - );elseprintf( %c , dataij.from + 65); /输出下一跳路由 printf(n); void Communication(int recv, int send) /相连的两路由recv和send交换数据计算一次得到暂时最短距离int i;for (i = 0; i 0)/如果send节点到i号节点有路线if (datarecvi.dis datasendi.dis + datarec
9、vsend.dis)/第二种recv与i相连,且直接相连值大于间接到i的延迟 /如果现有路径比新路径远datarecvi.dis = datasendi.dis + datarecvsend.dis; /将recv到i的延迟改为间接延迟的值datarecvi.from = send; /下一跳改为send void Exchange() /实现所有相连的两路由进行数据交换并计算最短数值int i, j;for (i = 0; i MAX_ROUTES; i+)for (j = 0; j 0)/如果两个节点之间有路径Communication(j, i);/将i号节点的路由表发送给j号节点 第三
10、个是主函数: main() int start, end, i, j;FILE *pfile;pfile = fopen(1.txt, r);if (pfile = NULL)printf(文件打开错误,按任意键退出.n);getch();return 0;elseprintf(n路由表初始:n);InitData(pfile);fclose(pfile);for (i = 0; iMAX_ROUTES; i+)printf(%c|, i + 65);for (j = 0; j 0)printf( , j + 65, dataij.dis);printf(n); /显示各路由的路由表 Exch
11、ange(); /更新路由表 printf(n路由表交换:n);OutputRoutData();printf(输入起始路由节点数字(%d-%d)0代表A,1代表B. : , 0, MAX_ROUTES - 1);scanf(%d, &start);printf(输入终点路由节点数字(%d-%d)0代表A,1代表B. : , 0, MAX_ROUTES - 1);scanf(%d, &end);if (start = end | start 6 | end 6)printf(n输入错误,请按任意键退出n);getch();return 0;elseint cur = start;int tot
12、al = 0;if (datastartend.dis , cur + 65);while (datacurend.from = 0) /起始点与终点不相连。0是Atotal += datacurdatacurend.from.dis; /total变成cur与下一跳的延迟printf(%c-, datacurend.from + 65);cur = datacurend.from; /起始路由变成下一跳 total += datacurend.dis;printf(%cn总的路由距离 = %d, end + 65, total);getch();return 0; (3) 设计结果演示:运行
13、程序后,显示初始认为设计的路由表的各项权值,设计思想是-1代表无穷。出现路由表的交换,路径权值。如图(1)所示:图(1)输入始末路由节点后,程序会计算出最短路径,并显示出来,还会自动计算最短路径的权值。如图(2)所示:图(2)A(4) 网络拓扑图5287GBE1543DC9F1.5 参考文献1(美)Larry L.Peterson,Bruce S.Davie 著,薛静锋,等译.计算机网络:系统方法 (第4 ).北京:机械工业出版社.2 吴英编著.计算机网络应用软件编程技术.北京:机械工业出版社,20103 谭浩强著C程序设计(第四版) 清华大学出版社第二章 文件传输程序2.1 课程设计目的及主
14、要任务 本次课程设计的目的是通 过将理论与实践相结合,使学生进一步深入理解通信网的工作原理,掌握网络应 用开发技术,学会应用所学理论知识来分析和解决实际问题,培养网络技术研究 与开发的基本能力以及创新精神。本课程设计的主要任务是在 掌握计算机网络TCP/IP等典型协议原理的基础上,通过编程设计对网络协议或 算法进行模拟实现,并应用相应网络协议来开发一个网络应用系统。2.2 课程设计要求(1)系统功能要求:包括客户端和服务器程序,应实现以下功能:(1)客户端既能上 传文件到服务器,也能从服务器下载文件;(2)在客户端上可显示文件基本信息 和传输状态信息,可浏览服务器上供下载的文件列表,选择某文件
15、下载到本地某 目录下;(3)服务器端能接收客户端上传的文件,并保存在某一目录下;也能响 应客户端的文件浏览与下载请求;(4)增加其它附加创新功能。程序应具有图形 化界面,美观友好。 (2)运行条件:基于Microsoft Visual Basic 6.0软件与WINSOCK控件。(3) 用户操作要求:能显示出文件传输设计界面,能运行界面上的操作按钮,并能即时开启和关闭程序。(4)2.3 设计思想 (1)实验原理:FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行
16、Web服务器,需要从远程主机上取得HTML文件和CGI程序在本机上工作,他需要从远程存储站点获取文件(远程站点也需安装Web服务器)。当用户完成工作后,可使用FTP将文件传回到Web服务器。采用这种方法,用户无需使用Telnet登录到远程主机进行工作,这样就使Web服务器的更新工作变得如此的轻松。 FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的三次握手的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。而设计本
17、实验的时候,利用VB程序设计,是运用Winsock控件来进行两台计算间的文件传输。随着计算机网络的迅速发展,人们的生活越来越离不开网络,如今网络编程已成为计算机发展的热点,而在众多的网络通信中,又以TCP/IP协议最为流行。本文讨论的Winsock控件,提供了访问TCP/IP网络的捷径,使用它可以不必了解TCP/IP的细节和调用Winsock API,只要设置好相应的属性和触发事件后的处理,就可以实现计算机之间的数据通信.Winsock即Windows Sockets规范的简称,是目前最流行的网络通信应用程序接口之一。所谓Socket,通常也称作套接字,用于描述IP地址和端口,是一个通信链的句
18、柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递。Winsock控件工作在传输层上,在这一层上,目前主要流行的协议包括TCP和UDP两种:TCP协议适用于那些对于数据的可靠性要求比较高的情况,目前大多数的网络应用层协议都是基于TCP协议的(例如常用的HTTP、FTP、SMTP、POP3等协议);UDP协议适用于对数据可靠性要求不高而对速度要求较高的情况,这里主要包括一些需要大流量的.Winsock控件是基于Socket规范创建的,所以其通信的实质是对Soc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通信网 原理 课程设计 报告
限制150内