关于FTP文件传输协议说明,带你了解更详情的文件传输协议

Internet和其他网络上的人与设备之间的通信使用协议进行。您可以说协议定义了对话规则:谁必须在何时发送哪些信息?如果数据没有到达接收者,会发生什么?您如何保护转帐免受错误和犯规?每当我们使用Internet时,OSI模型中的这些协议就一直在使用。最著名的是HTTP和HTTPS,通常用于访问网站。另一个重要协议是文件传输协议。那么它是用来干什么的呢?
首先讲一下为什么需要文件传输协议?
文件传输协议(FTP)是最古老的Internet协议之一。自1974年以来,就一直使用用于传输整个文件的技术。1985年,FTP在RFC 959中进行了精确定义。该协议背后的思想是使用命令触发下载和上传。这样,您就可以将文件从自己的设备(PC,智能手机等)传输到服务器,反之亦然。
在此过程中,用户可以使用文件管理系统(从操作系统中了解)。文件可以放在文件夹中,而文件夹又可以放在其他文件夹中,从而形成分层目录结构。
文件传输协议通常用于构建网站。例如,可以使用FTP访问将HTML文件传输到服务器。此外,网站提供商可以使访问者可以使用媒体文件。
其次来说一下,文件传输协议是如何工作?
文件传输协议在TCP / IP Internet协议套件的应用程序层中运行。这会将其与HTTP或POP放在同一层。这些协议的特征在于它们与诸如浏览器和电子邮件客户端之类的程序一起工作,以便为您提供服务。还有用于文件传输协议的特殊FTP软件。
这些程序通常有两个领域。一个区域显示本地目录结构,包括硬盘驱动器上的所有文件。另一个区域显示服务器的内存,包括其中的文件和文件夹。该软件使用户可以在两个区域之间移动文件。如今,浏览器和操作系统的命令行也可以用于FTP。
为了使用文件传输协议服务,您需要具有某些访问信息(用户名和密码)。您通常可以从服务器提供商那里获得。
在FTP连接中,通常会打开两个通道。首先,客户端和服务器使用端口21建立命令通道。客户端使用此通道将命令发送到服务器,作为响应,服务器发送回状态代码。之后,双方可以建立数据通道。这用于传输所选文件。发生这种情况时,协议会注意错误。如果在传输完成之前断开连接,则可以在重新建立连接后恢复该过程。
客户端和服务器之间通过文件传输协议进行交换
我们可以区分主动和被动 FTP。在活动版本中,客户端如上所述使用端口21建立连接,并告诉服务器可以使用哪个端口来传递其答案。但是,如果客户端受防火墙保护,则服务器将无法发送任何答案,因为所有外部连接均被阻止。这就是为什么开发被动模式的原因。这样,服务器可以向客户端发送端口号,然后客户端可以使用该端口号来建立数据通道。由于客户端自行启动连接,因此其防火墙无法阻止传输。
文件传输协议知道各种命令和状态码。利用32条命令(并非所有命令都始终在服务器上实现),客户端指示服务器上载或下载文件,组织目录或删除文件。服务器用状态码回答,该状态码提供有关命令是否已成功实现的信息。
与往常一样,您需要访问信息才能在服务器上使用FTP。但是某些服务器还提供匿名FTP,任何用户都可以使用该FTP将文件传输到该服务器,或者使用FTP从该服务器下载而无需输入密码。由于这些开放的FTP服务器容易受到安全风险的影响,因此用户的可能性通常非常有限。
最后来说一下安全性和文件传输协议
原始的文件传输协议没有任何安全功能。在其发展之时,互联网仍然很小,网络犯罪不存在。从那时起,由于传输是完全未加密的,因此使用FTP已涉及许多安全风险。这就是为什么开发了另外两个安全版本的原因,这些版本目前正在相互竞争:FTPS和SFTP。第一个版本是使用SSL的FTP。该连接是与安全套接字层(SSL)或传输层安全性(TLS)结合使用的,其中对数据交换进行了加密。
SSH文件传输协议(SFTP)使用安全外壳(SSH)来安全地传输文件。与FTPS一样,连接也是加密的。但是,FTPS需要两个连接,而SFTP只需要一个。但是SFTP确实需要使用其他程序。
镭速文件传输协议特点:
镭速传输协议主要技术原理
镭速传输协议主要通过如下两方面来改善传输效率:更有效的拥塞判断及处理; 更准确及时地进行丢包判断恢复制机制;
更有效的拥塞判断及处理
目前主流的拥塞判断是基于二十几年前的网络情况设计的,其基本假设是任何丢包都反映了网络拥塞。这一假设与现代网络情况已完全脱节。现代网络丢包常常并不是由拥塞因素引起的。这一脱节导致传输协议常常进入过于保守的传输状态。
镭速传输协议拥塞检测算法会自动收集路径上已有的背景传输信息(丢包、时延以及抖动),根据传输速度准确判断出实际的拥塞情况,既不过于保守也不过于激进,可以有效充分利用路径带宽。
镭速传输提供一站式文件传输加速解决方案,旨在为IT、影视、生物基因、制造业等众多行业客户实现高性能、安全、稳定的数据传输加速服务。传统文件传输方式(如FTP/HTTP/CIFS)在传输速度、传输安全、系统管控等多个方面存在问题,而镭速文件传输解决方案通过自主研发、技术创新,可满足客户在文件传输加速、传输安全、可管可控等全方位的需求。
关于FTP文件传输协议说明,带你了解更详情的文件传输协议的更多相关文章
- 我们检测到您的浏览器不兼容传输层安全协议 (TLS) 1.1 或更高版本,此协议在 Internet 上用于确保您通信的安全性。
早上使用.Net WebClient类采集亚马逊数据,返回http 400 Bad Request错误,内容里面有“我们检测到您的浏览器不兼容传输层安全协议 (TLS) 1.1 或更高版本,此协议在 ...
- FTP传大文件又慢又麻烦,有没有更好的替代传输方案?
FTP作为常见的文件传输协议已经具有很长的历史,最早可以追溯到上世纪70年代.至今FTP仍然较为活跃,然而许多企业已经开始不满足于FTP的功能局限性,开始另外寻找合适的文件传输产品. 目前数据正在爆炸 ...
- 好程序员带你了解一下HTTPS和SSL/TLS协议的背景与基础
>> 相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 TCP 的关系(尤其 ...
- servlet多文件上传(带进度条)
需要commons-fileupload-1.3.jar和commons-io-2.4.jar的支持 页面效果:(图片文件都可以) (1)进度标识类 public class UploadStatus ...
- PSR-1之PHP代码文件必须以不带BOM的UTF-8编码
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE“的字符,它的编码是FEFF.而FFFE在UCS中是不存在的字符 ...
- java进行文件上传,带进度条
网上看到别人发过的一个java上传的代码,自己写了个完整的,附带源码 项目环境:jkd7.tomcat7. jar包:commons-fileupload-1.2.1.jar.commons-io-1 ...
- 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)
艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...
- PHP FTP操作类( 上传、拷贝、移动、删除文件/创建目录 )
/** * 作用:FTP操作类( 拷贝.移动.删除文件/创建目录 ) * 时间:2006/5/9 * 作者:欣然随风 * QQ:276624915 */ class class_ftp { publi ...
- C#读取带命名空间的xml,xaml文件的解决方案
使用C#读取xml文件有三种常用的方式: 1.xmlDocument 2.XmlTextReader 3.Linq To Xml 但是这些方式在读写有些带命名空间的xml时就不知道怎么办了(例如把xa ...
- Unix文件 I/O(不带缓冲区的)上
简介 Unix系统大多数文件i/o只需要:open.read.write.lseek.close这几个函数.但是某些时候我们也需要fcntl.ioctl.sync等函数配合使用.这些函数都是不带缓冲区 ...
随机推荐
- NVME(学习笔记三)—PMR
PMR(Persistent Memory Region)持久性内存区域 NVM Express在2019年完成了NVMe 1.4规范的制定,新的NVMe协议带来了大量的全新特性,尤其在纠错.强化性能 ...
- 竞态问题与RxJs
竞态问题与RxJs 竞态问题通常指的是在多线程的编程中,输入了相同的条件,但是会输出不确定的结果的情况.虽然Js是单线程语言,但由于引入了异步编程,所以也会存在竞态的问题,而使用RxJs通常就可以解决 ...
- colrm命令
colrm命令 colrm命令用于编辑源代码文件,脚本文件或常规文本文件中的文本,此命令从文件中删除选定的列,列定义为一行中的单个字符.索引总是从1开始,而不是0.如果同时指定了开始和结束,则它们之间 ...
- maven打包时打包指定的lib文件夹
今天在打包自己的spring boot项目时遇到了问题, 报找不到类和符号. 因为我有些依赖是放在项目lib文件夹中,那么打包的时候要连把它一起打包. 修改pom.xml, 添加一下内容: <b ...
- Java并发编程实例--13.方法同步(synchronized)
使用synchronized关键字去控制对某个方法的并发调用. 某一时段内,只能有一个线程可以读取该方法. 其他线程需要等待前面线程调用完毕后方可调用. 不过,静态方法有着不同的行为. 虽然也是每次只 ...
- Spring源码之-AOP
目录 一.大话AOP 1.AOP的概念 2.必要的准备工作 什么是代理模式? 3.大话AOP 那么AOP 具体是什么呢? 实现AOP的方式 二.动态AOP自定义标签 1.JDK动态代理 2.CGLIB ...
- SpringBoot整合Groovy脚本,实现动态编程
Groovy简介 Groovy 是增强 Java 平台的唯一的脚本语言.它提供了类似于 Java 的语法,内置映射(Map).列表(List).方法.类.闭包(closure)以及生成器.脚本语言不会 ...
- 以二进制文件安装K8S之高可用部署架构
在Kubernetes系统中,Master节点扮演着总控中心的角色,通过不间断地与各个工作节点(Node)通信来维护整个集群的健康工作状态,集群中各资源对象的状态则被保存在etcd数据库中. 在正式环 ...
- 如何避免Git合并远程分支时出现可读性差的日志
问题及现象 当某一分支(假设为main)的本地仓库和远程仓库都基于同一个提交进行了修改,并分别创建了新的提交时,在本地执行git push origin main会提示先要执行git pull合并远程 ...
- 一个Git Commit Message模板
一个统一的commit消息模板可以约束团队成员使用一致的方式提交变更信息,这样也方便集成工具进行合规检查. 通常来讲,commit信息应该包含如下内容: <type>(<scope& ...