第一篇:2011级计算机网络课程设计指导书
2011级计算机网络课程设计指导书
一、网络拓扑类
1、系统需求
2、网络拓扑图(Visio)
3、设备选型及基本配置
4、IP地址规划
5、网络服务部署及网络安全解决方案
二、网站建设类
1、系统需求
2、网络拓扑(Visio)
3、设备选型、电源及存储备份解决方案
4、网站服务部署(根据系统需求)及网络安全解决方案
5、一次性投入成本及维护成本预算
三、网络程序设计类
1、系统需求
2、关键的程序设计技术
3、总体设计(模块划分,数据库设计)
4、详细设计(前台界面界面设计,后台数据处理算法)
5、测试(测试用例,测试结果)
报告正文要求使用宋体小四字体,1.25倍行距。篇幅在5~10页之间。
第二篇:《 数据通信与计算机网络 》课程设计--指导书
《 数据通信与计算机网络 》课程设计指导书
课程代号:41110150 总学时(或周数): 一周 适用专业: 计算机科学与技术 先修课程:计算机基础
一、课程设计(实践)目的
《数据通信与计算机网络课程设计》是实践性教学环节之一,是《数据通信与计算机网络》课程的辅助教学课程。通过课程设计,使学生数据通信及网络的基本概念,结合实际的操作和设计,巩固和加深数据通信与计算机网络课程中所学的理论知识和实际应用能力,通过课程设计训练,基本掌握对网络架构的分析问题,加深对OSI七层模型、TCP/IP模型的各层功能和设计思想的理解,掌握组建计算机网络的基本技术,特别是网络规划、设计和IP地址的分配,使学生获得初步的网络应用经验,为以后从事生产和科研工作打下一定的基础。把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。
二、课程设计(实践)要求
我们首先虚构一个校园网或企业网的实际需求,然后按照需求对这个网络进行规划及配置。通过全面的综合练习,使学生了解网络设计及规划的步骤,掌握网络设备的配置及使用方法。集中安排1周进行课程设计,每个同学独立完成。要求学生根据教师布置题目的需求描述,进行需求分析、调研、以及上机实践操作,最后提交课程设计报告。
要求如下:
1、要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。
2、既要虚心接受老师的指导,又要充分发挥主观能动性。结合课题,独立思考,努力钻研,勤于实践,勇于创新。
3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。
4、课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩 1 按不及格处理。
5、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。
三、课程设计(实践)内容
根据所学知识,自己设计一个校园网的建设方案(假设有计算机系楼,数学系楼,英语系楼,物理系楼及行政楼。建议分为5个VLAN)。同时,校园网通过一台路由器与分校区网络的路由器相连(注:两个校区分配的IP地址属于不同网段)具体要求如下:
1、根据要求对指定校园网及企业网进行需求分析,提交需求分析报告;
2、在需求分析的基础上进行系统设计、技术选型,规划、设计网络的逻辑拓扑方案、布线设计等,划分子网,设计子网地址、掩码和网关,为每个子网中的计算机指定IP地址;
3、根据条件进行设备选型,决定各类硬件和软件的配置和经费预算方案;
4、在Boson中按照已规划好的网络拓扑图,进行计算机与交换机或路由器的连接;对计算机进行配置(配置IP地址、掩码和网关等参数),对交换机及路由器进行配置,根据网络需求创建不同的VLAN,实现不同VLAN计算机之间的隔离,但要实现特定VLAN(计算机系与物理系)间的计算机之间的连通。
5、在两个校区的校园网出口路由器上配置静态路由,实现两个校区的计算机之间的连通。
6、对网络应用服务器(DNS、DHCP、WEB、EMAIL、FTP)进行规划及配置(在虚拟机中完成)。
7、在书写课程设计报告时要求:网络设计拓扑图清楚,规划方案结构合理、条理清晰、语句通顺,课程设计报告的目录可参考附录。
注:
1、第1、2、3、4、5项是每个学生的必做项目。
2、第6项是为学生的选做项目。
四、课程设计(实践)进度安排
课程设计按照教学要求需要一周时间完成,一周中每天(按每周5天)至少要保证3-4小时的时间来进行课程设计。
课程设计大体分五个阶段:
1、搜集资料:进行课题调查,搜集相关资料。
2、需求分析:对给定网络的实际要求进行分析,确定网络规划的总体架构。
3、网络设计:进行网络拓扑图的设计,网络设备的选型,网络IP 地址及虚拟局域网的规划,网络设备的配置,网络服务器的配置等。
4、网络测试:对网络设备进行测试,验证各种网络设备之间的连通性及网络服务器的可用性。
5、课程设计报告书的书写。
6、验收与评分:指导教师对每个同学所规划的网络进行综合验收,结合设计报告,根据课程设计成绩的评定方法,评出成绩。
时间安排:
1、搜集资料,进行需求分析 半天
2、网络设计,设备配置及网络测试 2天
3、课程设计报告书的书写 2天
4、验收与评分 半天
五、使用教材与参考资料
1.《数据通信与网络(影印版)》 第三版 机械工业出版社,2005年 2.《计算机网络与通信》,冯博琴主编 经济科学出版社 2000年
3.《计算机网络实用教程》,刘四清,田力主编 清华大学出版社 2005年出版
六、考核方式与成绩评定标准
由指导教师根据学生完成任务的情况、课程设计说明书的质量和课程设计过程中的工作态度及实践操作完成情况等综合打分,其中课程设计说明书占50%,实践操作配置占30%,工作态度占20%。成绩评定实行优秀、良好、中等、及格和不及格五个等级。优秀者人数一般不得超过总人数的20%。不及格者不能得到相应的学分,需重新做课程设计,经指导教师考核及格后,方可取得相应学分。
七、本指导书编写参照系、编写根据、编制人
编写人:吴征远
2010年2月12 附录:
参考目录:
第一章 现状与需求分析.....................................................................................1.1校园网建设思路与规划.....................................1.2校园网建设目标...........................................1.3校园网建设要求...........................................第二章 网络方案设计.........................................................................................2.1 设备选型考虑............................................2.2 网络拓扑结构............................................2.3 设备配置描述............................................2.4 广域网与拔号网设计......................................第三章 网络设计分析.........................................................................................3.1高性能、高带宽的网络主干.................................3.2 可靠性设计..............................................3.3 网络的安全性设计........................................3.4 IP地址规划..............................................3.5 VLAN规划................................................3.6 路由协议规划............................................3.7静态路由.................................................第四章 网络应用设计.........................................................................................4.1 服务器平台选择..........................................4.2 服务器分析与设计........................................4.3 服务器的配置.............................................
第三篇:计算机网络课程设计
目
录
1.课题描述........................................................1 2 系统设计概述...................................................1 3 课程设计的主要内容............................................2 3.1站点总体设计原则及设计目标....................................2 3.2用户需求......................................................2 3.3动态IP地址的设置及服务器的配置...............................3 3.3.1.动态IP配置简介...........................................3 3.3.2.配置DHCP服务器...........................................3 3.3.3配置IIS服务器.............................................6 3.4制作网站......................................................6 3.4.1.建站流程..................................................6 3.4.2.网站各模块的设计...........................................7 3.4.3.建站实现软件...............................................8 3.5.建站注意要点..................................................9 3.5.1.前期调研分析...............................................9 3.5.2.网站的目的及功能定位.......................................9 3.5.3网站技术解决方案...........................................9 3.5.4.网站内容规划.............................................10 3.5.5.网页设计.................................................10 3.5.6.网站测试..................................................10 4.网站维护.......................................................10 4.1、静态页面的添加修改..........................................10 4.2、动态功能支持在线更新........................................10
总结..............................................................12 参考文献.........................................................12
1.课题描述
计算机网络近年来获得了飞速的发展。计算机通信网络以及Internet已成为我们社会结构的一个基本组成部分。网络被应用于工商业的各个方面,电子银行、电子商务、企业管理、信息服务业等都以计算机网络系统为基础。从学校远程教育到公司日常办公乃至现在的电子社区,很多方面都离不开网络技术。可以不夸张地说,网络在当今世界无处不在。
网络的发展也是一个经济上的冲击。数据网络使个人化的远程通信成为可能,并改变了商业通信的模式。一个完整的用于发展网络技术、网络产品和网络服务的新兴工业已经形成,计算机网络的普及性和重要性已经导致了在不同岗位上对具有更多网络知识的人才的大量需求。企业需要雇员来规划、获取、安装、操作、管理那些构成计算机网络的软硬件系统,建立自己的网站,方便办公及交流 系统设计概述
传统的企业内部办公存在着种种弊端,往往造成人员和资源的极大浪费,应用网络技术组建余个高效、快捷、安全的办公环境成为许多企业和单位的当务之急。与传统的单机工作相比,网络化办公具有以下几个明显优点: 1共享软硬件资源,节约资金投入,提高运作效率
企业内部组件web站点后,可以在一个部门只安装一台打印机和扫描仪,其他计算机通过局域网共享这些设备和数据,有利于降低成本。2对重要数据进行安全、集中的管理
组建站点后,可以把一些重要数据放置在专门的网络服务器上集中管理,并通过网络服务器的访问控制限制其他计算机对总要数据的访问。这样就可以有效管理企业内部的重要数据,保证数据安全性,防止数据丢失和被窃取。3方便企业内部信息发布与交流
当企业进行诸如企业内部新闻、电话号码、产品文档、技术文件等信息发布时,可以把这些信息放置在web站点的共享目录上,供员工下载,方便了信息的发布和接收。4便于员工的协调操作
利用内部的办公网,可以方便的对同一事务进行协同处理,提高工作效率,缩短任务完成的时间
图2.1企业内部网络拓扑 课程设计的主要内容
3.1站点总体设计原则及设计目标
组建企业内部web站点要注意站点的分块、共享、安全性、可管理性、以及可维护性。在设计中,系统结构模块化,软硬件平台可以模块化瓶装,系统配置灵活,使系统具有强大的可增长性和强壮性。满足多层次安全控制手段,建立完善的安全管理体系,防止数据的丢失和被窃取。
组建企业内部web站点,既能将公司内部所有计算机纳入系统中去,实现统一规划、分块工作、异地互联、整体管理,并可为将来的应用扩展升级预留接口。
3.2用户需求 作为企业内部网络需要满足:
1、办公事务管理
主要包括公文与文档管理、公告、大事记、会议纪要、资产与办公用品管理、行政制度、办公事务讨论等。
2、人力资源管理
主要包括员工档案、岗位职责、员工通信录、认识管理规范等。
3、财务资产管理
主要包括固定资产管理、工资管理、经费管理等。
4、网站管理
主要包括用户及权限设置、数据库维护、网页设置、标志与标题设置及网络各栏目内容编辑等功能。
3.3动态IP地址的设置及服务器的配置
3.3.1.动态IP配置简介
动态IP地址,顾名思义就是设备所取得的IP地址是非固定的,是可以动态分配和取得的。使用动态IP地址的原因主要有两个:一是可以用较少的IP地址构建较大的网络。如果与连入网络的主机和其它设备相比,所分得的公用IP地址略少一些,如果为每个设备都分配一个固定的IP地址,则显然部分计算机将不能接入网络。考虑到并非所有的计算机都在同一时间内运行并与网络连接,所以,如果将IP进行动态分配,即计算机连入网络时自动取得,断开与网络的连接时自动收回,即可满足网络对IP地址的需求。二是可以增加网络内计算机的可移动性。当某台主机从一个子网移动到另一个子网时,由于IP地址中网络号的不同,从而导致该计算机与其它主机间无法进行通信,解决该类问题最简单的方式就是为移动的主机在新子网中重新分配IP地址。但是,如果采用动态IP地址,就会减少这种网络管理的复杂性。Windows NT使用DHCP来解决动态IP地址的分配问题。使用DHCP时,整个网络中必须至少有一台运行Windows NT主机安装有DHCP软件,充当DHCP服务器,而其它所有欲使用DHCP功能的工作站也必须具有支持DHCP的功能。这样,当DHCP工作站启动时,它就会自动与DHCP服务器通信,并由DHCP服务器为其提供一个IP地址。当然,这个地址只是临时的 3.3.2.配置DHCP服务器
DHCP提供了计算机IP地址的动态配置,如果需要服务器为域中的计算机动态分配IP地址,则必须配置DHCP服务器。配置DHCP服务器的具体步骤如下:
图3.1打开服务器配置向导
图3.2配置服务器向导
图3.3配置服务器向导
图3.4为配置服务器向导
图3.5管理服务器
图3.6 再来就是通过“开始”选择“控制面板”|“添加或删除程序”也可以安装DHCP。
3.3.3配置IIS服务器
右键单击“我的电脑”选择“管理”~服务及应用程序~Internet信息服务~网站~默认网站,单击右键,选择属性,打开主目录,设置主目录为web站点的根目录,也可选择修改其他属性
图3.7配置IIS服务器
3.4制作网站
3.4.1.建站流程
建立网站的流程大致可以分成三个阶段,如图所示
图3.8网站的流程框图
构建内容信息、搜索整理资料和规划网站结构是建立网站的
企业的每一个员工都存在向企业内部网发布内容的潜在可能性。但员工必须按照他们各自的角色协调作业活动。不同规模的公司都需要以省时省钱的方式组织交互信息发布的流程。
通常情况下,为在网站上发布内容,作者创建的材料要经过一个或多个编辑的审校和核准。在这个过程中,作者及编辑按照各种特定的标准分类及标注信息,并为发布设计页面及连接。这一流程通常不是正式的,且要接受网络管理员的协调,这就导致了管理员在“站点发布狂潮”到来时,或是当用户对实时信息需求迅速增长时陷入孤立无援的境地。
使用Site Server可以解决,Site Server还定义了一套为站点增添内容的四步流程,既提交、标注、核准和部署。
图3.9新闻发布系统框图
3.4.3.建站实现软件
可以用Dreamweaver,主要包括两种页面,即html和asp。
HTML(Hyper Text Markup Language ,超文本标记语言),或称为“多媒体文件语言”,是用于创建Web页和Web 信息发布的
(1)通用性:可实现不同平台的文档共享。
(2)可扩展性:HTML的标签集合可以根据新需求而不断修正或加入有限的新标签符, 为实现有限的新功能的扩展提供保障。
(3)创建的灵活性:HTML文档是纯文本文档, 可以由网页编辑器以及其他文本编辑软件创建。
HTML是“Hyper Text Markup Language”的缩写,它是一种超文本标记语言,是网页的描述语言,用于编制通过万维网显示的超文本文件。它是目前在网页设计中,所使用的最基本的标记语言。现在很多HTML 的编辑器,都是通过跟文字处理器相似的接口来编辑网页的。
ASP 文件和 HTML 文件类似ASP 文件可包含文本、HTML、XML 和脚本 ASP 文件中的脚本可在服务器上执行。ASP 文件的扩展名是 “.asp”.当浏览器请求某个 HTML 文件时,服务器会返回这个文件.而当浏览器请求某个 ASP 文件时,IIS 将这个请求传递至 ASP 引擎。ASP 引擎会逐行地读取这个文件,并执行文件中的脚本。最后,ASP 文件将以纯 HTML 的形式返回到浏览器。ASP 指 Active Server Pages(动态服务器页面)ASP 是运行于 IIS 之中的程序.3.5.建站注意要点
另外在网页制作过程中应注意以下要点: 3.5.1.前期调研分析
了解网页制作后具体的工作人员具体权限,以保证公司机密信息不会被泄露,同时又能让每个人从网站上获取足够的工作信息;同时对于私人隐私的公开应得到个人的允许。在注意到以上的同时,还要考虑公司的自身情况、建设网站的能力等 3.5.2.网站的目的及功能定位
本次为企业内部web站点的构建及维护 3.5.3网站技术解决方案
确定服务器,是自建服务器还是租用虚拟主机。选择操作系统。网站安全性措施,如:防入侵,防病毒,防窃取方案
3.5.4.网站内容规划
根据网站的目的和功能规划网站内容。一般企业内部网站应包括:公司简介、部门简介、公共信息、新闻发布、员工联系方式、任务信息、信息搜索查询、相关帮助等内容。
3.5.5.网页设计
网页美术设计要求。网页美术设计一般要求与企业整体形象一致,企业内部网色彩要与办公环境保持和谐 3.5.6.网站测试
①网站发布前要进行细致周密的测试,以保证正常的浏览和使用。主要测试内容有: ②服务器稳定性、安全性。③程序及数据库测试
④网页兼容性测试,包括不同浏览器下的现实结果、不同显示器分辨率的页面效果等。⑤需要的其他测试
4.网站维护
服务器及相关软硬件的维护,对可能出现的问题进行评估,制定相应时间。数据库维护。有效地利用数据是网站维护的重要内容,因此数据库的维护要受到重视。
内容的更新、调整计划。
制定相关网站维护的规定,将网站维护制度化、规范化。
4.1、静态页面的添加修改
静态页面的更新需要使用专业的网页设计工具,然后将修改后的网页通过FTP上传到相应的位置,在此同时还要保证不能破坏其他的页面程序和格局
4.2、动态功能支持在线更新
如果企业信息量很大,如工作信息经常需要更新,有更多的企业资讯需要告诉员工,企业建立动态数据库系统。这里的动态并不是指动画,而是指网站的内容来自企业的数据库。如果更改了数据库,那么前台页面的内容也会随之而更改。
总 结
通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。安排课程设计的基本目的,在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟。尤其是观察、分析和解决问题的实际工作能力,以便培养成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。作为整个学习体系的有机组成部分,课程设计虽然安排在一周进行,但并不具有绝对独立的意义。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。对计算机专业的本科生来说,实际能力的培养至关重要,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过课程设计,让我找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我系人才培养计划的完善和课程设置的调整。在一个星期的课程设计之后,我感到不仅实际动手能力有所提高,更重要的是通过对网站开发流程以及维护方面的了解,进一步激发了我对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深入的学习。
在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我收获的是黎明。
参考文献
[1]朱兵.小型网组建与应用进阶[M].南方出版社.2004.[2]邓文达胡伏湘.计算机网络教程[M].清华大学出版社.2007.[3] 赵永超.新编网站规划与设计教程[M].西北工业大学出版社.2004.[4] 杨力学.ASP商业网站整站集成开发[M].电子工业出版社.2007.[5] 石志国.ASP动态网站编程[M].清华大学出版社.2001.[6] 李岚.网络设计与维护[M].中国物资出版社.2002.
第四篇:计算机网络课程设计
计算机网络课程设计
报告书
学院:
班级:通信0902
姓名:
学号:
指导老师:
实验三 交换机VLAN实验
SWITCH2的拓扑图
规划IP:
PCA的ip为:10.65.1.1
PCB的ip为:10.66.1.1
PCC的ip为:10.65.1.3
PCD的ip为:10.66.1.3
SWA:
SWB:
设置VLAN: SWA:
SWB:
不设trunk时测试可通性 从PCA到PCC测试:不通,因现在的连线两端在VLAN1中,不能承载Vlan2的信息
[root@PCA root]# ping 10.65.1.3
从PCA到PCB测试:不通:不是一个网段,且不在一个VLAN [root@PCA root]# ping 10.66.1.1
从PCB到PCD测试:通:因为在同一网段内。路径:从switch A的f0/6到switch B的f0/6 [root@PCB root]# ping 10.66.1.3
从PCA到SWA测试:不通:不在同一网段内
[root@PCA root]# ping 10.66.1.7
从PCA到SWB测试:不通:不在同一网段,也不在同一vlan [root@PCA root]# ping 10.66.1.8
从SWA到PCA测试:不通:不在同一网段
SWA#ping 10.65.1.1
从SWA到SWB测试:通:在同一个网段中,路径:从switch A的f0/8到switch B的f0/1 SWB#ping 10.66.1.8
swa40#conf t swa40(config)#int f0/8 swa40(config-if)#switchport mode trunk swa40(config-if)#int f0/1 swa40(config-if)#switchport mode trunk swa40(config-if)#
从PCA到PCC、PCD、SWA、SWB的可通性依次为通,不通,不通,不通。
PCA和PCC在同一网段中,路径:从switch A的f0/3到switch B的f0/3,PCA和PCD、SWA、SWB不在同一网段内。
从PCB到PCC、PCD、SWA、SWB的可通性依次为不通,通,通,通。PCB与PCC不在同一网段,PCB与PCD、SWA、SWB在同一网段内,路径分别为从switch A的f0/6到switch B的f0/6;从PCB到switch A的f0/6;从switch A的f0/6到switch B的f0/1.SWITCH3的拓扑图
(1)都不设vlan情况下,测试连通性
从PCA到PCC,PCD,SWA,SWB依次为 不通,不通,通,不通 PCA与PCC、PCD不在同一默认vlan中,PCA与SWA在同一默认vlan中,路径:从PCA到switch A的f0/3,PCA与SWB不在同一默认vlan中。
从PCB到PCC,PCD,SWA,SWB依次为不通,不通,通,不通。PCB与PCC、PCD不在同一默认vlan中,PCB与SWA在同一默认vlan中,路径:从PCB到switch A的f0/6,PCB与SWB不在同一默认vlan中。
(2)设置有vlan情况下,测试连通性
从PCA到PCC、PCB、SWA、SWB、PCD均不通:不在同一vlan
从PCB到PCC、PCD、SWA、SWB测试为不通,不通,通,不通。PCB与PCC、PCD不在同一默认vlan中,PCB与SWA在同一默认vlan中,路径:从PCB到switch A的f0/6,PCB与SWB不在同一默认vlan中。
(3)使用trunk情况下,测试连通性
从PCA到PCC、PCD、SWA、SWB的可通性依次为不通,通,不通,不通。PCA与PCC、PCD不在同一默认vlan中,PCA与SWA在同一默认vlan中,路径:从PCA到switch A的f0/3,PCA与SWB不在同一默认vlan中。
从PCB到PCC、PCD、SWA、SWB的可通性依次为通,不通,通,通。PCB到PCC设置了trunk,路径:从switch A的f0/6到switch C的f0/1到switch B的f0/1,PCB与PCD不在同一vlan,PCB与SWA、SWB设置了trunk,路径:从PCB到switch A的f0/6,从switch A的f0/6到switch C的f0/1到switch B的f0/1
实验六 路由器接口的secondary ip 装入图文件:router1e
设置计算机的IP和网关:
PCA:PCA的IP地址:10.65.1.1 网关指向:10.65.1.2
PCB:PCB的IP地址:10.66.1.1 网关指向:10.66.1.2
设置交换机的IP地址: switch(config)#int vlan 1 switch(config-if)#ip address 10.66.1.8 255.255.0.0
设置路由器的接口f0/0的有两个ip地址。roa(config)int f0/0
roa(config-if)#ip address 10.65.1.2 255.255.0.0 roa(config-if)#no shut roa(config-if)#ip address 10.66.1.2 255.255.0.0 secondary roa(config-if)#no shut roa#sh run
测试可通性
[root#PCA root]# ping 10.66.1.1
通:在同一网段,路径:从switch的f0/3到f0/6
[root#PCA root]# ping 10.66.1.2 通
[root#PCB root]# ping 10.65.1.1
通:在同一vlan中,从switch的f0/6到f0/3
[root#PCB root]# ping 10.65.1.2
通
switch#ping 10.65.1.1
不通:不在同一网段
switch#ping 10.66.1.1
通:在同一网段,路径:从switch的f0/6到PCB
如果去掉交换机与路由的连线,PCA和PCB还可以通吗? 不通:不在同一网段,需通过路由寻址,去掉线就不能通了。
可见PCA到PCB的发包是经过路由器的,称之为单臂路由。
这种情况PCA和PCB在同广播域中,对工作带宽不利。如果划分VLAN可以隔离广播 实验七 使用路由器子接口路由情况
装入图文件:router1e
此实验计算机和交换机的IP地址和网关不变,但要求交换机工作在两个VLAN的情况下,一个是原有的默认VALN,另一个是新设置的VLAN 2,含f0/
5、f0/6。1.设置交换机,增加一个vlan 2 switch#vlan database Switch(vlan)#vlan 2 Switch(vlan)#exit Switch#conf t Switch(config)#hostname SWA SWA(config)#int f0/5 SWA(config-if)#switchport access vlan 2 SWA(config-if)#int f0/6 SWA(config-if)#switchport access vlan 2 SWA(config-if)#int f0/1 SWA(config-if)#switchport mode trunk SWA(config-if)#
2.路由器f0/0 有两个子接口 roa(config)int f0/0 roa(config-if)#int f0/0.1 roa(config-subif.1)#encapsulation isl 1 roa(config-subif.1)#ip address 10.65.1.2 255.255.0.0 roa(config-subif.1)#no shut roa(config-subif.1)#int f0/0.2 roa(config-subif.2)#encapsulation isl 2 roa(config-subif.2)#ip address 10.66.1.2 255.255.0.0 roa(config-subif.2)#no shut roa#sh run
3.测试可通性:都通,路由器设置了两个子接口,使其在同一vlan中 [root#PCA root]# ping 10.66.1.1
通,路径:从PCA到switch A的S0/3到switch A的S0/1到ROA的F0/0到switch A的S0/1到switch A的S0/6到PCB
[root#PCA root]# ping 10.66.1.2
通:从PCA到switch A的S0/3到switch A的S0/1到ROA 的F0/0到switch A的S0/1到switch A的S0/6到PCB,)
[root#PCB root]# ping 10.65.1.1
通:从PCB到switch A的S0/6到switch A的S0/1到ROA的F0/0到switch A 的S0/1到switch A 的S0/3到PCA)
[root#PCB root]# ping 10.65.1.2
通:从PCB到switch A的S0/6到switch A的S0/1到ROA的F0/0到switch A的S0/1到switch A的S0/3到PCA
在使用一个路由器接口的情况下,如果下接的网络含有不同的VLAN,则要求路由器的接口要划分成子接口,并绑定isl协议。在交换机上通过多个VLAN的接口,要设置成trunk。如果去掉交换机与路由的连线,PCA和PCB还可以通吗? 不通:不在同一网段,需通过路由寻址,去掉线就不能通了。
可见这也是一种单臂路由。
实验九 三个路由器的静态路由
装入图文件:router3
设置ROA的IP: f0/0: 10.65.1.2-->PCA:10.65.1.1 f0/1: 10.66.1.2-->PCB:10.66.1.1 s0/0: 10.67.1.2
s0/1: 10.68.1.2-->
设置ROB的IP:
s0/0: 10.68.1.1 <--s0/1: 10.69.1.2--> f0/0: 10.70.1.2
f0/1: 10.71.1.2
设置ROC的IP:
s0/0: 10.69.1.1 <--s0/1: 10.72.1.2
f0/0: 10.73.1.2-->PCC:10.73.1.1 f0/1: 10.74.1.2-->PCD:10.74.1.1
设置从PCA到PCC的静态路由 ROA(config)#ip routing ROA(config)#ip route 10.73.0.0 255.255.0.0 10.68.1.1 ROA#show ip route
ROB(config)#ip route 10.73.0.0 255.255.0.0 10.69.1.1 ROB#show ip route
[root@PCA root]#ping 10.73.1.1
通:由于与ROA和ROC相连的ROB接口都在同一个网段上,所以能通,路径:从PCA到switch B的F0/0 S0/1到switch A的S0/0 S0/1到switch C的S0/0 F0/1到PCD
使用默认路由
ROA(config)#no ip route 10.73.0.0 255.255.0.0 10.68.1.1 [root@PCA root]#ping 10.73.1.1
通:因为装入文件时有默认的动态路由存在路径:从PCA到switch B的F0/0 S0/1到switch A的S0/0 S0/1到switch C的S0/0 F0/1到PCD
ROA(config)#ip route 0.0.0.0.0.0.0.0 10.68.1.1 [root@PCA root]#ping 10.73.1.1 通:从PCA到switch B的F0/0 S0/1到switch A的S0/0 S0/1到switch C的S0/0 F0/1到PCD)
实验十 三个路由器动态路由实验
装入图文件:router3
实验网络与上个实验相同,ip地址也不变,现在用动态路由实现网络的连通。ROA(config)#ip routing
ROA(config)#router rip ROA(config-router)#network 10.0.0.0
ROB(config)#ip routing
ROB(config)#router rip ROB(config-router)#network 10.0.0.0
ROC(config)#ip routing
ROC(config)#router rip ROC(config-router)#network 10.0.0.0
ROA#sh ip route
ROB#sh ip route
ROC#sh ip route
从计算机PCA 测试到各点的连通性。都通:由于路由器接口都已经激活,可以相互连通:路径:PCA到PCB:从PCA到switch B的F0/0 F0/1到PCB
PCA到PCC:从PCA到switch B的F0/0 S0/1到switch A的S0/0 S0/1到switch C的S0/0 F0/0到PCC PCA到PCD :从PCA到switch B的F0/0 S0/1到switch A 的S0/0 S0/1到switch C的S0/0 F0/1到PCD
实验十一 基本访问控制列表
装入文件1
1.配置路由达到网络各点可通。
本实验使用有动态路由,也可以使用静态路由。假设网络是通畅的。ROA f0/0: 10.65.1.2-->PCA:10.65.1.1 ROA f0/1: 10.66.1.2-->PCB:10.66.1.1 ROA s0/0: 10.67.1.2
ROA s0/1: 10.68.1.2--> ROB s0/0: 10.68.1.1 <--ROB s0/1: 10.69.1.2--> ROB f0/0: 10.70.1.2
ROB f0/1: 10.71.1.2
ROC s0/0: 10.69.1.1 <--ROC s0/1: 10.72.1.2 ROC f0/1: 10.73.1.2-->PCC:10.73.1.1 ROC f0/0: 10.74.1.2-->PCD:10.74.1.1 1.基本的访问控制列表: 先从PCA ping PCD: [root@PCA @root]#ping 10.74.1.1 应该是可以通的。由于与ROA和ROC相连的ROB接口都在同一个网段上,路径:从 PCA到switch B的F0/0 S0/1到switch A的S0/0 S0/1到switch C的S0/0 F0/1到PCD
在ROB的s0/0写一个输入的访问控制列表: ROB(config)#access-list 1 deny any ROB(config)#int s0/0 ROB(config-if)#ip access-group 1 in ROB#sh access-list 测试PCA至PCD的联通性。(deny)命令所示为S0/0读入控制,题意ROB S0/0为10.68.1.1,PCA的IP为10.65,1,1不包含于ROB VLAN中,所以不能访问
测试PCC至PCD的联通性。(permit)在同一个路由器下,通过路由器寻址能找到对方的IP,所以能通, PCC到switch C的f0/0 F0/1到PCD
测试PCD至PCA的联通性。(permit)由题意由于命令所示为S0/0读入控制,所以ROB能访问ROA,所以访问列表设置无效,所以两者之间的访问不受控制,所以能PING通, 从PCD到SWC的F0/1 S0/0到SWA的S0/0 S0/0到SWB的S0/1 F0/0到PCA
2.删除这个列表
ROB(config)#no access-list 1 ROB(config)# int s0/0 ROB(config-if)#no ip access-group 1 in
二者都可能实现去掉访问列表的目的。前者是从列表号角度删除,后者是从接口及输入和输出的角度删除。可以通过sh run 和sh access-list 命令查看删除情况。3.再写访问控制列表
ROA(config)#access-list 1 deny 10.65.1.1 ROA(config)#access-list 1 permit any ROA(config)#int s0/1 ROA(config-if)#ip access-group 1 out ROA#sh access-list
再测试PCA至PCD的联通性。(deny)ROA设置拒绝了PCA的访问
再测试PCB至PCD的联通性。(permit)由题意ROA中的S0/1为10.68.1.2 PCB的IP为10.66.1.1,不包含于S0/1 VLAN中,由于命令所示为S0/0由于是输出控制,能访问,所以访问列表设置无效,不加控制,所以能PING通, 从PCB到SWB的F0/1 S0/1到SWA 的S0/0 S0/1到SWC的S0/0 F0/1到PCD
再测试PCD至PCA的联通性。(permit)由于是输出控制,所以对输入不做要求,能通,所以输出访问列表无效,对输入不加控制,所以能PING通, 从PCD到SWC的F0/1-S0/0到SWA的S0/0-S0/0到SWB的S0/1-F0/0到PCA
4.重新设置各路由接口有电脑的ip地址。R0B(config)#access-list 4 permit 10.65.1.1 ROB(config)#access-list 4 deny 10.65.1.0 0.0.0.255
(10.65.1.3 deny)ROB(config)#access-list 4 permit 10.65.0.0 0.0.255.255(10.65.0.0 permit)ROB(config)#access-list 4 deny 10.0.0.0 0.255.255.255
(10.66.0.0 deny)ROB(config)#access-list 4 permit any
(11.0.0.0 premit)ROB(config)#int s0/0 ROB(config-if)#ip access-group 4 in
测试PCA至PCD的联通性。(deny)PCA的IP为10.65.1.1按理来说应该所有的访问都允许,由于命令所示为S0/0读入控制,题意ROB S0/0为10.68.1.1,PCA的IP为10.65,1,1不包含于ROB VLAN中所以不通
测试PCB至PCD的联通性。(permit)P CB的IP为10.66.1.1属于deny 10.0.0.0 0.255.255.255,所以访问被拒绝,所以PING不通
测试PCD至PCA的联通性。(permit)PCD的IP为10.74.1.1属于deny 10.0.0.0 0.255.255.255,按理来说应该是拒绝的,但是DENY属于源程序拒绝访问,而PCD先到S0/1,在通过S0/1与S0/0进行信息传递,所以能到达PCA,所以设置读入列表参数无效,对PCD不做限制, 从PCD到SWC的F0/1-S0/0到SWA的S0/0-S0/0到SWB的S0/1-F0/0到PCA
接口的ip地址,计算机的ip地址,请自定
实验十二 扩展访问控制列表
装入文件2 1.阻止PCA访问PCD: ROB(config)# access-list 101 deny icmp 10.65.1.1 0.0.0.0 10.74.1.1 0.0.0.0 ROB(config)# access-list 101 permit ip any any ROB(config)# int s0/0 ROB(config-if)#ip access-group 101 out ROB(config-if)#exit ROB(config)#exit ROB#sh access-list
[root@PCA root]#ping 10.74.1.1(不通)PCA的IP为10.65.1.1属于deny ip 10.65.1.1 0.0.0.0 10.74.1.1 0.0.0.0,所以PING 不通
[root@PCC root]#ping 10.74.1.1(通)PCC和PCD处在同一个路由器下,通过路由器寻址可以相互PING通,从PCC到SWC的F0/0-F0/1到PCD
[root@PCD root]#ping 10.65.1.1(通)因为ROB的S0/0为输出控制,所以当PCD通过外部访问ROB某个端口下的PCA时,是不受控制的,所以ROB的S0/0的输出对PCD的访问是无效的,所以链路不加限制,从 PCD到SWC的F0/1-S0/0到SWA的S0/0-S0/0到SWB的S0/1-F0/0到PCA
2.删除这个列表
ROB(config)#no access-list 101 ROB(config)#int s0/0 ROB(config-if)#no ip access-group 101 ROB#sh access-list
[root@PCA root]#ping 10.74.1.1(通)由于没有任何限制,再加上路由器间的寻址,所以可以PING通, 从PCA到SWB的F0/0-S0/1到SWA的S0/0-S0/1到SWC的S0/0-F0/1到PCD
3.阻止10.65.0.0网络访问 10.74.1.1计算机(PCD)。
ROA(config)#access-list 102 deny ip 10.65.1.1 0.0.0.0 10.74.1.1 0.0.0.0 ROA(config)#access-list 102 permit ip any any ROA(config)#interface s0/1 ROA(config-if)#ip access-group 102(默认为out)
[root@PCA root]#ping 10.74.1.1(不通)PCA的IP属于 DENY IP 10.65.1.1 0.0.0.0 10.74.1.1 0.0.0.0 被限制访问,所以不通
[root@PCC root]#ping 10.74.1.1(通)由于PCC和PCA在同一个路由器下,所以能通过路由器寻址进行PING通, 从PCC到SWC的F0/0-F0/1到PCD
[root@PCD root]#ping 10.65.1.1(通)由于ROA的S0/0为输出控制,所以对输入没有任何要求,所以对输出控制列表设置无效,PCD访问PCA不受限制, 从PCD到SWC的F0/1-S0/0到SWA的S0/0-S0/0到SWB的S0/1-F0/0到PCA
心得体会
从实验三中学会了如何规划ip地址,设置vlan,将连接两个交换机的接口设置成trunk等,知道了写代码时一定得仔细,否则打错了下面就不能ping通了。
从实验六中,我学会了设置计算机和交换机的IP和网关,设置路由器的接口的ip地址等。
从实验七中,我学会了设置交换机,增加一个vlan,设置路由器的子接口,了解了isl协议,isl协议:交换链路内协议(ISL),是思科私有协议,主要用于维护交换机和路由器间的通信流量等 VLAN 信息。ISL 主要用于实现交换机、路由器以及各节点(如服务器所使用的网络接口卡)之间的连接操作。为支持 ISL 功能特征,每台连接设备都必须采用 ISL 配置。ISL 所配置的路由器支持 VLAN 内通信服务。非 ISL 配置的设备,则用于接收由 ISL 封装的以太帧(Ethernet Frames),通常情况下,非 ISL 配置的设备将这些接收的帧及其大小归因于协议差错。
从实验九中,我学会了设置静态路由。
从实验十中,我学会了用动态路由实现网络的连通。从实验十一中,我学会了基本访问控制列表的使用。从实验十二中,我学会了如何扩展访问控制列表。
最后,谢谢老师这几天的指导,真的让我学到了很多很多。
第五篇:计算机网络课程设计
计算机网络课程设计——IP数据报流量统计
摘 要
本课程设计主要是编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址统计出该源地址在该时间段内发出的IP包的个数,将其写入日志文件中或用图形表示出来。程序中会用到Winpcap,它主要功能在于独立于主机协议发送和接收原始数据报。本次课程设计中用VC++实现基于Winpcap的网络数据包的捕获和统计,基于Winpcap的应用程序将根据获取网络设备列表;选择网卡并打开;设置过滤器;捕获数据包或者发送数据包;列出网卡列表,让用户选择可用的网卡的步骤进行编写,同时对于TCP/IP协议以及IP数据抱的格式有了进一步的了解和掌握。通过编写程序从而实现对网络中IP数据包流量的统计。
关键词: IP数据包;流量统计;Winpcap;VC++ 1 引 言
随着Internet技术的发展,基于IP协议的应用成为网络技术研究与软件开发的一个重要基础,因此学习网络层以基本概念,了解IP协议的基本内容,对于掌握TCP/IP协议的主要内容和网络课程的学习是十分重要的,通过本次课程设计,有助于熟悉IP数据包格式并加深对IP协议的理解。
1.1 课程设计目的
本次课程设计主要是通过用VC++编程实现对网络中IP数据包流量的统计,实际上是编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址统计出该源地址在该时间段内发出的IP包的个数,同时应用Winpcap,Winpcap提供了很好的捕获网络数据包的方法,通过本次课程设计可以将VC++知识与Winpcap结合起来实现在一段时间内对IP数据包的流量进行统计。加深了对Winpcap的理解和运用能力,同时也增长了知识,开阔了视野,对于以后的学习有很大的帮助。
1.2 课程设计的要求
(1)理解运用VC++软件实现对网络中的IP数据抱流量的统计方法和步骤。(2)锻炼独立编程和查阅文献资料解决问题的能力。
(3)通过课程设计培养严谨的科学态度,认真的工作作风。
1.3 设计平台
Microsoft Visual C++ 6.0 2 设计原理
IP是ICP/IP协议体系中的网络层协议,TCP、UDP、ICMP和IGMP等其他协议都是以IP协议为基础的。程序中用到的Winpcap是 Windows packetcapture的缩写,这是UNIX下的lipbcap移植到Windows下的产物,是Win32环境下数据包捕获的开放代码函数库。
Winpcap由内核级的数据包过滤器,底层动态链接库(packet.dll)和一个高层的独立于系统的库(wpcap.dll)组成。
2.1 IP协议
IP是TCP/IP模型中的网络层协议,又称为互联网协议,是支持网间互连的数据报协议,它与TCP协议一起构成了TCP/IP协议族的核心。它提供网间连接的完善功能,包括IP数据报规定互联网范围内的IP地址格式。在因特网中IP协议是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。IP地址具有唯一性,根据用户性质的不同,可以分为不同的类别。
IP协议的特点如下:
IP协议是一种不可靠、无连接的数据报传送协议。IP协议是点对点的网络层通信协议。IP协议向通信层隐藏了物理网络的差异。
IP协议以一种数据报的形式传输数据,每个数据报独立传输,可能通过不同路径传输,因此可能不按顺序到达目的地,或者出现重复。
2.2 关于Winpcap库
Winpcap(windows packet capture)是windows平台下一个开源的、公共的基于windows的网络接口API库。主要为win32应用程序提供访问网络底层的能力。Winpcap的主要功能在于独立于主机协议(如TCP/IP)发送和接收原始数据报。也就是说,Winpcap不能阻塞、过滤或控制其他应用程序数据报的收发,它只是监听共享网络上传送的数据报。
其功能有:捕获原始数据包,包括在共享网络上各主机发送接收的以及相互之间交换的数据包;在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据包过滤掉;在网络上发送原始数据包;收集网络通信过程中的统计信息。Winpcap是针对win32平台上的抓包和网络分析的一个架构,它包括一个核心态的包过滤器,一个底层的动态链接库(packet.dll)和一个高层的不依赖于系统的库(wpcap.dll)。它由Packet、NPF(Netgroup Packet Filter)、packet.dll、wpcap.dll、Application组成,首先,抓包系统必须绕过操作系统的协议来访问在网络上传输的原始数据包,这就要求一部分运行在操作系统核心内部,直接与网络接口驱动交互。这个部分是系统依赖的,在Winpcap的解决方案里它被认为是一个设备驱动,称作NPF。其次,抓包系统必须有用户级的程序接口,通过这些接口,用户程序可以利用内核驱动提供的高级特性。Winpcap提供了两个不同的库:packet.dll和wpcap.dll。前者提供了一个底层API,伴随着一个独立于Microsoft操作系统的编程接口,这些API可以直接用来访问驱动的函数;后者导出了一组更强大的与libpcap一致的高层抓包函数库。这些函数使得数据包的捕获以一种与网络硬件和操作系统无关的方式进行。3 程序代码设计步骤
根据流量设计程序的主要功能,相应的算法如下: 取得当前网络设备列表;
将用户选择的网卡以混杂模式打开,以接收到所有的数据包; 设置过滤器;
捕获IP数据包的源地址进行统计(用链表结构进行实现)。
获取网卡列表是为了得到网卡的相关信息,以便于用户进行选择,选取Ethermet网卡是用户所选择的网卡类型,编译设置过滤器是为了编译并设置过滤器是为了只捕获网络数据流的某些数据,打开网卡既将网卡设置为混杂(统计)模式是为了接受所有经过网卡的数据包,包括不是发给本机的数据包,开始主循环以是否超时为判断条件,循环体内主要有捕获IP数据包、将IP包的源地址加入链表、条件判断,循环结束后输出链表内容,程序至此结束。
现将其每一步的具体步骤简述如下:
3.1取得网络适配器列表
//取得网络适配器列表步骤中,alldevs是pcap_if_it指针,指向链表头,errbuf是char类型数组,存储错误信息。
pcap_findalldevs(&alldevs,errbuf);
cout<<”网络适配器列表:”<<’n’;
for(d=alldevs;d;d=d->next)
{
cout<<++i<<“:” if(d->description) cout<<“" else cout<<”No description available!“<<'n'; } 3.2 指定要监听的网络适配器并打开 cout<<”输入要监听的网络适配器号:” for(d=alldevs,i=0;inext,i++); fp=pcap_open_live(d->name,65536,1,1000,errbuf);3.3 编译并设置过滤器 //编译过滤器,fp指向打开的网络适配器,fcode为编译完成后的过滤器存储地址,“tcp“给出了过滤条件,下一个参数表示是否被优化(0为false,1为true),最后一个参数给出了子网掩码。 pcap_compile(fp,&fcode,”tcp”,1,netmask) pcap_setfilter(fp,&fcode)3.4 设置网络适配器为统计模式 if(pcap_setmode(fp,MODE_STAT)<0) { cout<<”n设置网络适配器模式错误!n”; pcap_close(fp); } 3.5 开始主循环,调用回调函数显示网络流量统计信息 //pcap_loop由Winpcap库定义,对每个采集来的数据包都用ProcessPacket函数进行处理,fp指向打开的网络适配器 pcap_loop(fp,0,dispatcher_handler,(PUCHAR)&st_ts); pcap_close(fp);3.6 回调函数的实现 //对于捕获到的每一个数据包应用此回调函数 void dispatcher_handler(u_char *state,const struct pcap_pkthdr *header,const u_char *pkt_data) { struct timeval *old_ts=(struct timeval *)state; u_int delay; LARGE_INTEGER Bps,Pps; struct tm *ltime; char timestr[16]; time_t local_tv_sec; //计算距上一个数据包的时间延迟,以ms为单位 //这个值是从与一个数据包相关的时间戳中截获的delay=(header->ts.tv_sec-old_ts->tv_sec)*1000000-old_ts->tv_usec+header->ts.tv_usec; //获得每秒的比特数 Bps.QuadPart=(((*(LONGLONG*)(pkt_data+8))*8*1000000)/(delay)); //获得每秒的数据包数 Pps.QuadPart=(((*(LONGLONG*)(pkt_data))*1000000)/(delay)); //将时间戳转变位可读的标准格式 ltime=localtime(&header->ts.tv_sec); strftime(timestr,sizeof timestr,”%H:%M:%S“,ltime); //Print timestamp printf(”%s“,timestr); //Print the samples printf(”BPS=%I64u“,Bps.QuadPart); printf(”PPS=%I64un",Pps.QuadPart); //store current timestamp old_ts->tv_sec=header->ts.tv_sec; old_ts->tv_usec=header->ts.tv_usec; };4 结果及分析 安装好WinPcap软件,在VC++界面上点击工具->选项->目录。添加Include文件夹下的所有文件和Lib下的所有内容,调试完程序无误后,点击开始—>运行“cmd”进入目标文件夹Debug下运行EXE文件。此时程序会检测电脑系统中的网卡,等待程序的运行结果.图 捕获的IP地址和数据包的信息 常见问题及解决方法 在刚开始做此课程设计的时候我只编写了主程序代码,并没有建立工程,后来通过查找资料及文献才知道要建立一个C++应用工程,而且程序中用到的Winpcap库文件C++中并没有,需要自己下载WinPcap_4_1_1.exe和WpdPack_4_1_1.zip,前者是Winpcap的开发程序,后者是inlude文件和lib文件,这些都是需要自己手动添加的,这里include和lib文件夹里的东西VC++6.0里面没有,出现error: Cannot open include file:’pcap.h’:No such file or directory这个问题,就需要添加。具体步骤如下: 第一步: 点菜单栏上的“工具“,再点击下拉菜单中的”选项“对话框把winpcap开发包里面的lib文件添加进去。 第二步: 点击菜单栏里的工程——设置,选择连接在对象/库模块中输入wpcap.lib和packet.lib,再点C/C++ 在“预处理程序定义”下输入WPCAP和HAVE_REMOTE,要用逗号隔开。 至此,Winpcap环境已部署好了不会再出错了。 接下来出错的是程序中的一些函数的参数,比如说int pcap_compile(pcap_t *p, struct bpf_program *fp,char *str,int optimize, bpf_u_int32 netmask),int pcap_setfilter(pcap_t *p, struct bpf_program *fp)函数的参数在程序编译的时候会报错,通过搜集资料及与同学交流初步更正了错误,但是程序并不是很顺利地运行出来。