在学习网络相关知识的时候,需要对网络协议进行分析。网络协议分析软件用的最多的就是 Wireshark 这个软件,今天就简单总结一下如何使用这个软件进行TCP三次握手和四次挥手的查看。
要查看三次握手和四次挥手的数据,那么就必须找一个软件有连接服务器和断开服务器的动作,这样才能查看到完整的协议流程。这里就使用有道词典这个软件来分析,当打开词典查词时,有道词典这个软件就会通过TCP三次握手来连接服务器,然后在关闭软件,那么就会和服务器之间进行TCP四次挥手断开连接。
首先打开Wireshark软件,在工具栏中选择捕获—选项。
在这个网口选择界面选择自己联网的网卡,我这里是使用无线路由器联网的,就选择WLAN,记住地下这个IP地址,192.168.3.108,一会分析协议的时候需要用到。网卡选择好之后选择开始。
这个软件就和自动开始捕获网络上所有的数据了,接下来打开有道词典,查询一个单词。
单词查询完毕之后,在关闭有道词典。接着在Wireshark的界面停止数据捕获。
这时会发现网络上的数据非常多,要在这么多数据里面找到自己想要的数据是很困难的。
下面就需要将和有道词典TCP通信的相关数据单独拿出来分析。点一下界面上的Protocol将数据按照协议进行排序。
然后在TCP相关协议里面找和自己的IP地址有关的数据,我这里的IP地址是192.168.3.108
可以看到自己的IP地址 192.168.3.108 数据交互的IP地址也有很多个,也不知道哪个是有道词典的网址,这时可以主动去查看有道词典的网址。首先进入到有道词典的官网中,去复制官网的网址。
复制这个youdao.com,然后按键盘上的Windows键+R键,打开运行窗口。
输入命令 cmd,然后按确定按钮。
此时会打开一个命令框,在里面输入 ping
在输入一个空格,然后单击鼠标右键,粘贴刚才复制的网址 youdao.com,然后按回车键。
这时命令中的这个IP地址就是有道词典官网的IP地址,现在在网络数据中找一找有没有这个IP地址。
直接在软件界面中输入 ip.src == 103.74.50.106 然后按回车键,或者用鼠标点击最右边的蓝色背景的箭头。
此时出现了一个很尴尬的问题,没有找到和这样IP通信的数据,难道刚才用有道词典查词是一个幻觉? 当然不是,因为好多公司的官网会有好几个IP地址,有道词典查词访问的IP和网页上访问官网的IP地址不是一个,但是通过刚才的ping命令可以知道,有道词典官网的IP段是 103.74.50.XXX,下面就可以在数据中查找以103.74.50开头的IP地址。
单击命令输入框后面的红色×,退出查询界面。然后在数据里面找103.74.50开头相关IP。
在工具栏中单击source,将源地址的 IP地址按照大小排序,可以看到以103.74.50开头的IP地址有两个,一个是103.74.50.98,一个是103.74.50.116,那这两个IP地址到底是不是有道词典服务器的地址呢,直接在浏览器的地址栏输入这两个IP地址。
输入的IP地址为103.74.50.116时,网页中显示了youdao,说明这个IP地址肯定是有道词典访问的服务器地址,下面就在数据中专门查看本机IP和这个IP的数据传输过程。
第一种方法 ,直接在应该过滤器栏输入 ip.src == 103.74.50.116 or ip.dst == 103.74.50.116 这句话的意思是,筛选出 源地址是103.74.50.116 或者目的地址是 103.74.50.116的数据。然后点击后面的箭头,或者按回车键。
此时就将需要的数据筛选出来了。
此时数据的顺序是乱的,单击工具啦上的Time,将数据按照时间进行排序。
这时候从数据上就可以很清晰的看出来TCP连接时的握手信号和TCP断开时的挥手信号。但是挥手信号只要3条,按照正常情况下来说应该有4条信号。这是怎么回事呢?先别着急再看看103.74.50.98地址相关的数据。将数据筛选栏中的IP地址最后一位都改成98,然后重新筛选一次数据。
本地IP和这个地址的TCP通信数据比较多,本机IP和这个IP前三条通信也是三次握手信号。
这个IP的最后几条数据可以看到这是TCP四次挥手的数据。这个TCP通信的连接和断开数据都是完整的,说明这个IP地址很可能是也是有道词典的IP地址,电脑上的有道词典和服务器连接时,通过103.74.50.98和103.74.50.116这两个IP地址同时连接。
上面这种直接在命令筛选框中输入IP的方法,有点麻麻烦,有时候还会想不起来命令如何输入,下面在演示另一种方法来筛选数据。
在源地址这一列中找到自己想要筛选的IP,然后用鼠标在这个IP地址上点一下,把这个IP选中,然后单击鼠标右键。选择准备作为过滤器----选中。
此时命令筛选框中就会自动显示出一条命令。
接下来在目的地址这一栏也选中自己想要筛选的IP。
然后单击鼠标右键选择准备作为过滤器 ---- 或选中
这个的意思是这条命令和上一条命令的关系是或的关系,也就是两条命令中只要有一个成立就可以。
按照同样的方法,将103.74.50.98这个IP也添加到命令栏中去,这样就可以同时查看这两个IP的通信数据了。
命令选择完成后单击后面的箭头,开始筛选数据。
这样本机和这两个IP之间的通信数据就都可以看到了。
分析数据可以看出,本机IP和103.74.50.98这个IP地址进行了好几次握手,也就是软件界面上背景为灰色的地方都是TCP三次握手的相关数据。
同时本机IP也和103.74.50.116这个IP地址进行了握手。
当软件关闭的时候,本机IP向103.74.50.116和103.74.50.98这两个IP地址都发送了挥手信号。通过这个就可以判断出,有道词典这个软件和服务器连接的时候是通过2个IP地址同时连接的。
还可以通过流量图来查看数据通信过程,在工具栏中选择统计--- 流量图
勾选上限制显示过滤器,流类型选择TCP Flows,然后通过上面就可以看出来数据通信的过程了。
如果是第一次使用这个软件的话,就会发现捕获的数据,发送和应答的序列号都是从0开始的,而不是资料上说的随机序列号。
这不是软件捕获的数据有问题,而是这个软件默认会把序列号显示为相对序列号。如果向查看原始序列号的话,在工具栏中选择编辑—首选项
再打开的界面中选择 Probocols,展开底下的选项。
在展开的选项中选择TCP,然后在右边的选项中将 Relative 开头的这个选项前面的勾去掉,然后点OK按钮。
这时数据中的序列号就会显示原始的序列号了。
如果想要将这次分析的数据存储起来,可以在工具栏中选择文件—到处特定分组。将本次分析的数据直接保存起来,下次查看的时候直接打开就行。
这个软件的使用,就简单说这么多,其他的功能大家在使用的过程中自己慢慢探索。