![f76d63ceeed50dbfa85431a2e3b56cb0.png](https://i-blog.csdnimg.cn/blog_migrate/60413fda7db69a92bf5a3867dbbb4193.jpeg)
TP是基于TCP/IP协议的文件传输协议,位于TCP/IP的应用层,是Internet中使用最广泛的文件传输协议。FTP保证客户端和服务器端之间的连接是可靠的、面向连接的,为数据的传输提供了可靠的保证。
![ec4995ed64f52c31bbbab7553d79a187.png](https://i-blog.csdnimg.cn/blog_migrate/a4724370aaed98ef8aaf0da74de7ded3.jpeg)
FTP
FTP使用客户端-服务器模型,一个FTP服务器进程可以为多个客户进程提供服务。FTP服务器有两大部分组成:一个主进程,负责接受新的请求;还有若干从属进程,负责处理单个请求。
主进程工作步骤:
1)打开熟知端口(21),使客户进程能够连接上
2)等待客户进程发送连接请求
3)启动从属进程处理客户进程发送的连接请求,从属进程处理完请求后结束
4)从属进程在运行期间可能根据需要可创建其他一些子进程
5)回到等待状态,继续接受其他客户进程发起的请求,主进程与从属进程的处理是并发进行的
![2507d595fdd1cff5cd17e6d27d88eae6.png](https://i-blog.csdnimg.cn/blog_migrate/3d9a9bad7b2adee81c78861e86a97aad.jpeg)
等待状态
经典问题:文件传输结束如何判断?
通用传输方式是流方式,并且文件的结尾是以关闭数据连接为标志,这意味着对每一个文件传输或目录列表来说都要建立一个全新的数据连接。其一般过程如下:
1)正由于是客户发出命令要求建立数据连接,所以数据连接是在客户的控制下建立的。
2)客户通常在客户端主机上为所在数据连接端选择一个临时端口号。客户从该端口发布一个被动的打开。
3)客户使用PORT命令从控制连接上把端口号发向服务器。
4)服务器在控制连接上接收端口号,并向客户端主机上的端口发布一个主动的打开。服务器的数据连接端一直使用端口20。
图27- 4给出了第 3步执行时的连接状态。假设客户用于控制连接的临时端口是1173,客户用于数据连接的临时端口是1174。客户发出的命令是PORT命令,其参数是6个ASCII中的十进制数字,它们之间由逗点隔开。前面 4个数字指明客户上的IP地址,服务器将向它发出主动打开(本例中是 140.252.13.34),而后两位指明16 bit端口地址。由于16 bit端口地址是从这两个数字中得来,所以其值在本例中就是 4×256+150=1174。
图27-5给出了服务器向客户所在数据连接端发布主动打开时的连接状态。服务器的端点是端口20。
![e54fb2e5712df1bc27641322396edf21.png](https://i-blog.csdnimg.cn/blog_migrate/41bea78a6c5b3a179347634e88070216.jpeg)
连接状态
服务器总是执行数据连接的主动打开。通常服务器也执行数据连接的主动关闭,除非当客户向服务器发送流形式的文件时,需要客户来关闭连接(它给服务器一个文件结束的通知)。
FTP传输方式是什么?
一般而言,FTP传输方式有两种:ASCII与二进制。
ASCII传输方式:当用户传输的文件包含简单ASCII文本或可能是程序、数据库、字处理文件或者压缩文件等,在拷贝任何非文本文件之前,用binary 命令告诉FTP逐字拷贝。
二进制传输方式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。
FTP传输方式命令是什么?
FTP使得主机间可以共享文件。FTP 使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。控制连接使用类似 TELNET 协议在主机间交换命令和消息。
关于FTP传输方式的命令如下图所示。
![2f2b4fb7074087c7d08d57e0aea24268.png](https://i-blog.csdnimg.cn/blog_migrate/d1b5264a712a10e7b80669100f10fde5.jpeg)
FTP传输方式的命令
转载链接:FTP文件传输协议经典问题:文件传输结束如何判断 - 知识库 - 新睿云