在pcap文件中查找wireshark传输的数据



我有一个巨大的pcap文件。我想知道facebook在数据传输(上传,下载)方面的使用情况。为此,我使用wireshark来读取此文件。从一个关于stackoverflow的问题来看,有许多字段可以用来查找字节。

frame.len==243
ip.len=229
udp.length==209
data.len=201

现在,我有了测试框架。len和ip.len都给出了不同的结果。我认为什么是正确的?我是网络术语的新手,我必须找到正确的数据传输。

当您连接到服务器并请求一些简单的页面时会发生什么:

  1. 服务器应用程序生成请求的数据(例如<body>Hello world</body>字符串)并将其传递到HTTP层
  2. HTTP层根据RFC生成必要的头(指定HTTP版本、状态代码、内容类型等),并将其预处理为生成的数据,并将所有内容传递给TCP层
  3. TCP层可能会将数据分成多个部分(不是我们的情况,消息已经太小了),并在每个部分之前为传输层准备必要的信息(src/dst端口号、序列号、一些标志、校验和等),然后将其传递到IP级别
  4. IP层为路由准备必要的信息(源/目标地址、TTL和其他信息),然后将其传递到较低层(例如以太网)
  5. 以太网添加了它的一部分(MAC地址,可能是VLAN标签),并将所有内容推送到物理设备
  6. 生成的数据从服务器的NIC逐字节发送到网络

所以你的问题实际上取决于你。你想测量什么?它是"数据,我需要显示排除所有辅助信息"吗?还是"为了得到这张可爱的猫照片,我需要发送/接收的所有字节数"?以下是获取每个零件尺寸的字段列表:

  1. 仅获取数据长度(不幸的是,以字符串形式):http.content_length_header == "606"
  2. 获取(数据+HTTP头)长度:tcp.len == 973
  3. 获取(数据+HTTP+TCP+IP层):ip.len=1013
  4. 要发送每个字节:frame.len == 1027

如果要测量带宽占用,请使用frame.len。如果您对"纯站点权重"感兴趣,它应该独立于环境,所以使用http.content_length_header。考虑到以下因素,高层情况可能会变得更加复杂:

  • HTTPS时代意味着您无法轻松观察跟踪中的HTTP内容,因此tcp.len可能是最高选项
  • 一些数据(如音频、视频)通过不同的协议栈(如IP-UDP-RTP)传输

最新更新