TCP抓包实战

TCP实战——Wireshark

网络调试工具——Wireshark

如何进行 TCP 抓包和调试

接口列表

Whireshark 可以帮你看到整个网络交通情况,也可以帮你深入了解每个封包。

选择一个网络接口Network Interface

Linux 下可以使用ifconfig指令看到所有的网络接口,Windows 下则使用 ipconfig。

TCP抓包实战_第1张图片

开启捕获功能

选择好网络接口之后,点击start

因为整个网络的数据非常多,大量的应用都在使用网络,你会看到非常多数据条目,每个条目是一次数据的发送或者接收。

TCP抓包实战_第2张图片

  • 序号(No.)是 Wireshark 分配的一个从捕获开始的编号。
  • 时间(Time)是从捕获开始过去的时间戳,具体可以在视图中设置,比如可以设置成中文的年月日等。这里有很多配置需要你自己摸索一下,我就不详细介绍了。
  • 源地址和目标地址(Source 和 Destination)是 IP 协议,注意这里有 IPv6 的地址,也有 IPV4 的地址。
  • 协议(Protocol)可能有很多种,比如 TCP/UDP/ICMP 等,ICMP 是 IP 协议之上搭建的一个消息控制协议(Internet Control Message Protocol),比如 Ping 用的就是 ICMP;还有 ARP 协议(Address Resolution Protocol)用来在局域网广播自己的 MAC 地址。
  • Info是根据不同协议显示的数据,比如你可以看到在TCP 协议上看到Seq 和 ACK。这里的 Seq 和 ACK 已经简化过了,正常情况下是一个大随机数,Whireshark 帮你共同减去了一个初始值。

Wireless抓包结果分析

下面图片可以清晰的看到一次tcp连接即三次握手,到HTTPS协议传输握手的完整过程:

1、本地客户端192.168.123.62向目标地址183.232.231.172(百度ip地址)发起的请求发出[SYN]

2、百度返回的[SYN-ACK]

3、然后客户端发送给百度[ACK]

4、可以看到 HTTPS 协议通过 TLSv1.2 发送了 Client Hello 到服务端。

5、接下来是 Server 返回给客户端 ACK,然后再发送给客户端一个 Server Hello

6、之后百度回传了证书certificate

7、最后开始交换密钥Client Key Exchange... ,直到 HTTPS 握手结束

在这里插入图片描述

两个请求同时进行,互不干扰:
TCP抓包实战_第3张图片

选择一个 TCP 协议的捕获,查看报文详细信息:

可以从不同的层面来看这次捕获。从传输层看是 TCP 段;从网络层来看是 IP 封包;从链路层来看是 Frame。

TCP抓包实战_第4张图片

选中一条消息后,下面会出现一个消息视图。还有一个二进制视图。二进制视图里面是数据的二进制形式,消息视图是对二进制形式的解读。

TCP抓包实战_第5张图片

Wireshark 追溯的是最底层网卡传输的 Frame(帧),可以追溯到数据链路层。

  • 最上面是 Frame 数据,主要是关注数据的收发时间和大小。
  • 接着是数据链路层数据,关注的是设备间的传递。你可以在这里看到源 MAC 地址和目标 MAC 地址。
  • 然后是网络层数据,IP 层数据。这里有 IP 地址(源 IP 地址和目标 IP 地址);也有头部的 Checksum(用来纠错的)。这里就不一一介绍了,你可以回到“06 | IPv4 协议:路由和寻址的区别是什么?”复习这块内容。
  • 最下面是传输层数据。 也就是 TCP 协议。关注的是源端口,目标端口,Seq、ACK 等。
  • 有的传输层上还有一个 TLS 协议,这是因为用 HTTPS 请求了数据。TLS 也是传输层。TLS 是建立在 TCP 之上,复用了 TCP 的逻辑。

鼠标右键一次捕获,可以看到很多选项,都是可以深挖的.

报文颜色

在抓包过程中,黑色报文代表各类报文错误红色代表出现异常;其他颜色代表正常传输。

文章参考《计算机网络通关 29 讲》—— 林䭽

你可能感兴趣的:(计算机网络,wireshark,wireshark,网络,计算机网络,tcpip)