0

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

4

4 回答 4

2

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

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

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

日期:格林威治标准时间 2008 年 9 月 12 日星期五 10:44:27

所以这将使响应有效负载不同。但是,如果内容是静态的,则后续有效负载可能相同。

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

于 2008-09-17T11:28:01.823 回答
2

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

  • 序列号(其目的是不可预测的)随着发送和接收的字节数而增加。
  • 时间戳,包含两个时间戳的字段(尽管此字段是可选的)。
  • 校验和,因为有效负载和标头都是校验和,包括不断变化的序列号。
于 2008-09-17T11:57:04.343 回答
1

编辑:对不起,我最初的想法很荒谬。

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

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

于 2008-09-17T10:34:15.153 回答
1

发送相同的 PAYLOAD 可能相当普遍(特别是如果您正在运行某种网络服务)。如果您的意思是发送相同的 tcp 段(header 和 all)或整个网络数据包(ip 和 up),那么概率会大大降低。

于 2009-02-27T16:41:52.087 回答