扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
2010年7月6日
关键字: 网络
相信没有比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来确认?
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者