TCP/IP-----FTP缺点
来源:互联网 发布:网络大电影剧本价格 编辑:程序博客网 时间:2024/05/10 07:16
文件传输协议(FTP)有一个漫长的演化史,是互联网上最重要的应用之一,但时至今日,却已江河日下。本文作者从各方面列举了一些文件传输协议(FTP)为人诟病的缺点。
1.数据传输模式不合理
不考虑文件自身的内容,一味使用ASCII模式传输数据是不合理的。文件传输协议(FTP)应该具有自动检测功能,当然用户也可以进行自定义。
虽然现在许多Linux和Windows客户端已经支持自动传输模式,但多达数代的UNIX和Windows客户端都默认使用ASCII传输模式,这种传输模式甚至会造成文件损坏。
2.工作方式设计不合理
文件传输协议(FTP)可以在主动模式(PORT)或被动模式(PASV)下工作,这决定了数据链接建立的方式。
在主动模式下,客户端首先向服务器端发送IP地址和端口号,然后等待服务器端建立TCP链接。在被动模式下,客户端同样首先建立到服务器的链接,但服务器端会开启一个端口(1024到5000之间),等待客户端传输数据。
文件传输协议(FTP)中最让人不可思议的是,客户端会侦听服务器端!
3.与防火墙工作不协调
在文件传输协议(FTP)诞生在网络地址转换(NAT)和防火墙之前,那时的网络还不存在恶意攻击。今天大多数最终用户的IPv4地址已不可路由,这是因为防火墙的使用和IPv4地址的短缺。
这对FTP意味着什么呢?这意味着如果FTP客户端IP地址不可路由,或者位于防火墙之后,那么就只能使用被动传输模式进行数据传输。
如果服务器端的IP地址也不可路由,或者位于防火墙之后呢?FTP将无法进行数据传输!
现在,许多防火墙适用于NAT环境,可以使用一些特殊的技巧(hacks)允许FTP在防火墙之后正常工作。当然,这需要对防火墙进行配置。
4.密码安全策略不完善
在互联网早期,文件传输协议(FTP)并没有对密码安全作出规定。在FTP客户端和服务器端,数据以明文的形式传输,任何对通讯路径上的路由具有控制能力的人,都可以通过嗅探获取你的密码和数据。
我们当然可以使用SSL封装FTP,但FTP是通过建立多次链接进行数据传输的,我们即便是保护了密码安全,也很难保护数据传输的安全性。
自文件传输协议(FTP)发布以来,安全的数据传输也经历了长足发展,推荐使用SCP取代FTP进行文件传输。
5.FTP协议效率低下
从FTP服务器上检索一个文件,包含繁复的交换握手步骤:
- 客户端建立到FTP服务器端控制端口的TCP Socket链接,并等待TCP握手完成
- 客户端等待服务器端发送回执
- 客户端向服务器端发送用户名并等待响应
- 客户端向服务器端发送密码并等待响应
- 客户端向服务器端发送SYST命令并等待响应
- 客户端向服务器端发送TYPE I命令并等待响应
- 如果用户需要在服务器端切换目录,客户端仍然发送命令并等待响应
- 主动模式下,客户端需要发送PORT命令到服务器端,然后等待响应(被动模式与主动模式相反)
- 建立数据传输链接(需要经过三次握手,建立一条TCP Socket连接)
- 通过链接传输数据
- 客户端等待服务器端从控制连接发送2xx指令,以确保数据传输成功
- 客户端发送QUIT命令,并等待服务器响应
同样的情形,我们来看看HTTP协议:
- HTTP客户端向HTTP服务器端建立一条TCP Socket连接
- HTTP客户端向HTTP服务器端发送GET命令,包含URL、HTTP协议版本、虚拟主机名等等,并等待响应
- HTTP服务器端的响应包含了所有想要的数据,完成!
传输一个文件,FTP需要往复10次,而HTTP只需要2次!如果传输多个文件,FTP可以省略发送用户名和密码的步骤,而HTTP则可以使用固定的套接字(Socket),在相同的TCP连接中传输文件。
综上所述,虽然文件传输协议(FTP)曾经显赫一时,但现在已经过时了,它是一个既不不安全,也不不友好,而且效率低下的协议,势必被取而代之。
- TCP/IP-----FTP缺点
- TCP/IP-16-FTP
- TCP/IP 之FTP协议
- TCP/IP 与FTP协议
- 从TCP/IP模型全面认识FTP
- 从TCP/IP模型全面认识FTP
- Hercules 开启TCP/IP FTP 服务
- FTP协议原理以及TCP/IP协议
- TCP/IP协议、Http协议、ftp协议
- SOCKET,TCP/IP,UDP,HTTP,FTP总结
- HTTP,Socket,TCP/IP,UDP,FTP总结
- SOCKET,TCP/IP,UDP,HTTP,FTP总结
- SOCKET、TCP/IP、UDP、HTTP、FTP总结
- hjr理解-TCP,UDP,http,FTP,TCP/IP
- TCP/IP 详解 卷1 ch27 FTP: 文件传送协议
- 【TCP/IP详解】第27章 FTP:文件传送协议
- TCP/IP笔记 四.应用层(2)——FTP
- TCP/IP协议、Http协议、ftp协议 (1)
- Gmail架构相关资料收集
- IN和EXIT的区别
- Linux 设备模型基本概念 (一)
- 关于js自动打开新页面被拦截的解决方法
- Android mediaplayer学习笔记
- TCP/IP-----FTP缺点
- WDF驱动中KMDF与UMDF区别
- python
- VS2012中“工具>选项中的VC++目录编辑功能已被否决”解决方法
- 5. Longest Palindromic Substring
- 游戏中打击感的体现
- ZooKeeper监控
- python 中如何判断list中是否包含某个元素
- UML之用例图