文件传输协议范例6篇

文件传输协议

文件传输协议范文1

关键词:Android LinuxSSH QuickSSHD可行性

中图分类号:TN918.1 文献标识码:A 文章编号:1007-9416(2012)03-0000-00

Android操作系统最初由Andy Rubin领头的开发小组开发,最初主要支持手机。2005年由Google注资收购经过开发改良,逐渐扩展到平板电脑及其他领域上。Android操作系统采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。

SSH为Secure Shell的缩写,由IETF的网络工作小组(Network Working Group)所制定;SSH为建立在应用层和传输层基础上的安全协议。

传统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。而SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。

SSH之另一项优点为其传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP、甚至为PPP提供一个安全的“通道”。有点类似于VPN,但是它在保密方面的能力,远远强于VPN。

SSH协议框架中最主要的部分是三个协议:传输层协议、用户认证协议和连接协议。同时SSH协议框架中还为许多高层的网络安全应用协议提供扩展的支持。

QuickSSHD在智能手机中的使用。

通过下面介绍的一个使用过程,用来证明SSH安全传输协议在Android平台下的可行性,本次实验使用的软硬件及其各版本如下:(1)基于Android2.3.5版本的智能手机一部(已经获得root权限),(2)x86电脑一部;(3)在手机端安装了QuickSSHD的2.0.2(已付费)版本软件;(4)在电脑端安装了FileZilla软件,版本号是3.5.3。

QuickSSHD支持sftp与xterm(命令行终端)方式管理手机,可USB可3G可wifi,我这次使用的软件是FileZilla,因此测试了sftp功能,用的是wifi登录方式进行实验。在图1所示是QuickSSHD软件登录界面。

当你安装好QuickSSHD软件后开始使用,你可以获取一个由软件自动提供给你的IP地址(本次实验中得到的地址是192.168.1.102),且你进入时可以提供密码或者共享Keys的方式进行加密,一般建议采用密码的形式,这个密码是自定义的,也就是在x86电脑端开启软件FileZilla时所需输入的密码,第一次使用后,可以将这个IP地址和密码都设置为常用,以后登录不必每次都输入。

当在Android端设定好命令之后,你可以到x86电脑端设定好软件FileZilla的各项命令,上图显示我本次实验是进行sftp传输的实验,使用的登录名是root,密码就是你在Android端已经输入的密码,最后一个是端口,这个一般是固定的,sftp都是采用的22端口,图2所示是FileZilla软件在Android端和x86计算机端传输文件的界面,其中左图为x86计算机端路径,右图为Android端的/sdcard路径所示。

设置好点击快速连接之后,就会进入图5所示界面,该界面就是一个进行进行sftp方式传输的界面,左半面是x86电脑的磁盘驱动器,右半面你可以选择Android操作系统所属的各个文件夹,因为Linux是特性是利用文件管理系统,因此,你只要管理好了文件,也就是管理好了这个Linux,乃至你的Android系统,由于本次软件所测试的sftp协议在Android上的传输可行性,因此我在右半面选择的是该电子设备所携带的sdcard文件夹。通过测试,通常使用在Linux操作系统中的sftp传输协议完全能够使用在x86电脑和Android系统系统之间。

在本篇文章所述中,虽然只是针对SSH协议的sftp传输方式进行了验证,但是SSH传输协议的优点远不止此,因为是一种相对安全的传输协议方式,SSH协议今后还会在更多的应用区域得到更加广泛的推广,例如需要在公共区域的WIFI上网,虽然利用VPN也可以,但是有的地方封杀VPN,SSH比较安全,当然,还可以利用更改配置文件的方法,更改SSH的默认端口和对登录IP进行限制,进一步的保证利用SSH协议传输数据的安全性。

参考文献

[1] 余永洪.用SSH技术远程管理Linux服务器.《计算机与现代化》,2002.

[2] 孔祥真,徐小龙,邢宏健.Linux操作系统服务器SSH远程管理配置.《网络安全技术与应用》,2011.

[3] 刘平.Android手机访问服务器的一种数据交互方法.《电子设计工程》,2010.

[4] 刘振昌.让SSH远程管理更安全.《中国教育网络》,2011

文件传输协议范文2

关键词:万维网;WWW;HTTP;FTP;Web服务器

WWW(World Wide Web,3W,Web)中文译名为万维网,环球信息网等。是欧洲核物理研究中心(CERN)为全球范围的科学家利用Internet建立在客户机/服务器模型之上,为了方便地进行通信、交流和查询所建立的。Internet采用超文本和超媒体的信息组织方式,将信息的链接扩展到整个Internet上。万维网是一个分布式的超媒体(Hypermedia)系统,它是超文本(Hypertext)系统的扩充,所谓超文本是包含指向其他文档的链接文本,超文本是万维网的基础,在万维网中,主要使用了两个协议,分别是HTTP协议和FTP协议。

1 HTTP协议

超文本传输协议(Hypertext Transfer Protocol,HTTP)提供了访问超文本信息的功能,是万维网与Web服务器之间的通信协议,属于应用层。HTTP协议是用于分布式协作超文本信息系统的、通用的、面向对象的协议。可以用于传输各种超文本页面和数据。

HTTP协议包括以下4个步骤:

第一,建立连接。客户端向服务器发出建立连接HTTP报文的请求,服务端将响应发送回客户端,连接建立。

第二,发送请求。客户端按照HTTP协议通过连接线路向服务端发送请求。

第三,给出应答。服务器按照客户端的要求给出应答,将结果HTML文件返回给客户端。

第四,关闭连接。客户端接到HTTP报文请求后关闭连接。

HTTP协议是基于TCP/IP之上的协议,它不仅保证是否能够正确传输超文本文档,而且还要确定传输文档中的哪一部分,以及哪部分内容首先显示等。通常HTTP报文消息包括客户向服务器的请求报文和服务器向客户的响应报文。这两种类型的报文消息由一个起始行,一个或者多个头域,一个指示结束的空行和消息体组成。HTTP的报文结构包括通用首部、请求首部、响应首部、实体首部和实体主体五个部分。每个头域由,和三部分组成。(注意:域名与大小写无关,可以在域值前添加任何数量的空格符,可将万维网的头域扩展为多行。)

通用域名首部包含请求和响应报文,其中的头域还包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via等。对通用头域的扩展要求通讯双方都支持,如果存在不支持的通用头域,一般将会作为实体处理。

一次HTTP操作其工作过程可分为以下几步:

第一,浏览器分析链接指向页面的URL。

第二,浏览器向DNS请求解析IP地址。

第三,域名系统DNS解析出微软服务器的IP地址。

第四,浏览器与该服务器建立TCP链接。

第五,浏览器发出HTTP请求GET。

第六,服务器通过HTTP响应把文件index.heml发送给浏览器。

第七,TCP连接释放。

第八,浏览器将文件index.heml进行解释,并将Web页显示给用户。

如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,由显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。HTTP采用TCP作为运输层协议,保证了数据的可靠传输,HTTP不需要考虑数据在传输过程中丢失后是怎样重传的,但是HTTP协议本身是无连接的,即通信双方在交换HTTP报文之前不需要先建立HTTP链接。

2 FTP协议

文件传输协议(File Transfer Protocol,FTP)是因特网上使用最广泛的文件传输协议,FTP运行在TCP上采用客户/服务器模型,包括两个组成部分,分别为FTP服务器、FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于服务器上的资源。FTP使用20和21这两个端口,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,数据传输端口就是21。

FTP提供以下功能:

第一,提供不同种类的主机系统之间的传输。

第二,使用户对远程服务器上的文件进行管理。

第三,提供文件共享能力。

另FTP还有两种模式,主动方式Standard(PORT方式),被动方式Passive(PASV方式)。Standard模式下FTP客户端发送PORT命令到服务器。Passive模式下FTP的客户端发送PASV命令到FTP Server。

Port:FTP客户端与服务器的21端口建立控制连接,用来传输控制信息,客户端发送请求,通过控制连接发送给服务器端的控制进程。服务器通过自己的数据连接端口连接至客户端的指定端口并发送数据。

FTP服务器在很多情况下是不支持PASV模式的,因为很多防火墙在设置时,是不允许接受外部发起连接的,因而位于防火墙后或内网的客户端无法穿过防火墙打开FTP服务器的高端端口,故许多内网的客户端不能用PORT模式登陆FTP服务器,造成无法连接。

文件交换协议(File Exchange Protoco,FXP)相当于是FTP的控制器,也可以认为FXP本身其实就是FTP的一个子集,使一个FTP客户端控制两个FTP服务器,在两个服务器之间传送文件。FTP协议的任务是使计算机将文件传送至另一台计算机,它与这两台计算机所处的位置、联接的方式、是否使用相同的计算机操作系统均没有关系。例如,两台计算机通过FTP协议连接,并且能够成功地访问Internet,用户就可以使用FTP命令来传输文件。

其传输方式可分为两大类:ASCII传输和二进制数据传输。

ASCII传输模式:若客户端当时正在拷贝的文件中包含的简单ASCII码,在机器上运行的是不同的操作系统,当文件传输时,FTP协议通常会自动地调整文件的内容以便于将文件“翻译”成另一台计算机存储的文本文件格式,就是我们通常所说的翻译。但是时常会有这样的情况发生,用户正在传输的文件包含的不是文本文件,它们可能是程序、数据库、字处理文件或者压缩文件等信息。那么这时,ASCII传输模式则会消耗大量的时间、资源进行翻译,与我们所希望的相去甚远,于是,出现了第二种传输方式,二进制传输。

参考文献:

[1] 沈红,李爱华.计算机网络(第二版)[M].清华大学出版社,2010.

[2] 谢希仁.计算机网络(第5版)[M].电子工业出版社,2011.

作者简介:周开强(1993―),男,黑龙江庆安人。

文件传输协议范文3

关键词 USB;CAN;BOOTLOADER

中图分类号:TP29 文献标识码:A 文章编号:1671-7597(2013)11-0000-00

1 系统结构

Can-bootloader的实现基于如图1所示系统环境结构。

图1

其中:

USB-CAN转接卡:实现USB总线到CAN总线的协议转换,通过该设备实现BCU的can总线与PC机的数据通信。

下位机板卡:运行bootloader软件,接收S19镜像文件。

PC机(windows):运行上位机程序,向BCU发送S19镜像文件。

2 通信协议

BOOTLOADER通过CAN总线与USB-CAN卡通信,BOOTLOADER通过CAN总线接收从PC机发送过来的S19镜像文件(通过USB-CAN卡)进行BOOTLOADER的flash烧写。

整个通信协议基于文本传输格式的异步文件传输协议,PC机和CAN卡之间以128字节块的形式传输数据,CAN卡与BOOTLOADER之间以8字节的形式传输数据,采用应答传输机制来配合USB高速端的流控,CAN卡将PC机传输过来的数据块以8字节发送,发完一整包(128字节)的数据后以ACK的形式通知PC机可以发送下一包数据。

2.1 上位机与CAN卡通信协议

上位机与CAN卡之间通过USB总线连接,USB-CAN卡被windows识别为普通USB设备,上位机应用程序调用CAN卡的windows驱动程序进行数据读写,数据包长(含包头)最大为128byte。具体实施协议如下所述(USB总线物理层具备CRC校验,所以协议不需对数据进行校验。

2.1.1 协议包数据格式

协议数据包格式如图2所示。

图2

其中包长、包序号、标志皆为1byte,数据为0~125byte。具体含义如下:

包长:指示本包数据长度

包序号:指示本包序列号,第一包序号约定为1,后续序号在0~255间循环。

标志:指示本包数据是否为待传输文件的最后一包,若是起始包将标志置1,最后一包将标志置2,其他置0。

2.1.2 确认包格式

确认包为接收方收到正确的数据后向发送方传输,固定为1byte,值为0x 0x06。#define ACK 0x06。

2.2 CAN卡与BOOTLOADER通信协议

CAN卡与BOOTLOADER之间数据包长固定为8字节。具体实施协议如下所述:

2.2.1 协议数据包格式

(每个数据包含有125字节数据)

协议数据包格式如图3所示。

图3

传输文件用到的基本数据包大小为125字节,若待传输文件的大小不是125字节的整数倍,那么最后一包数据报文的长度不足部分需以CTRLZ填充报文。

2.2.2 协议相关控制字符

(文件以文本格式传送,以下控制字符不占用128个ascii码)

SOH 0x01; EOT 0x04

ACK 0x06; NAK 0x15

CAN 0x18; CTRLZ 0x1A

2.2.3 协议传输概述

传输启动:

协议传输由数据接收方发起,接收方通过向发送方发送NAK报文,发送方收到后进入发送流程。

传输过程:

当发送方接收到接收方发送的第一个NAK后,发送方进入协议的传输过程,进入传输过程后发送方需将待传送数据按照图3所示数据包格式打包,最后将打包的成帧数据包传送。

数据的发送接收采用ACK确认机制,发送方发送一包数据后需等待接收方的确认ACK,收到ACK后发送方才能继续发送数据;若通信的过程中发送方有可能收到NAK或CAN字节的异常处理报文,其中NAK表示接收方请求重发当前报文,CAN字节表示接收方请求停止传输。

结束传输:

如果收发通信双方传输正常,发送方需向接收方发送EOT字节以通知接受方传输正常结束。接受方收到EOT字节之后需回送ACK进行确认。当然在结束传输的过程中接收方也可以发送CAN字节来强制停止传输(发送方收到CAN字节后不需再发EOT确认)。

3 USB-CAN转接卡设计

3.1 USB从设备驱动设计

USB总线中的通信包含以下四种:控制传输、批量传输、中断传输、定时传输等四种。USB设备的枚举过程采用的就是控制传输。从设备枚举成功后,本设计的数据传输方案采用USB规范定义的中断传输和批量传输两种传输方式来传输数据,其中中断传输用于收发控制数据,而批量传输用于传输数据。

其中控制传输是重点和难点,当从设备插入USB集线器时,主机向从设备发送一个获取状态命令请求来验证设备是否激起重启状态。设备现在使用默认地址0x0与主机通信。通信流程如下所述:

1)主机通过默认地址0x0发送USB协议中的获取设备描述符命令以获取控制传输管道的基本参数(最大数据包长等)。

2)主机发送设置地址命令给设备请求分配新的地址,请求成功后设备端保存新地址(此后的通信都通过这个新地址进行通信)。

3)主机通过新地址发送获取设备描述符命令,获取设备描述符的完整信息(如VID、PID等)。

4)主机通过新地址发送获取设备配置命令,获取设备的配置信息。此时主机提示加载新设备驱动程序后,主机发送设置配置命令为设备选择合适的配置参数,配置成功后,设备就可以通过应用软件进行数据传输阶段的通信了。

数据传输阶段较简单,只需对相应的数据端点寄存器进行读写即可完成数据的收发。

3.2 CAN驱动设计

CAN控制器采用SJA1000,SJA1000支持BasicCan和PeliCan两种模式。其中PeliCan模式功能强大、支持多种滤波方式,本设计采用PeliCan模式。上位机通过USB发送应用程序镜像(具体实现见上述通信协议),BOOTLOADER解析协议,完成镜像的烧写,最终能通过USB-CAN卡实现对多点CAN网络进行指定节点的应用程序烧写。

3.3 windows驱动及应用软件设计

USB的windows驱动采用DriverStudio2.6 DDK,启动DDK后选择WDM类型,再选择USB总线类型、并设置好VID和PID,最后设置好各个端点地址、端点传输类型、最大包长等选项后,完成USB驱动的框架,在读写函数中加入驱动的数据处理部分后即可完成驱动的设计(生成inf和sys文件),最终驱动程序读写部分打包为DLL文件以便上位机应用程序调用,应用程序协议处理较简单(参看上述协议部分),最终程序界面如图4所示。

4 CAN-BOOTLOADER设计

4.1 BOOTLOADER结构

BOOTLOADER结构如图5所示。

各区在FLASH中的地址范围如下:

应用程序区+应用程序中断向量表:0x7843ff~0x7f3fff、0x7f83ff~0x7fffff

BOOTLOADER区+BOOTLOADER中断向量表:0x7803ff~0x783fff、0x7f43ff~0x7f7fff

程序复位首先进入bootloader,进入后由bootloader管理中断向量表,将应用程序中单片机的默认中断向量整体映射到bootloader中断向量表中,进入应用程序后bootloader交出管理权由应用程序管理使用单片机默认的中断向量表。

4.2 程序结构及处理流程

Bootloader处理的镜像文件格式采用S19格式,S19的文件格式解析是完成烧写的重要组成部分,S19文件是摩托罗拉公司为便于对可执行镜像文件便于烧写而提出的一种文件格式。其中开发的重心集中在烧写APP命令的处理,Bootloader接收到编程命令后,进入CAN通信自定义协议接收流程,bootloader收到128字节块存入缓冲区后根据图中所示状态机解析出S19文件的完整一行数据,将该行烧入FLASH;烧写成功后继续协议的下一个128字节块的数据接收;当收到S19文件的最后一行时完成对整个S19文件烧写处理流程,协议接收到128字节数据后的流程处理如图7所示。

5 结束语

本文基思卡尔MC9S12系列开发的bootloader,实现了单片机bootloader所需的大部分功能,且软件模块划分合理、设计思路清晰;同时串口通信协议采用标准的xmodem协议,具备一定的通用性,对其它架构的单片机或处理器设计开发bootloader亦有一定的参考价值。

参考文献

[1]MC9S12XEP100 Reference Manual CoversMC9S12XEFamily.

[2]邵贝贝.嵌入式系统中的双核技术[M].北京:北京航空航天大学出版社,2008.

作者简介

万礼华(1974-),男,汉族,重庆市沙坪坝区人,高级工程师,硕士,研究方向:轨道交通闸机通行控制算法,汽车电子控制器,短波自适应通数字电台,综合交换调度设备等。

文件传输协议范文4

流式传输的功能是对连续的声音和图像信息进行打包处理,然后传到网站服务器,供用户进行下载,其中用户可在多媒体文件下载结束前,进行播放多媒体文件。其主要原理是开始下载的部分内容会被缓冲在某一存储区域中,如果网络传输速度跟不上客户机播放时所需要的转换速度,此时音视频播放器会自动的将存储区域中的缓存部分文件进行调配,保证用户播放多媒体文件的连续性,也可保持良好的播放效果。流媒体不仅改进了互联网只表现静态文字和图片的缺点,还可以展示直观、灵活的视频课堂,以及可对大量的并发点播请求作做式处理,这一优势可在大规模点播环境中得到很好的应用。本系统中建立了流媒体教学视频播放系统。其中,流媒体资源配置系统主要由流媒体服务器、媒体编码压缩工具包、客户端播放器、传输网和流媒体传输协议这六部分构成。其中媒体编码压缩工具包主要是在创建、捕捉和编辑多媒体数据时进行启用,以获取流媒体数据格式;客户端播放器,主要是对流媒体文件中的相关内容进行播放和浏览,以实现学习的目的;传输协议包括RTP、RSVP等。采用流媒体技术之后,系统达到了以下目的:

1)数据压缩比高。流媒体所利用的压缩方式,将流信息添加到文件,这一处理不但可以提高数据压缩比,还可以把动画、音/视频等多媒体文件打包成若干个压缩包,以便客户端能够实时连续地接收来自服务器的压缩包。

2)可节省客户端的缓存及硬盘空间。流媒体技术的应用,用户可以在多媒体文件下载的同时,在客户端计算机进行多媒体的播放和观看,其中下载的内容只是暂存在缓存区,播放后即可进行释放,这样可以节省客户端的缓存及硬盘空间。

3)缩短了延时等待的时间。大大的提高了系统运行的效率,减少了视频缓冲时间,使得网络视频教学播放的更为流畅。

4)采用了与以往不同的传输。流媒体技术应用一种实时传输协议,这一协议较好的解决流媒体数据传输问题,可以使媒体数据在网上快速有效的传输。针对.rm,.avi,.flv,.swf等格式的动画视频提供在线播放功能,能自动识别视频格式,选择对应的网页播放器,在带宽不足的情况下,能够实现同时在线的人数控制。相对于传统的下载后播放大幅度,流式传输减少了启动延时,且由于所有内容都被下载到缓存中,使得所需空间大大减少。目前,流式传输主要依靠以下两种方式实现:一是实时流式传输(RealtimeStreaming),二是顺序流式传输(ProgressiveStreaming)。如视频为实时广播,可以使用流式传输媒体服务器或者使用RTSP这样的专门设计的实时协议,如果使用HTTP传输,文件则是顺序流传输。

1)顺序流式传输顺序流式传输指的是顺序下载媒体文件,用户只能观看已下载部分却不能跳至未下载部分,由于HTTP协议本身存在限制,该传输方式亦不能根据带宽情况在传输期间进行调整。通常情况下,HTTP服务器可发送此类文件形式,所以该方式也称作HTTP流传输。

2)实时流式传输实时流式传输不同于顺序流式传输,它采用专门的流媒体服务器及传输协议,实时流媒体支持随机访问,可对观看内容快进和后退。特定流媒体服务器在实时流式传输中是必要的,如DarwinStreamingServer、HelixServer与WindowsMediaServer。这些服务器允许更多级别的控制媒体发送。特殊网络协议在实时流式传输中也是必要的,如:RTSP(RealtimeStreamingProtocol)或MMS。

2结语

文件传输协议范文5

关键词:TCP/IP协议 文件传输协议FTP Windows Sockets 套接口

中图分类号:TP319 文献标识码:A 文章编号:1007-9416(2013)06-0105-01

1 引言

TCP/IP协议栈应用层是超越网络通信机制限制的一层。在TCP/IP协议栈中有三大基本协议之一文件传输协议FTP使Internet上任何异构型主机或操作系统之间都能实现相互间的文件传输。它有自己一套独立的命令(或称子命令),独立于各种主机本身的操作系统,是任何用户都可以使用的网络通用命令。研究和开发在Windows下的网络编程技术具有普遍的应用价值。[1]

2 Windows Sockets和FTP应用协议

2.1 Windows Sockets

TCP/IP协议核心作用是对物理网络(物理层和数据链路层)在传输层/网络层建立统一虚拟“逻辑网络”,屏蔽所有物理网络硬件差异,以实现普遍的“连通性”。[2]TCP/IP应用中,最普遍使用的是Windows Sockets API编程接口。应用程序调用Windows Sockets的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。任何能够与Windows Sockets兼容实现协同工作的应用程序就被认为是具有Windows Sockets接口。

2.2 基于TCP/IP的FTP应用协议

文件传输协议(FTP)提供文件传输服务,以使在客户和服务器之间拷贝文件,并提供附加的服务以方便文件传输过程。

FTP是基于字符的客户接口,同时使用两个不同TCP连接。“分配号”RFC(评议征求)为FTP分配两个公认端口号。[3]当FTP服务器模块装入TCP/IP系统时,程序打开端口21,使服务器在此监听。FTP客户呼叫服务器时,它和端口21建立一个在整个FTP任务过程中都活跃存在的连接。通过该连接,客户被服务器认证,发控制以后所有活动的命令。当客户发命令给服务器请求文件传输时(列目录被认为是一个ASCII文件传输),使用端口号20的第二个连接被打开,当传输结束时此连接被关闭。FTP客户和服务器在控制连接上的通信是通过用户协议解释器(客户程序中)和服务器协议解释器间交换命令进行,FTP客户发给服务器的每一个命令必须有至少一个来自服务器的应答。应答由一个三个数字的编码和一个文本字符串组成。文本字符串显示给用户看,编码由客户程序解释以决定下一步动作。

2.3 套接口

套接口存在于通讯域中,是通讯的基石,一个正在被使用的套接口都有它的类型和与其相关的进程。套接口通常和同一个域中的套接换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序)。用户目前可以使用两种套接口,即流套接口和数据报套接口。流套接口提供了双向的,有序的,无重复并且无记录边界的数据流服务。数据报套接口支持双向的数据流,但并不保证是可靠,有序,无重复的。[4]

3 面向连接的FTP编程应用

4 结语

本文主要论述了使用Windows Sockets开发FTP应用的研究与实现。FTP是TCP/IP上一个非常典型应用。采用流套接口,实现了接收不同长度数据流。并且有较完善的错误处理机制,能给出网络错误的消息描述。随着Internet的不断发展和Windows平台的普及,基于Winsock接口这样的网络编程也会显得越发重要。

参考文献

[1]胡道元.计算机局域网[M].清华大学出版社,1990.9.

[2][美]Craig Zacker著,TCP/IP网络管理[M].中国水利水电出版社,1998.8.

文件传输协议范文6

关键词:客户端;服务器;文件传输协议;数据传输

中图分类号: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读写来实现。