美文网首页
Wireshark入门

Wireshark入门

作者: 匿名用户_bcc3 | 来源:发表于2018-12-27 23:54 被阅读0次

相信大家总是能听到TCP、UDP,还有TCP三次握手,之前都是看的书上的理论,今天来用Wireshark抓一个tcp三次握手。

在平时的开发中,如果是一般的Http或者Https请求,我们直接在Windows上使用Fiddler、Mac上使用Charles来抓包即可。当然,使用Wireshark也可以抓取http、https请求,不过一般使用Wireshark来抓TCP请求。

官方下载地址:https://www.wireshark.org/download.html

首先,来看下wireshark界面


image.png

这里选择Wi-Fi就能抓到本机所有的请求了,我这里是wifi,如果是直接连网线,看到的就是本地连接了。这个很简单,你试一下就能知道了。

然后就能看到各种网络请求了,包括应用层协议和传输层协议。


因为数据传输记录太多了,那么就一定需要过滤器功能了。上面的过滤器栏中支持以下几种表达式:
表达式规则

  1. 协议过滤
    比如tcp,只显示TCP协议。http,就是只显示HTTP协议。注意,这里是区分大小写的。
  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

点击任意一个记录,下面会显示该记录的封包详细信息


  • Frame: 物理层的数据帧概况
  • Ethernet II: 数据链路层以太网帧头部信息,这里就可以看到本机mac地址以及目标mac地址了
  • Internet Protocol Version 4: 互联网层IP包头部信息,这里可以看到本机以及目标ip地址
  • Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP,这里能看到TCP的数据包了,下面会讲到。
  • Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议

关于互联网通信协议,推荐阮一峰的“互联网协议入门”,写的真好。http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html

下面看下TCP报文头部格式:



再来对比看一下Wireshark抓的TCP包,终于从理论到实践了。大学期间看了很多遍TCP报文头都记不住。重点关注一下Sequence number 和 Acknowledgment number 以及Flags。


现在进入我们的重点,TCP三次握手,这个历史性的握手
我们先访问一个http请求“http://www.cnblogs.com/tankxiao”,注意这里不是https哦,关于https我后面再讲。


我们找到我们请求的http地址,注意看Stream index = 2,这个index等下可以追踪到这次http建立之前的tcp三次握手过程。

我们鼠标右键这个http请求,Follow-TCP Stream,就可以看到此次tcp建立连接的历史性握手了。



上面的地址栏过滤"tcp.stream eq 2"中的2就是上面的Stream index。

咱么首先看下TCP三次握手经典图



大学时看过很多遍这个图,却记不住到底啥意思,就是因为太抽象了,抽象到只能死记硬背,今天通过wireshark一看就明白了。

下面来分步解析一下三次握手过程,主要关注三个参数,分别是Flags、Sequence number、Acknowledgment number

第一次握手
Flags:SYN
Sequence number:0
Acknowledgment number:0

第二次握手
Flags:SYN,ACK
Sequence number:0
Acknowledgment number:1

第三次握手
Flags:ACK
Sequence number:1
Acknowledgment number:1

总结:TCP三次握手过程

  • 客户端发送SYN标志和序列号Seq来向服务器发起连接
  • 服务端收到请求,向客户端发送ACK表示确认,确认号是接收到的序列号+1。同时发送SYN标志位以及自己的序列号给客户端发起连接
  • 客户端再发送ACK标志给服务端表示确认,其中确认号是服务端发送过来的序列号+1

参考博客:https://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html

相关文章

  • 【Wireshark】- 入门篇(1)

    【Wireshark】- 入门篇(1)【Wireshark】- 过滤器(2)【Wireshark】- Statis...

  • wireshark

    Wireshark 基本介绍和学习 TCP 三次握手Wireshark抓包iOS入门教程利用 WireShark ...

  • wireShark抓包

    wireShark抓包 Wireshark 抓包 iOS 入门教程http://www.phpxs.com/pos...

  • Wireshark入门

    相信大家总是能听到TCP、UDP,还有TCP三次握手,之前都是看的书上的理论,今天来用Wireshark抓一个tc...

  • 【Wireshark】Wireshark秘籍

    欢迎关注我的专栏《Wireshark从入门到精通》,专栏收录了Wireshark最实用的技巧和方法,相关联的原理性...

  • 【Wireshark】Wireshark 入门教程

    Wireshark 入门教程(壹) 前言与开始抓包[https://www.cnblogs.com/jasongr...

  • wireshark菜鸟入门学习

    第一次进入简书,从今天开始记录生活,记录学习。今天第一次用wireshark学习抓包,然后一直很懵,一直以为运行和...

  • Wireshark入门手册(上)

    本系列笔记,参考学习GitHub上默然整理的关于《计算机网络-自顶向下方法》的实验笔记与51CTO学院,陈鑫杰主讲...

  • Wireshark入门手册(中)

    多文件连续保存 || 定时器中断 1、路径:Capture -> Options,在Output中新建一个文件,用...

  • GMAIL SPDY V3 header decompress

    Wireshark · Wireshark-bugs: [Wireshark-bugs] [Bug 10528] ...

网友评论

      本文标题:Wireshark入门

      本文链接:https://www.haomeiwen.com/subject/ijeqlqtx.html