书签 分享 收藏 举报 版权申诉 / 35

类型计算机网络课程实验虚拟仿真系统设计与实现-毕业设计论文.docx

  • 上传人:小香灰
  • 文档编号:84316
  • 上传时间:2021-08-03
  • 格式:DOCX
  • 页数:35
  • 大小:1.98MB
  • 注意事项:

    本文档如无特殊说明,请使用OfficeWPS软件打开,文档中的文字与图均可以修改和编辑。

    版权声明:

    本文档由用户上传版权归上传用户所有,搜文库仅提供文档存储空间。若发现您的权利被侵害,请联系客服邮件kefu@souwenku.com,我们尽快处理。

    关 键  词:
    计算机 网络 课程 实验 虚拟 仿真 系统 设计 实现 毕业 论文
    文本预览:

    本科毕业设计(论文) 计算机网络课程实验虚拟仿真系统设计与 实现 Design and implementation of virtual simulation system for computer network course experiment 院  (系) 计算机学院 专    业 网络工程 班    级 1班 学    号 16210220116 学生姓名 陈文棋 指导教师 赵元成 提交日期 2020年 4 月 19 日 毕业设计(论文)原创性声明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行的设计(研究)工作及取得的成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人已经发表或撰写的作品及成果。对本文的研究作出贡献的个人和集体,均已在论文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。 毕业论文作者(签字):               签字日期:      年     月    日 成绩评定 成绩项 论文成绩(百分制) 折合比例 实得成绩(折合分) 指导教师成绩 30% 评阅教师成绩 20% 答辩成绩 50% 总评成绩 注:毕业设计(论文)成绩按百分制评定。答辩成绩不及格的(评分低于60分的),则该毕业设计(论文)总评成绩为答辩成绩。 摘要 计算机网络课程虚拟仿真系统是一个基于Web开发的平台,将课程的理论知识与网页结合在一起,实现知识的具体化体现通过虚拟仿真的方式,将计算机网络课程教学中涉及到的HTTP协议、Socket通信、网络规划、路由算法、负载均衡等实验过程及结果通过WEB方式展示出来,实验操作性强,能直观、形象的反映出这些计算机网络中的协议、实验的网络原理及实现过程。 本文主要是设计实现出一个计算机网络课程虚拟仿真系统。使用IntelliJ IDEA 终极版作为本系统的开发软件,使用MariaDB数据库为本系统提供服务,项目架构采取Spring+SpringMVC+MyBatis框架完成,实现主要6个功能包括:端口扫描、负载均衡、UserAgent解析、网络地址计算、链路选择、WebSocket通讯。 关键词:MariaDB;Spring+SpringMVC+MyBatis Abstract The virtual simulation system of computer network course is a platform based on web development. It combines the theoretical knowledge of the course with the web page to realize the embodiment of the knowledge. Through the way of virtual simulation, the experimental process and results of HTTP protocol, socket communication, network planning, routing algorithm, load balancing, etc. involved in the teaching of computer network course are displayed through the way of web Come, the experiment has strong operability, which can directly and vividly reflect the protocols in these computer networks, the network principle of the experiment and the realization process. This paper mainly designs and implements a computer network course virtual simulation system. The final version of IntelliJ idea is used as the development software of the system, and the MariaDB database is used to provide services for the system. The project architecture adopts the Spring + springmvc + mybatis framework to complete the implementation of six main functions, including: port scanning, load balancing, user agent analysis, network address calculation, link selection, websocket communication. Key words:MariaDB; Spring+SpringMVC+MyBatis 目 录 第一章 绪论 1 1.1课题背景与意义 1 1.2本文主要内容与结构 1 1.2.1本文主要内容 1 1.2.2本文主要结构 2 第二章 系统功能简介 3 2.1端口扫描 3 2.2负载均衡 4 2.3UserAgent解析 4 2.4链路选择 5 2.5网络地址计算 6 2.6 WebSocket通讯 6 第三章 开发工具与技术综述 8 3.1编程语言 8 3.1.1 Java语言和JavaScript语言 8 3.1.2 html语言 8 3.2 Spring boot 框架 9 3.3 LayUI前端框架 9 3.4 路由算法 10 3.4.1 距离矢量算法 10 3.4.2 链路状态算法 10 3.5 MariaDB数据库 11 第四章 系统运行所需环境及数据库设计 12 4.1系统运行环境及配置 12 4.1.1系统运行时所需环境 12 4.1.2环境配置 12 4.2数据库表设计 13 4.2.1数据库表分析 13 4.2.2数据表结构设计 13 第五章 系统功能设计与实现 15 5.1 端口扫描设计与实现 15 5.2 负载均衡设计与实现 16 5.3 UserAgent解析设计与实现 18 5.4 链路选择设计与实现 20 5.5 网络地址计算设计与实现 21 5.6 WebSocket通讯设计与实现 22 第六章 总结与展望 25 参考文献 26 致 谢 27 广东东软学院本科毕业设计 (论文) 第一章 绪论 1.1课题背景与意义 随着网络的飞速发展,传统教学应结合现代科技共同展现新时代的教育方式。传统的教学主要通过书本以及老师的讲解组成,学生对于知识的理解并不深刻,往往只能了解表面的意思,无法深入的知道知识的本质,无法将所学的知识表现出来。经过班级的调查和同学的反馈,大部分的同学不能在课堂上很好的接受老师所传授的知识,在计算机网络课程中,知识的众多,杂乱的信息量让学习起来麻烦复杂。 在计算机网络课程学习中,基本上是了解课本的字面知识,了解知识的原理为基础,掌握基本的理论知识,但是在与实际实验或现实生活结合的时候,只有理论知识是会受到一定的阻碍的,在实际操作过程中会出现无法将理论知识转为具体实现。而网络进步的今天,可以通过实验仿真系统来实现对理论知识的具体表现。结合系统与理论,加深对知识的了解,并活学活用,让知识变得鲜活起来,富含乐趣,在实现系统的过程中不仅运用了计算机网络课程的知识也结合了其他方面课程的知识,让整个学习具有系统化的运用与体现,深化了知识的串联与融会贯通。实践是增强本领的重要途径,利用这个系统,可以帮助我们学懂弄痛计算机网络的知识。用图形、文字、统计、互动等增添了知识的体现程度。 在未来发展的道路上,实验虚拟仿真系统仍然存在很大的学习价值,宽阔的上升空间。伴随各种崭新的网络知识出现,算法的更新,将会涌现出更多实践结合知识的方法,对学习途径上增添新的道路,对学习网络领域起到重大作用。 完成该项目能够熟练掌握WEB相关的开发技术及框架和开发工具的运用,包括MySQL的分支MariaDB数据库,JavaScript编程语言,Springboot、Mybatis框架,IntelliJ IDEA Ultimate开发工具等,把大学四年学习内容融合,作为一个总结,为今后的实习工作打下坚实的基础。 该选题的设计与实现,可以有效的结合大学四年所学的各项知识提高编程实践能力、网络知识具体化学习、具体问题具体分析能力、设计项目并实现能力、和遇到项目问题自己解决能力,有助于我们对所学习的知识进行一个总结,便于将知识融会贯通,通过实践锻炼动手能力,把理论知识体现出来。 1.2本文主要内容与结构 1.2.1本文主要内容 计算机网络课程实验虚拟仿真系统是一种基于Web的平台,相对于课本、老师讲解具有较大的优势。核心思想是:将课程的理论知识与网页结合在一起,实现知识的具体化体现。达到能直观看到书本知识的目的。平台设计遵循简约、易懂风格,我们可以一眼看出它所含有的功能,也可以在简明的实验展示中学习知识。          通过虚拟仿真的方式,将计算机网络课程教学中涉及到的HTTP协议、Socket通信、网络规划、路由算法、负载均衡等实验过程及结果通过WEB方式展示出来,实验操作性强,能直观、形象的反映出这些计算机网络中的协议、实验的网络原理及实现过程。项目架构拟采用SSM(Spring+SpringMVC+MyBatis)框架,Spring作为控制层,SpringMVC作为显示层,Mybatis作为数据库管理层。在前端显示上,使用LayUI前端框架,数据交互使用Ajax实现无刷新用户交互,无需重新加载网页,提高并优化了用户体验。数据库选择MySQL的一个分支MariaDB数据库,MariaDB是开源的数据库服务器,在兼容MySQL的同时,增添了其他一些功能,还有着不同方面的提升。 1.2.2本文主要结构 以下5个章节将构造本论文的主要结构: 第1章:绪论,主要是论述计算机网络课程实验虚拟仿真系统研究的意义与目的、该选题的背景与现状以及对本论文的主要内容进行大概的叙述。 第2章:系统的6大功能简介,主要是介绍该系统6个功能模块,介绍每一个功能的用处和意义,从而理解6个功能的作用。 第3章:开发工具和技术介绍,重点介绍本系统开发时所使用到的相关技术,这一章,介绍技术的内容和概要以及自我的一些理解。 第4章:该系统开发过程中所用到的各类工具和数据库中数据表的设计与实现以及该系统运行时环境的安装和配置。 第5章,计算机网络课程实验虚拟仿真系统里功能的详细设计与实现,第一步先介绍各个功能的设计思路和代码实现,主要包含设计思路,关键代码等。 第二章 系统功能简介 2.1端口扫描 在因特网中,有无数的主机之间需要进行通信,通信时需通过网络协议来进行协商,一般采用TCP/IP协议。通信时以数据包的形式进行交流,数据包中含有源ip和目的ip地址,路由器根据数据包中的源ip和目的ip地址,进行转发最终把数据包传送到相应的位置。主机在接受到数据包后,要查看数据包的内容,把该数据包所携带的数据传送到相应的程序里,那么端口就相当于是该程序的房间号,主机的系统根据房间号,来决定数据包传送到哪一个房间(进程),也会根据系统服务的需要来安排房间号(端口Port)。端口号的命名和房间号一样都是正整数构成。常用的端口号和它所对应的服务有:Tomcat服务8080、FTP文本传输协议21、https服务443、Telnet远程登录协议23、http协议80等。所以数据报文中蕴含了目的端口号,用于将数据发送的指定端口,进行数据的正确输送。 端口扫描,按照字面上的意思,就是对一个端口或者多个端口进行扫描,根据扫描的结果,可以得知所扫描的目标是否有开启端口号,根据扫描出来的端口号,可以获取该目标主机是否开启了相应的服务。如果开启了相应的服务,在进行网络攻击的时候,可以根据主机开启的相应服务,查询相关服务端口的漏洞并以此为切入点进行网络攻击。如果目的主机没有开启此端口,即便向特定的端口发出请求,对方也不会应答。例如,没有在本地开启Tomcat 服务的8080端口,就去访问localhost:8080,就会拒绝说发出的连接请求。端口扫描并不单纯只是一个网络攻击的方法,而是可以帮助我们找到目标主机的一些隐患,关闭主机上一些不必要的端口(服务),降低黑客利用端口来进行网络攻击的风险。以下图解为与TCP端口进行三次握手通讯来确定客户端与服务端是否建立连接成功的过程: 图2-1端口扫描图解 2.2负载均衡 负载均衡是一种计算机技术,用于避免计算机过载,达到优化资源使用的效果。用于在多个服务器、计算机、内存等多方面资源中分配负载。让节点可以适度调配自身的运行状态,合理安排资源使用,给用户提供更好的优质服务。使用负载均衡能使同一项任务,分配的不同的节点,极大限度的降低了单个节点过载宕机的风险。如果将大部分的任务都分配到同一个节点,那么该节点处理起来就会响应时间变长,用户等待时间变长,当该节点不堪重负宕机后,该节点的所有任务又将传递到下一节点,那么下一节点也将面临同样的问题。 现如今大部分的网络设备都采取负载均衡的方式来提高网络质量,分布式系统,云计算更是如此。在分布式系统中,负载均衡是核心的一点,利用多个节点来完成单个节点无法做到的计算,那么要有大量节点进行计算,负载均衡在其中就扮演着重要的角色。 图2-2负载均衡原理图解 只存在一台服务器的情况,我们不需要使用到负载均衡技术,有2台或2台以上服务器的时候,这时需要根据服务器各方面的因素来决定服务器的运行状态,那么实现负载均衡时就要根据一定的算法来选择到底把信息传送到哪一台服务器,一个好的算法能提高负载均衡的效率、是负载均衡技术的核心。负载均衡的算法有很多种,每一个算法都有它的优点和缺点,使用哪种算法要根据实际来决定。 2.3UserAgent解析 UserAgent是Http协议中的一部分,属于头域的组成部分,中文名为用户代理,简称UA。它的作用在于当用户进入服务器或访问网站时,网站可以获取到用户的一些基础设备的资料,例如:用安卓手机、苹果手机和电脑登录网站,获取到用户使用安卓手机、苹果手机和电脑的具体版本信息。在电脑上用chrome、火狐等浏览器访问网站,可以得到具体浏览器类型的信息。 用户每一次访问网址时,会向网站发送http连接请求,请求接入该网站获取信息,那么在这个时候,网站会接受到用户的UA。利用UserAgent解析可以统计用户一些信息情况,统计完用户的信息后,可对网站进行一些优化,针对不同的用户所使用的不同设备,从而进行一个整改,当用户登录时判断该用户使用手机还是电脑登录,UA获取用户的系统信息,给予匹配该系统的网页界面反馈到用户设备上,方便用户在网页上进行操作。根据用户UA,网页可强制用户使用特定的设备进行访问,可以强制让用户只能在手机端访问,也可以强制用户只能使用电脑访问。当只有电脑时,想要访问网站提供的手机端网页,那么只需更改UA,把UA改成手机端访问,在电脑上就可以浏览WAP或其他移动格式的网页。 2.4链路选择 链路选择是指在计算机网络通信当中,路由器与路由器之间选择最优路径来进行数据包的传输。路由器链路选择分为5个步骤(1)网络区域内所有路由器先向外发送数据包,等他们附近的路由器都发送完数据包,并接受了其他路由所发送的数据包后,了解附近路由器自身的网络地址和它所知道的其他路由器的网络地址。(2)在步骤1阶段发送数据包,接受数据包时,根据两个路由器之间所交流使用的时间设置它们通信的链路成本也称作开销。(3)当完成步骤1和2后,路由器把收到的网络地址和到其他路由器所要花费的开销以及一些标识等信息打包到一起发送给其他路由器。(4)将收到的打包好的信息加上自身打包好的信息再进行统一整理,然后发给另外的路由器。(5)最后,当路由器要发送数据到另一个路由器时,计算它们之间的开销,通过一些算法如距离矢量算法或链路状态算法来计算出它们之间的最短路径。当整个网络区域内的路由器都获得了彼此打包好的数据包,就可以构造出该网络区域内的网络图。 路由器接收打包好的数据时,该数据称为链路状态分组,先放到保留区中一段时间,当新的链路状态分组到达时,先检测分组时新的还是旧的,新的分组会被路由器所记住,然后把该分组重新转发出去,但在该分组来的那条链路上不会转发,如果来的分组是旧的,那么路由器在接收到信息后,得知是旧分组就会将其扔弃。如果接受到的分组里序号小于当前所看到的分组里最大序号,那么该分组会被路由器拒绝接受。 下图为链路选择图解,当计算机发送数据到网络时,根据链路状态选择最短路径开销,最短路径为:路由器A—>路由器开销B—>网络,如果路由器B发生故障,将会重新计算最短路径,从而保证数据通信正常。 图2-3链路选择图解 2.5网络地址计算 网络地址就相当于互联网中的身份证,每一个主机连上网络后都有一个唯一ip地址,没有ip地址的主机无法在网络上通信。网络ip地址由32位二进制数组成,通常把这32位二进制分为4段,每一段有8位二进制数。由于互联网发展的迅速,连接网络的主机增多,导致ip地址的需求加大,为了避免ip地址的浪费与管理ip地址,就需要划分子网。划分子网的过程中,子网掩码在其中起到了关键的作用,192.168.8.2/24这个完整的ip地址,前半部分是网络地址,/24是子网掩码的缩写,表示该掩码为255.255.255.0,代表这个ip地址有254个可用地址。ip地址中包含网络地址和主机地址,网络地址代表着网络中可以用来通信的地址,主机地址表示用来标识主机本身的部分。通过子网掩码,可以得知该ip是否在同一个网段上,是局域网上还是远程网上。通过子网掩码可以计算出该子网有多少个网络地址与主机地址。这样便于网络的运维,在为子网静态配置ip时,能算出通信ip的范围,从而不会导致有的主机有ip却无法进行网络通信。 通过ip地址和子网掩码进行计算可以得出网络地址和广播地址,默认情况下计算出来可以用于通信的网络地址一般为第二个到倒数第二个,例如ip为192.168.0.12,子网掩码为255.255.255.0的ip地址,经过计算后得出网络地址段为192.168.0.0-192.168.0.255,可用于通信的地址为192.168.0.1-192.168.0.254。另外两个不可用于通信的地址192.168.0.0为这段网络标识配合子网掩码代表这一段网络,192.168.0.255为广播地址用于向本网络段中的所有主机发送数据。通过网络地址的计算,能加深对ip地址这一方面内容的理解。 2.6 WebSocket通讯 WebSocket协议处于OSI七层模型的最高处应用程序,基于TCP协议进行数据传输。WebSocket是双向通信协议是作用于html5浏览器的实时通讯协议,可以双向发送或接受信息,通过该协议使用,对服务器资源和带宽数据实时推送有着重要的作用。在最初进行通信的时候,需要使用http协议来进行数据的传输,然后接下来的通信将不会使用到http协议。WebSocket通讯交互的原理如下图所示: 图2-4链WebSocket模式交互图解 通过图形可以看出,Websocket是一种与TCP连接很像的通信方式,如socket的TCP长连接,一旦Websocket连接建立,随后的数据就以帧序列方式传输。在用户断开websocket连接之前,无需重新启动连接请求。当多个数据同时传输交互负载压力时,网络带宽资源的分配大大节省。建立起明显的数据传输的性能优势,用户端和服务端不管是接受还是发送消息数据都是在同一个持久连接上运行的,达到了实时通讯的目的。 第三章 开发工具与技术综述 3.1编程语言 3.1.1 Java语言和JavaScript语言 Java编程语言在如今的社会上已经是不可缺乏的一个编程语言,能跨越不同平台,无论是电脑、手机还是游戏都有它的身影。它是一个面向对象的语言,使用java语言编写好的程序不能直接在操作系统中运行,主要是依赖java的虚拟机jvm,与代码和实现平台无关,jvm通常在软件上而不是在硬件上。它是java运行环境的一部分。在JVM上,有一个Java解释器,用它来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器,将Java源程序编译为JVM的自己的代码。任何机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。除了jvm外,java程序运行还需要运行环境,称为jre。系统需安装jre后,才能运行java程序。 JavaScript是网络上很流行的脚本语言,可作用于html和web当中。JavaScript和java在概念还是设计上都是完全不一样的。JavaScript是一种解释性脚本语言。像C和c++这样的语言被编译然后执行。JavaScript是一种基于对象的语言,能运用自己已经创建了的对象,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。JavaScript依赖于浏览器本身,与操作环境无关。只要能运行浏览器的计算机,并支持JavaScript的浏览器就可以正确执行,JavaScript是一种安全性语言。它不允许访问本地的磁盘,并不能将数据存入服务器上;不允许对网络文本进行修改和删除,只能通过浏览器实现信息浏览或动态交互。可有效的防止数据丢失 3.1.2 html语言 html全称HyperText Markup Langage,也就是超文本标记语言、网页语言。html重新定义了文本的格式,不仅仅只有文本还包括音乐视频以及图片。主要是用来制作网页的。html的出现,是为了更加方便人与机器阅读。html语言不具备很强的逻辑性和流程控制功能,同时html还是缺乏灵活性的,html受到W3C的标准限定,规范html文档的书写格式。不想其他语言一样可以自定义,变化万千。html语言主要由两个部分组成,头部和主体,头部提供了网页的基本信息,网页标题、网页编码。主体提供网页的内容,浏览网页时显示的内容。html在众多语言编写起来简单方便,没有太多复杂的逻辑和语法。虽然如此,但html在web网页领域的作用比其他所有编程语言重要,是网页里不可或缺的。另外在开发工具上,电脑的记事本,有编辑功能的编辑器都可用来开发html。学习html,更多的是学习html中标签的用法。 3.2 Spring boot 框架 随着越多动态语言的出现,java开发的过程将显得更为杂乱,开发效率也会变得随之降低,愈来愈多的配置内容出现,移植到其他地方较为麻烦。正是这种环境下Springboot框架产生了,它本身已经配置好了大部分的内容,还根据大部分的习惯提前配置,无需进行自定义的操作,让项目不会因为配置的问题,减少项目繁琐程度,增加项目开发运行速度。Springboot是在Spring的基础上进行了一些优化和简化,在使用spring配置上减少了很多,只需少部分即可使得项目运行。对于java web的开发来说,springboot的出现给予了很大的便利,简化了开发的过程并使得开发效率提升。这样一来,开发者将获得更多的时间与经历去开发业务代码,减少对于框架代码的关注。不用把很多时间放在配置spring上。 图3-1 SpringBoot图解 根据上图Springboot的特点包括以下几个点: (1)可快速构建独立运行的spring项目,可以以jar包形式独立运行。 (2)Springboot内嵌有Servlet容器,使用Spring Boot后,我们不需要在服务器上去部署 tomcat,因为 Spring Boot内嵌了 tomcat。另外,也降低对运行环境的基本要求,环境变量中有JDK即可。 (3)Maven配置的优化,spring提供基础POM文件简化Maven配置。 (4)无代码生成和xml配置:Spring Boot不生成代码。完全不需要任何xml配置即可实现Spring的所有配置。 (5)方便监控,使用SpringBoot Actuator组件提供了应用的系统监控,可以查看应用配置的详细信息。 3.3 LayUI前端框架 Layui是一个非常灵活的前端框架,由自身模块规范编写的国产ui框架,门槛极低,拿来即用。内置了一些常用元素和组件,很适合界面的快速开发。它更面向于后端开发者,开发者无须花大量的时间精力去完成各种前端工具的复杂配置。只需面对浏览器本身,是的开发十分便捷。它以当前浏览器普遍认可的方式去组织模块,当前兼容除了IE6、IE7以外的全部浏览器,可作为电脑端后台系统与前台界面的速成方案。Layui提供了丰富的内置模块,它们通过模块化的方式按需加载。其中包括:flow、form、layDate、rate、table、code、tree、layer等。Layui的元素由以下组成:表单、徽章、布局(栅格、后台布局)、面板、进度条、按钮、颜色、选项卡、字体图标、动画、静态表格、辅助元素、时间线等。该框架有个极大的好处就是定义了很多前后端交互的样式接口,如分页表格,只需在前端配置好接口,后端则按照定义好的接口规则返回数据,即可完成页面的展示,极大减少了后端人员的开发成本。 3.4 路由算法 3.4.1 距离矢量算法 距离矢量路由算法是一种迭代的、异步的、分布式的算法。首先,说它是迭代的,是因为这个过程一直要持续到邻居之间没有更多信息需要交换为止。其次,说它是异步的,是因为不需要所有路由器同步一致地进行操作。最后,说它是分布式的,是因为每个结点都要从它的邻居接受信息,同时也要发送信息给它的邻居。并且每个结点需要知道的只是它的邻居的信息,而不需要了解整个网络的拓扑等信息。距离矢量算法利用Bellman-Ford方程,所以又叫Bellman-Ford路由算法。 3.4.2 链路状态算法 链路状态算法,简称LS算法,是一种利用全局信息的算法。LS算法使用完整和全球网络知识来计算最小成本路径从源到目的地,也就是说,该算法需要所有节点之间的连接性和所有的链接作为输入的成本,这就要求算法获得这些信息以某种方式才真正开始计算。一个路由器收到从网络中其他路由器发送过来的路由信息后,它对这些链路状态进行拼装,最终生成一个全网的拓扑视图,近而可以通过最短路径算法来计算它到别的路由器的最短路径。链路化妆台算法的特点在于路由器之间的认识一致,收敛快速,适合在网络范围大的地方使用,缺点计算量大,路由器储存信息的空间要装得下它所计算的结果。链路状态路由选择算法的基本步骤如下图所示: 图3-1 LS算法图解 3.5 MariaDB数据库 MariaDB数据库在如今已经变得越来越流行了,与mysql不同的是,MariaDB数据库采用了开源的方式,使得它更多元化,有利于完善该数据库多方面的不足。它也是很多大企业所使用的默认数据库像linux、红帽等公司都是使用MariaDB数据库。MariaDB虽然是MySQL的一个分支,但他有属于自己的开源社区,它使用Aria存储引擎。在很多方面上都能与MySQL兼容,所以可以用MariaDB数据库来替代它。 MariaDB数据库由于开源的优势不仅仅是MySQL的一个替代产品,而是可以被称作是另一个数据库产品。开源的方式,可以让使用MariaDB数据库的用户根据自己的使用需求,来对数据库进行源代码的修改,这对一些企业来说至关重要,通过自定义的修改,能使得数据库减少其他方面的功能消耗,从而令所需功能的效率发挥的更好,运行的速度更快。MariaDB数据库的自定义源代码定制让现在使用它的用户变得越来越多,使用范围越来越广泛。使用定制,能让MariaDB数据库修改变成适合自己的独有的数据库。 MariaDB是一款开源的多线程关系数据库管理系统,在GNU公共许可证(GPL)下发布。它有一个很突出的特点,就是速度很快,在某些命令的执行方面,它的速度是超过MySQL的,即便处理大量的表和数据都能快速的提供稳定的服务。本系统数据库的连接配置信息及登录账号和密码如图3-2所示。 第四章 系统运行所需环境及数据库设计 4.1系统运行环境及配置 4.1.1系统运行时所需环境 系统开发所用到的环境与工具: 操作系统:Windows10企业版 数据库:MariaDB-10.4.6 开发工具:IntelliJ IDEA Ultimate 虚拟机系统:CentOS7 4.1.2环境配置 本系统开发运行推荐使用Windows10企业版或专业版,避免由于家庭版或其他版本缺乏组件和功能在开发运行时造成不便。由于系统开发运行采用到java编程,所以本系统在运行时,需进行java的安装和配置。开发时采用的java版本号为1.8.0_181,系统由于使用SpringBoot框架,需安装java8以上版本,所以理论上采用java8以上版本均可。在java官方网站下载java开发套件,安装成功后会看到安装的文件夹内多出jdk1.8.0_181和jre1.8.0_181两个文件夹,安装完右键我的电脑点击属性>高级系统设置>环境变量,在环境变量里配置JAVA_HOME环境变量、CLASSPATH环境变量、path环境变量,这三个变量中有的需要新建,有的在原有环境上编辑更改即可。配置完成后打开操作系统中的命令提示符输入java和javac即可验证是否安装和配置成功。 开发本系统功能时需要用到数据库,本系统采用了MariaDB数据库,版本号为10.4.6,理论上高于此版本号的MariaDB数据库均可符合运行环境要求,但经过测试,使用其他版本号的数据库,在一定程度上会发生问题,例如连接系统数据库出错或连接上数据库后,数据显示不完整,数据错误等问题。所以在运行本系统时采用MariaDB-10.4.6版本最佳。由于多次测试不同的数据库版本,这里采用VMware虚拟机来进行数据库的安装和配置,虚拟机系统采用Linux发行版其中之一CentOS7,在Linux系统中安装数据库有两个方式,一是直接安装并配置数据库,二是使用Docker安装配置数据库。本系统采用了Docker安装配置数据库,所以在运行数据库前,要先运行Docker,然后再使用Docker运行数据库。 IntelliJ IDEA Ultimate为本系统开发工具,也是目前最好的java编程开发工具,比MyEclipse的功能更多,拥有更智能的代码提示、严格的代码检查、自带反编译功能。使用IDEA进行开发,能养成良好的编程习惯,提高开发的高效性和分析代码的能力,让人提升开发体验感。IDEA还有一个巨大优势,大学生是可以免费使用的,登录官网,使用大学分配的学生邮箱,注册一个账号,申请免费使用。安装过程也很简便,去JetBrains官网下载Toolbox。然后运行JetBrains Toolbox程序,在上面选择IntelliJ IDEA Ultimate点击安装即可。本系统采用2019.2.4版本。 4.2数据库表设计 4.2.1数据库表分析 为了实现计算机网络课程实验虚拟仿真系统的开发,实现UserAgent解析功能,需要建立存放用户各类信息的表来支持研发需求。 表的需求包括:用户访问系统时间、操作系统类型、操作系统名称、操作系统版本、设备名称、设备类型、设备品牌、设备cpu、设备cpu数位数、布局引擎类型、布局引擎版本、布局引擎名称、布局引擎名称版本、代理类型、代理版本、代理名称、代理名称版本等。 4.2.2数据表结构设计 根据数据表的需求分析,设计出完整的UserAgent解析功能表,表的结构设计如图4-1至图4-2所示: 图4-1 UserAgent解析功能表结构 字段含义: id:为此表的主键。 user_agent:UserAgent信息如:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36。 device_class:设备类型如Desktop、phone。 device_name:设备名称如huawei HWI-AL00、Xiaomi mi 3C。 device_brand:设备品牌如:huawei、apple、xiaomi。 device_cpu:设备CPU如intel x86_64。 device_cpu_bits:设备CPU位数如64。 operating_system_class:操作系统类型如Mobile、Desktop。 operating_system_name:操作系统名称如Windows NT、Android、Linux、IOS。 operating_system_version:操作系统版本。 operating_system_name_version:操作系统名称版本Windows10.0、Android8。 layout_engine_class:布局引擎类型Browser。 layout_engine_name:布局引擎版本Blink、Gecko、AppleWebkit。 图4-2 UserAgent解析功能表结构 layout_engine_version:布局引擎版本。 layout_engine_version_major:布局引擎版本(关键)。 layout_engine_name_version:布局引擎名称版本Blink69.0、Gecko62.0。 layout_engine_name_version_major:布局引擎名称版本(关键)。 agent_class:代理类型如Mobile APP、Browser Webview。 agent_name:代理名称如Chrome、WeChat、Firefox、Internet Explorer。 agent_version:代理版本。 agent_version_major:代理版本(关键)。 agent_name_version:代理名称版本Chrome 69.0.3497.92、Firefox 62.0。 agent_name_version_major:代理名称版本(关键)。 gmt_modified:更新时间。 gmt_create:创建时间。 第五章 系统功能设计与实现 5.1 端口扫描设计与实现 端口扫描设计流程为输入目标ip地址或域名,例如172.13.1.32或www.baidu.com。为了节省扫描时间设计了如ssh22、ftp21、Mysql3306、https443等的常用端口和自行输入的自定义端口,在使用自定义端口中多个端口号用逗号隔开,连续端口号用减号隔开,例:8081,8090-

    展开阅读全文
    提示  搜文库是C2C交易模式,所有文档均是用户上传分享,仅供网友学习交流。文档版权归属内容提供方,未经书面授权,请勿作他用!
    关于本文
    本文标题:计算机网络课程实验虚拟仿真系统设计与实现-毕业设计论文.docx
    链接地址:https://www.souwenku.com/p-84316.html

    copyright@ 2016-2022 搜文库网站版权所有   网站客服QQ:425721614

    经营许可证编号:粤ICP备2021173911号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。

    搜文库平台仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知搜文库平台,我们立即给予删除!


    搜文库
    收起
    展开