竭诚为您提供优质文档/双击可除 ftp 协议是一种用于的协议 篇一:Ftp 协议使用两个连接 Ftp 协议使用两个连接。一个叫控制连接,另一个叫数 据连接。Ftp 的命令和应答通过控制连接来交换,这个连接 会存在于整个 Ftp 会话过程中。另一方面,一个文件(或一 个文件列表)通过数据连接来传送,这个连接是当每次文件 传输时才新建立的。 通常出于网络安全的考虑,大多数防火墙不允许除 Ftp 控制连接之外的任何连接连到 Ftp 的服务端口(默认是 tcp 的 21 端口)。虽然如此,当一个文件传输时,防火墙临时地 认可数据连接。为了做到这点,防火墙跟踪控制连接的状态, 并检测跟文件传输相关的命令。这就是所谓的状态检测。 poRt 命令的格式如下: poRth1,h2,h3,h4,p1,p2 这里字符串“h1,h2,h3,h4”表示点分十进制的客户端 的 ip 地址 “h1.h2.h3.h4”。字符串“p1,p2”表示一个数据端口 号(=p1*256+p2)。地址和端口号都是十进制数。数据端口 第 1 页 共 20 页 由客户端动态指定。另外,命令和应答以字符序列结尾。 netfilter 跟踪一个 Ftp 控制连接,并获取 tcp 序列号 和包含一个 Ftp 命令行(以结尾)的数据包的数据长度。然 后基于这些信息,它计算出下一个命令数据包的序列号。当 一个这样序列号的数据包到达时,netfilter 分析数据包中 的数据是否包含一个 Ftp 命令。如果数据的头部是“poRt”, 并且数据以结尾,于是 netfilter 认为它是一个有效的 poRt 命令(实际的代码会更复杂),并从中取出 ip 地址和端口号。 然后,netfilter“期待”服务器主动建立一个到客户端指 定的端口号的数据连接。当数据连接请求确实到达时,它会 认可连接,同时连接建立。