跳到主要内容

6. 状态图

这里我们为一个非常简单的FTP实现呈现状态图. 只使用回复代码的第一位数字. 每组FTP命令或命令序列有一个状态图.

命令分组是通过为每个命令构建模型, 然后将具有结构相同模型的命令收集在一起来确定的.

对于每个命令或命令序列, 有三种可能的结果: 成功 (S)、失败 (F) 和错误 (E). 在下面的状态图中, 我们使用符号B表示"开始", 符号W表示"等待回复".

我们首先呈现代表最大一组FTP命令的图:

                               1,3    +---+
----------->| E |
| +---+
|
+---+ cmd +---+ | 2 +---+
| B |---------->| W |----------> | S |
+---+ +---+ | +---+
|
| 4,5 +---+
----------->| F |
+---+

此图对以下命令建模:

  • ABOR, DELE, CWD, CDUP, SMNT, HELP, MODE, NOOP, PASV, QUIT, SITE, PORT, SYST, STAT, RMD, MKD, PWD, STRU, 和 TYPE

其他图对命令序列建模, 更为复杂.