wireshark使用与抓包分析
使用wireshark验证网络字节序
1、下载安装wireshark
从http://www.wireshark.org/下载安装Windows平台的wireshark,双击安装文件安装即可,在安装过程中注意选择安装winpcap。安装过程简单,没有问题。
2、wireshark的使用
启动wireshark后,选择工具栏中的快捷键(红色标记的按钮)即可Startanewlivecapture。
主界面上也有一个interfacelist(如下图红色标记1),列出了系统中安装的网卡,选择其中一个可以接收数据的的网卡也可以开始抓包。
在启动时候也许会遇到这样的问题:弹出一个对话框说NPFdriver没有启动,无法抓包。在win7或Vista下找到C:\system\system32下的cmd.exe以管理员身份运行,然后输入netstartnpf,启动NPf服务。
重新启动wireshark就可以抓包了。
抓包之前也可以做一些设置,如上红色图标记2,点击后进入设置对话框,具体设置如下:
Interface:指定在哪个接口(网卡)上抓包(系统会自动选择一块网卡)。
Limiteachpacket:限制每个包的大小,缺省情况不限制。
Capturepacketsinpromiscuousmode:是否打开混杂模式。如果打开,抓取所有的数据包。一般情况下只需要监听本机收到或者发出的包,因此应该关闭这个选项。
Filter:过滤器。只抓取满足过滤规则的包。
File:可输入文件名称将抓到的包写到指定的文件中。
Useringbuffer:是否使用循环缓冲。缺省情况下不使用,即一直抓包。循环缓冲只有在写文件的时候才有效。如果使用了循环缓冲,还需要设置文件的数目,文件多大时回卷。
Updatelistofpacketsinrealtime:如果复选框被选中,可以使每个数据包在被截获时就实时显示出来,而不是在嗅探过程结束之后才显示所有截获的数据包。
单击“OK”按钮开始抓包,系统显示出接收的不同数据包的统计信息,单击“Stop”按钮停止抓包后,所抓包的分析结果显示在面板中,如下图所示:
为了使抓取的包更有针对性,在抓包之前,开启了QQ的视频聊天,因为QQ视频所使用的是UDP协议,所以抓取的包大部分是采用UDP协议的包。
3、对抓包结果的说明
wireshark的抓包结果整个窗口被分成三部分:最上面为数据包列表,用来显示截获的每个数据包的总结性信息;中间为协议树,用来显示选定的数据包所属的协议信息;最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。
使用wireshark可以很方便地对截获的数据包进行分析,包括该数据包的源地址、目的地址、所属协议等。
上图的数据包列表中,第一列是编号(如第1个包),第二列是截取时间(0.000000),第三列source是源地址(115.155.39.93),第四列destination是目的地址(115.155.39.112),第五列protocol是这个包使用的协议(这里是UDP协议),第六列info是一些其它的信息,包括源端口号和目的端口号(源端口:58459,目的端口:54062)。
中间的是协议树,如下图:
通过此协议树可以得到被截获数据包的更多信息,如主机的MAC地址(EthernetII)、IP地址(Internetprotocol)、UDP端口号(userdatagramprotocol)以及UDP协议的具体内容(data)。
最下面是以十六进制显示的数据包的具体内容,如图:
这是被截获的数据包在物理媒体上传输时的最终形式,当在协议树中选中某行时,与其对应的十六进制代码同样会被选中,这样就可以很方便的对各种协议的数据包进行分析。
4、验证网络字节序
网络上的数据流是字节流,对于一个多字节数值(比如十进制1014=0x03f6),在进行网络传输的时候,先传递哪个字节,即先传递高位“03”还是先传递低位“f6”。也就是说,当接收端收到第一个字节的时候,它是将这个字节作为高位还是低位来处理。
下面通过截图具体说明:
最下面是物理媒体上传输的字节流的最终形式,都是16进制表示,发送时按顺序先发送002354c3…0003f6…接收时也按此顺序接收字节。
选中totallength:1014,它的十六进制表示是0x03f6,从下面的蓝色选中区域可以看到,03在前面,f6在后面,即高字节数据在低地址,低字节数据在高地址(图中地址从上到下从左到右依次递增),所以可知,网络字节序采用的是大端模式。
转:http://www.360doc.com/content/11/0823/11/7566064_142611086.shtml