前言

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

1. tcp

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

1.1.1 三次握手过程

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

1.1.1 wireshark中三次握手过程

在wireshark中抓一次三次握手过程
使用wireshark 抓取 http https tcp ip 协议进行学习

  1. 客户端
    客户端发送SYN=1 的请求连接的标记位,以及一个随机序列号X
    使用wireshark 抓取 http https tcp ip 协议进行学习

  2. 服务端
    服务端发送一个ACK标志位(ack之前的syn),随之一个ack号码为X+1 确认接收到
    并且也会发送一个和当时客户端建立连接时相同的动作,发送SYN号码表示要和客户端进行连接,并且从新生成一个随机序列号Y
    使用wireshark 抓取 http https tcp ip 协议进行学习

  3. 客户端
    接受到后Ack服务端的SYN 返回ACK标志码并且把Y+1进行ack返回,并且发送序列号为当初的x+1
    使用wireshark 抓取 http https tcp ip 协议进行学习

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

其中的FLag位

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

1.2 tcp协议组成部分

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

  • 头部20字节

1.3 四次挥手过程

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

  1. 发送方 发送FIN标记 需要释放连接 seq=u (此时代表发送方的数据都发送完成了)
    此时发送方进入连接结束的第一个等待状态 FIN-WAIT-1
    使用wireshark 抓取 http https tcp ip 协议进行学习

  2. 接收方 ACK标记 seq=v ack =u+1

  • 发送方在接受到接受方这个报文时进入第二个等待状态 FIN-WAIT-2
  • 发送方在发送完这个报文后进入关闭等待的状态 CLOSE-WAIT
    使用wireshark 抓取 http https tcp ip 协议进行学习
  1. 接受方发送FIN报文 (此时他的全部数据也都发送完成了)
  • 发送方发送FIN=1 ACK=1 seq=w ack = u+1 (重复对当时发送方的报文ack)
  • 此时接收方进入最后确认状态 LAST-ACK 等待发送方的确认
    使用wireshark 抓取 http https tcp ip 协议进行学习
  1. 连接方发送确认断开
  • ACK=1 seq=u+1 ack=w+1
    使用wireshark 抓取 http https tcp ip 协议进行学习

2. ip协议

2.1 ip协议组成部分

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

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

3. http协议

  • http://<主机>:<端口>/<路径>
    主机可以是ip或域名,DNS会将域名转化为ip
  • HTTP请求的方法
    使用wireshark 抓取 http https tcp ip 协议进行学习
  • http的协议
    使用wireshark 抓取 http https tcp ip 协议进行学习

4. https协议

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

4.1 https协议组成部分

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

4.2 https协议的流程

  1. 客户端发送Clien Hello
    生成随机数 1 。协议版本 支持的加密算法
    使用wireshark 抓取 http https tcp ip 协议进行学习

  2. 服务器
    生成随机数2,3 确认客户端加密的算法 数字证书
    使用wireshark 抓取 http https tcp ip 协议进行学习
    使用wireshark 抓取 http https tcp ip 协议进行学习

3.客户端检查

  • 确认整数是否有效
  • 生成随机数3
  • 使用服务器的公钥(证书中取出)加密随机数3
  • 发送给服务端 此时服务端和客户端都同时拥有了随机数1 2 3
    此后就根据随机数1 2 3 和相同的加密算法生成对称密钥
    使用wireshark 抓取 http https tcp ip 协议进行学习

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

5. udp

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

  • 头部 8 字节

一字节8位

结语

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

参考资料

相关文章:

  • 2022-03-08
  • 2021-11-03
  • 2021-10-09
  • 2021-10-12
  • 2021-12-14
  • 2021-06-13
  • 2022-12-23
  • 2021-04-19
猜你喜欢
  • 2022-03-13
  • 2021-10-29
  • 2021-09-18
  • 2021-11-25
  • 2022-12-23
  • 2022-12-23
  • 2021-07-31
相关资源
相似解决方案