使用wireshark 抓取 http https tcp ip 协议进行学习

Posted wei57960

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用wireshark 抓取 http https tcp ip 协议进行学习相关的知识,希望对你有一定的参考价值。

使用wireshark 抓取 http https tcp ip 协议进行学习

前言

本节使用wireshark工具抓包学习tcp ip http 协议

1. tcp

1.1 tcp三次握手在wireshark中的体现

1.1.1 三次握手过程

技术图片

1.1.1 wireshark中三次握手过程

在wireshark中抓一次三次握手过程
技术图片

  1. 客户端
    客户端发送SYN=1 的请求连接的标记位,以及一个随机序列号X
    技术图片

  2. 服务端
    服务端发送一个ACK标志位(ack之前的syn),随之一个ack号码为X+1 确认接收到
    并且也会发送一个和当时客户端建立连接时相同的动作,发送SYN号码表示要和客户端进行连接,并且从新生成一个随机序列号Y
    技术图片

  3. 客户端
    接受到后Ack服务端的SYN 返回ACK标志码并且把Y+1进行ack返回,并且发送序列号为当初的x+1
    技术图片

序列号使用来记录"对方期待的序列号" 发送方第一次和第二次的序号相差第一次发送的数据长度,
当发送 SYN或 FIN时长度为空时,也占一个长度,下次加一

其中的FLag位

占六位 依次为 URG、ACK、PSH、RST、SYN、FIN。
换算成十六进制此处如果是SYN则为0x02 ACK为 0x10 ,既有SYN也有ACK则为0x12

1.2 tcp协议组成部分

技术图片

  • 头部20字节

1.3 四次挥手过程

技术图片

  1. 发送方 发送FIN标记 需要释放连接 seq=u (此时代表发送方的数据都发送完成了)
    此时发送方进入连接结束的第一个等待状态 FIN-WAIT-1
    技术图片

  2. 接收方 ACK标记 seq=v ack =u+1
  • 发送方在接受到接受方这个报文时进入第二个等待状态 FIN-WAIT-2
  • 发送方在发送完这个报文后进入关闭等待的状态 CLOSE-WAIT
    技术图片
  1. 接受方发送FIN报文 (此时他的全部数据也都发送完成了)
  • 发送方发送FIN=1 ACK=1 seq=w ack = u+1 (重复对当时发送方的报文ack)
  • 此时接收方进入最后确认状态 LAST-ACK 等待发送方的确认
    技术图片
  1. 连接方发送确认断开
  • ACK=1 seq=u+1 ack=w+1
    技术图片

2. ip协议

2.1 ip协议组成部分

技术图片

  • IPv4的头部结构长度为20字节,若含有可变长的选项部分,最多60字节。

3. http协议

  • http://<主机>:<端口>/<路径>
    主机可以是ip或域名,DNS会将域名转化为ip
  • HTTP请求的方法
    技术图片
  • http的协议
    技术图片

4. https协议

  • http明文传输不安全 通过SSL对数据进行加密 加密后的数据传输更加安全
  • 非对称加密:加密和解密使用的钥匙不一样 (公钥 私钥)
  • 对称加密则是加密解密使用相同的密钥
  • https 综合的使用了非对称加密和对称加密,并且他们生成的密钥没有经过传输

    4.1 https协议组成部分

    https 为http上加了一层SSL SSL 可以是TSL协议,在443端口TCP三次握手后会建立SSL连接

    4.2 https协议的流程

  1. 客户端发送Clien Hello
    生成随机数 1 。协议版本 支持的加密算法
    技术图片

  2. 服务器
    生成随机数2,3 确认客户端加密的算法 数字证书
    技术图片
    技术图片

3.客户端检查

  • 确认整数是否有效
  • 生成随机数3
  • 使用服务器的公钥(证书中取出)加密随机数3
  • 发送给服务端 此时服务端和客户端都同时拥有了随机数1 2 3
    此后就根据随机数1 2 3 和相同的加密算法生成对称密钥
    技术图片

后续
技术图片

5. udp

技术图片

  • 头部 8 字节

    一字节8位

结语

文章简要的对http https tcp udp ip 协议的内容以及交互流程进行了解读。如果有问题和疑问请在评论区指出,多谢大神指教。

参考资料

以上是关于使用wireshark 抓取 http https tcp ip 协议进行学习的主要内容,如果未能解决你的问题,请参考以下文章

抓包工具(如Charles)抓取Https数据包

如何使用wireshark抓取HTTPS数据包?

Mac中wireshark如何抓取HTTPS流量?

Windows环境下实现WireShark抓取HTTPS

配置Wireshark抓取https数据包 解密SSL

配置Wireshark抓取https数据包 解密SSL