今天早些时候,我与一位开发人员进行了讨论,重新识别具有相同负载的特定接口上发出的 TCP 数据包。他告诉我,由于 TCP 数据包在系统级别的构造方式,找到具有相同有效负载的 TCP 数据包(即使相同的数据被发送多次)的概率非常低。我知道这可能是由于系统的 MTU 设置(通常为 1500 字节)等原因造成的,但我真正关注的是哪种概率统计数据?是否有任何特定协议可以更轻松地识别匹配的有效负载?

有帮助吗?

解决方案

编辑:抱歉,我最初的想法很荒谬。

你让我感兴趣,所以我用谷歌搜索了一下,发现 . 。如果您想编写自己的工具,您可能必须检查每个有效负载,最简单的方法可能是某种哈希/校验和来检查相同的有效负载。只需确保您检查的是有效负载,而不是整个数据包。

至于统计数据,我将不得不听从对 TCP 工作原理有更深入了解的人。

其他提示

定义有效负载唯一性的是在 tcp 上运行的协议,而不是 tcp 协议本身。

例如,您可能天真地认为在请求服务器主页时 HTTP 请求都是相同的,但引用者和用户代理字符串使有效负载不同。

同样,如果响应是动态生成的,它可能有一个日期标头:

日期:2008 年 9 月 12 日星期五 10:44:27 GMT

因此这将使响应负载不同。然而,如果内容是静态的,后续的有效负载可能是相同的。

请记住,由于序列号不同,实际的数据包会有所不同,序列号应该是递增的和伪随机的。

克里斯是对的。更具体地说,数据包头中的两到三条信息应该不同:

  • 序列编号(旨在不可预测的)随着传输和接收的字节数量增加。
  • 时间戳,一个包含两个时间戳的字段(尽管此字段是可选的)。
  • 校验和,因为有效负载 和标题 进行校验和,包括更改的序列号。

发送相同的有效负载可能相当常见(特别是如果您正在运行某种网络服务)。如果您的意思是发送相同的 tcp 段(标头和全部)或整个网络数据包(ip 和 up),那么概率会大大降低。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top