使用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中抓一次三次握手过程

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

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

客户端
接受到后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 四次挥手过程

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

接收方 ACK标记 seq=v ack =u+1
- 发送方在接受到接受方这个报文时进入第二个等待状态 FIN-WAIT-2
- 发送方在发送完这个报文后进入关闭等待的状态 CLOSE-WAIT

- 接受方发送FIN报文 (此时他的全部数据也都发送完成了)
- 发送方发送FIN=1 ACK=1 seq=w ack = u+1 (重复对当时发送方的报文ack)
- 此时接收方进入最后确认状态 LAST-ACK 等待发送方的确认

- 连接方发送确认断开
- 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协议的流程
客户端发送Clien Hello
生成随机数 1 。协议版本 支持的加密算法

服务器
生成随机数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 协议进行学习的更多相关文章
- TCP/IP协议组学习笔记
TCP/IP协议族学习笔记: 一.基础概念: (1)TCP(Transmission Control Protocol) 传输控制协议. (2)IP(Internet Protocol)网际协议.IP ...
- TCP/IP协议原理学习笔记
昨天学习了杨宁老师的TCP/IP协议原理第一讲和第二讲,主要介绍了OSI模型,整理如下: OSI是open system innerconnection的简称,即开放式系统互联参考模型,它把网络协议从 ...
- 结合Wireshark捕获分组深入理解TCP/IP协议之以太网帧
摘要: 本文摘抄并整理了以太网相关理论知识,包括CSMA/CD协议机制及工作.LAN互连,详细分析了Ethernet II帧格式,最后给出Ethernet II帧实例. 一.以太网[1] 1. ...
- 结合Wireshark捕获分组深入理解TCP/IP协议之IP协议
摘要: 本文简单介绍了网络层理论知识,详细讲解了IP数据报各个字段,并从Wireshark俘获分组中选取IP数据报进行分析,也阐述了分组和分片的区别. 一.IPv4数据报 网络层是 ...
- TCP/IP协议的学习笔记
1.OSI和TCP/IP的协议体系结构 OSI是开放系统互连参考模型,它的七层体系结构概念清楚,理论也比较完整,但它既复杂又不实用.而TCP/IP是一个四层的体系结构,它包含应用层.传输层.网际层和网 ...
- ARP抓包实战小结-TCP/IP协议学习
2011-12-26 21:36:47 图1 一,环境说明 硬件连线.PC与2440开发板直接用网线连接. PC的ip地址:192.168.0.107.2440开发板的ip地址:192.168.0.1 ...
- TCP/IP协议学习(四) 协议概述
生活中有舒适区,借口成为懒惰的护身符,学习也有舒适区,逃避便是阻止进步的最大障碍. 经过半年多嵌入式方面的工作和学习,我提高了很多,但同时我也对自己所面临的问题逐渐清晰: 1. 偏于实践,理论基础不牢 ...
- 利用wireshark抓取TCP的整个过程分析。
原文地址:https://www.cnblogs.com/NickQ/p/9226579.html 最近,已经很久都没有更新博客了.看看时间,想想自己做了哪些事情,突然发现自己真的是太贪心,到头来却一 ...
- TCP三次握手和四次挥手及wireshark抓取
TCP的三次握手与四次挥手的详细介绍: 三次握手: 第一次握手(SYN=1, seq=x): 客户端发送客户端发送一个 TCP 的 SYN 标志位置1的,指明客户端打算连接的服务器的端口,以及初始序号 ...
随机推荐
- streamlink 安装使用
CentOS 安装: pip install streamlink 使用: #查看视频信息 streamlink $URL #下载视频 streamlink $URL best streamlink ...
- Incorrect string value: '\xF0\x9F\x93\xB7</...' for column 'content' at row 1
出现原因:当insert数据中有表情时发生.而这些表情是按照4个字节一个单位进行编码的,而我们使用的utf-8编码在mysql数据库中默认是按照3个字节一个单位进行编码的. 解决方法:将表字段字符集设 ...
- JVM调优参数、方法、工具以及案例总结
这种文章挺难写的,一是JVM参数巨多,二是内容枯燥乏味,但是想理解JVM调优又是没法避开的环节,本文主要用来总结梳理便于以后翻阅,主要围绕四个大的方面展开,分别是JVM调优参数.JVM调优方法(流程) ...
- [笔记]吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
开发的原因,需要对吞吐量(TPS).QPS.并发数.响应时间(RT)几个概念做下了解,查自百度百科,记录如下: 1. 响应时间(RT) 响应时间是指系统对请求作出响应的时间.直观上看,这个指标与人对软 ...
- Postman查看上传文件过程时出现400 - Required MultipartFile parameter 'files' is not present错误
我在利用postman查看上传图片文件时,出现了如下图的错误,看到之后很懵逼. 图1 上网搜了一下,归结下来就是参数不一致导致的.不过还有一些是由于没加注解,如下图示: 图2 关于参数不一致问题,主要 ...
- 2019南昌网络赛H The Nth Item(二阶线性数列递推 + 广义斐波那契循环节 + 分段打表)题解
题意: 传送门 已知\(F(n)=3F(n-1)+2F(n-2) \mod 998244353,F(0)=0,F(1)=1\),给出初始的\(n_1\)和询问次数\(q\),设每一次的答案\(a_i= ...
- Asp.Net Core Grpc 入门实践
Grpc简介 gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架. 在 gRPC 中,客户端应用程序可以直接调用不同计算机上的服务器应用程序上的方法,就像它是本地对象一样,从而更轻松地创 ...
- LeetCode & linked list bug
LeetCode & linked list bug add-two-numbers shit test /** * Definition for singly-linked list. * ...
- 找出 int 数组的平衡点 & 二叉树 / 平衡二叉树 / 满二叉树 / 完全二叉树 / 二叉查找树
找出 int 数组的平衡点 左右两边和相等, 若存在返回平衡点的值(可能由多个); 若不存在返回 -1; ``java int [] arr = {2,3,4,2,4}; ```js const ar ...
- Travis CI in Action
Travis CI in Action node.js https://docs.travis-ci.com/user/tutorial/ https://docs.travis-ci.com/use ...