使用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 协议进行学习的更多相关文章

  1. TCP/IP协议组学习笔记

    TCP/IP协议族学习笔记: 一.基础概念: (1)TCP(Transmission Control Protocol) 传输控制协议. (2)IP(Internet Protocol)网际协议.IP ...

  2. TCP/IP协议原理学习笔记

    昨天学习了杨宁老师的TCP/IP协议原理第一讲和第二讲,主要介绍了OSI模型,整理如下: OSI是open system innerconnection的简称,即开放式系统互联参考模型,它把网络协议从 ...

  3. 结合Wireshark捕获分组深入理解TCP/IP协议之以太网帧

    摘要:     本文摘抄并整理了以太网相关理论知识,包括CSMA/CD协议机制及工作.LAN互连,详细分析了Ethernet II帧格式,最后给出Ethernet II帧实例. 一.以太网[1] 1. ...

  4. 结合Wireshark捕获分组深入理解TCP/IP协议之IP协议

    摘要:     本文简单介绍了网络层理论知识,详细讲解了IP数据报各个字段,并从Wireshark俘获分组中选取IP数据报进行分析,也阐述了分组和分片的区别.   一.IPv4数据报     网络层是 ...

  5. TCP/IP协议的学习笔记

    1.OSI和TCP/IP的协议体系结构 OSI是开放系统互连参考模型,它的七层体系结构概念清楚,理论也比较完整,但它既复杂又不实用.而TCP/IP是一个四层的体系结构,它包含应用层.传输层.网际层和网 ...

  6. ARP抓包实战小结-TCP/IP协议学习

    2011-12-26 21:36:47 图1 一,环境说明 硬件连线.PC与2440开发板直接用网线连接. PC的ip地址:192.168.0.107.2440开发板的ip地址:192.168.0.1 ...

  7. TCP/IP协议学习(四) 协议概述

    生活中有舒适区,借口成为懒惰的护身符,学习也有舒适区,逃避便是阻止进步的最大障碍. 经过半年多嵌入式方面的工作和学习,我提高了很多,但同时我也对自己所面临的问题逐渐清晰: 1. 偏于实践,理论基础不牢 ...

  8. 利用wireshark抓取TCP的整个过程分析。

    原文地址:https://www.cnblogs.com/NickQ/p/9226579.html 最近,已经很久都没有更新博客了.看看时间,想想自己做了哪些事情,突然发现自己真的是太贪心,到头来却一 ...

  9. TCP三次握手和四次挥手及wireshark抓取

    TCP的三次握手与四次挥手的详细介绍: 三次握手: 第一次握手(SYN=1, seq=x): 客户端发送客户端发送一个 TCP 的 SYN 标志位置1的,指明客户端打算连接的服务器的端口,以及初始序号 ...

随机推荐

  1. Codeforces Round #660 (Div. 2) C. Uncle Bogdan and Country Happiness (DFS)

    题意:有\(n\)个人,每个人居住在某个节点,所有人都在节点\(1\)上班,下班后沿着最短路径回家,在回家途中心情可能会变差(心情只会变差不会变好),每个节点都有一个开心值,开心值等于所有经过时的好心 ...

  2. Codeforces Global Round 9 A. Sign Flipping (构造)

    题意:有一个长度为\(n\)(odd)的序列,可以更改所有的数的正负,要求最少\(\frac{n-1}{2}\)个\(a_{i+1}-a_i\ge0\),并且要求最少\(\frac{n-1}{2}\) ...

  3. GYM101810 ACM International Collegiate Programming Contest, Amman Collegiate Programming Contest (2018) M. Greedy Pirate (LCA)

    题意:有\(n\)个点,\(n-1\)条边,每条边正向和反向有两个权值,且每条边最多只能走两次,有\(m\)次询问,问你从\(u\)走到\(v\)的最大权值是多少. 题解:可以先在纸上画一画,不难发现 ...

  4. 金牛来到,福气来到——TcaplusDB新年放送

    光阴似箭,2020转瞬间成为历史,牛年的钟声即将敲响,在此,TcaplusDB祝大家新的一年万事如意,牛年带给我们的福气,一定能让我们心想事成! 饮水思源,回顾过去的一年,我们深知,TcaplusDB ...

  5. WPF 之命令(七)

    一.前言 ​ 事件的作用是发布和传播一些消息,消息送达接收者,事件的使命也就完成了,至于消息响应者如何处理发送来的消息并不做规定,每个接收者可以使用自己的行为来响应事件.即事件不具有约束力. ​ 命令 ...

  6. java中的装箱及拆箱

    java中存在8中基本的数据类型,每一种数据类型都有包装类型. 包装类型:每一个基本的数据类型都会------对应一个包装类型. boolean------------------>Boolea ...

  7. 第一个SpringMVC项目——HelloMVC

    第一步:启动IDEA新建一个无模板的Maven项目,注意这还不是一个web项目,想成为web项目,需要添加web框架,这就是第二步需要做的事情 第二步:添加web框架支持 单击之后会弹出这个界面 第三 ...

  8. 虚拟环境之间批量pip安装包"迁移"

    在某个虚拟环境中通过 pip freeze > requirements.txt 将该环境下所有的包写入文档, 然后切换至另一虚拟环境, pip install -r requirements. ...

  9. TypeScript 4.1 Quick Start Tutorials

    TypeScript 4.1 Quick Start Tutorials TypeScript 4.1 快速上手教程 https://typescript-41-quick-start-tutoria ...

  10. Internationalization API & ECMA-402

    Internationalization API & ECMA-402 i18n https://caniuse.com/?search=Internationalization API In ...