概述

wireshark是一款非常优秀的网络抓包与分析软件,它可以把计算机上某一块网卡的所有数据包都抓取下来供用户分析。wireshark自带非常完整的网络协议解析功能,可以解析几乎所有的常见网络协议。

使用界面

打开软件,进入欢迎界面,选择需要抓包的网卡。
Alt text

点击网卡后自动进入抓包界面,wireshark自动按时间顺序把本网卡上所有的数据包都列举出来,点中某一个数据包后,下面显示的是该数据包的详细信息,包括这个数据包的二进制数据,以及其中所包含的协议信息。也可以双击某一个数据包,在弹出的界面中进行分析。右键某一个数据包,点击“追踪流”可以查看某一连接的所有交互数据。
Alt text

解包分析

使用wireshark的主要目的是分析网络数据包的交互过程与每个包的构造。以下是各种数据包的组成。

以太网帧

Alt text

IP包

Alt text

ARP包

Alt text

ICMP包

Alt text
Alt text

TCP包

Alt text

UDP包

Alt text

常用的抓包过滤选项

使用wireshark抓包的一大技巧就是使用各种过滤选项对所数据包进行筛选,以快速定位需要分析的包。
Alt text

指定协议

ip arp icmp tcp udp http

指定MAC地址

eth.addr==00:12:17:b7:86:01
eth.src==00:12:17:b7:86:01
eth.dst==ac:2b:6e:77:9d:8b

指定ip地址或源/目的IP地址

ip.addr==192.168.0.102
ip.src==192.168.0.102
ip.dst==192.168.0.102

指定端口

只有TCP和UDP有端口的概念:
tcp.port==80
udp.port==80

以上所有选项可以用or或||连接,表示或的关系,或是以and 或&& 连接,表示与的关系。当过滤选项表达式正确时,输入框显示的是浅绿色,当过滤表达式设置不正确时,输入框显示红色。

网络通信过程分析

以服务器建立连接,客户端给a发送三次数据为例,解析一次通信过程中各种标志及序号的的变化。

问题验证

  1. DNS在传输层是用什么协议实现的,端口是多少?
  2. 通信过程中拔掉网线,会发生什么,能收到数据包吗?
  3. TCP链接中的服务器的监听队列满了以后,再向服务器连接,数据包的交互过程是怎么样的?
  4. 通信过程中对客户端或服务端任意一端按Ctrl+C强制终止程序,数据包是数据交互的?

  • 无标签