关于Wireshark,熟悉网络或网络性能方面的同学应该知道,使用Wireshark工具通过抓取数据包,对系统网络问题进行分析,该工具简单、易用、易学!
百度百科上面是这样描述的:Wireshark(前称Ethereal)是一个网络封包分析软件,网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
Wireshark抓包原理:把Wireshark主机上的网卡接入有线或无线网络开始抓包时,介于有线网卡和抓包引擎之间的软件驱动程序便会参与其中。在Windows和UNIX平台上,分别对应WinPacp和Libcap驱动程序,对于无线网卡,抓包时启动AirPacp驱动程序。
学习Wireshark网络分析,先了解OSI网络协议模型共分为七层:
应用层 指网络操作系统和具体的应用程序,对应WWW服务器、FTP服务器等应用软件
表示层 数据语法的转换、数据的传送等
会话层 建立起两端之间的会话关系,并负责数据的传送
传输层 负责错误的检查与修复,以确保传送的质量,是TCP工作的地方。(报文)
网络层(互联网层) 提供了编址方案,IP协议工作的地方(数据包)
数据链路层 将由物理层传来的未经处理的位数据包装成数据帧
物理层 对应网线、网卡、接口等物理设备(位)
一、wireshark工具界面介绍
抓取网络包后,wireshark面板每一行对应一个网络报文,每一个网络报文包含的信息:
报文接收时间(相对开始抓取的时间点)、源地址IP、目标地址IP、协议以及报文信息。
Frame:物理层的数据帧概况
Ethernet II :数据链路层以太网头部帧
Internet Protocol Version 4:互联网层IP包头的信息
Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议
Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议
在Wireshark中关于数据包的叫法有三个术语,分别是帧、包、段
所以对于包结构的分析关键在于三个知识点的学习:http header, tcp header, ip header
二、Wireshark架构
wireshark可以被划分为四个主要模块:Capture Core,WireTap, Protocol Interpreter and Dissector和GUIintrerface。其中Capture Core使用pcap(windows下为winpcap,linux下为libpcap)抓取网络数据包,获取数据包后,WireTap把它保存为二进制文件,interpreter and dissector就是把二进制文件展现成用户容易理解的文本形式,其中dissector又分为build-in和plug-in两种,build-in很好理解,plug-in在1.3节会详细介绍一下;GUIinterface,顾名思义就是用户界面了。
架构图:
三、过滤抓包
Wireshark抓包过滤器运作机制是基于tcpdump程序的。
Wireshark的Filter分为两种,一种为Capture Filter,另一种是Display Filter。
启动wireshark后,在抓包前,可以使用Capture Filter进行过滤抓包
过滤条件:
#针对服务器IP地址进行过滤抓取
host 58.67.220.228
#针对抓取请求端口进行过滤抓取
port 9080
#只抓取源或目的端口范围的2000到2500之间的TCP数据包
tcp portrange 2000-2500
另一种是Display Filter,这是在抓取包之后,在wireshark界面上操作,进行过滤信息