简述FTP主动模式与被动模式
程序员文章站
2022-04-13 17:45:26
1 FTP工作模式 2 不同模式FTP面临的问题 3 主动模式的FTP连接建立连接主要步骤 客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同时一个FTP进程连接至服务器的21号命令端口。此时,源端口为随机端口x(在客户端);远程端口为21(在服务器端)。输入正确的用户名/密码 ......
1 ftp工作模式
2 不同模式ftp面临的问题
3 主动模式的ftp连接建立连接主要步骤
- 客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同时一个ftp进程连接至服务器的21号命令端口。此时,源端口为随机端口x(在客户端);远程端口为21(在服务器端)。输入正确的用户名/密码后ftp建立成功。如果需要发送数据则客户端会向服务器发送port命令。
post命令的含义:有6个数,通过5个逗号分开,前4个数是ip地址,第5个数*256+第6个数=端口号(这就是x+1端口,可以算一下一定是等于x+1)
客户端开始监听端口(x+1),同时向服务器发送一个port命令(通过服务器的21号命令端口),此命令告诉服务器现在客户端正在监听的端口号,并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。
服务器打开20号端口建立和客户端数据端口的连接。此时源端口为20,远程数据端口为(x+1)。
客户端使用本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。之后就可以传输数据了。
客户端通过x端口向服务器的发送port命令,告诉服务器我的数据端口是什么。
传送数据的端口为20端口
4. 被动模式的ftp连接建立连接主要步骤
- 当开启一个ftp连接时,客户端打开两个任意的非特权本地端口x和x+1(x>1024)。
- 第一个端口连接服务器的21端口,但与主动方式的ftp不同,客户端不会提交port命令并允许服务器来回连它的数据端口。而是提交pasv命令(用途是询问服务器是否支持pasv,服务器如果支持的话服务器会回复227)。
- 这样做的结果是服务器会开启一个任意的非特权端口p(p>1024),并发送命令给客户端。
- 然后客户端发起从本地端口x+1到服务器的端口p的连接,建立成功后就可以用x+1和p端口来传送数据。
被动模式的ftp-data可以是由客户端向服务器端发起的连接
上一篇: Eruda 一个被人遗忘的移动端调试神器
下一篇: js之选项卡(tag标签)