计算机网络实训任务书(共20页).doc
精选优质文档-倾情为你奉上课 程 实 训 报 告课程名称 计算机网络 课题名称 1.Java实现基于Socket的Telnet服务课题名称 2.交换式和虚拟局域网实训 专 业 班 级 学 号 姓 名 指导教师 刘铁武 韩宁 2013年 5月 20日湖南工程学院综合实训任务书一 实训的目的课程实践(专题实践)是本专业集中实践环节的主要内容之一,是学习专业技术课所需的必要教学环节。通过课程设计的教学实践,使学生所学的基础理论和专业知识得到巩固,并使学生得到运用所学理论知识解决实际问题的初步训练;课程设计的设置应使学生接触和了解系统设计从需求分析、方案比较、开发工具的使用、系统实现的全过程,进一步提高学生的分析、综合能力,为今后的毕业设计做必要的准备。二 实训的性质和任务通过实训,培养学生独立思考、综合分析与动手的能力;验证理论和加深对概念的理解,熟练掌握网络安装和调试技术,并能综合运用知识进行网络设计,解决实际问题。三 对学生要求1学生需认真阅读课程设计任务书,熟悉有关设计资料及参考资料,熟悉有关各种设计规范的有关内容,认真完成任务书规定的设计内容。2学生均应在教师指导下,按时独立完成规定的内容和工作量。3书写课程设计说明书。要求说明书准确、文字通顺、书写工整。四 成绩考核及时间安排教师根据学生的设计进行评定。实训成绩按五级分评定即:优秀、良好、中等、及格、不及格。五 实训的内容及要求 课题1: 交换式和虚拟局域网实训1实训目的(1)学会设计交换式局域网和划分VLAN(2)学会配置VLAN2实训内容 (1) 交换式以太网组网 (2)以太网交换机配置 (3)VLAN划分与配置3、实训报告(1)画出交换式以太网组网拓扑结构(2)以太网交换机配置信息(3)VLAN划分与配置信息及测试结果课题10:Java实现基于Socket的Telnet服务课题内容:(1) 了解socket套接口(2) 初始化Socket并在2台电脑上建立Socket连接(3) 通过Java语言,实现Telnet服务(4) 完成测试并写出详细报告六、说明1必选题目要求:每位学生做2个课题,其中序号(学号%题数+1)为必做,另可任选做1个。2考核方式与评分标准指导老师负责验收结果,结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分: 平时出勤 (占20%) 系统分析、功能设计、结构设计合理与否(占10%)个人能否独立、熟练地完成课题,是否达到目标(占40%) 设计报告(占30%)不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。3进度安排时间9:00-12:0013:0016:00星期E208上机调试E208上机调试星期E208上机调试E208上机调试附:实训报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码)。目 录专心-专注-专业 课题一1、实验目的本实验基于Telnet协议,使用Socket套接口,用java语言,实现Telnet服务。目的使学生了解Telnet协议、掌握在java编程中对telnet协议的使用、和使用Socket的编程技术及其远程登录网络访问服务的技术。Telnet协议是TCP协议族中的一员,是Internet远程登录服务的标准协议,远程登录是指用户使用Telnet命令,使自己的计算机成为远程主机的一个仿真终端的过程。这个程序是基于Socket编程实现的Telnet客户端的原理,可以实现基本的Telnet远程访问功能。2、项目内容本程序通过java语言,基于Socket套接口,实现Telnet基本服务。3、实验环境局域网中两台PC预装java运行环境jdk,采用IPV4协议,开启Telnet相关服务。4、设计方案程序分为三个模块,初始化连接模块,监听网络信息收发数据模块,运行模块。初始化模块主要是初始化Socket并在两台pc机建立socket连接。监听网络信息收发数据模块通过监听线程实现对Socket连接的监听,并收发通信数据。运行模块主要有两个线程实现,线程中调用Io流实现数据的传输。5、实现流程5.1实例化SocketTelnet是基于TCP的连接,因而在客户端使用.Socket类来实现。Socket通常也称作“套接字”,用于描述IP地址和端口。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。本程序中使用一个描述主机地址的字符串和Telnet的端口号,得到一个Socket。 String host="" int port=110; Socket socket = new Socket(host, port);5.2监听线程本程序中,使用线程对通信过程监听。在线程类中,定义了两个I/O流,输入流和输出流。用输入流实例化一个BufferedReader类的实例,将输入流包装进BufferedReader类,可调用该类的readLine方法按行读取数据。BufferedReader reader = new BufferedReader(new InputStreamReader(is); PrintStream ps = new PrintStream(os);在线程的运行主体run方法将输入流的数据传输到输出流中。在本例中运行有两个线程,输入的可能是服务器信息,也可能是本地机有控制台输入的信息(System.in),while (line = reader.readLine() != null) ps.print(line); ps.print("rn");ps.flush(); 5.3运行线程最后实例化两个线程类,并调用Thread类的start方法开始运行线程。new Listener(socket.getInputStream(), System.out).start(); new Listener(System.in, socket.getOutputStream().start(); 实例化线程的第一个线程的输入流为服务器信息,调用由Socket类的getInputStream方法获取,输出流为控制台,调用System.out获取;第二个线程输入流为控制台输入,跳用System.in获取,输出流为输出到服务器,调用Socket类的getOutputStream方法获取。6、实验结果及其分析通过本程序连到tom的pop邮件服务器。Pop3是一个非常简单的邮件访问协议,在登陆时以明文的方式发送用户名和密码。成功连接到tom的pop邮件服务器,通过用户身份认证,因为我是刚注册的测试帐户,所以没有邮件list为0.7、心得与体会通过一周的课程设计,我受益匪浅。从一开始的构思再到今天写下这份设计报告,期间时间虽短但是也学到很多有用的的东西,在实训的刚开始构想只有大体的思路,忽略了一些具体实现的细节,因此在我真正做网络设计时发现有很多小错误,有的时候要解决一个错误反反复复会花上很多时间,在做的过程中,也会有很多意想不到的错误,其中有的错误到最后解决的时候却是发现犯得很幼稚,不过这样的错误多了,在不知不觉中对一些命令知识分外的熟悉了起来,并且自身的排错能力也得到很大的提高。在设计过程中总是会遇到一些很小的问题,虽然不明显,却可以影响到整个网络的安全运作,第一次的方案设计虽然有些困难,却也使我更加深入的了解各个设备的如何搭建能使网络变得更加安全,更加快捷,并将平时所学的知识运用到课程设计中去,也明白了设计一个网络是需要花费很多时间和精力去构思的,在这次课设过程中,我发现平时学习的知识与实践环节所用到的有一定的差距,往往我觉得自己掌握的很好或者自认为熟练的技术却在此次实践环节中往往出问题,书本上的知识只提供方法的借鉴,实践中自己必须摸索出适合具体工作的方法,这一切都离不开钻研精神与勤学好问的精神在人与人相处过程中我收获更大,首先要谦虚谨慎,不能自以为是,认为自己懂的很多,仅仅埋头苦干而不向他人请教视线是有很大的局限的,工作不但是实践与应用的过程,同时也是学习的过程,我们必须加强与他人的沟通学习,以便获得他人的经验。这次网络的课程设计让我把属于这方面的各个知识点从各方面收集过来,根据要求用Java语言实现基于Socket的Telnet服务,Telnet是一个简单的远程终端协议,它也是因特网的正式标准,这个课设不但要熟悉网络各层的结构,更加要熟悉Java编程,然后要一遍一遍的测试,慢慢排查错误。我在这个星期的课设里,让我知道还有很多地方的不足,还有许多的新的技术等着我去摸索,等着我去学习与应用。这次课程设计的时间很紧迫,再加上各方面的经验不足,也遇到很多问题,虽然我通过网上查询,请教同学去解决我遇到的问题,但我知道这个网络课设还是有很多地方没有完善,希望老师能谅解。通过本次课程设计,使我对Telnet协议有了进一步的了解,能够更加熟练的应用Socket网络编程, 和java语言开发程序的技巧。在程序设计方面,在界面设计以及数据加密技巧上有了进一步的提高,对java编程也有更为深入的了解。在这里感谢帮助我解决问题的各位同学,使我顺利的完成了这次的课程设计,也感谢老师对我们的帮助和指导! 课题二1、实训要求1.1实训目的(1)学会设计交换式局域网和划分VLAN(2)学会配置VLAN1.2实训内容 (1) 交换式以太网组网 (2)以太网交换机配置 (3)VLAN划分与配置2、主要功能PC机通过连接交换机搭建VLAN,即虚拟局域网,采用静态配置IP的方法,明确指定各端口属于哪个VLAN的设定方法,根据以太网交换机的端口来划分,这种划分方法的优点是定义VLAN成员时非常简单,只要将所有的端口都指定一下就可以了。利用上述方法实现不同VLAN间的通信。本实验基于三层交换技术,在网络模型中的第三层实现数据包的高速转发,即二层交换技术三层转发技术。基于子网的VLAN是通过所连计算机的IP地址,来决定端口所属VLAN的。它不像基于MAC地址的VLAN,即使计算机因为更换了网卡或是其它原因导致MAC 地址改变,只要其IP地址不变,就仍可以加入原告设定的VLAN。这种划分VLAN的方法是基于每个主机的网络层地址或协议类型的,虽然这种划分方法可能是根据网络地址,比如IP地址,但VLAN不是路由。虽然VLAN查看每个数据包的IP地址,但由于它不是路由,因此没有RIP、OSPF等路由协议,而是根据生成树算法进行桥交换。这种方法的优点是用户的物理位置改变了,不需要重新配置其所属的VLAN,而且可以根据协议类型来划分VLAN。3、模块功能的划分3.1交换式以太网组网拓扑结构3.2 VLAN划分 以交换机为单位划分,每个交换机属于一个VLAN,C3属于VLAN1,C4属于VLAN2。VLAN间通过与之相连的3三层交换机,实现通信。4、课题功能实现4.1实验步骤1.为PC分配IP地址: C1的IP地址为:192.168.2.10C2的IP地址为:192.168.1.102. 创建VLAN: R1(config)#vlan1 R1(vlan-2)#exit R2(config)#vlan2 R2(vlan-2)#exit R3(config)#vlan1 R3(config)#vlan23.为vlan分配端口: R1(vlan-1)#untagged 1 R1(vlan-1)#exit R2(vlan-2)#untagged 2 R2(vlan-2)#exit4.为vlan配上中继端口: R1(vlan-1)#tagged 28 R1(vlan-1)#exit R2(vlan-2)#tagged 28 R2(vlan-2)#exit R3(vlan-1)#tagged B1-B2 R3(vlan-2)#tagged B1-B25.配置VLAN2和VLAN3的IP地址: R3(vlan-1)#ip address 192.168.2.1 255.255.255.0 R3(vlan-2)#ip address 192.168.1.1 255.255.255.06.启动Ip路由:R3(config)#ip routing7.用PC1去pingPC2:ping 192.168.1.104.2系统流程开始配置PC1、PC2的IP地址启动IP路由在R1、R2中分别创建VLAN1和VLAN2用PC1去ping PC2为VLAN分配端口结束给VLAN配上中继端口配置VLAN1和VLAN2的IP地址5、实验结果及其分析 图5.1 PC2 ping PC1的IP地址 图5.2 PC2 ping PC1后的连通信息1.两台交换机之间的端口应该设置为tag vlan的传输。2.Trunk接口在默认情况下支持所有vlan6、设计心得与体会本次课程设计一共花了一周的时间,在这一周中,我觉得我学会了很多的东西,特别是自学的能力,感觉自己又把以前学的的知识重新复习了一遍并且也得到了提高。通过本次课程设计,我对计算机网络的理解也又上了一个层次,将书本上的知识转换为自己的东西真正用到实践应用中去。通过这次课程设计,首先我觉得老师让我们做的这次网络课程设计是十分必要的,这不仅可以培养我们对这门课的学习兴趣,同时激励我们靠自己的能力去完成任务,不管是上网搜索还是去图书馆查相关资料,而且可以用实际的操作能力来考验我们对这门课以及对网络实验的掌握程度。以前我们在课堂上所掌握的仅仅是专业基础课的理论面,接下来就是考虑如何去锻炼我们的实践能力,如何把我们所学到的专业基础理论知识具体实现,不过在开始接触这个课题的时候也感觉无从下手,感觉平时学的知识一下子用不上。我重新调整了一下心态,决定从最基本的入手,首先大概的看一下设计报告,了解一下课题的内容,这样有一个最基本的认识。接下来的工作就是实验前的准备了,除了查资料外,还要对实验的全部内容有所了解,主要是了解实验的操作,还有实验的一些主要代码。最后就是上机实验了,早上到实验室后,大家依照自己画的拓扑图连接好了线路,输好了各种代码后,发现实验还是有一些问题,不过在老师和同学的帮助下,我们明白了问题所在,之后自己再次实验了一次,果然结果跟设计的一样。 经过一个星期的努力,网络课程设计总算是顺利完成了,总的来说,通过本次设计,我感觉到了以前学的很多知识根本不够用,特别是自己也根本不会把那些知识带进实践中。这个课题只是交换式和VLAN的基本入门,也是为以后完成更加复杂的网络拓扑的结构打下基础。总之,要想真正的检验自己,提高自己,就只有在实践中多学习,多多动手操作。在这里感谢帮助过我解决问题的各位同学,也感谢老师对我的帮助和指导!附录源程序1、课题一import .*;import java.io.*;public class TelnetClient String host="" /Telnet服务器地址int port=110; /端口号public TelnetClient() System.out.println("Host " + host + " port " + port);try Socket socket = new Socket(host, port); /实例化套接字new Listener(socket.getInputStream(), System.out).start(); /输出服务器信息到控制台new Listener(System.in, socket.getOutputStream().start(); /输出控制台信息到服务器 catch(IOException ex) ex.printStackTrace(); /输出错误信息return;System.out.println("Connected Success");class Listener extends Thread BufferedReader reader; /输入流PrintStream ps; /输出流Listener(InputStream is, OutputStream os) reader = new BufferedReader(new InputStreamReader(is); /实例化输入流ps = new PrintStream(os); /实例化输出流public void run() String line;try while (line = reader.readLine() != null) /读取数据ps.print(line); /输出数据ps.print("rn");ps.flush(); catch(IOException ex) ex.printStackTrace();public static void main(String argv) new TelnetClient();2、课题二 R1(config)#vlan1 R1(vlan-2)#exit R2(config)#vlan2 R2(vlan-2)#exit R3(config)#vlan1 R3(config)#vlan2 R1(vlan-1)#untagged 1 R1(vlan-1)#exit R2(vlan-2)#untagged 2 R2(vlan-2)#exit R1(vlan-1)#tagged 28 R1(vlan-1)#exit R2(vlan-2)#tagged 28 R2(vlan-2)#exit R3(vlan-1)#tagged B1-B2 R3(vlan-2)#tagged B1-B2 R3(vlan-1)#ip address 192.168.2.1 255.255.255.0 R3(vlan-2)#ip address 192.168.1.1 255.255.255.0 R3(config)#ip routing ping 192.168.1.10参考文献1. 计算机网络(第5版) 谢希仁 电子工业出版社 2008.012.计算机网络基础 陈有祺、吴功宜 南开大学出版社 2000.103.局域网组建及应用培训教程 孙江宏 清华大学出版社 2002.24.计算机网络教程(第2版) 谢希仁 人民邮电出版社 20075.思科网络技术学院教程M3版Cisco Systems公司 人民邮电出版社 20046. 计算机网络 宋凯,刘念 清华大学出版社 2010.2计算机与通信学院综合实训评分表课题名称:Java实现基于Socket的Telnet服务、交换式和虚拟局域网实训 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期: