我想知道 Wireshark 如何知道哪个请求与响应相关 - “遵循 HTTP 流”。
例如,一些 http 数据包可能与其他 tcp 数据包间隔发送。
有些响应被分隔在几个 tcp 数据包之间,Wireshark 需要了解它们是相关的。
这与 TCP 中的 SEQ 和 ACK 有关吗?
答案1
这和TCP中的SEQ和ACK有关系吗?
是的,HTTP/2 及更早版本都依赖 TCP 来跟踪数据包流,并且 TCP 使用 Seq 和 Ack 编号以及 4 元组(源 IP、源端口、目标 IP、目标端口)来实现此目的。
HTTP/2 具有 TCP 顶部的附加流跟踪机制(HTTP 1.1 及更早版本所没有),因为 HTTP/2 允许在单个 TCP 流中进行多个并发 HTTP 事务。
HTTP/3(QUIC 的新名称)则不同,因为它基于 UDP。但我相信它使用类似 TCP 的 Seq/Ack 机制来保持事物的完整性。