当前位置:网站首页>FTP协议详解
FTP协议详解
2022-07-29 02:18:00 【Li-YC】
一、FTP协议的概述
1、文件传送协议(File Transfer Protocol)是互联网上使用的最广泛的文件传输协议,用于Internet上的控制文件的双向传输。
2、FTP提供交互式的访问,允许客户指明文件类型与格式,并允许文件具有存取权限。
3、FTP屏蔽了各计算机系统的细节,因而适合于在异构网络中计算机之间传送文件。
二、FTP协议的特点
1、文件传送协议FTP只提供文件传送的一些基本的服务,它使用TCP可靠的运输方式。
2、FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
3、FTP使用客户服务器方式。一个FTP服务器进程可同时为多个客户进程提提供服务,FTP的服务器进程由二大部分组成:一个是主进程,负责接受新的请求;另外有诺干个从属进程,负责处理单个请求。
三、FTP工作过程
1、FTP有控制连接和数据连接,
控制连接标准端口为21,用于发送FTP命令信息。
数据连接标准端口为20,用于上传、下载数据。
2、FTP协议和其他协议不一样的地方就是客户端访问FTP服务器端需要建立二个TCP连接,一个用来传输FTP命令,一个用来传输数据
3、FTP有主动模式和被动模式,
主动模式:服务端从20端口主动向客户端发起连接,工作过程如下图所示:

第一步中,FTP客户端提交PORT命令并允许服务器来回连它的数据端口(1027端口)。
第二步中,服务器返回确认。
在第三步中,FTP服务器向客户端发送TCP连接请求,目标端口为1027,源端口为20。建立起传输数据的连接。
被动模式:服务端在指定范围内的某各端口被动等待客户,被动发起连接。

在第一步中,客户端的命令端口与服务器的命令端口建立连接,并发送命令"PASV"。
在第二步中,服务器返回命令"PORT 2024"告诉客户端:服务器用哪各端口监听数据连接。
在第三步中 ,客户端初始化一个从自己的数据端口到到服务器指定的数据端口的数据连接。
在第四步中,服务器给客户端的数据端口返回一个"ACK"响应。
边栏推荐
- Flink内核源码(七)Flink SQL提交流程
- nacos名字的由来
- Double write consistency of MySQL and redis
- XSS range (II) xss.haozi
- Code implementation - the greatest common factor of polynomials (linear algebra)
- Time for white horses to pass the gap
- Polygon point test
- [quality] code quality evaluation standard
- Flink生产环境经典问题汇总
- 3D intelligent factory process flow visualization interactive display application advantages
猜你喜欢

CUDA details GPU architecture

golang 协程的实现原理

ECCV 2022 | AirDet:无需微调的小样本目标检测方法

Polygon point test

Read the recent trends of okaleido tiger and tap the value and potential behind it

QT屏幕自适应自动布局,拖动窗口自动变大变小(一)

Exploration and practice of network security vulnerability management
![[quality] code quality evaluation standard](/img/33/2c2256fd98b908ddaf5573f644ad7f.png)
[quality] code quality evaluation standard

MQTT例程

【报错】node:internal/modules/cjs/loader:936 【解决方法】
随机推荐
PHP lucky draw system with background source code
Redis queue realizes second kill
Workflow of wireless vibrating wire acquisition system
Some records during the development of ros2/ros1
Intel's IPP Library (Integrated Performance Primitives)
ROS2/ROS1开发过程中的一些记录
QT qstringlist usage
Why is redis fast? Message queue, single thread
第六天笔记
CUDA details GPU architecture
云开发口袋工具箱微信小程序源码
Mqtt routine
idea替换所有文件中的内容
MQTT例程
外挂---线段树懒标记板子+简单数学推理
Rust list (VEC) replication
用于校园流浪猫信息记录和分享的小程序源码/微信云开发中大猫谱小程序源码
Library management system
Continuous learning / life long learning
owt-server源码剖析(三)--video模块分析之Mixer In