我怀疑我的服务器有大量来自其客户端的http请求。我想测量HTTP流量。如何使用Wireshark做到这一点?还是可能存在使用其他工具的替代解决方案?
这是Wireshark中单个http请求/响应流量的外观。ping是由WinAPI函数:: InternetCheckConnection() 替代文本http://yowindow.com/shared/ping.png生成的
谢谢!
我怀疑我的服务器有大量来自其客户端的http请求。我想测量HTTP流量。如何使用Wireshark做到这一点?还是可能存在使用其他工具的替代解决方案?
这是Wireshark中单个http请求/响应流量的外观。ping是由WinAPI函数:: InternetCheckConnection() 替代文本http://yowindow.com/shared/ping.png生成的
谢谢!
Answers:
Ping数据包应使用8(回声)或0(回声回复)的ICMP类型,因此可以使用以下捕获过滤器:
icmp
和显示过滤器:
icmp.type == 8 || icmp.type == 0
对于HTTP,可以使用以下捕获过滤器:
tcp port 80
或以下显示过滤器:
tcp.port == 80
要么:
http
请注意,的过滤器http
与其他两个过滤器不同,它将包括握手和终止数据包。
如果要测量连接数而不是数据量,可以将捕获或显示过滤器限制在通信的一侧。例如,要仅捕获发送到端口80的数据包,请使用:
dst tcp port 80
将其与http
显示过滤器结合使用,或使用:
tcp.dstport == 80 && http
欲了解更多有关捕获过滤器,请阅读“ 过滤而捕捉 ”从Wireshark的用户指南中,捕获过滤器上的Wireshark的维基页面,或PCAP-滤波器(7)手册页。对于显示过滤器,请尝试Wireshark Wiki上的“ 显示过滤器”页面。在“过滤器表达式”对话框,可以帮助你建立显示过滤器。
不是ping。正如outis 所说,ping是一个ICMP回显请求。您的跟踪记录将显示HTTP连接的建立和立即终止,这就是这样InternetCheckConnection()
做的。有问题的IP 77.222.43.228解析为http://repkasoft.com/,我想这是您传递给的URL InternetCheckConnection()
。
您可以使用捕获或显示过滤器对此IP过滤流量host == 77.222.43.228
。
使用Wireshark 1.2+,我将运行以下批处理文件:
:: Script to save a wireshark trace
:: tshark -D to get interface id
@echo off
C:
cd C:\Temp\NetTracing
set PATH=%PATH%;C:\Program Files\Wireshark
echo Tracing host 127.1 or 172.1.1.1 or 10.0.0.1
tshark.exe -i 4 -a duration:900 -S -f "tcp port 80" -w trace.cap