Linux平台下FTP客户端的设计思路

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:hailongsky
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要;近年来,互联网在全球范围内的发展和普及,人们得以更方便地共享网络资源。FTP(File Transfer Protocol,文件传输协议)是支持网络中文件传输的标准协议。本文首先分析FTP,介绍了FTP工作原理。在此基础上,利用C语言进行一个简单的设计思路。
  关键词:客户端;服务器;文件传输协议;数据传输
  中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)07-0043-02
  互联网在全球范围内的发展和普及,方便更快捷的共享网络资源,由此可见,开发Linux平台下的Mini FTP客户端具有重要的现实意义
  1FTP总体分析
  文件传输协议(File Transfer Protocol,英文简写FTP)是支持网络中文件传输的标准协议。它属于网络协议组的应用层。FTP服务使用的是C/S模式,即FTP服务器和客户端的通信实际是点对点的通信。
  FTP服务模型如图1。
  注意:在整個FTP过程中数据连接是双向的,而且数据连接无需在整个时间存在。
  在FTP过程中,各模块之间互相交互,共同实现FTP服务。它们在此期间充当的角色如下:
  PI:协议解释器。用户、服务器分别关联着任务user-PI、server-PI。
  服务器-PI:服务器协议解释器从端口L处“监听”,确认有无user-PI连接,形成控制通信连接。基于user-PI获得FTP指令,随后给予回应,对server-DTP进行控制。
  用户-PI:用户协议解释器对其U端口至server-FTP过程进行管理,若此过程属于文件传输的一个组成,可以初始化FTP指令,接着控制user-DTP。
  DTP:数据传输过程,与管理数据相连,存在主动、被动两种形式。
  服务器-DTP;数据传输过程,通常表现为“主动”状态,形成具备“监听”端口的数据连接。考虑到传输与存储设置参数问题,应当由PI经指令传输数据。DTP处于“被动”状态时,接收信息,相比直接相连数据端口,作用更加理想。
  用户-DTP:主要负责server-FTP过程的数据连接,传输时监控数据端口。若服务器间进行数据传输,那么user-DTP随之结束。
  服务器-FTP过程:可以与user-FTP过程,或相关服务器协作,实现文件传输功能的过程,包含大量处理构建的集合,其核心部分是协议解释器(PI)与数据传输过程(DTP)。
  用户-FTP过程;可以和1个及以上server-FTP过程协作,实现文件传输功能的集合。主要由但部分构成,分别是协议解释器、数据传输过程、用户界面。而对于用户界面,能够依靠本地语言呈现回应的对话。
  FTP指令;FTP指令分为三类,访问控制指令,传输参数指令,FTP服务指令。访问控制指令指定访问控制标识符。各个数据传输参数均存在缺省值,只有通过缺省值的控制,才可以通过相关指令明确传输参数。FTP服务指令表示用户要求的文件传输与系统。
  FTP回应:可以使数据传输请求、过程始终一致,也可以是用户进程直观确认服务器运行情况。
  每个FTP回应均由3个数字以及相关文本组成。前者可以对下一步即将出现的状态进行确认,而后者能够主要呈现给真实用户。
  回应码首个数字包含以下5个值。
  1yz确认预备应答。及请求的操作处于初始化状态,后续指令处理前接受其他应答。
  2yz确认完成回应。该操作执行完毕,能够重新进行请求。
  3yz确认中间回应。获得质量,而操作遭到中止,此时可以获取其他信息。
  4yz暂拒完成回应。指令尚未接受,操作也未执行,然而错误条件呈现出暂时状态,能够接着请求。
  5yz拒绝完成应答。指令尚未接受,操作也未执行。
  以下代表第二个数字相关的功能编码。
  x0z语法——主要确认语法中的错误并给予标记。指令输入正常,但不具備相应功能;无用、没有执行的指令。
  x1z信息——主要确认请求信息,包含状态、帮助等信息。
  x2z连接——主要确认控制、数据连接状态。
  x3z认证与帐户——主要确认登录操作与账户程序。
  x4z保存。
  x5z文件系统——主要确认服务器文件系统状态,和请求的传输、部分文件系统操作存在联系。
  第三个数字在前者的基础上对功能类别进行了更全面的描述。
  在整个FTP过程模型中,用户-PI首先按照Telnet协议控制连接。用户初始化期间,能够借助用户-PI生成有效的FTP指令,同时依靠控制连接发送至服务器过程。标准回应同样可以借此由服务器-PI传输至用户-PI。FTP指令能够给数据连接、文件系统操作(存储,下载等等)设置参数(数据端口、结构等)。用户-DTP必须通过特定数据端口进行“监听”,服务器原始数据连接,依靠合适的参数确保传输过程始终同步。在此强调一点,数据端口、初始化FTP指令需要的主机可以存在区别,然而,用户-FTP过程应当通过特定数据端口进行“监听”。同时,数据连接不仅包括传输,而且包含接收。
  2FTP总体设计思路
  基于上面对FTP协议模型的分析,设计程序流程、用户交互接口以及控制连接和数据连接的管理。
  2.1用户FTP流程
  整个程序流程图如图2。
  2.2用户接口设计
  用户接口主要是用来实现用户和程序的通信。本系统向用户提供的命令接口有:
  2.3用户-Pl设计
  在系统中,用户-PI的作用是将用户输入的指令进行解析,然后将指令翻译成标准的FTP指令通过控制连接发送给FTP服务器。在本系统中通过定义一个cmd结构体数组cmd_tab[],列出了用户PI所能解析的命令。它将用户的命令cmd_name转化为cmd_handler处理函数。控制连接访问在本系统中是通过访问创建的socket套接字ftp_sock_fd来实现。
  2.4用户-DTP设计
  在系统中,用户-DTP负责在客户端和服务器进行数据传输,系统中通过函数initconn()和dataconn()创建数据连接,数据连接的套接字用变量data表示。而数据传输则通过函数ftp_send_and_resv()对套接字data读写来实现。
  3结束语
  本论文分析了当前网络的发展状况,对FTP协议进行分析,在FTP工作原理上,简单的概括了开发Linux平台下的FTP客户端的设计思路。
其他文献
目前移动端上网逐渐取代了电脑上网,移动端随时随地购物、社交、搜索信息,体现了移动网络的便捷性。该文提出一种用移动客户端改善传统线下商家经营的"地图超市"APP,其特点是商家方便上传货品和价格,客户搜索需要的商品及其价格,并且对1-2km内所有商家的该商品价格进行比对,方便客户快速就近找到理想价位的所需商品,完成线上遴选、线下实体店消费的移动互联网新购物体验。
通过DISM和3个新的PowerShell cmdlet。Windows Server 2008 R2对服务器的配置过程进行了一些改变。今天我们将介绍如何利用这些cmdlet。
AppLocker允许Windows管理员提供应用程序访问控制。以限制哪些应用程序可以在他们域中的工作站和服务器上运行。
当我需要知道为什么磁盘空间就快被用完时,仅仅靠使用Windows自带的搜索功能按文件大小查找往往并不能得到我所期望的结果。我确实能通过这种办法找出磁盘上占用空间最大的那
高玉忠:艺名沙布支(玉米酒)云南彝族撒尼人,1999年考入石林风景区艺术团为舞蹈演员,2008年转为歌唱演员;2009-2012年担任石林风情艺术团团长;现为非物质文化遗产(大三弦)传承人。2014
部署镜像服务与管理(DISM)工具为你带来全新的角色与功能的控制方式,但它也存在一些缺点。
探讨在公共卫生安全领域引入惩罚性赔偿制度。结合我国公共卫生安全领域当前存在的相关问题,深入分析惩罚性赔偿制度及其构成要件、计算方法。在各种危及公众生命健康安全的事
Windows Server2008R2引入了对DNSSEC的支持,它允许使用密钥来确保DNS数据的完整性和来源正确。Trust Anchors区域存储预配置的公共密钥,这些密钥与某个特定区域有关。在DNSMMC
目的探讨药师在药物不良反应监测工作中的作用。方法临床药师通过详细询问患者病史,关注药品相互作用和各种特殊生理病理状况,及时发现和处理药品不良反应。结果与结论临床药
从Windows 2000 Server开始推出的微软的加密文件系统(EFS)已经经历了多年的改善,但对于通过组策略进行集中管理和控制仍然只提供了有限的开箱即用支持。在Windows Vista和Windo