如果在 TCP 3 次握手的不同阶段收集 Cisco Netflow 条目的预期状态是什么?

网络工程 思科 路由器 净流
2022-02-27 07:58:13

标准的 TCP 握手:

 1. SYN     (client->server)
 2. SYN+ACK (server->client)
 3. ACK     (client->server)

NetFlow 标志是 ORed 在一起的,包括:

URG     ACK     PSH     RST     SYN     FIN
32      16      8       4       2       1

我假设如果 NetFlow 在握手的不同阶段收集流,则流 TCP 标志将匹配下表:

 1. 02 (SYN)
 2. 18 (SYN+ACK)
 3. 16 (ACK)

它是否正确?

1个回答

查看此类数据时要非常小心。硬件平台甚至软件版本存在相当大的差异,这些差异会影响是否收集 TCP 信息以及是否实际收集到一致的数据。

当它工作时,Netflow 收集的 TCP 信息是在该流间隔期间看到的 TCP 标志的逻辑与。请记住,持续时间(例如 30 分钟)的 TCP 流实际上可能会生成 5 到 6 条记录,并且可能会生成数十条记录,因为老化计时器命中、缓存溢出或实际上是看到 FIN 数据包(在 TCP 的情况下)。因此,除非某些东西将这些流记录组装成某种有凝聚力的整体,否则您实际上看到的是一堆(希望是)连续的块。

如果TCP 标志被正确标记,那么您可能会看到一个时间间隔,例如,从看到 SYN 和 ACK 的流的前 30 秒开始。这将创建一个值 010010(十进制 18)。如果重传发生在会话的后期(比如 10 分钟),那么稍后的记录可能包括 000100(十进制 4),反映观察到了 RST 标志。在整个会话结束时,您可能会看到包含 000001 的最终记录,表示 FIN 标志。

类似地,如果整个流发生在单个记录的范围内,则可能会看到 SYN、ACK、RST 和 FIN 的条目( 010111)。在流程的平稳部分,也可能根本没有设置标志。

仅供参考 - TCP 标志(从最高有效位到最低有效位)是 URG、ACK、PSH、RST、SYN、FIN。