玩转网络抓包利器:Wireshark常用协议分析讲解

Wireshark是一个开源的网络协议分析工具,它能够捕获和分析网络数据包,并以用户友好的方式呈现这些数据包的内容。Wireshark 被广泛应用于网络故障排查、安全审计、教育及软件开发等领域。关于该工具的安装请参考之前的文章:地址 ,接下来开始正式讲解其实用技巧。

目录

ARP协议分析

ICMP协议分析

TCP协议分析

HTTP协议分析


ARP协议分析

ARP(Address Resolution Protocol),也叫地址解析协议,是一种用于将网络层地址(如IP地址)转换为数据链路层地址(如MAC地址)的协议。根据IP地址获取物理地址的一个TCP/IP协议。

接下来我们使用wireshark来抓取一下arp的包,这里我们使用cmd去ping一下百度的包进行尝试:

然后我们通过显示过滤器来检索一下arp的包处理进行查看:

我们点击数据包查看具体的信息,其展示的具体数据含义如下:

Ethernet II, Src: 源mac地址  Dst: 目标mac地址

Address Resolution Protocol (request):发送request请求包

Hardware type: Ethernet (1):硬件类型

Protocol type: IPv4 (0x0800):网络层协议类型

Hardware size: 6:mac地址长度

Protocol size: 4:协议长度

Opcode: request (1):请求

Sender MAC address: XiaomiMobile_df:5e:6a (88:c3:97:df:5e:6a):路由物理地址

Sender IP address: 192.168.31.1:网关发送者IP

Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00):目标mac地址

Target IP address: 192.168.31.8:目标ip

Address Resolution Protocol (reply):接收reply响应请求包

Opcode: reply(2):响应

Sender MAC address: Intel_3f:4a:d5 (d4:e9:8a:3f:4a:d5):发送者的MAC地址

Sender IP address: 192.168.31.8:发送者的IP地址

总的来说,ARP协议是用于将网络层地址转换为数据链路层地址的重要协议,它使得主机和路由器能够正确地通信,并且对于构建局域网等小型网络非常重要。

ICMP协议分析

ICMP(Internet Control Message Protocol),也称互联网控制消息协议,是用于在IP网络上发送控制消息的协议。它通常被用于诊断网络问题、报告错误和提供状态信息。

icmp协议一般是我们在发送ping的请求会产生,所有这里我们使用cmd去ping一下本地电脑的网关进行尝试:

接下来我们选择其中一条数据,对该数据包中的数据进行一个简单的解读:

Frame 33:物理层相关基础信息

Ethernet II:链路层相关基础信息

Internet Protocol Version:基于ip协议的相关基础信息

Internet Control Message Protocol:ICMP相关数据描述

Type: 8 (Echo (ping) request):发的请求包

Code:0:代表响应,发送成功

Checksum: 0x4cb3 [correct]:检查发送网关的数据是否被篡改过,校验完整性

[Checksum Status: Good] Identifier (BE): 1 (0x0001):校验结果未Good,表示没有问题

Identifier (LE): 256 (0x0100):表示标识符的值, 用于区分不同的数据包或会话。

Sequence Number (BE): 168 (0x00a8):表示序列号的值,用于按顺序排列和跟踪数据包的传输顺序。

Sequence Number (LE): 43008 (0xa800):表示序列号的值,序列号用于按顺序排列和跟踪数据包的传输顺序。

[Response frame: 34]:表示一个响应帧是对先前发送的请求帧的回应。

Data:具体发给网关的数据包,是一个加密的数据

总的来说,ICMP 是一种网络协议,用于在 IP 网络上传输控制消息,以确保网络的正常运行并提供诊断和错误报告功能。

TCP协议分析

TCP(Transmission Control Protocol),也称传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层协议。它在计算机网络中扮演着至关重要的角色,用于确保数据的可靠传输。

握手和挥手过程是 TCP 协议中重要的步骤,用于建立和断开连接。通过三次握手,客户端和服务器建立起可靠的连接;通过四次挥手,双方安全地关闭连接,确保数据的可靠传输和连接资源的释放。以下对tcp的三次握手四次挥手做一个简要的概述:

三次握手:是建立 TCP 连接时使用的一种协议,用于确保通信双方能够正常交换数据。下面是 TCP 三次握手的流程:

第一步客户端向服务端发送连接请求(SYN)

客户端(Client)首先向服务端(Server)发送一个带有 SYN(同步序列编号)标志的数据包,表示客户端想要建立连接,并选择一个初始的序列号(Sequence Number)。

第二步服务端收到连接请求并回复(SYN + ACK)

服务端收到客户端发送的 SYN 数据包后,会回复一个带有 SYN 和 ACK 标志的数据包,表示服务端已经接受了客户端的连接请求,并选择自己的初始序列号,同时确认客户端的序列号。

第三步客户端收到服务端的回复并发送确认(ACK)

最后,客户端再次向服务端发送一个带有 ACK 标志的数据包,表示客户端也确认了服务端的序列号。

完成了以上三个步骤,TCP 连接就建立起来了,通信双方可以开始正常地进行数据传输。

总的来说,TCP 三次握手协议确保了通信双方都能够正确地同步序列号,并确认彼此的能力和意愿进行数据传输,从而建立起可靠的连接。以下是具体流程图的实现:

如下是tcp建议三次握手的流程,其他具体参数的含义大家自行去了解,这里不再赘述:

四次挥手:在TCP连接中,当一端决定关闭连接时,需要经过四个步骤来完成连接的断开。下面是 TCP 四次挥手的流程:

第一步:当客户端决定关闭连接时,会发送一个 FIN(结束)报文段给服务器,表示不再发送数据。客户端进入 FIN_WAIT_1 状态。

第二步:服务器收到客户端的 FIN 报文段后,会发送一个 ACK 报文段作为确认,表示已经收到了客户端的关闭请求。服务器进入 CLOSE_WAIT 状态。

第三步:如果服务器也希望关闭连接,它会发送一个 FIN 报文段给客户端,表示自己也准备关闭连接。服务器进入 LAST_ACK 状态。

第四步:客户端收到服务器的 FIN 报文段后,会发送一个 ACK 报文段作为确认,并进入 TIME_WAIT 状态。在经过一段时间后,客户端关闭连接,服务器也关闭连接,双方完成挥手,进入 CLOSED 状态。

四次挥手确保了双方在关闭连接时的可靠性和顺利性,同时允许双方在关闭前完成未完成的数据传输。这一过程是TCP连接的正常断开流程,以确保数据的完整性和连接资源的释放。以下是具体流程图的实现:

这里我们可以通过流量图的方式查看,点击统计流量图

选择tcp

查看tcp四次挥手的流程如下:

HTTP协议分析

HTTP(HyperText Transfer Protocol),是一种用于传输超文本的应用层协议。它是一种无状态的协议,通常基于客户端-服务器模型,在Web浏览器和Web服务器之间传输数据。其底层也是用到了tcp协议,所有来说相对简单一点。

接下来我们通过cmd终端命令请求一下百度,并抓取一下网络的包,如下:

接下来我们开始分析一下数据包:

然后我们建议对请求成功的数据进行数据流追踪:

相关推荐

  1. Python wireshark分析

    2024-02-22 21:02:02       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-22 21:02:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-22 21:02:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-22 21:02:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-22 21:02:02       20 阅读

热门阅读

  1. xml里面<foreach>标签用法

    2024-02-22 21:02:02       27 阅读
  2. K8S的apiVersion含义

    2024-02-22 21:02:02       24 阅读
  3. Spring 声明式事务不生效的问题如何解决

    2024-02-22 21:02:02       26 阅读
  4. Linux CFS调度器

    2024-02-22 21:02:02       29 阅读
  5. XGB-8: 加速故障时间的生存分析

    2024-02-22 21:02:02       34 阅读
  6. vue3与vue2的区别

    2024-02-22 21:02:02       26 阅读
  7. 前端___

    2024-02-22 21:02:02       33 阅读
  8. 题目 1209: 密码截获

    2024-02-22 21:02:02       31 阅读