1、前期准备
可以通过网络嗅探软件(wireshark、Sniffer、 Ethereal等)对网络数据进行监听和分析,可以去捕获一个http数据包,分析数据包中的内容信息。
本文用Wireshark进行抓包处理, Wireshark是非常流行的网络抓包分析软件,功能十分强大。可以截取各种网络分组,显示网络封包的详细信息。另外对于获取到的包,Wireshark只能查看封包、而不能修改和转发封包,
(1)启动软件开始捕获
Wireshark捕获某一块网卡上的数据包,从图中可以看出有多个网卡,可以任意选取其中一个,本文选择WLAN进行捕获。选择WLAN — 捕获 — 开始(Ctrl+E)。
(2)对捕获的数据包进行分析
2、操作过程与分析
对其窗口进行分析,共有以下几个部分:
1、Display Filter(显示过滤器)
用于过滤数据包,其实就是个可以用于筛选指定数据。
上表只是列取了一部分表达式,其某一表达式的用途如下所示:
在封包列表中只显示tcp协议记录的数据。
2、Packet List Pane(封包列表)
依次表示为:NO(序号)、Time(时间)、Source(源地址)、Destination(目的地址)、Protocol(协议名称)、Length(协议长度)、Info(封包信息)、还有最后不同的颜色显示。
3、Packet Details Pane(封包详细信息)
此面板是比较重要的,各行信息可以对应与TCP/IP或OSI模型一一对应。
Frame: 物理层的数据帧概况。(物理层)
Ethernet II: 数据链路层以太网帧头部信息。(数据链路层)
Internet Protocol Version 4: 互联网层 IP 包头部信息。(网络层)
Transmission Control Protocol: 传输层的数据段头部信息,此处是 TCP。(传输层)
例:如想要查看TCP数据包内容,可以点开 Transmission Control Protocol "<"。
表中代表依次为:
(源端口号:53266) 每一个应用进程在运输层都对应一个端口号。 端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
(目的端口号:443) 说明发送方请求的是一个 web 服务(http)
(序号:2) 为了对发送的报文段进行可靠传输,对每个发送的报文段的第一个字节都进行编号,称为序号。
另外还有:确认号、数据偏移、首部长度、标志位、窗口值、校验和、紧急指针字段。这里不再一一说明。
窗口前面的标志位 flags(6个字段):
① 紧急指针 URG: 0。 当 URG= 1 时,表明紧急指针字段有效。 它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据),无需排队。
② 确认 ACK : 只有当 ACK =1 时确认号字段才有效。当 ACK = 0 时,确认号无效。
③ 推送 PSH (PuSH) : 当接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。
④ 复位 RST (ReSeT) : 当 RST = 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
⑤ 同步 SYN:在连接建立时用来同步序号。 同步 SYN = 1 表示这是一个连接请求或连接接受报文。
⑥ 终止 FIN (FINis) : 用来释放一个连接。 FIN= 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接
例:如查看数据链路层:
类型字段Type表示上一层用的什么协议,(0x0800对应ip协议)
在捕获数据包的链路层帧中各字段依次为:
目的地址:74:7d:24:9b:68:67
源地址:9c:da:3e:bf:c1:7e
类型:IPv4(0x0800)
4、Dissector Pane(16进制数据)
5、Miscellanous(地址栏,杂项)