wireshark tcp握手,使用wireshark分析tcp协议
之前写过一篇博客:用Fiddler调试HTTP和HTTPS。本文介绍了另一个简单易用的数据包捕获工具wireshark,它用于获取网络数据包,包括http、TCP、UDP等网络协议数据包。
记得大学的时候学过TCP的三次握手协议。那时候我才知道,虽然在书上看过很多TCP和UDP的资料,但是从来没有真正见过这些包,总觉得像飘在云上,没有实际学过。有了wireshark,这些网络数据包就可以被拦截,数据包中的每一个字段都可以看得一清二楚。可以加深我们对网络协议的理解。
对我来说,wireshark是学习网络协议的最佳工具。
阅读目录
Wireshark推出wireshark vs FIDDLER,这是wireshark做不到的。谁可以使用wiresharkwireshark抓取数据包?wireshark窗口介绍wireshark显示过滤、保存过滤、过滤表达式包列表窗格包细节窗格)Wireshark和对应的OSI七层模型TCP包;TCP三次握手过程实例分析
Wireshark简介
Wireshark的官方下载网站:http://www.wireshark.org/
Wireshark是一款非常流行的网络数据包分析软件,功能强大。它可以拦截各种网络数据包,并显示网络数据包的详细信息。
Wireshark是开源软件,可以放心使用。它可以在Windows和Mac OS上运行。
用wireshark的人一定要知道网络协议,否则看不懂wireshark。
Wireshark做不到的事情
出于安全原因,wireshark只能查看数据包,但不能修改数据包的内容或发送数据包。
Wireshark VS Fiddler
Fiddler是一个运行在windows上的程序,专门用来捕获HTTP和HTTPS。
Wireshark可以获得HTTP和HTTPS,但它不能解密HTTPS,所以wireshark不能理解HTTPS的内容。
综上所述,如果你处理的是HTTP、HTTPS或者Fiddler,其他协议如TCP、UDP都会使用wireshark。
其他同类工具
微软的网络监视器
嗅探器
谁会使用wireshark?
1.网络管理员将使用wireshark检查网络问题。
2.软件测试工程师使用wireshark捕获数据包来分析他们测试的软件。
3.从事socket编程的工程师会使用wireshark进行调试。
4.听说华为和中兴的大部分工程师都会用wireshark。
简而言之,任何与网络有关的东西都可能使用wireshark。
Wireshark开始抢包。
开始界面
Wireshark是一个网络数据包,它捕获机器上的某个网卡。当机器上有多个网卡时,您需要选择一个网卡。
单击capture-接口.将出现以下对话框,并选择正确的网卡。然后点击“开始”按钮开始抓取袋子。
Wireshark窗口简介
WireShark主要分为这些接口。
1.显示过滤器,用于过滤。
2.数据包列表窗格,显示捕获的数据包,包括源地址、目的地址和端口号。不同的颜色,代表
3.数据包详细信息窗格,显示数据包中的字段。
4.剖析器窗格(十六进制数据)
5.杂项(地址栏,杂项)
Wireshark显示过滤
过滤很重要。新手在使用wireshark时,会在几千条甚至上万条记录中得到大量冗余信息,很难找到自己需要的部分。变得迷茫。
过滤器将帮助我们在大量数据中快速找到我们需要的信息。
有两种过滤器,
一个是显示过滤器,在主界面上,用于在捕获的记录中查找所需的记录。
一个是捕获过滤器,用来过滤捕获的数据包,避免捕获太多记录。在捕获中设置-捕获过滤器
保存过滤
在过滤器栏上,在填充过滤器的表达式后,点击保存按钮并给它一个名称。例如“过滤器102”,
过滤器栏上还有一个按钮“过滤器102”。
过滤表达式的规则
表达式规则
1.协议过滤
例如TCP,只显示TCP协议。
2.IP过滤
比如ip.src==192.168.1.102说明源地址是192.168.1.102,
Ip.dst==192.168.1.102,目的地址为192.168.1.102。
3.端口过滤
Tcp.port==80,端口为80
Tcp.srcport==80,只显示Tcp协议80愿意端口的。
4.Http模式过滤
Http.request.method==GET ,则只显示HTTP GET方法的。
5.逻辑运算符是AND/OR
常用的筛选表达式
数据包列表窗格(数据包列表窗格)
列表面板显示编号、时间戳、源地址、目的地址、协议、长度和数据包信息。您可以看到不同的协议以不同的颜色显示。
您还可以修改这些显示颜色规则、视图颜色规则。
数据包详细信息窗格(数据包详细信息窗格)
该面板是我们最重要的面板,用于查看方案中的每个字段。
每一行的信息如下
帧:物理层数据帧概述
以太网II:数据链路层以太网帧的报头信息
因特网协议版本4:因特网层中IP分组的报头信息
传输控制协议:传输层t的数据段的头信息,这里是TCP。
超文本传输协议:应用层的信息,这里是HTTP协议。
Wireshark和相应的OSI七层模型
TCP数据包的具体内容
从下图中可以看到wireshark捕获的TCP数据包中的每个字段。
分析一个实例的TCP三次握手过程
看到这里,我们基本上对wireshak有了初步的了解。现在我们来看一个TCP三次握手的例子。
三次握手过程是
这张图我看过很多次了。这次我们就用wireshark来实际分析一下三次握手的过程。
打开wireshark,打开浏览器,输入http://www..com/tankxiao.
在wireshark中进入http filtering,然后选择GET /tankxiao HTTP/1.1的记录,右键点击‘Follow TCP Stream’,
这样做的目的是获取打开网站的浏览器相关的数据包,会得到下图。
从图中可以看出,wireshark从三次握手中截获了三个数据包。第四个包是HTTP,说明HTTP确实使用TCP建立连接。
第一个握手包
客户端发送一个TCP,标志位为SYN,序列号为0,代表客户端请求建立连接。如下图
第二握手包
服务器发回确认数据包,标志位为SYN、ACK ACK。将确认号设置为客户的I S N加1,即0 1=1,如下图所示。
三次握手的数据包
客户端再次发送确认数据包(ACK)。SYN标志位为0,ACK标志位为1。服务器将ACK) SYN的序列号字段1放入确认字段中并发送给另一方。ISN的1被写入数据段,如下图所示:
这样就通过了TCP三次握手,建立了连接。
来自:http://www . cn blogs . com/tank Xiao/archive/2012/10/10/2711777 . html