| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Wireshark抓包分析TCP的三次握手 -> 正文阅读 |
|
[网络协议]Wireshark抓包分析TCP的三次握手 |
一、TCP三次握手连接建立过程 ? ? Step1:客户端发送一个SYN数据包(SYN=1,Seq=X,ACK=0)给服务端,请求进行连接,这是第一次握手; ? ? Step2:服务端收到请求并且允许连接的话,就会发送一个SYN+ACK的数据包(SYN=1,Seq=Y,ACK=X+1)给发送端,告诉它,可以通讯了,并且让客户端发送一个确认数据包,这是第二次握手; ? ?Step3:服务端发送一个ACK数据包(SYN=1,Seq=Z,ACK=Y+1)给客户端,告诉它连接已被确认,这就是第三次握手。TCP连接建立,开始通讯。 二、抓包过程? 我们以访问网站:fanyi-pro.baidu.com为例,在Edge下使用开发工具查看网络对应的IP: 得到网站对应的IP为:180.101.49.50? 端口号为80 在过滤器中输入过滤表达式: ip.addr==180.101.49.58&&tcp.port==80 ?图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。 三、分析 在分析之前可以开启或关闭Wireshark工具的默认相对序列号,以此显示实际序列号,比如在包1中产生的实际序列号为:2159471844,开启默认序列号为0,按需更改: 1.第一个握手数据包 ?SYN=1:标志位置1,表示请求建立连接 ?Seq=2159471844:随机序列号 ?Ack=0:初始建立连接值为0,表示当前没有接收到数据 ?2.第二个握手数据包 ?SYN=1:标志位置1,表示请求连接 ?Seq=2865270383 ?ACK=2159471844:请求包中的随机顺序号X+1 3.第三次握手的数据包 ? SYN:标志位,表示已经收到记录 ? Seq =2159471845??:随机顺序号Z ? Ack = 2865270384:请求包中的随机顺序号Y+1 ? 就这样通过了TCP三次握手,建立了连接。开始进行数据交互 数据包的关键属性如下: ?其中,对于我们日常的分析有用的就是前面的五个字段。 它们的含义是: SYN表示建立连接, FIN表示关闭连接, ACK表示响应, PSH表示有DATA数据传输, RST表示连接重置。
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:41:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |