WareShark抓包

本文介绍了TCP协议的连接与断开过程,包括三次握手和四次挥手,并详细解析了TCP包头的关键字段。同时,讲解了HTTP协议如何依赖TCP进行数据传输,以及Fiddler工具抓取HTTPS网站包的方法。此外,还讨论了HTTP的短连接与长连接,并展示了Fiddler抓包工具中不同标签页的内容。
摘要由CSDN通过智能技术生成

TCP 协议的连接与断开

TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP是同一层内另一个重要的传输协议。

下图是一个 TCP 包头的结构,这部分主要分析 TCP 协议的三次握手连接和四次握手断开,着重注意 ACK 、 SYN 、FIN:
在这里插入图片描述

  • URG:紧急指针字段有效
  • ACK:确认序号字段有效
  • PSH:接收方需尽快把该报文段交给应用层
  • RST:重置连接
  • SYN:同步序号,用于发起一个连接
  • FIN:发送端完成发送任务

握手连接

  • 第一次握手:客户 → 服务器(ACK = 0 ,SYN = 1)
  • 第二次握手:服务器 → 客户(ACK = 1 ,SYN = 1)
  • 第三次握手:客户 → 服务器(ACK = 1 ,SYN = 0)

握手断开

  • 第一次握手:客户 → 服务器(ACK = 1 ,FIN = 1)
  • 第二次握手:服务器 → 客户(ACK = 1 ,FIN = 0)
  • 第三次握手:服务器 → 客户(ACK = 1 ,FIN = 1)
  • 第四次握手:客户 → 服务器(ACK = 1 ,FIN = 0)

有时候断开连接时,只抓得到三个包,是因为第二次、第三次握手放在同一个包里了,合并成一次握手了。

连接建立

TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-way handshake),过程如下图所示。
在这里插入图片描述

连接断开

建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。具体过程如下图所示。
在这里插入图片描述

Fiddler 抓 HTTPS 网站包

HTTP 协议简介

TCP 协议是 HTTP 协议的基石——HTTP 协议需要依靠 TCP 协议来传输数据。在网络分层模型中,TCP 被称为 “传输层协议”,而 HTTP 被称为 “应用层协议”。

HTTP 对 TCP 连接的使用,分为两种方式:俗称 “短连接” 和“长连接”(“长连接”又称 “持久连接”,洋文叫做“Keep-Alive” 或“Persistent Connection”) 假设有一个网页,里面包含好多图片,还包含好多外部的CSS 文件和 JS 文件。在 “短连接” 的模式下,浏览器会先发起一个 TCP 连接,拿到该网页的 HTML 源代码(拿到 HTML 之后,这个 TCP 连接就关闭了)。然后,浏览器开始分析这个网页的源码,知道这个页面包含很多外部资源(图片、CSS、JS)。

然后针对每一个外部资源,再分别发起一个个 TCP 连接,把这些文件获取到本地(同样的,每抓取一个外部资源后,相应的 TCP 就断开) 相反,如果是 “长连接” 的方式,浏览器也会先发起一个 TCP 连接去抓取页面。但是抓取页面之后,该 TCP 连接并不会立即关闭,而是暂时先保持着(所谓的“Keep-Alive”)。然后浏览器分析 HTML 源码之后,发现有很多外部资源,就用刚才那个 TCP 连接去抓取此页面的外部资源。

抓包

Fiddler 抓取的内容以及 HTTPS 协议执行的过程:
在这里插入图片描述

  • 打开了 fiddler 软件,使用浏览器访问百度:www.baidu.com
    在这里插入图片描述
  • 然后再看看 fiddler 软件,这就是抓到的包。HTTP就是向百度服务器发送请求。
    在这里插入图片描述
    在这里插入图片描述
  • Header 标签——用于显示 HTTP 请求和响应的头信息。
  • TextView 标签——用于查看 HTML/JS/CSS 等格式的数据。
  • ImageView 标签——用于显示图片格式的数据。
  • WebForms 标签——用于显示请求的表单数据。如登录请求,就可以通过它查查看登录用户名密码信息。它以表格形式显示。
  • Raw 标签——可以查看原始的符合 HTTP 标准的请求和响应头。
  • Auth 标签——可以查看授权 Proxy-Authorization 和 Authorization 的相关信息。
  • Cookies 标签——可以看到请求的 cookie 和响应的 set-cookie 头信息。
    XML 和 JSON 标签——用于显示 XML 和 JSON 格式的数据。

这里可以看到采用的连接方式保持的是长连接:
在这里插入图片描述
下图中是百度服务器返回给edge浏览器的图片、JS、CSS、文本文件等等。(可能设置问题,抓不了谷歌的)
在这里插入图片描述

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值