【发布时间】:2021-02-02 16:45:36
【问题描述】:
我正在做一个学校项目,我必须使用 libcap 库分析 C 语言中的 .pcap 文件。我是网络新手,但我知道 TCP 位于第 4 层,HTTP 位于 OSI 模型的第 7 层。我想对 HTTP 数据包进行排序,并打印出源/目标端口,但我有点困惑如何区分 HTTP 协议和 TCP 协议。 这是一个例子,我不明白:
编辑:这是另一个示例,其中源端口为 80,长度为 100。第 54 个字节为 48,与 HTTP 1.1 响应数据包相同。它是一个 TCP。 https://i.stack.imgur.com/RQs6v.png
这里的目的端口是80,也就是HTTP。但是,wireshark 并没有将此数据包列为 HTTP 协议,它只是 TCP。 https://i.stack.imgur.com/TsVuO.png 我的问题是如何根据字节确定数据包是HTTP协议还是只是TCP协议?
【问题讨论】:
-
您显示的数据包不是 HTTP 数据包。它有
Len: 0,表示它是一个仅ACK 数据包。判断是否为HTTP,需要解析payload,看是否有HTTP规范定义的有效数据。 -
我还是不明白,我编辑了帖子。
-
您在
RQs6v.png中显示的数据包确实是一个HTTP 数据包。哪里wireshark说它不是?
标签: c data-analysis wireshark pcap