如何区分确认SYN / ACK和确认数据?

有没有办法在连接期间(而不是在握手期间)将ack数据包作为对syn-ack的响应与ack数据包进行区分? 有人告诉我,不是所有的操作系​​统在连接过程中都标记为tcp-ack,有些操作系统(或者工具)在连接过程中标记为ack包,而不是标记为push。

这是合法吗? 操作系统容忍这个? (在握手完成之后确认数据包没有被推送)?

PS。 我不保存数据包的历史,所以我有一个数据包,需要弄清楚它是什么样的。

谢谢

不,这不是正确的做法,你当然不会看到一致的行为。 在这里看到一个很好的PSH标志是什么概述。

如果您需要区分确认SYN / ACK和确认数据,则应该检查TCP序列号。