一个执着于技术的公众号

FTP

提供一种在服务器和客户机之间上传和下载文件的有效方式;是基于TCP的传输,FTP采用双TCP连接方式;支持授权与认证机制,提供目录列表功能。

---控制连接使用TCP端口号21;用于在FTP客户端和FTP服务器之间传输FTP控制命令及命令执行信息;控制连接在整个FTP会话期间一直保持打开

---数据连接使用TCP端口号(主动模式下20,被动模式下随机);用于传输数据,包括数据上传、下载、文件列表发送等。数据传输结束后数据连接将终止

ASPF机制(主动模式下被防火墙限制)和长会话机制(文件传输到99%时中断)

FTP传输模式:ASCII模式和二进制模式

ASCII模式用于传输文本。发送端的字符在发送前被转换成ASCII码格式之后进行传输,接收端收到之后再将其转换成字符。

二进制模式常用于发送图片文件和程序文件。发送端在发送这些文件时无需转换格式,即可传输。

FTP采用两种数据传输方式:主动方式和被动方式

主动方式也称为PORT方式,是FTP协议最初定义的数据传输连接方式。

主要特点是:

1、FTP客户端通过向FTP服务器发送PORT命令,告诉服务器该客户端用于传输数据的临时端口号

2、当需要传送数据时,服务器通过TCP端口号20与客户端的临时端口建立数据传输通道,完成数据传输;在建立数据连接的过程中,由服务器主动发起连接,因此被称为主动方式。

具体交互过程如下:

被动方式也称为PASV方式,被动方式的主要特点是:

1、FTP客户端通过向FTP服务器发送PASV命令,告诉服务器进入被动方式。服务器选择临时端口号并告知客户端

2、当需要传送数据时,客户端主动与服务器的临时端口号建立数据传输通道,完成数据传输;在整个过程中,由于服务器总是被动接收客户端的数据连接,因此被称为被动方式。

具体交互过程如下:

TFTP

简单文件传输协议,也是采用客户机/服务器模式的文件传输协议;TFTP承载在UDP之上,端口号69

TFTP封装:Ethernet 2/IPv4/UDP/FCS

TFTP适用于客户端和服务器之间不需要复杂交互的环境

TFTP仅提供简单的文件传输功能(上传、下载)

TFTP没有存取授权与认证机制,不提供目录列表功能

TFTP协议传输是由客户端发起的

安全文件传送协议SFTP

可以为传输文件提供一种安全的网络的加密方法。SFTP 是SSH的其中一部分,是一种客户端传输文件至服器的安全方式。

其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用ssh守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。

SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

结语

如果您看完本文后有所收获, 还希望您随手点个在看 、或者分享转发。您的支持是我坚持分享的最大动力!

往期精彩

◆  必看 | Linux系列学习书籍免费送

◆  利用expect批量修改Linux服务器密码

◆  nginx+Keepalived 实现高可用集群

◆  干货 | LVM快照学习

◆  硬核 | 送你一份操作系统词典!值得收藏

◆  抓包工具tcpdump用法说明

◆  零成本 | 手把手教你搭建个人博客

◆  实战 | Hadoo大数据集群搭建

【深度好文】终于有人把云计算、大数据和AI讲明白了

◆  亿级web系统负载均衡几种实现方式

◆  一文带你读懂zookeeper在大数据生态的应用

好文和朋友一起看~

最新文章

  1. SSIS 包部署 Package Store 后,在 IS 中可以执行,AGENT 执行却报错
  2. Redis系列(三)-Redis发布订阅及客户端编程
  3. ASP.NET MVC Json()处理大数据异常解决方法,字符串的长度超过了为 maxJsonLength
  4. ANSI_NULLS、QUOTED_IDENTIFIER
  5. SQL Server里如何随机记录集
  6. The prefix "mvc" for element "mvc:annotation-driven" is not bound 的解决方法
  7. [原创]java WEB学习笔记82:Hibernate学习之路---映射 一对多关联关系,配置,CRUD方法测试及注意点
  8. [SAP ABAP开发技术总结]ABAP程序之间数据共享与传递
  9. c++将引用作为函数的参数---6
  10. 爱维帮---LVS
  11. C#读取Visual FoxPro(*.dbf)数据并使用SqlBulkCopy插入到SqlServer 2008 R2数据表中
  12. CentOS 7 ARM 版发布:支持树莓派2/香蕉派/CubieTruck
  13. 一个C++基于boost简单实现的线程池
  14. OD: Writing Small Shellcode
  15. c语言:链表排序, 链表反转
  16. C# 获取与解析枚举类型的 DescriptionAttribute
  17. jQuery EasyUI API - Grid - DataGrid [原创汉化官方API]
  18. Java 六种异常处理的陋习(转)
  19. 23 服务的绑定启动Demo3
  20. [Leetcode]100. Same Tree -David_Lin

热门文章

  1. SpringDataJdbc使用数据库默认值的解决方法
  2. select poll和epoll
  3. (转载)mos管电压规格是什么,什么是VMOS管栅极
  4. PACT 在微服务架构中的用途是什么?
  5. ZAB 协议?
  6. 在 Spring AOP 中,关注点和横切关注的区别是什么?
  7. 规范之“用流中的Stream.Of(arr1,arr2)将两个集合合并”
  8. JavaScript的取值小技巧之“中括号[]取值法”
  9. Java 值传递 or 引用传递?
  10. Python入门-面向对象三大特性-继承