网络服务器FTP客户端的设计与实现---毕业论文_第1页
网络服务器FTP客户端的设计与实现---毕业论文_第2页
网络服务器FTP客户端的设计与实现---毕业论文_第3页
网络服务器FTP客户端的设计与实现---毕业论文_第4页
网络服务器FTP客户端的设计与实现---毕业论文_第5页
免费预览已结束,剩余39页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本 科 毕 业 论 文(科研训练、毕业设计)网络服务器FTP客户端的设计与实现The Design and Implementation of FTP Client for Network Server姓 名:学 号:学 院:软件学院系:软件工程专 业:软件工程年 级:校外指导教师: 校内指导教师: 年 月摘要由于网络环境越来越复杂,企业网络的安装和维护的难度大大增加,给网络管理员带来了沉重的负担。为了简化当今企业级用户网络安装和维护的难度,加强企业网络的安全,富士通公司推出了新的网络服务器。该设备集路由器、UTM、负载平衡等功能于一体,大大简化了企业网络的复杂性,提升网络安装和维护的效率。由于在使用过程中,经常需要从设备中向外部传送文件或从外部获取文件,因此需要为该设备提供一款FTP客户端软件。与普通FTP客户端相比,应该具备文件过滤功能,只能对系统中特定的文件进行操作。由于这些文件在系统中分布在不同的文件夹中,因此如何实现一种简便、有效、易扩展的文件过滤机制成为本系统的研究重点。本文主要研究如下几个方面的内容:第一、如何利用Linux系统中常见的配置文件机制来创建一个适合本系统的文件过滤体制。第二、由于配置文件位于不同的系统路径中,如何解决FTP客户端的本地工作目录问题。第三、介绍了如何对该FTP客户端进行测试。关键词:文件过滤;FTP;LinuxAbstractAs the network grows large, the installation and maintenance of the enterprise network turns out to be very hard, which has become the burden of network administrator. To simplify this work and strengthen the security of enterprise network., Fujitsu company introduces a new series of network server. It integrates the function of router, UTM, load-balance, etc, which could sharply simplify the complexity of enterprise network and improve the efficiency of installation and maintenance.During the daily work, we often need to upload file to outside server or download file into the server. So, we need a specified FTP client to finish this job. Compared to common FTP client, it must have a file filtering, so we can only operate on some certain files. Because these files are in different paths, its the point to realize a easy, efficient, upgradeable file-filter mechanism.The whole work mainly focuses on the following aspects:1. How to create a adequate mechanism referring to the existed configurationfile custom in Linux.2. As the files are in different paths, how to solve the local working directory.3. How to test the FTP client is explained.Key words: File-filter;FTP; Linux目录第一章 绪论11.1 选题背景与意义11.2现阶段研究状况11.3本文的主要内容和结构1第二章 背景知识32.1产品介绍32.2系统结构介绍32.2.1 系统总体结构32.2.2 CLI系统结构42.3 FTP客户端需求介绍 62.3.1 FTP模块存在形式62.3.2 FTP模块FD部分文档62.4本章小结9第三章 FTP客户端原理103.1 FTP协议简介103.2 FTP客户端工作流程103.3本章小结11第四章 定制FTP客户端的设计与实现124.1系统设计124.1.1 系统结构设计124.1.2 系统流程124.1.3 系统流程图134.2详细设计154.2.1 本地工作目录154.2.2 过滤规则文件154.2.3 上传操作流程图164.2.4 下载操作流程图184.3模块测试194.3.1 命令输入测试194.3.2 消息检查194.3.3 全路由测试194.4系统运行效果图194.5本章小结21第五章 总结22致谢23参考文献24CONTENTSChapter 1 Introduction11.1 The Research Topics Background and Significance11.2 The Status Quo 11.3 The Main Work and Structure of This Thesis1Chapter 2 Background Knowledge32.1 Production Introduction32.2 System Structure Introduction32.2.1 System Introduction32.2.2 CLI Module Introduction42.3 FTP Client Requirement Introduction62.3.1 The Form of the FTP Client62.3.2 FD Document for FTP module62.4 Chapter Summary9Chapter 3 How FTP Works103.1 File Transfer Protocol103.2 FTP Client Work Flow103.3 Chapter Summary11Chapter 4 The Design and Implementation of FTP124.1 System Design124.1.1 System Structure Design124.1.2 System Flow124.1.3 System Flow Graph134.2 Detailed Design154.2.1 Local Working Directory154.2.2 File-filter Rule File154.2.3 Upload Flow Graph164.2.4 Download Flow Graph184.3 Module Test194.3.1 Command Input Test194.3.2 Message Check194.3.3 All Route Test194.4 System Running Graph194.5 Chapter Summary21Chapter 5 Summary22Acknowledgement23Reference24网络服务器FTP客户端的设计与实现第一章 绪论1.1 选题背景与意义本项目来源于企业实际项目。该项目主要内容是为网络服务器开发命令行解析器,负责处理用户输入的命令并完成用户指定的内容。其中一个模块就是要在该系统中提供一个FTP客户端,用以从服务器外部获取文件或向服务器外部传送文件。其中最重要的功能则是要实现文件的过滤。由于服务器自身系统中并非所有文件均可公开,如何实现一种合适的机制来保证文件过滤对该系统有着至关重要的作用。1.2 现阶段研究状况目前,FTP协议应用广泛。各种平台下的FTP客户端和服务器端层出不穷,功能也大致相同。在Linux系统下,更是有大量的开源FTP客户端工具,这些工具都提供了通用的文件下载、上传等功能。然而,都不具备文件过滤的功能,因此更不存在成熟的文件过滤机制。因此,我们需要在这类基本的FTP客户端基础上建立一种简易、易扩展的文件过滤机制。 1.3本文的主要内容和结构本文主要讲述了如何在开源FTP的基础上,设计文件过滤机制从而满足项目的需求。本文主要讲述以下几个部分的内容:(1)该服务器系统的结构(2)FTP客户端的基本原理(3)过滤机制创建本文后续章节安排如下:第二章、介绍该服务器及其软件系统,阐述FTP客户端的运行环境,从而对系统流程有详细的认识。第三章、分析FTP客户端工作的主要原理从而对其改造打下基础。第四章、详细介绍过滤机制的设计,以及如何建立一个合理的文件过滤机制。并且讲解在项目中如何对其进行测试。最后展示系统运行效果。最后总结本文的研究工作和结果,并就本文的后续研究提出自己的思考、见解和展望。第二章 背景知识本章主要介绍该FTP客户端运行的硬件环境和软件环境,以及FTP客户端的需求。为系统的开发奠定知识基础。硬件环境主要对该网络服务器功能和特性进行简要介绍。软件环境主要介绍该网络服务器软件系统的总体结构,对Monitor, CLI,Web, Engine 这几个模块的功能和环境做简要介绍。由于FTP客户端隶属于CLI系统,因此对于CLI系统进行了更为详细的介绍。最后,对于此次FTP客户端的具体功能,通过项目开发文档做简要说明。2.1 产品介绍当今社会,计算机网络成为企业发展必不可少的因素。然而,面对越来越多的攻击手段,企业网络的安全受到严重威胁,普通的网络路由器远远不能满足安全等方面的要求,因此富士通公司在研究了现阶段企业网络的新形势后,推出了一系列新型的网络服务器。该系列产品是一套综合网络设备,除了常见网络设备的交换/路由功能,还提供了VPN、IIOP、带宽控制、负载均衡、路由控制、PPPoE、DHCP、DNS、NAT等网络控制功能1。在安全上,增加了访问控制、状态检测、攻击防御等防火墙功能,大大简化了网络的安装和维护。该网络服务器不仅提供了传统的命令行配置界面,同时提供了Web配置界面以及基于JRE的监控模块,降低了对网络管理员的要求,简化了设备的配置和维护。2.2 系统结构介绍2.2.1 系统总体结构如图2-1,该系统主要模块及其功能现简要介绍如下:(1)Engine:负责直接与系统硬件交互,提供了一系列接口由CLI模块调用,完成用户命令的配置。(2)CLI:即Command Line Interpreter,负责与Engine交互,接受来自命令行和Web界面的命令,经过分析、处理后调用Engine提供的API完成命令的执行。(3)Web:即图形化的用户界面,通过Web界面的形式与用户进行交互,将用户的设置通过XML文件反馈到CLI。(4)Monitor:即监视器,在客户端安装相应的JRE,即可实现图形化的监控界面,提供实时的服务器运行状态。该模块同样是通过XML文件和CLI进行交互。图2-1: 网络设备软件系统结构图2.2.2 CLI系统结构如图2-2,CLI模块主要由两大部分构成:Framework和Plug-in 。分别介绍如下:Framework:顾名思义,该部分是CLI的框架,负责直接与用户交互,分析用户输入的命令,并与系统中加载的命令进行匹配处理。主要包含ISF_Shell和ISF_Session两个类。分别对应了系统框架和与用户的会话。在系统启动时,ISF_Shell类会创建如图2-2所示4个线程用以监听来自不同接口的用户连接。每当有新的用户连接到系统,ISF_Shell类就会创建一个ISF_Session类来负责与该用户的会话。并根据连接方式的不同创建不同的session。在此部分中,包含了系统的基本命令。Plug-in:系统中大部分命令均是以插件库的形式存放在系统中,这样可以便于以后的升级。一个插件模块是由如图2-2所示几个函数构成。由于此次FTP命令并非插件开发,在此不再赘述。ISF_Shell Classpthread(主要类型):ReceiveSerialConnectionReceiveSSHConnectionReceiveWebConnectionReceiveShellRequestConnectioncreateISF_Session Class(主要类型):ISF_SESSION_CONISF_SESSION_SSHISF_SESSION_TELNETISF_SESSION_WEBinitializeFramework:对应系统/proc/isfshell/bin/isfsh对应源代码中Framework文件夹Plugins:对应系统/opt/isfshell/bin/plugin目录中所有.so文件对应源代码中lib开头文件夹.so插件主要函数:isf_plugin_initialize(ISF_Shell& shell);cmd_xxx(ISF_Session& session);checkDependency_xxx(ISF_Session& session, xmlNodePtr node);distribute_xxx(ISF_Session& session);rebuild_xxx(ISF_Session& session, ISF_RebuildType type, xmlNodePtr rebuildNode);load图2-2: 网络设备软件系统结构图2.3 FTP客户端需求介绍2.3.1 FTP模块存在形式在此系统中,FTP命令既不存在于Framework中,也不存在于Plug-in中;而是以单独的二进制文件形式存在于Linux系统中,在用户输入FTP命令后,由Framework通过Linux系统来调用既存的FTP命令。2.3.2 FTP模块FD部分文档表2-1:FTP模块FD部分文档2函数名:cmd_ftp( )操作模式:用户EXEC模式管理员EXEC模式提示符:ipcom ipcom #命令输出:ipcom ftpftp open Connected to (1)220 internal1 FTP server (Version. ) ready.Name (:isf): manager331 Password required for manager.Password: ftp !ls! Command is not supported.The file list in the system should use the lls command.ftp lls-File nameSizeLast modified time-sample0822.cli243312003/08/22(Fri)10:22:13sample0823.cli248432003/08/23(Sat)13:38:51memory-dump314115202003/08/22(Fri)11:32:44process-dump2104115202003/08/22(Fri)14:30:11-Available storage capacity Size rate -Configuration 19058688 (93%) - database etc.temporary(CF) 6819840 (15%) - trace / loggingtemporary(HDD) 128556878 (11%) - trace / loggingprocess-dump 28753000 (95%)-ftp put running-config.clilocal: f remote: f227 Entering Passive Mode (10,100,10,11,7,2).125 Data connection already open; Transfer starting.226 Transfer complete.21385 bytes sent in 6.2e-05 secs (47kbytes/sec)ftp bye221 Goodbye.ipcom XML输入:不支持XML输出:不支持依赖:(1) /save文件夹初始化(2) 在/save中创建需要上传的文件的符号链接 /etc/isfshell/*.cli-配置文件/etc/ipcom/virusgw/ftp-files/anti-virus-admin.txt- 病毒检查记录/etc/ipcom/sslvpn/links/sslvpn-link-*.xml- SSL-VPN link配置文件/save/waf-site-policy-*.xml - waf site policy 配置文件消息:(1) 文件数超过最大值 Can not get more than . Please check the file list with lls command.【处理】删除部分文件后重试【位置】无【等级】错误:ERROR(2) 文件名中字符错误 The file name with an alphanumeric character a-z 0-9 and a symbols _- :.【处理】文件名字符应在【a-z】和【0-9】之间【位置】位置情報【等级】警告:WARNING(3) 文件大小超过最大值 Failed to copy file to system(Over: byte):.【处理】减小文件大小后重试【位置】无【等级】警告:WARNING检查处理:无注意事項: 系统中同时只能运行一个FTP客户端实例资料来源:富士通:IPCOM X运用管理机能式样书,2008年12月。该文档详细描述了命令的样式,规定了函数的名称。提供了所有需要进行处理的系统中文件的路径和名称。并且明确了各种应该处理的错误,警告,及其对应的消息。系统完成后,应该与该文档中的描述完全一致,否则被认为没有满足需求。2.4 本章小结本章介绍了该FTP客户端运行的硬件环境和软件环境,以及该FTP客户端的需求。通过本章,我们了解了系统的整体结构和FTP客户端在整个系统中的位置,理清了系统模块间的关系,为我们后续的开发和研究奠定了基础。第三章 FTP客户端原理本章针对FTP协议本身进行了介绍,虽然本次并不涉及到FTP协议本身的开发,但是理解FTP协议的原理可以有效的帮助我们对开源FTP进行改造。3.1 FTP协议简介FTP(File Transfer Protocol),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息3。当用户启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序4。3.2 FTP客户端工作流程首先,用户指定一个远程的FTP服务器地址,以及用户名和密码。服务器验证用户名和密码之后,客户端获取到服务器的默认目录,即可获取到该目录下的文件列表。用户即可下载和上传文件。此时,对客户端而言,有两个工作目录,一个是服务器端的,一个是本地的。下载时,默认下载到本地工作目录;而上传时,默认都是从本地工作目录中检索用户的文件。根据FTP协议,服务器端接受若干命令,如PWD, CD等等。客户端发送来的命令如果满足协议的规定,服务器端则进行处理,并将处理后的结果通过数字返回给客户端5。FTP协议中定义了一系列的返回值用以表示不同的结果。具体可以参考相关文档。3.3本章小结本章是对FTP协议和工作原理的介绍,FTP即文件传输协议,用来在网络间传输文件,它规定了一系列的操作,如PWD,CD等。另外,还定义了一些特定的名词,如工作目录,理解FTP协议可以帮助我们有效的对开源FTP进行改造。第四章 FTP客户端的设计与实现在了解了项目背景、项目需求以后,在本章详细介绍该FTP客户端的设计与实现。包括系统设计和详细设计,以及系统完成后的测试方法和运行效果。4.1 系统设计4.1.1 系统结构设计由于本次定制的FTP客户端是基于开源FTP的基础上改进而来,因此此次改造主要涉及两个方面的内容。首先,在原有开源FTP中增加少量文件过滤处理。即在put()函数和get()函数中增加一些简单的检查。此时主要进行的是针对put方法向外部服务器上传文件的检查,和少量的针对get方法的检查,如文件数量和文件大小的检查。另外,在Framework中,应该进行临时工作目录的建立,目录中文件的初始化。并通过Linux系统创建一个子进程来调用外部的FTP命令。在FTP命令退出之后,需要进行复杂的文件过滤。大部分FD文档中规定的过滤将在此时进行。此时的过滤主要检查通过get方法获取到临时工作目录中的文件是否满足条件,如果满足,则将此文件移动到对应的系统目录中;否则,舍弃该文件。最后清空临时工作目录。 4.1.2 系统流程(1) 通过Session.getOutputMode()函数获取当前Session输出类型。Session的输出类型依赖于用户的连接方式。Web连接中的输出类型为ISF_OUTPUT_XML,其他连接方式的输出类型均为ISF_OUTPUT_CLI。Cmd_ftp命令不支持在Web方式连接中使用。因此通过输出类型来避免在Web中调用cmd_ftp 命令。(2) 通过Session.enterProcess()函数将当前执行命令“execute ftp”记录在m_ProcessMsgStack 容器中,通告Framework当前session正在执行的任务。由于m_ProcessMsgStack 是共享资源,因此需要对其进行互斥操作。 (3) 针对不同机型,通过Session.getParam()函数获取命令行的参数。(4) elementLock.trylock()函数尝试给cmd_ftp命令上锁。(5) 初始化/save文件夹,清空该文件夹。该文件夹为ftp操作时的本地工作目录 。保存了可以进行PUT或PUT_EX操作的文件的符号链接。以及用于GET或GET_EX命令下载的文件的临时存储。(6) FTP命令执行前的初始化:/save文件夹中符号链接文件的初始化。之前已通过fileutil.conf过滤规则文件中定义的文件属性,设置好isf_fileconf 结构体数组。现在通过isf_fileconf中保存的各个文件的信息,对于mode为PUT 或 PUT_EX的文件进行链接。(7) 禁用session的timeout功能,并通过session.getTerminalReadAuth(true)函数获取终端的读取权限。(8) 获取ftp命令的path构成ftppath字符串。连同其他参数一同压入command容器中。进而通过exec.setCommandLine(command)设置execvp命令执行时的命令行参数。并保存系统当前工作目录到curDir中。(9) 更改本地工作目录为/save目录。(10) 通过exec.doModal() 函数调用Linux系统的execvp() 函数执行ftp 命令。修改后的ftp命令具有文件过滤功能。 (11) 调用系统的 ftp 命令执行完后,放弃terminal 的read 权限。重置计时器,开启timeout 功能。修改工作目录为之前保存的curDir。(12) FTP命令执行完的后续处理。针对isf_fileconf数组中文件的mode 类型,对属性为GET或GET_EX的文件,在/save目录中查找不是符号链接类型的文件,根据条件对他们进行过滤,不满足条件的文件,放弃复制到对应的系统实际目录中。并显示未被复制到系统中的文件列表。(13) 清空/save文件夹。(14) 终止session 处理过程,返回 CMD_SUCCESS。4.1.3 系统流程图图4-1:系统流程图4.2 详细设计4.2.1 本地工作目录在FTP的工作原理中,提到在客户端工作的时候,需要一个本地的工作目录。对文件的上传和下载都是在该目录中进行的。然而,系统中的文件是分布在不同的目录中,所以我们必须新建一个目录作为本地的工作目录,并将所有需要进行操作的文件在该目录中有所体现。直接将这些文件创建一个副本必然会消耗大量的磁盘空间,因此并不合适。庆幸的是,Linux为我们提供了一个可以满足我们需要的文件类型符号链接文件。符号链接又叫软链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。链接文件甚至可以链接不存在的文件,这就产生一般称之为“断链”的现象,链接文件甚至可以循环链接自己。类似于编程语言中的递归。在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身6。因此我们在系统中创建一个名叫“save” 的目录作为FTP客户端的本地工作目录,并根据配置文件逐一创建符号链接文件。即可创建一个虚拟的本地工作目录。而在需要上传和下载的时候,通过与配置文件进行比对即可获取到真实路径。对于下文中提到的GLOB文件,由于配置文件中path一栏给定的是一类文件,我们需要利用字扩展命令来获取完整的文件名。在Linux系统中可以通过wordexp()函数7来完成。文件符号链接的生成则可以通过symlink()函数来完成8。4.2.2 过滤规则文件文件过滤机制是本次定制FTP的主要功能,根据FD文档,我们发现需要进行操作的文件分布在不同的目录中;而且文件类型各不相同。如何设计一种简便而且容易进行增加,删除的过滤规则是最重要的。在Linux系统中,大部分的配置信息都是通过文本文件的形式进行设置的。因此,我们也可以设计一种配置文件作为过滤规则。配置文件格式如图4-2:图4-2:文件过滤规则文件格式此配置文件规定了系统中的文件对用户的可见性;不在此配置文件中的文件,对用户是不可见的。下面就此配置文件格式做详细说明:Path:对应了该文件在系统中对应的路径,使用绝对路径。如果文件名中出现“*”号,则表示该条目对应同一类文件,“*”号的作用与在操作系统中的功能一样。例如“*.cli”指代所有后缀为“cli”的文件。Keyword:表示在使用ls等命令,以及在临时工作目录中,该文件对应的文件名。Flag:表明该过滤条目中对应的文件类型。ALIAS表示此条目对应唯一的一个文件。GLOB表示该条目对应一类文件。Mode:表示在系统中对该条目中的文件可以进行的操作。PUT表示可以向外部服务器上传该文件。GET表示可以从外部服务器获取该文件到本系统。LS表示可以通过LS命令看到该文件。REMOVE表示可以从系统中删除该文件。而GET_EX, PUT_EX, REMOVE_EX则表示在进行对应的操作之前,需要有额外的检查处理。至此,系统中主要难点均以解决,项目进入编码阶段。4.2.3 上传操作流程图图4-3 上传操作流程图4.2.4 下载操作流程图图4-4:下载操作流程图4.3 模块测试4.3.1 命令输入测试启动系统,检查命令的帮助信息是否完整,正确。输入合法的参数,查看命令运行结果是否正确。通过shell debug console打开系统的debug信息,查看命令运行时的debug信息是否正确9。4.3.2 消息检查根据FD文档中的规定,逐一尝试每一种文件,并验证FD文档中的消息是否能够正确反馈给用户。命令输入测试和消息检查都是属于黑盒测试,测试过程中务必做到认真仔细,确认命令的输出和输入与FD文档一致。4.3.3 全路由测试GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。象所有的调试器一样,GDB可以让你调试一个程序,包括让程序在你希望的地方停下,此时你可以查看变量,寄存器,内存及堆栈。更进一步你可以修改变量及内存值。GDB是一个功能很强大的调试器,它可以调试多种语言。在此我们仅涉及C和C+的调试,而不包括其它语言。还有一点要说明的是,GDB是一个调试器,而不像VC一样是一个集成环境10。为了保证系统的严密性,通过命令输入测试和消息检查,我们可以测试大部分的系统分支,但对于某些分支,一般情况下可能无法进入。此时,我们通过抽取工具,将系统中的所有分支抽取出来,通过GDB跑完所有剩余的分支。4.4 系统运行效果图进入命令输入符后,输入tab键两次,即可查看到命令的帮助信息,然后,输入ftp 连接到自己搭建的ftp服务器,效果如图4-5:图4-5:连接FTP服务器输入用户名anonymous,密码为空,即可进入匿名账户。接下来即可通过lls命令查看本地目录中的文件,如图4-6。图4-6: 查看本地文件接下来我们尝试从外部下载startup-config.cli文件时。结果如图4-7:图4-7:下载非法文件只要上传和下载操作不符合过滤规则文件中的定义,操作必将失败,并输出与该操作失败时相符的错误消息。其他情况不再一一列举。4.5 本章小结本章详细介绍了该FTP客户端过滤机制的设置,以及如何解决FTP工作目录的设置。过滤采用过滤规则文件的方式,保证了简易性、易扩展性。利用临时目录,结合Linux系统的链接文件类型,从而实现了临时的工作目录。至此,一个完整的系统已经完成。24网络服务器FTP客户端的设计与实现第五章 总结此次定制FTP客户端模块是网络服务器整个系统中很重要的一个功能,如何设计一种文件过滤机制来保证对系统中文件的操作限制是我们主要的研究内容,结合FTP工作原理和Linux系统的特征,我们最终找到了如下解决方案:1. 采用Linux系统中常见的配置文件,创建符合本系统使用的过滤规则文件,记录文件的路径,文件名,文件类型和文件可进行的操作。从而可以通过增加和删除过滤规则来实现对系统中不同文件的控制,满足最初提出的简便性和易扩展性需求。2. 设置临时目录,通过Linux系统中的链接文件类型,将可供上传的文件在临时目录中建立链接来创建一个临时的工作目录。临时目录也是下载文件的中转站。这样解决了FTP客户端工作时需要工作目录而系统中文件位于不同路径的矛盾。3. 通过命令输入测试、消息检查两项黑盒测试,可以检查基本的命令样式是否满足需求和基本功能是否正常。通过GDB进行全路由测试保证了系统各个分支的正常运行。然而,我们的系统仍然存在不尽如人意的地方,主要问题在于,对于文件的过滤操作,我们不得不采用循环语句对过滤规则文件进行遍历,即便是用户只对一个文件进行了上传和下载操作,此时,系统的效率变得相当低下。因此,如何提高在对少量文件进行操作时系统的运行效率,是以后工作的主要内容和研究方向。此次项目总体上满足了最初的设计要求,保证了网络服务器整个系统的完整性,方便了用户在使用时的需要。今后随着系统升级等影响,对于FTP客户端的功能需求越来越多,我们也将继续进行深入的研究。致谢在我四年的本科生涯中,首先感谢厦门大学软件学院的老师们,你们辛勤的工作保证了我顺利完成人生中关键的四年本科的生活。你们给我们传道解惑,帮我们打好了牢固的理论根基,掌握了学习的方法。感谢我的导师教授在本人本科学习期间的关怀和学习指引,其严谨、认真的治学态度也是我学习的榜样。他的教诲,使我受益匪浅,终生难忘。感谢我的校外导师工程师。在校外实习期间,他总是不厌其烦的帮我指出项目开发过程中的错误。虽然他总是很忙,但是他始终是那么耐心。另外感谢跟我在一个项目组的另外三名实习生,虽然大家来自不同的学校,只相处了短短的三个月时间;但他们是我在实习期间最忠实的朋友,感谢他们对我的帮助。我知道我需要感谢的人实在太多而无法一一列举,但是请相信,我已将大家对我的无私关心和热情帮助铭记在心。参考文献1 富士通网络开发部. IPCOM功能式样书P. 富士通网络开发部.2006.2 森健一. IPCOM X运用管理机能式样书P.富士通网络开发部. 2008-12-11.3 J. Postel. FILE TRANSFER PROTOCOLZ. /html/rfc959. 1985-11.4 刘萍. FTP客户端软件的实现J. 黑龙江科技信息,2008,(3):34-36. 5 Kurose. 计算机网络:自顶向下方法与Internet特色M.北京:机械工业出版社.2005-06-01.6 陈莉君. Linux操作系统原理与应用M. 北京:清华大学出版社. 2006.7 RobertLove. Linux Kernel DevelopmentM. Sams Publishing. 2005-01-12.8 W. Richard Stevens. Advanced Programming in the UNIX EnvironmentM. Addison Wesley. 2005-7-17.9 林晖. WM_110_CLI_SUT项目抽取基本原则Z. 福建富士通. 2004-11-15.10 GNU. GDB DocumentationZ. /software/gdb/documentation/. 2009-03-26.11 Neil Matthew. Beginning Linux ProgrammingM. Wrox. 2007.厦门大学软件学院毕业设计(论文)开题报告学生姓名班级5班学号校外指导教师姓名职称工程师所在单位福建富士通信息软件有限公司校内指导教师姓名职称副教授所在单位厦门大学软件学院毕业设计(论文)题 目网络服务器FTP客户端设计与实现毕业设计(论文)的目标:整体软件目标:基于网络设备,如路由器,交换机以及其他网络安全设备开发CLI系统。即用户在设备终端中输入命令后,进行解析,并通过设备引擎API获取发送相关信息,完成用户指令的操作。实现方法:1. 基本环境 操作系统:Linux开发语言:CC+开发工具:gcc/g+, gdb等硬件环境:路由器和交换机等网络设备。2. 产品概述该系列产品是一套综合网络设备,除了常见网络设备的交换/路由功能,还提供了VPN、IIOP、带宽控制、负载均衡、路由控制、PPPoE、DHCP、DNS、NAT等网络控制功能。在安全上,增加了访问控制、状态检测、攻击防御等防火墙功能。 3. 设备系统框架该系列设备的控制结构如图: Web控制台:可以通过HTTP连接 进入设备配置页面进行配置。实现方式是通过XML接口与CLI系统进行通信。SSH连接:通过Telnet方式连入设备 控制台,进行配置。 Monitor:可以通过该模块对网络设备现行状态进行监控。Engine:集成与设备操作系统中的模块,用来实现对外部调用的响应。4. 系统流程详细介绍系统结构:(0) ISF_Shell(Main Loop)从接受要求Thread接受开设连接(connection)要求, 作成ISF_Session class,并制作Session Control Thread。在制作session之前,进行认证处理。(1) Receive Serial Thread从Serial端口接收接续要求,在ISF_Shell class提出开设session要求。(2) Receive SSH Thread 从SSH接收接续要求后,对ISF_Shell class开设session要求。(3) Receive Web Thread 从Web接收接续要求后,对ISF_Shell class提出开设session要求。(4)Receive WebShell Thread 从Web接收异步request要求后,向ISF_Shell class通知要求。(5) Session Control Thread Session作成后,CLI的时候,作成命令实行用的Session Execute Thread。解析来自terminal以及Web的request后, CLI :依赖给 Session execute Thread来实行命令。WEB:在Session Control Thread内实行命令。(6) Session Execute Thread(只CLI)从Session Control Thread接收命令实行要求后,实行命令。命令实行结束后,等待(wait)下次的命令实行要求。(7) Xmlrequest 是将来自Web consol的数据通知给ISF_Shell后,输出结果的命令。(8) Receive Authentication Thread从认证底部接收session切断通知。通过认证底部管理的session,只进行framework相关的session切断通知。(9) Timer Thread由于在framework内不按照绝对时刻来比较,所以是用相对时刻测定的时刻来测

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论