网站首页  词典首页

请输入您要查询的论文:

 

标题 Linux平台下FTP客户端的设计思路
范文

    冯媛媛 刘建科

    

    

    

    摘要;近年来,互联网在全球范围内的发展和普及,人们得以更方便地共享网络资源。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下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/22 23:21:57