流量剖析:区分流媒体和下载等服务?

Traffic profiling: distinguish between streaming and downloading and other services?

我是 Libpcap 和 Wireshark 的新手:对于我的学校项目,我必须区分不同类型的流量(SMTP、网络流量、VoIP、在线游戏、下载、流媒体等)。 虽然起初我依赖于端口号(SMTP 为 25,HTTP/HTTPS 为 80/443,...),但出现了一些问题:总是有更多站点支持 HTTPS(因此,不再进行有效负载调查)和简单的端口number 不能告诉我重要的区别(端口 443 可能带来不同类型的服务)。

所以我想根据一些已知的行为对流量进行分类,例如下载和流式传输具有不同的带宽(比特率):第一个具有恒定的高带宽,第二个具有高带宽峰值,当您有你需要的"piece"。

由于我对该主题不熟悉,这是我从 Web 获得的唯一已知行为。 谁能给我指出正确的方向?

  1. 使用 wireshark 将您的流量划分为会话。
  2. 对于那些根据 protocol/port 分类明确的人,进行分类(例如端口 25 = SMTP 应该是给定的)。
  3. 对于那些需要进一步分析的,找到合适的特征,例如:
    • 平均数据包大小,
    • 包大小标准 deviation/variance,
    • 在 upstream/downstream 方向上每秒
    • 个数据包,
    • 总数据量,
    • up/downstream数据量比,
    • up/downstream包数比
    • 还有很多你能想到的
  4. 使用 3. 中特征的数值,构建向量,并应用你所有的分类知识:也许这是支持向量机的情况?也许你只是看看你可能看到的集群并得出结论?也许您只是生成 "known" 所有相关类型的流量并将其映射到该向量 space,将每个未知会话分类为欧几里德距离 - "closest" 已知流量类型?也许您根据从主成分分析中学到的知识对向量进行预处理?

如您在 4. 中所见,有很多 分类工具,您需要精通分类理论才能处理您的问题。