2022年通信网原理课程设计报告 .pdf
《2022年通信网原理课程设计报告 .pdf》由会员分享,可在线阅读,更多相关《2022年通信网原理课程设计报告 .pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、中 南 大 学通信网原理课程设计报告专业班级电子信息 1002 班姓名学号指导教师陈科文、支国明、周扬设计时间2013 年 7 月电子信息工程系信息科学与工程学院名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 28 页 -目录第一章距离矢量路由算法实现.1.1、课程设计目的与主要任务.1.1.1、课程设计目的.1.1.2、课程设计主要任务.1.2、课程设计题目和设计.1.3、设计思想.1.4、编程实现过程的详细说明.1.4.1、程序界面设计.1.4.2、总体工作流程图.1.4.3、关键函数和语句的说明.1.4.4、设计结果的演示与分析等。.1.5、设计总结.1.6、参考文献.1.
2、7、附录:源程序代码.第二章文件传输.2.1、课程设计目的与主要任务.2.1.1、课程设计目的.2.1.2、课程设计主要任务.2.2、课程设计题目和设计.2.3、设计思想.2.4、编程实现过程的详细说明.2.4.1、程序界面设计.2.4.2、总体工作流程图.2.4.3、设计结果的演示与分析.2.5、设计总结.2.6、参考文献.2.7、附录:源程序代码.名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 28 页 -第一章距离矢量路由算法的实现1.1 课程设计目的及主要任务本次课程设计的目的是通过将理论与实践相结合,使学生进一步深入理解通信网的工作原理,掌握网络应用开发技术,学会应用所
3、学理论知识来分析和解决实际问题,培养网络技术研究与开发的基本能力以及创新精神。本课程设计的主要任务是在 掌握计算机网络 TCP/IP 等典型协议原理的基础上,通过编程设计对网络协议或 算法进行模拟实现,并应用相应网络协议来开发一个网络应用系统。1.2 课程设计要求(1)系统功能要求:编写距离矢量路由选择算法演示程序,能根据网络拓扑和线路延迟的变化自动更新路由表,并输出结果。可从文件(格式自定)中读取网络拓扑结 构,包括连通状态和直连两点间延迟,可输出任一点的邻接结点和对应的延迟。按照图的最短路径算法构造网络的初始路由表,能输出任意两点间的延迟和最短路径;可以改变任一点邻接结点的路由表和之间的延
4、迟,按照距离矢量路由选择算法计算出新的路由表。要求:能正确的输出路由信息。(2)运行条件:基于C_free 程序的平台(3)用户操作要求:能够输入相应路由值,并能继续或结束程序运行1.3 设计思想(1)实验原理:路由以矢量(距离、方向)的方式被通告出去的,其中距离是根据度量来定义的,方向是根据下一跳路由器定义的。被认为是“依照传闻进行路由选择”,RIP 协议使用距离矢量算法,网络工作时路由器之间利用此协议更新路由表项,每隔 2 分钟更新一次。路由表项格式:(direction,jump,next)分别表示目的网络地址,跳数(距离),下一跳路由地址当某路由器A收到相邻路由器 B发来的路由信息(D
5、,J,N)后执行以下分析:首先修改(D,J,N)(D,J1,B)1 如果 A没有到 D的路由信息,则生成路由表项(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)流程图名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 28 页 -接 受 到 数 据包广播帧?为本 设备的帧?目 的
6、 设 备为本 设 备 的子设备是否有路由能力为该目的路由广播帧将帧发送到其上层直接到目的设备路由沿树选择路由是否选择路由到下一跳路由开 始 选 择 最短路由YESYESYENONONONOYENONONOYES名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 28 页 -(2)关键函数说明:第一个是INITDATA:void InitData(FILE*pfile)charnum10;int i=0;charc;int m,n;fseek(pfile,0,0);/文件指针从距 0 位置 0 距离开始读取for(m=0;!feof(pfile)&m 7;m+)/feof(pfile)
7、,文件尾返回 1,不是返回 0.即不是文件尾部且m7 循环.for(n=0;!feof(pfile)&n=0&c=9)|c=-)/*如果读到数字或符号.本题路由权值只能 0 到 9*/numi+=c;/*end of elseif*/*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);名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 28 页
8、-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,dataij.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交换数据计算
9、一次得到暂时最短距离int i;for(i=0;i 0)/如果 send节点到 i 号节点有路线if(datarecvi.dis datasendi.dis+datarecvsend.dis)/第二种 recv与 i 相连,且直接相连值大于间接到i 的延迟/如果现有路径比新路径远datarecvi.dis=datasendi.dis+datarecvsend.dis;/将名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 28 页 -recv 到 i 的延迟改为间接延迟的值datarecvi.from=send;/下一跳改为 sendvoid Exchange()/实现所有相连的两路
10、由进行数据交换并计算最短数值int i,j;for(i=0;i MAX_ROUTES;i+)for(j=0;j 0)/如果两个节点之间有路径Communication(j,i);/将 i 号节点的路由表发送给j 号节点第三个是主函数:main()int start,end,i,j;FILE*pfile;pfile=fopen(1.txt,r);if(pfile=NULL)printf(文件打开错误,按任意键退出.n);getch();return0;elseprintf(n 路由表初始:n);InitData(pfile);fclose(pfile);for(i=0;iMAX_ROUTES;i
11、+)printf(%c|,i+65);名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 28 页 -for(j=0;j 0)printf(,j+65,dataij.dis);printf(n);/显示各路由的路由表Exchange();/更新路由表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.:,
12、0,MAX_ROUTES-1);scanf(%d,&end);if(start=end|start 6|end 6)printf(n 输入错误,请按任意键退出n);getch();return0;elseint cur=start;int total=0;if(datastartend.dis,cur+65);while(datacurend.from=0)/起始点与终点不相连。0 是 Atotal+=datacurdatacurend.from.dis;/total 变成 cur 与下一跳的延迟printf(%c-,datacurend.from+65);cur=datacurend.fro
13、m;/起始路由变成下一跳total+=datacurend.dis;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 28 页 -printf(%cn 总的路由距离=%d,end+65,total);getch();return0;(3)设计结果演示:运行程序后,显示初始认为设计的路由表的各项权值,设计思想是-1 代表无穷。出现路由表的交换,路径权值。如图(1)所示:图(1)输入始末路由节点后,程序会计算出最短路径,并显示出来,还会自动计算最短路径的权值。如图(2)所示:图(2)名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 28 页 -(4)网络拓扑图1.5参考文献
14、1(美)LarryL.Peterson,BruceS.Davie著,薛静锋,等译.计算机网络:系统方法(第 4).北京:机械工业出版社.2吴英编著.计算机网络应用软件编程技术.北京:机械工业出版社,2010ABCDEFG258451937名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 28 页 -3谭浩强著C 程序设计(第四版)清华大学出版社名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 28 页 -第二章文件传输程序2.1 课程设计目的及主要任务本次课程设计的目的是通过将理论与实践相结合,使学生进一步深入理解通信网的工作原理,掌握网络应用开发技术,学会应用所学
15、理论知识来分析和解决实际问题,培养网络技术研究与开发的基本能力以及创新精神。本课程设计的主要任务是在 掌握计算机网络 TCP/IP 等典型协议原理的基础上,通过编程设计对网络协议或 算法进行模拟实现,并应用相应网络协议来开发一个网络应用系统。2.2 课程设计要求(1)系统功能要求:包括客户端和服务器程序,应实现以下功能:(1)客户端既能上传文件到服务器,也能从服务器下载文件;(2)在客户端上可显示文件基本信息和传输状态信息,可浏览服务器上供下载的文件列表,选择某文件下载到本地某目录下;(3)服务器端能接收客户端上传的文件,并保存在某一目录下;也能响应客户端的文件浏览与下载请求;(4)增加其它附
16、加创新功能。程序应具有图形化界面,美观友好。(2)运行条件:基于MicrosoftVisualBasic 6.0 软件与 WINSOCK 控件。(3)用户操作要求:能显示出文件传输设计界面,能运行界面上的操作按钮,并能即时开启和关闭程序。(4)2.3 设计思想(1)实验原理:FTP 的主要功能是在主机间高速可靠地传输文件。目前FTP 仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行Web服务器,需要从远程主机上取得HTML 文件和 CGI 程序在本机上工作,他需要从远程存储站点获取文件(远程站点也需安装Web服务器
17、)。当用户完成工作后,可使用FTP 将文件传回到 Web服务器。采用这种方法,用户无需使用Telnet登录到远程主机进行工作,这样就使 Web服务器的更新工作变得如此的轻松。FTP 是 TCP/IP 的一种具体应用,它工作在OSI 模型的第七层,TCP 模型的第四层上,即应用层,使用TCP传输而不是 UDP,这样 FTP 客户在和服务器建立连接前就要经过一个被广为熟知的三次握手 的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。而设计本实验的时候,利用VB 程序设计,是运用Winsock 控件来进行两台计算间的文件传输。随着计算机网络的迅速发
18、展,人们的生活越来越离不开网络,如今网络编程已成为计算机发展的热点,而在众多的网络通信中,又以 TCP/IP 协议最为流行。本文讨论的 Winsock 控件,提供了访问 TCP/IP 网络的捷径,使用它可以不必了解TCP/IP的细节和调用 Winsock API,只要设置好相应的属性和触发事件后的处理,就可以实现计算机之间的数据通信.Winsock 即 Windows Sockets规范的简称,是目前最流名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 28 页 -行的网络通信应用程序接口之一。所谓Socket,通常也称作 套接字,用于描述 IP地址和端口,是一个通信链的句柄。应
19、用程序通常通过“套接字”向网络发出请求或者应答网络请求。Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递。Winsock 控件工作在传输层上,在这一层上,目前主要流行的协议包括TCP和 UDP两种:TCP 协议适用于那些对于数据的可靠性要求比较高的情况,目前大多数的网络应用层协议都是基于TCP 协议的(例如常用的HTTP、FTP、SMTP、POP3等协议);UDP 协议适用于对数据可靠性要求不高而对速度要求较高的情况,这里主要包括一些需要大流量的.Winsock 控件是基于 Socket规范创建的,所以其通信的实质是
20、对 Socket接口进行数据的读写操作。如果两个应用程序需要通信,它们可以通过使用 Socket类来建立套接字连接,可以将这个过程想象为一次电话呼叫过程:呼叫者通过拨号与被呼叫者连接,当电话接通时,双方都可以自由通话了,只不过这里的呼叫者被称为“客户”,被呼叫者则称为“服务器”,而号码则为“IP 地址+端口”,但在建立连接之前,必须由“客户”发出呼叫,且此时的“服务器”正在监听。因此,基于 TCP/IP 协议的通信,需要分别建立客户端应用程序和服务器端应用程序。2.4 程序设计名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 28 页 -(1)流程图主程序流程图发送数据流程图接受
21、处理流程图(2)关键函数说明:OptionExplicitDim FilePathAs String,FileSendAs BooleanDim filenameAs String,FileLenAs LongConst Text=文件名:未选择文件&vbCrLf&vbCrLf&文件长度:未选择文件PrivateDeclare FunctionGetCursorPos Lib user32(lpPointAs POINTAPI)AsLongPrivateDeclare Function WindowFromPointLib user32(ByVal xPoint AsLong,ByVal yP
22、ointAs Long)As Long开始操 作系 统初始化创建任务开始任务接受数据任务发 送 延迟?发送数据任务开始开始建 立 连接查看连接状态与服务器IP 地址或端口号进行TCP 连接发送数据信息发送完毕休眠或关闭连接查询TCPSOCKET 是否连在 TCP 通道上收到数据?解 码 收 到 的数据进 行相 应的 操作YNYN名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 28 页 -PrivateType POINTAPIX As LongY As LongEnd TypeDim MousePosAs POINTAPIDim FileByt()As BytePrivateS
23、ub Com_OK_Click()On ErrorGoTo ErrIfCom_OK.Caption=侦听 ThenWinsock1.CloseWinsock1.RemotePort=0Winsock1.LocalPort=Val(T_Prot)Winsock1.ListenCenterPrintPic_Connect,正在侦听ElseWinsock1.CloseWinsock1.RemoteHost=T_PCIPWinsock1.LocalPort=0Winsock1.RemotePort=Val(T_Prot)Winsock1.ConnectCenterPrintPic_Connect,正在
24、连接End IfExitSubErr:MsgBoxErr.Description,16,Err.NumberEnd SubPrivateSub Com_Close_Click()Dim TempAs ByteIfFileSend=True ThenTemp=MsgBox(当前正在传输文件,确定要中断连接?,289,提示)ElseTemp=1End IfIfTemp=1 Then Winsock1_CloseEnd SubPrivateSub Com_Send_Click()IfCom_Send.Caption=发送文件 ThenIfWinsock1.State=7 ThenIfFileLen
25、0 And FilePath Then名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 28 页 -Winsock1.SendData UTF8_Encode(101)Winsock1.SendData UTF8_Encode(filename)Com_Send.Caption=取消发送SendFile.Text=正在等待对方响应FileSend=TrueElseMsgBox尚未选择文件或文件长度为零,64,提示End IfElseMsgBox请先建立连接!,64,提示End IfElseWinsock1.SendData UTF8_Encode(255)FileSend=Fal
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年通信网原理课程设计报告 2022 通信网 原理 课程设计 报告
限制150内