博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Wireshark基本介绍和TCP三次握手
阅读量:5879 次
发布时间:2019-06-19

本文共 3081 字,大约阅读时间需要 10 分钟。

转自:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html

之前写过一篇博客:。

这篇文章介绍还有一个好用的抓包工具wireshark。 用来获取网络数据封包。包含http,TCP,UDP,等网络协议包。

记得大学的时候就学习过TCP的三次握手协议,那时候仅仅是知道,尽管在书上看过非常多TCP和UDP的资料,可是从来没有真正见过这些数据包, 老是感觉在云上飘一样,学得不踏实。有了wireshark就能截获这些网络数据包,能够清晰的看到数据包中的每个字段。更能加深我们对网络协议的理解。

对我而言。 wireshark 是学习网络协议最好的工具。

 

阅读文件夹

 

wireshark介绍

wireshark的官方下载站点: 

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

同类的其它工具

微软的network monitor

sniffer 

 

什么人会用到wireshark

1. 网络管理员会使用wireshark来检查网络问题

2. 软件測试project师使用wireshark抓包,来分析自己測试的软件

3. 从事socket编程的project师会用wireshark来调试

4. 听说。华为,中兴的大部分project师都会用到wireshark。

 

总之跟网络相关的东西。都可能会用到wireshark.

wireshark 開始抓包

開始界面

wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候。你须要选择一个网卡。

点击Caputre->Interfaces.. 出现以下对话框,选择正确的网卡。

然后点击"Start"button, 開始抓包

 

Wireshark 窗体介绍

 

WireShark 主要分为这几个界面

1. Display Filter(显示过滤器),  用于过滤

2. Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,port号。

颜色不同。代表

3. Packet Details Pane(封包具体信息), 显示封包中的字段

4. Dissector Pane(16进制数据)

5. Miscellanous(地址栏。杂项)

 

Wireshark 显示过滤

使用过滤是非常重要的, 刚開始学习的人使用wireshark时,将会得到大量的冗余信息,在几千甚至几万条记录中,以至于非常难找到自己须要的部分。

搞得晕头转向。

过滤器会帮助我们在大量的数据中迅速找到我们须要的信息。

过滤器有两种,

一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所须要的记录

一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。

在Capture -> Capture Filters 中设置

 

保存过滤

在Filter栏上,填好Filter的表达式后,点击Savebutton。 取个名字。比方"Filter 102",

Filter栏上就多了个"Filter 102" 的button。

过滤表达式的规则

表达式规则

 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. port过滤

tcp.port ==80,  端口为80的

tcp.srcport == 80,  仅仅显示TCP协议的愿端口为80的。

4. Http模式过滤

http.request.method=="GET",   仅仅显示HTTP GET方法的。

5. 逻辑运算符为 AND/ OR

经常使用的过滤表达式

过滤表达式 用途
http 仅仅查看HTTP协议的记录
ip.src ==192.168.1.102 or ip.dst==192.168.1.102  源地址或者目标地址是192.168.1.102
   
   

 

 

 

 

 

 

 

封包列表(Packet List Pane)

封包列表的面板中显示,编号。时间戳,源地址,目标地址,协议,长度。以及封包信息。 你能够看到不同的协议用了不同的颜色显示。

你也能够改动这些显示颜色的规则,  View ->Coloring Rules.

 

封包具体信息 (Packet Details Pane)

这个面板是我们最重要的。用来查看协议中的每个字段。

各行信息分别为

Frame:   物理层的数据帧概况

Ethernet II: 数据链路层以太网帧头部信息

Internet Protocol Version 4: 互联网层IP包头部信息

Transmission Control Protocol:  传输层T的数据段头部信息,此处是TCP

Hypertext Transfer Protocol:  应用层的信息,此处是HTTP协议

 

wireshark与相应的OSI七层模型

TCP包的详细内容

 从下图能够看到wireshark捕获到的TCP包中的每一个字段。

 

 

实例分析TCP三次握手过程

看到这。 基本上对wireshak有了初步了解, 如今我们看一个TCP三次握手的实例

 

 三次握手过程为

 

这图我都看过非常多遍了。 这次我们用wireshark实际分析下三次握手的过程。

打开wireshark, 打开浏览器输入 http://www.cnblogs.com/tankxiao

在wireshark中输入http过滤, 然后选中GET /tankxiao HTTP/1.1的那条记录。右键然后点击"Follow TCP Stream",

这样做的目的是为了得到与浏览器打开站点相关的数据包,将得到例如以下图

图中能够看到wireshark截获到了三次握手的三个数据包。

第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。

 

第一次握手数据包

client发送一个TCP。标志位为SYN。序列号为0, 代表client请求建立连接。 例如以下图

第二次握手的数据包

server发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 例如以下图

第三次握手的数据包

client再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.而且把server发来ACK的序号字段+1,放在确定字段中发送给对方.而且在数据段放写ISN的+1, 例如以下图:

 就这样通过了TCP三次握手,建立了连接

 

你可能感兴趣的文章
[翻译]用 Puppet 搭建易管理的服务器基础架构(3)
查看>>
Android -- AudioPlayer
查看>>
Python大数据依赖包安装
查看>>
Android View.onMeasure方法的理解
查看>>
Node.js 爬虫初探
查看>>
ABP理论学习之仓储
查看>>
NestJS 脑图
查看>>
我的友情链接
查看>>
Html body的滚动条禁止与启用
查看>>
Tengine新增nginx upstream模块的使用
查看>>
多媒体工具Mediainfo
查看>>
1-小程序
查看>>
CentOS图形界面和命令行切换
查看>>
HTML5通信机制与html5地理信息定位(gps)
查看>>
Mind_Manager_2
查看>>
手动升级 Confluence - 规划你的升级
查看>>
汽车常识全面介绍 - 悬挂系统
查看>>
电子政务方向:We7.Cloud政府云门户
查看>>
ansible 基本操作(初试)
查看>>
更改tomcat的根目录路径
查看>>