在 pcap 文件中查找 wireshark 传输的数据
Find data transfered by wireshark on pcap file
我有一个巨大的 pcap 文件。我想知道 facebook 在数据传输(上传、下载)方面的使用情况。为此,我使用 wireshark 来读取这个文件。从 question on Whosebug 中,有许多字段可用于查找字节。
frame.len==243
ip.len=229
udp.length==209
data.len=201
现在,我测试了 frame.len 和 ip.len 都给出了不同的结果。我应该认为正确的是什么?我是网络术语的新手,我必须找到正确的数据传输。
当您连接到服务器并请求一些简单页面时会发生什么:
- 服务器应用程序生成请求的数据(例如
<body>Hello world</body>
字符串)并将其传递给 HTTP 层
- HTTP 层根据 RFC(指定 HTTP 版本、状态代码、内容类型等)生成必要的 header,将其添加到生成的数据中并将所有内容传递给 TCP 层
- TCP 层可能会将数据分成多个部分(不是我们的情况,消息已经太小了)并为每个部分添加必要的传输层信息(src/dst 端口号、序列号、一些标志,校验和等),然后将其传递到 IP 级别
- IP 层为路由添加必要的信息(source/dest 地址、TTL 和其他内容),然后将其传递到较低层(例如以太网)
- 以太网添加其部分(MAC 地址,可能是 VLAN 标记)并将所有内容推送到物理设备
- 结果数据从服务器的网卡byte-by-byte发送到网络
所以你的问题实际上取决于你。你想测量什么?是"data, which I need to display excluding all auxiliary info"吗?还是"all number of bytes I need to send/receive for getting this lovely cat picture"?以下是获取每个部分大小的字段列表:
- 仅获取数据长度(不幸的是,作为字符串):
http.content_length_header == "606"
- 获取(数据+HTTPheader)长度:
tcp.len == 973
- 获取(数据+HTTP+TCP+IP层):
ip.len=1013
- 获取发送的每个字节:
frame.len == 1027
如果要测量带宽占用,请使用frame.len
。如果你对 "pure site weight" 感兴趣,它应该独立于环境,所以使用 http.content_length_header
。考虑到以下因素,事情可能会在高层变得更加复杂:
- HTTPS 时代意味着您无法轻易地在跟踪中观察到 HTTP 内容,因此
tcp.len
可能是最高选项
- 一些数据(例如音频、视频)通过不同的协议栈(例如 IP - UDP - RTP)传输
我有一个巨大的 pcap 文件。我想知道 facebook 在数据传输(上传、下载)方面的使用情况。为此,我使用 wireshark 来读取这个文件。从 question on Whosebug 中,有许多字段可用于查找字节。
frame.len==243
ip.len=229
udp.length==209
data.len=201
现在,我测试了 frame.len 和 ip.len 都给出了不同的结果。我应该认为正确的是什么?我是网络术语的新手,我必须找到正确的数据传输。
当您连接到服务器并请求一些简单页面时会发生什么:
- 服务器应用程序生成请求的数据(例如
<body>Hello world</body>
字符串)并将其传递给 HTTP 层 - HTTP 层根据 RFC(指定 HTTP 版本、状态代码、内容类型等)生成必要的 header,将其添加到生成的数据中并将所有内容传递给 TCP 层
- TCP 层可能会将数据分成多个部分(不是我们的情况,消息已经太小了)并为每个部分添加必要的传输层信息(src/dst 端口号、序列号、一些标志,校验和等),然后将其传递到 IP 级别
- IP 层为路由添加必要的信息(source/dest 地址、TTL 和其他内容),然后将其传递到较低层(例如以太网)
- 以太网添加其部分(MAC 地址,可能是 VLAN 标记)并将所有内容推送到物理设备
- 结果数据从服务器的网卡byte-by-byte发送到网络
所以你的问题实际上取决于你。你想测量什么?是"data, which I need to display excluding all auxiliary info"吗?还是"all number of bytes I need to send/receive for getting this lovely cat picture"?以下是获取每个部分大小的字段列表:
- 仅获取数据长度(不幸的是,作为字符串):
http.content_length_header == "606"
- 获取(数据+HTTPheader)长度:
tcp.len == 973
- 获取(数据+HTTP+TCP+IP层):
ip.len=1013
- 获取发送的每个字节:
frame.len == 1027
如果要测量带宽占用,请使用frame.len
。如果你对 "pure site weight" 感兴趣,它应该独立于环境,所以使用 http.content_length_header
。考虑到以下因素,事情可能会在高层变得更加复杂:
- HTTPS 时代意味着您无法轻易地在跟踪中观察到 HTTP 内容,因此
tcp.len
可能是最高选项 - 一些数据(例如音频、视频)通过不同的协议栈(例如 IP - UDP - RTP)传输