ftp原理
应用层协议:tcp
ftp:File Transfer Protocl
C/S模式
数据:
命令连接:文件管理类命令,始终在线的连接
数据连接:数据传输,按需创建及关闭的连接
数据传输格式:
文本传输
二进制传输
主动:由服务器创建连接
命令:
Client:50000(随机端口) –> Server:21
数据:
Server:20/tcp –> Client:50000+1
注意:命令和数据连接是完全独立的连接
*网络防火墙原理:
在网卡驱动前方装一个软件,把端口全部保护
被动:由客户端创建连接
命令:
Client:50000(随机端口) –> Server:21
返回两个参数
例如:121,23: 则访问服务器端的121*256+23端口号
数据:
Client:50000+1 –> Server:随机端口
(20端口只是负责建立连接的端口,由于ftp服务器数据传输时可能是多个用户,所以是由子进程连接套接字来传数据的,20端口只是个监听套接字,而连接套接字是随机的)
对比
主动模式中,客户端并不知道服务器端要访问自己的端口号是多少,而将端口全部打开无疑对客户端是极其危险的,被动模式好处就是,把客户端面临的难题转移到服务器上,服务器防火墙有一个能力,可以检测到连接本身的相关线(网络层防火墙上叫做连接追踪的功能 connection track)
响应码:
1xx:信息
2xx:成功类的状态码
3xx:提示需进一步提供补充类信息的状态码
4xx:客户端错误
5xx:服务端错误