gpt4 book ai didi

c - 从 TCP/IP 流量构建文件?

转载 作者:IT王子 更新时间:2023-10-29 01:04:22 26 4
gpt4 key购买 nike

因此,对于 CS 项目,我应该嗅探网络流并从该流构建文件。例如,如果程序指向 ~/dumps/tmp/那么目录结构将是这样的:

~/转储/tmp /192.168.0.1/ page1.html page2.html [第 1 页和第 2 页的各种资源] 下载文件1 /192.168.0.2/ 等等。

我在 linux 上用 C 和 pcap 做这件事(因为我已经了解 C++,并且认为学习经验会很好)。

到目前为止,我一直在研究 TCP/IP 的各种 header 格式

TCP header

正如我所想,我可以按数据包的 dst/src 对数据包进行排序,然后按顺序和确认窗口对它们进行正确排序。

但这给我留下了一个很大的 ?至于如何弄清楚数据包 a-z 是 html 文件的一部分,而 A-Z 是正在下载的某个随机文件的一部分等?

此外,我还应该查找哪些其他类型的标题格式?目前,我有:

我会发布更多超链接图片,但我显然需要声誉才能做到这一点,抱歉TCP、以太网、UDP,我会考虑 FTP 之类的东西(但我很确定 FTP 是建立在 TCP 之上的,HTTP 也是如此)

那么,简而言之,我如何在网络流中找到文件,我是否遗漏了任何我需要能够读取的主要协议(protocol)?

回复我不知道如何回复,所以只能这样了。

我曾多次使用 pcap,并将在这个项目中再次使用,但我不会使用任何 Wiresharks 的东西(尽管它是一个很棒的程序),因为我不想开玩笑地学习这类东西。

是的,我会研究 OSI 层,有没有关于涵盖通用协议(protocol)的好站点的建议?

在这个“问题”成为讨论之前,我想我应该停下来。

最佳答案

文件开始和结束的位置不在 TCP 中。您必须处理通过 TCP 传输的协议(protocol)。例如,对于 HTTP,你必须读取 HTTP header 中的 Content-Length header ,它应该等于 HTTP 正文(完整的 html 页面)的长度。然后,将正文累积到 1 个或多个 TCP 数据包上,直到获得全部内容,如 Content-Length header 所示。

关于c - 从 TCP/IP 流量构建文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1595494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com