作家
登录

FTP文件传输协议浅述

作者: 来源: 2012-06-23 19:30:15 阅读 我要评论

相信没有比FTP文件传输协议更为基础的协议了。那么对于这种协议,想必大家也多少有所接触。那么很多服务器和站点的建设都将用到它,如果你还不清楚它的细节,那就来看看文章吧。

1. FTP文件传输协议概述

FTP是文件传输协议(File Transfer Protocol )的简称。FTP是TCP IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,FTP连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。

FTP工作模式与客户/服务器模式相似。与大多数的其他TCP应用不相同的是,FTP在客户与服务器之间使用两个TCP连接――控制连接和数据连接,控制连接在客户与服务器交互的整个过程中一直存在,而数据连接只在有文件或目录传输的时候才被创建,用完了后就被关闭了。控制连接用于发送指令给服务器以及等待服务器响应;数据连接是用来建立数据传输通道的。

2.FTP文件传输协议的Port模式

根据是使用Port模式还是Passive模式,FTP使用不同的TCP端口号。

 FTP Port模式

Port模式的FTP文件传输协议步骤如下:

1、 客户端发送一个TCPSYN(TCP同步)包给服务器段众所周知的FTP控制端口21,客户端使用暂时的端口作为它的源端口;

2、 服务器端发送SYN ACK(同步确认)包给客户端,源端口为21,目的端口为客户端上使用的暂时端口;

3、 客户端发送一个ACK(确认)包;客户端使用这个连接来发送FTP文件传输协议命令,服务器端使用这个连接来发送FTP应答;

4、 当用户请求一个列表(List)请求或者发起一个要求发送或者接受文件的请求,客户端软件使用PORT命令,这个命令包含了一个暂时的端口,客户端希望服 务器在打开一个数据连接时候使用这个暂时端口;PORT命令也包含了一个IP地址,这个IP地址通常是客户自己的IP地址,而且FTP也支持第三方 (third-party)模式,第三方模式是客户端告诉服务器端打开与另台主机的连接;

5、 服务器端发送一个SYN包给客户端的暂时端口,源端口为20,暂时端口为客户端在PORT命令中发送给服务器端的暂时端口号;

6、 客户端以源端口为暂时端口,目的端口为20发送一个SYN ACK包;

7、 服务器端发送一个ACK包;

8、 发送数据的主机以这个连接来发送数据,数据以TCP段(注:segment,第4层的PDU)形式发送(一些命令,如STOR表示客户端要发送数据,RETR表示服务器端发送数据),这些TCP段都需要对方进行ACK确认(注:因为TCP协议是一个面向连接的协议);

9、 当数据传输完成以后,发送数据的主机以一个FIN命令来结束数据连接,这个FIN命令需要另一台主机以ACK确认,另一台主机也发送一个FIN命令,这个FIN命令同样需要发送数据的主机以ACK确认;

10、 FTP文件传输协议中规定,客户端结束后,客户端以FIN命令来关闭一个控制连接,服务器端以ACK包来确认客户端的FIN,服务器同样也发送它的FIN,客户端用ACK来确认。


  推荐阅读

  NAT-PT完成IPv4与IPv6协议的结合

IPv4与IPv6协议的相互融合使用,是我们现在所期盼的结果。那么现在已经有了多种手段实现这个目的。那么现在再来介绍一种比较特别的方式——NAT-PT的通信过程。(1)从IPv4与IPv6协议的通信当IPv4主机B初次与>>>详细阅读


本文标题:FTP文件传输协议浅述

地址:http://www.17bianji.com/xieyi/7541.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)