找到具有相同负载的TCP数据包的概率?

时间:2008-09-17 09:37:21

标签: statistics tcp protocols probability packets

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

4 个答案:

答案 0 :(得分:2)

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

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

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

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

这样会使响应有效负载变得不同。但是,如果内容是静态的,则后续有效负载可能相同。

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

答案 1 :(得分:2)

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

  • 序列号(即 意图是不可预测的) 随着数量的增加而增加 发送和接收的字节数。
  • 时间戳,包含两个字段的字段 时间戳(虽然此字段是可选的)。
  • 校验和,因为有效负载和header 都经过校验和,包括更改序列号。

答案 2 :(得分:1)

编辑:对不起,我原来的想法太荒谬了。

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

至于统计数据,我将不得不推荐给对TCP工作有更多了解的人。

答案 3 :(得分:1)

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