共计 1748 个字符,预计需要花费 5 分钟才能阅读完成。
FTP 工作原理是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
FTP 工作原理
文件传输协议:File Transfer Protocol 早期的三个应用级协议之一,基于 C / S 结构 数据传输格式:二进制(默认)和文本 双通道协议:命令和数据连接
两种模式:从服务器角度
主动 (PORT style):服务器主动连接 命令(控制):客户端:随机 port — 服务器:21/tcp 数据:客户端:随机 port —服务器:20/tcp
被动 (PASV style):客户端主动连接 命令(控制):客户端:随机 port — 服务器:21/tcp 数据:客户端:随机 port — 服务器:随机 port /tcp
基于 C / S 结构有专门的客户端和专门的服务端
双通道协议:命令通道和数据通道(所谓双通道就是 FTP 支持两个端口)
命令通道:走 TCP 的 21 端口,用来传输指令的。
数据通道:用来传输数据的
命令通道永远是客户端主动向服务端发起请求:命令通道永远走的是 TCP/21 端口
数据通道走的是两个端口,通过工作模式来确定走的端口:
主动模式(post)为 TCP 的 20 端口。
被动模式走的是随机端口,所谓主动和被动都是以服务器的角色来看。
主动模式(post):服务器端主动连接客户端
被动模式(pasv):客户端主动连接服务器端(会通过命令通道相互交换信息,客户端就会知道服务端的随机端口号)
范例:服务器被动模式数据端口 227 Entering Passive Mode (172,16,0,1,224,59) 服务器数据端口为:224*256+59
FTP 双通道工作原理解析
FTP 是一种文件传输协议,它支持两种模式, 一种方式叫做 Standard (也就是 Active, 主动方式), 一种是 Passive (也就是 PASV, 被动方式)。Standard 模式(主动模式)FTP 的客户端发送 PORT 命令到 FTP server。Passive 模式(被动模式)FTP 的客户端发送 PASV 命令到 FTP Server。
命令通道:
是客户端主动向服务器端发起命令请求,同时服务器端开启 TCP/21 端口号。客户端主动发起三次握手请求。
服务器由两个端口发起链接。其中有一个叫命令通道的端口,有一个是实现数据通道的端口。命令通道是用来通过实现命令的执行。数据端口是用来实现数据的传输,命令通道走的端口是固定的 TCP/21 端口。如果客户端需要数据传输时,服务就会开启数据通道端口。数据通道走的端口不是固定的,是根据工作模式来判断开启的端口。
数据通道:
下面介绍一个这数据通道的两种方式的工作原理:
主动工作模式(post):服务器端主动连接客户端
FTP 客户端首先和 FTP Server 的 TCP 21 端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送 PORT 命令。PORT 命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己数据端口的 TCP 20 端口发送数据。FTP server 必须和客户端建立一个新的连接用来传送数据。
被动工作模式(pasv):客户端主动连接服务器端(会通过命令通道相互交换信息,客户端就会知道服务端的随机端口号)
在建立控制通道的时候和 Standard 模式类似,当客户端通过这个通道发送 PASV 命令的时候,FTP server 打开一个位于 1024 和 5000 之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后 FTP server 将通过这个端口进行数据的传送,这个时候 FTP server 不再需要建立一个新的和客户端之间的连接。
FTP 服务状态码:1XX:信息 125:数据连接打开 2XX:成功类状态 200:命令 OK 230:登录成功 3XX:补充类 331:用户名 OK 4XX:客户端错误 425:不能打开数据连接 5XX:服务器错误 530:不能登录
用户认证:
匿名用户:ftp,anonymous, 对应 Linux 用户 ftp 系统用户:Linux 用户, 用户 /etc/passwd, 密码 /etc/shadow 虚拟用户:特定服务的专用用户,独立的用户 / 密码文件。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。