网络分析技术之葵花宝典(2)
5)一招制敌:使用过滤器找出可能有问题的网络行为
2. tcpdump参数使用技巧初次使用tcpdump时,使用tcpdump -h命令可以看到它有数十个参数.
3. tcpdump过滤器使用技巧tcpdump提供了丰富的过滤器,以支持抓包时的精细化控制,达到减少无效信息干扰的效果.我们常用的过滤器规则有下面几个:
以上几种过滤器规则,可以使用and或者or进行组合,例如:
则只抓取本机和某主机a.b.c.d之间基于TCP的目的端口或者源端口为x的数据通信.
则抓取TCP协议目的端口或者源端口为x的数据通信或者ICMP协议的数据通信. 4. tcpdump在安卓的使用方法随着移动应用的增加,移动设备访问系统应用的情况越来越多,我们经常会遇到有用户抱怨说使用移动设备访问网站等业务慢的问题.在这种情况下,如果能够同时在移动设备和服务器上同时抓包,那么对于分析问题将会有很大的帮助. 注意:在Android系统抓包时,需要root权限,不同型号手机的root过程不同,在此不再进行赘述.Android版本的tcpdump下载地址是:
另外,在Android系统抓包时,需要使用adb这个工具,下载地址是
我们把下载后的tcpdump和adb工具及其依赖的dll放在c:\adb目录下 四、相关原理及解读1. tcpdump程序调用模型我们先回顾下一般网络程序的调用图. 再看一下tcpdump程序调用模型.
可见,tcpdump这一类的应用程序完全不同,它依赖的是libpcap. libpcap使用的是一种称为设备层的包接口(packet interface on device level)技术. 使用这种技术,应用程序可以直接读写内核驱动层面的数据,而不经过完整的Linux网络协议栈. 在C语言中,调用设备层的包接口使用如下的方法:
PF_PACKET套接口:被用于接收和发送在设备驱动层(OSI Layer 2)的数据包. 在以上的函数调用中,socket_type可以是:
protocol:是指IEEE 802.3协议号. 特别的,如果是htons(ETH_P_ALL)则所有协议的数据包都被接收. 2. tcpdump与iptables的关系可能会有疑问,如果一种输入的网络通信(INPUT)被iptables给禁止了,那么tcpdump还可以抓取到吗? 答案是肯定的.
因此:
(编辑:ASP站长网) |