当前位置:首页 > 芯闻号 > 充电吧
[导读]FTP文件传输协议:一、简述:1、TCP/IP协议簇,应用层协议,采用服务端与客户端通信方式共享文件。2、FTP根目录:/            (如路径: /hello/)  3、现在的FTP一般用

FTP文件传输协议:


一、简述:

1、TCP/IP协议簇,应用层协议,采用服务端与客户端通信方式共享文件。

2、FTP根目录:/            (如路径: /hello/)  

3、现在的FTP一般用Serv-U搭建,IIS搭建的FTP服务端与Serv-U搭建的服务端返回的响应信息格式不一样,可能会导致解析出错。

4、服务端监听端口:

1)端口20:传输套接字(仅用于传输文件,每传输完毕一次,就关闭一次连接)

2)端口21:控制套接字(对话,传输控制,获取信息,持久连接)


二、FTP缺点:

1、明文登录.
2、FTP客户端程序因使用>1024端口接收大数据,容易被防火墙过滤.

  (被动模式解决,被动模式的概念在下面)

3、运行FTP服务端程序的机器可能在连接目标监听随机端口被防火墙提示.
4、FTP在传输数量多的小文件性能不好.


三、匿名登录:

1、为了实现文件在互联网上传输的开放性,服务端管理员可以建立一个特殊的用户ID,
   提供给互联网上的用户下载和上传文件,这就是匿名用户,它不需要密码.

2、常用的匿名登录名称:anonymous


主动模式与被动模式的概念:(建立文件传输连接的两种不同方式而已)

一、主动模式:

1、客户端创建一个监听套接字,监听端口>1024,控制套接字发送PORT命令附带IP地址以及端口(特殊格式)到服务端.
2、服务端收到PORT命令,服务端的20端口连接到客户端,建立文件传输通信.

二、被动模式:

1、客户端发送PASV命令,服务端收到后,会创建一个在>1024端口的监听套接字,然后回复一串IP地址以及端口号(特殊格式).
2、通过回复的信息,连接到服务端的文件传输套接字上进行通信.


三、两种模式下的IP地址以及端口号的特殊表示形式:(须知)

1、PORT与PASV命令表示IP和端口的特殊格式:(PORT与PASV命令使用方式在下面)

举例:    IP地址:192.168.1.120      端口:4500
表示格式:192,168,1,120,17,148

解释:
1、注意是逗号.
2、前4个字段表示IP地址,即192,168,1,120,没有变
3、17,148字段:相当于(17 乘 256) + 148 =  4500端口

总结:
1、使用的是逗号
2、前四字段为IP地址,第五字段 ×  256 + 第六字段 = 端口号.

3、由于建立文件传输套接字连接时,会发送一个IP地址以及端口号(被动模式),说明控制连接与文件传输连接有可能不在同一台机器上,这是由发送参数推断出来的,并未测试过.

为什么会有两种文件传输连接模式:

1、因为防火墙的存在,导致使用FTP协议的一方可能被防火墙过滤一些东西.
   主动模式:客户端的>1024端口可能被过滤.

   被动模式:服务端的>1024端口可能被过滤.

通常都是使用被动方式进行FTP连接。


编写FTP客户端:

一、编写步骤:

1、控制套接字连接服务端的21端口,使用USER 、PASS 登录.
2、利用控制套接字获取感兴趣信息,文件套接字在传输文件时才连接服务端.

3、QUIT 退出.


二、上传文件:

1、文件套接字连接,可以设置一些杂项(如传输类型),一般默认就行.
2、发送STOR命令,接收一个服务端的响应码.
3、开始在文件套接字使用send函数将文件数据上传上去.
4、文件套接字send执行完毕后,不用管,直接closesocket文件套接字.
5、控制套接字用recv函数等待服务端发出接收完成信号即可.


三、下载文件:

1、文件套接字连接,可以设置一些杂项(如传输类型),一般默认就行.
2、发送RETR命令,意思让服务端把指定的文件的数据,send过来文件套接字,之后接收一个服务端的响应码(一般为226发送完毕信号,要等待这个信号来到为止).
3、226发送完毕信号到来,就可以让文件套接字recv函数来接收到来的数据了.


四、需要注意:

1、文本模式:传输文本文件时使用,一般在使用REST命令断点续传时,不能指定为文本模式.
2、二进制模式:通用


常用命令:(每执行一次命令后,服务端会给与回复)

一、登录类:


USER 账号rn登录账号PASS 密码rn登录密码REINrn想重新登录,连接不会关闭,下一条命令USER可重新连接QUITrn退出

二、建立文件传输套接字通信类:


PASVrn被动模式,服务端会回复一个IP地址和端口,然后你再连接.(一般使用被动模式)PORT 表示IP端口的特殊格式rn主动模式,让服务端主动来连接你的文件监听套接字
三、操作文件类:


STOR 文件名rn上传文件APPE 文件名rn上传文件,如果文件名已存在,把数据插入尾部DELE 文件名rn删除指定文件REST 字节个数rn跳过字节数,短点续传,下载文件前使用,使RETR命令仅下载偏移后的部分RETR 文件名rn下载文件ABORrn放弃传输一个文件,将关闭文件套接字通信
注意:REST命令一般不能在文本模式来使用.一般在二进制模式下使用(I),经测试,不能在上传时使用(不确定,可以自己去试试).

四、目录操作类:


CWD 目录名rn改变当前目录到指定目录CDUPrn返回上一次目录,当到根目录时,不变LISTrn显示当前目录下的文件,包括长度,文件类型(如目录)与权限(表示类型:drwxr-xr-x)LIST 目录名rn显示指定目录下的文件,包括长度,文件类型(如目录)与权限(表示类型:drwxr-xr-x)MKD 目录名rn创建一个目录PWDrn显示当前目录的路径RMD 目录名rn删除目录RNFR 文件或目录名rn将某文件或目录重命名,接下来要使用RNTO指定新名称RNTO 文件或目录名rn重命名为....NLSTrn仅显示当前目录下的文件,以rn表示下一个NLST 目录rn仅显示指定目录下的文件,以rn表示下一个
五、模式与类型:


TYPE 字符rn选择传输类型
A为文本模式
I为二进制模式
E为EBCDIC
N为Nonprint非打印模式
T为Telnet格式控制符六、参数信息:


SYSTrn获取服务端系统信息(NT或Unix)STAT 文件或文件夹rn获取相关信息七、其他不常用的命令:


ACCT 用户帐号rn发送PASS命令并接收到332代码之后才应发送SMNT 另一个文件数据系统的路径rn允许用户装配另一个文件系统的数据结构而无需改变登录MODE 字符rn指定传输类型:默认为流模式(S为流)(B为块)(C为经过压缩)STRU 字符rn指定结构类型:F为文件结构(默认值,就是流式传输)ALLO 逻辑字节数rn上传文件前,使用此命令申请内存(本人还没见到需要的,都是直接上传)NOOP测试通信HELP帮助,会列出有效命令

FTP服务端的响应码:


150文件状态良好,打开数据连接200命令成功212目录状态213文件状态110重新启动标记应答500格式错误,命令不可识别501参数语法错误502命令未实现120在X分钟内准备好125连接打开准备传送214帮助信息,信息仅对人类用户有用215名字系统类型220对新用户服务准备好221服务关闭控制连接,可以退出登录202命令未实现211系统状态或系统帮助响应225数据连接打开,无传输正在进行226关闭数据连接,请求的文件操作成功227进入被动模式230用户登录331用户名正确,需要口令332登录时需要帐户信息350请求的文件操作需要进一步命令421连接用户过多425不能打开数据连接426关闭连接,中止传输450请求的文件操作未执行451中止请求的操作:有本地错误452未执行请求的操作:系统存储空间不足250请求的文件操作完成257创建"PATHNAME"503命令顺序错误504此参数下的命令功能未实现530账号或密码错误532存储文件需要帐户信息550未执行请求的操作551请求操作中止:页类型未知552请求的文件操作中止,存储分配溢出553未执行请求的操作:文件名不合法

关于与Serv-U搭建FTP服务器通信返回的文件格式:

举例:发送LIST命令到服务端,返回一个文件列表,每一个文件最前面带有:drwxr-xr-x
(这应该是Linux下用户权限与文件类型的表达方式)
(我对Linux不熟,所以一开始我还以为是什么加密的数据,其实他代表用户权限与文件类型)

drwxr-xr-x    10个域   Linux下表示用户拥有的权限
顺序:从左到右
第1位(文件类型):d(目录文件)、l(链接文件),-(普通文件),p(管道)
第2-4位(权限):r(读)、w(写)、x(可执行)
第5-7位(此文件属主的用户组权限)
第8-10位(其他用户所具有的权限)

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭