FTP工作原理是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
成都创新互联公司于2013年开始,先为新宾等服务建站,新宾等地企业,进行企业商务咨询服务。为新宾企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
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 虚拟用户:特定服务的专用用户,独立的用户/密码文件。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
网页名称:FTP工作原理是怎样的
标题路径:http://scyingshan.cn/article/jecheo.html