12.FTP协议的简述及FTP的工作过程是什么?
FTP协议简述
FTP(File Transfer Protocol,文件传输协议)
是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。
其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
默认情况下FTP协议使用TCP端口中的 20和21
这两个端口,其中20用于传输数据
,21用于传输控制信息
。
但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,
采用主动模式,那么数据传输端口就是20;
采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
主动模式(PORT FTP)
FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
(登录FTP服务器成功的过程):
- 因为FTP使用的是TCP协议,所以客户端在通过ftp 192.168.120.240连接服务器时,首先会经历TCP的三次握手来建立控制通道。客户端使用任意的端口N(N>1024)来连接FTP服务器默认的21端口。
- 在TCP三次握手结束后,服务器端正式响应客户端的控制连接请求,控制通道建立。
- 客户端向服务器发送含有ACK的数据段来确认控制连接建立。
- 客户端向服务器发送用户名。
- 服务器向客户端发送含有ACK的数据段来确认用户名。
- 服务器向客户端询问密码。
- 客户端向服务器发送含有ACK的数据段来确认会发送密码。
- 客户端向服务器发送密码,密码为明文。
- 服务器向客户端发送含有ACK的数据段来确认密码收到。
- 服务器向客户端发送登陆成功的信息。
- 客户端向服务器发送含有ACK的数据段来确认收到登陆成功的信息。
被动模式 (Passive FTP)
在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,通过三次握手建立通道,然后FTP服务器将通过这个端口进行数据的传送。
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。
用户授权登录FTP服务器
要连上 FTP 服务器(即“登陆”),必须要有该 FTP 服务器授权的帐号,也就是说你只有在有了一个用户标识和一个口令后才能登陆FTP服务器,享受FTP服务器提供的服务。
地址格式
FTP地址如下:
ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名
上面的参数除FTP服务器IP或域名为必要项外,其他都不是必须的。如以下地址都是有效FTP地址:
ftp://foolish.6600.org
ftp://list:list@foolish.6600.org
ftp://list:list@foolish.6600.org:2003
ftp://list:list@foolish.6600.org:2003/soft/list.txt
12.FTP协议的简述及FTP的工作过程是什么?相关推荐
- 简述java程序的工作过程_简述 Java 程序的开发过程。_学小易找答案
[填空题]两个啮合齿轮在啮合区内,一个齿轮的轮齿用()绘制,另一个齿轮的轮齿被遮挡的部分用()绘制,被遮挡的部分也可以省略不画. [单选题]只有建立了统一的学校集体,才能在儿童的意识中唤起舆论的强大力 ...
- 「协议」Kcp协议介绍、Demo讲解与工作过程浅谈
Tcp和Udp 传输控制协议(英语:Transmission Control Protocol,缩写:TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议,其拥有着相对而言的可靠传输(相对UD ...
- 一款支持FTP协议的LTE物联网模块操作实例
CLM920 AC5 MD支持分级天线 以及FTP协议,本文延时FTP协议操作过程 模块开机,确认模块初始化完成 AT+CFTPPORT 设置FTP服务器端口 ( FTP默认端口21) 示例: AT+ ...
- FTP协议 服务器端口,FTP协议介绍
原标题:FTP协议介绍 一.FTP介绍 FTP (File transfer protocol) 是TCP/IP 协议组中的协议之一.他最主要的功能是在服务器与客户端之间进行文件的传输.FTP就是实现 ...
- 网络协议之FTP协议
1.什么是FTP协议? FTP 是File Transfer Protocol(文件传输协议).用于ftp客户端和ftp服务器之间进行文本.文件传输的协议.与http的短连接不同,FTP协议是一种基于 ...
- 基于FTP协议实现文件上传与下载
目录 一.FTP简介 二.关于FTP服务器 三.文件上传 分步讲解: 完整实现代码: 四.下载文件 分步讲解: 完整实现代码: 小结 一.FTP简介 FTP(File Transfer Protoco ...
- CryptoTab 服务器_如何架设FTP服务器,如何架设FTP服务器,具体架设方法
FTP服务器,则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务. FTP的全称是File Transfer Protocol(文件传输协议).顾名思义,就是专门用来传输文件的协议.简单地 ...
- linux关闭启动ftp服务器,开启和关闭ftp服务及ftp服务的初步解释
1.概念解释: ftp服务的提供者称为FTP服务器,它们是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务. FTP的全称是File Transfer Protocol(文件传输协议).专门 ...
- day34 异常处理、断言、socket之ftp协议
Python之路,Day20 = 异常处理.断言.socket之ftp协议 参考博客:http://www.cnblogs.com/metianzing/articles/7148191.html 1 ...
最新文章
- 理解MySQL--索引与优化(转载)
- VTK:对齐两个 PolyData用法实战
- 通过GitHub Pages创建个人主页
- Magicodes.IE Excel合并行数据导入教程
- Qt下Tcp通信的简单使用三
- “宅家十大热销商品”榜单:确认过眼神,都是自己剪头发的人
- java使用JMail通过QQ邮件服务器实现自动发送邮件
- python星号倒金字塔结构_Python语言应用2020智慧树章节测试答案
- 学生网页设计作业源码(HTML+CSS)——海贼王6页代码质量好
- 怎么自费出书方法步骤
- 【2020春招记录】 吉比特游戏研发笔试
- 深入分析JavaWeb技术内幕系列之---DNS域名解析过程
- 获取空气质量站点数据 城市数据 日数据 时数据
- 一级计算机软件wps,计算机一级WPS
- 拼多多蓝海词数据分析工具哪个好?多多情报通怎么样?
- 宅家羊毛党是怎么做到月入上万的
- Image-Image Translation to Enhance Near Infrared Face Recognition阅读笔记
- 手把手教学51单片机第三课 | 复位电路、数码管静态显示
- 什么是:产品专员、产品经理、产品总监、产品副总?
- Shell学习总结-流编辑器sed