- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
ftp协议的工作过程
FTP(FileTransferProtocol)协议的工作过程主要分为以下几个阶段:
连接建立阶段
1.客户端与服务器的通信初始化
客户端首先会启动一个FTP客户端程序,该程序会随机选择一个本地端口(通常是1024以上的端口)作为源端口,然后向服务器的FTP控制端口(默认是21)发起TCP连接请求。这个连接用于在客户端和服务器之间传输控制信息,例如用户登录命令、文件操作命令等。
2.TCP三次握手
-客户端向服务器发送SYN包,请求建立连接,其中包含客户端初始的序列号(ISN)。
-服务器收到SYN包后,向客户端发送SYN+ACK包,确认客户端的请求,并包含服务器自己的初始序列号。
-客户端收到SYN+ACK包后,向服务器发送ACK包,完成三次握手,此时控制连接建立成功。
用户认证阶段
1.用户名和密码传输
控制连接建立后,客户端通过控制连接向服务器发送用户名(USER命令)。服务器收到用户名后,会提示客户端发送密码(PASS命令)。客户端接着发送密码,服务器对用户名和密码进行验证。
2.认证结果反馈
如果用户名和密码正确,服务器会返回一个成功的响应码,允许客户端进行后续操作;如果认证失败,服务器会返回相应的错误码,提示客户端认证不通过。
数据传输阶段
1.数据连接建立方式
-主动模式(PORT模式)
-客户端通过控制连接向服务器发送PORT命令,该命令包含客户端用于数据传输的IP地址和端口号(通常是一个1024以上的端口)。
-服务器收到PORT命令后,使用自己的20号端口(默认数据端口)向客户端指定的IP地址和端口发起TCP连接请求。经过TCP三次握手后,数据连接建立。
-被动模式(PASV模式)
-客户端通过控制连接向服务器发送PASV命令,请求服务器进入被动模式。
-服务器收到PASV命令后,会在自己的高端端口(通常是1024以上的端口)监听数据连接,并通过控制连接将该端口号和服务器的IP地址返回给客户端。
-客户端收到服务器的响应后,使用自己的一个随机端口向服务器指定的IP地址和端口发起TCP连接请求,完成数据连接的建立。
2.数据传输操作
数据连接建立后,客户端和服务器可以进行数据传输。例如,客户端执行下载文件操作时,服务器会从存储设备读取文件数据,并通过数据连接发送给客户端;若执行上传文件操作,客户端则将本地文件数据通过数据连接发送给服务器。
3.数据连接关闭
数据传输完成后,无论是上传还是下载操作结束,客户端和服务器会关闭数据连接。通常是一方发送FIN包,另一方响应ACK包,然后另一方再发送FIN包,最后双方都发送ACK包,完成数据连接的四次挥手关闭过程。
会话结束阶段
1.控制连接关闭请求
当客户端完成所有的文件传输操作后,会通过控制连接向服务器发送QUIT命令,表示会话结束。
2.控制连接关闭过程
服务器收到QUIT命令后,会返回一个确认响应,并关闭控制连接。与数据连接关闭类似,也是通过TCP的四次挥手过程,即一方发送FIN包,另一方响应ACK包,然后另一方再发送FIN包,最后双方都发送ACK包,彻底关闭控制连接,整个FTP会话结束。
文档评论(0)