TCP/IP详解卷1 读书笔记:第二十七章 FTP协议
2015-12-13 20:51
357 查看
FTP是数据传输主流协议。
它采用两个信道(两个TCP连接)进行传输。
第一信道,控制信道,无论何时都是由客户端发起连接。采用客户端服务器模式。服务端监听21端口。用于控制命令的传输。
第二信道,数据信道。根据数据信道是否由服务端发起,区分ActiveMode和PassiveMode。
TCP的知名端口号(服务端的监听端口),21号,是控制信道的端口。
第一信道,主要任务就是认证,控制命令(如查看文件列表等)等。
但数据的传输走的是第二信道,包括文件列表数据的传输。
第二信道(数据信道),是由服务器主动发起的,即是ActiveMode。
第二信道(数据通道),是服务器被动接收的,即是PassiveMode。
可见,第二信道,即数据信道(传输数据而非控制命令),是由服务端主动发起的,即是主动模式(ActiveMode);如果不是服务器主动发起的,即是被动模式(PassiveMode)。
注意:第一信道中,客户端向FTP服务器发送的数据中,含有PORT(a,b,c,d,e,f)这里a,b,c,d,e,f每上表示0~255的数据,其中a,b,c,d表示客户端的IP,e,f表示客户端的第二通道的端口(计算方法是:e*256+f)。这主要是为了供第二通道中,服务端主动发起向客户端的连接使用的。
注意:由于用户名和密码都是明文传输,易于被截获,因此,对于FTP来说,使用匿名登陆反而更安全。
客户端第二通道是IP和端口是: 202.100.1.100,4*256+38
第一次传入PORT后,紧跟的是一个控制命令,LIST(查看列表)。
然后,服务端20号端口通过第二信道与客户端的4*256+38端口建立连接,并传送文件列表。
当单击文件列表中的一个文件,又出现了一个PORT发给服务端(注意这次的端口号有变化,4*256+42),接着又发了一个RETR命令,后面跟着所请求的文件。
这时,服务端20号端口又通过第二信道与客户端4*256+42端口建立连接,并传送该文件。(注意,与第一次不是同一个端口号,也就是说又建立了一次连接)
注意:这里是又建立了一次连接。
第二信道,服务器被动接受为被动模式(PassiveMode)。
在第一信道中,客户端发送PASV命令,询问服务端是否支持被动模式。服务端回复227表示支持,这时a,b,c,d,e,f表示服务端第二信道的IP和端口。
目前一般使用的是PassiveMode模式,客户端连接后,一般会发PASV询问服务器是否支持PassiveMode,如果支持,则使用PassiveMode。
相关文章推荐
- TCP/IP网络协议
- Android--Apache HttpClient
- Android--HTTP协议
- Firefox 的页面缩放选项在这里 - Http Tool 插件查看自动格式化后的 json
- TCP及socket通信原理
- 参加南京未来网络SDN大会的整理
- nodejs 5.2.0文档自翻译——HTTP模块
- Apache 的 httpd.conf 详解
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许
- TCP/IP详解卷1 读书笔记:第二十六章 Telnet协议
- TCP连接的状态详解以及故障排查
- vsphere创建并管理 ESXI网络
- HTTP协议
- Redhat7 配置http
- iOS UI 17 网络请求封装
- iOS UI 17 网络请求封装
- iOS UI 15 网络编程2
- iOS UI 15 网络编程2
- iOS UI 15 网络编程下载 图片 音乐 大文件 视频 get/ post方法
- iOS UI 15 网络编程下载 图片 音乐 大文件 视频 get/ post方法