| |
|
开发:
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三次握手和四次挥手操作 |
说明:系统是windos10的,调用http接口来看TCP三次握手的连接及四次挥手的过程。 wireshark安装很好安装,官网下载自己系统的版本然后下载一键默认安装即可,安装完毕双击启动。就是如下图片: ?也可以点击菜单选项捕获,用来选择要捕获的网络,也可以全选,点开始 这个时候进监控页面,因为其他开发的工具也在开着,可能会一直监控到对你来说没有用的信息,此时需要过滤捕捉你需要的信息,如,代表,过滤目标ip和源ip都是此ip,TCP的端口为8089才会抓取到控制台上。 ip.addr == 192.168.1.118 and tcp.port==8089 那么我们现在在postman访问下一个http接口,看如下图: 在三次TCP以后出现了http的请求,这三次就是TCP的三次握手过程,咱们来详细的看一下 ?点击第一次连接的列表展示详情,第一次连接是客户端主动要连接服务端的,可以看到传输控制协议里Seq=0(Seq是序列号),代表初次连接,Ack=0(确认码),初次连接为0 ?除了要给上面所说的信息以外,还要给标志位,就是flags=初次连接需要给SYN=1的标志位表示请求建立连接。 ?点击第二次连接,详情如下: 第二次握手是服务端的回馈 8089端口给61474的端口数据,初次连接所以Seq=0,Ack=上一次客户端的序列号+1; ?标志位是SYN=1和ACK=1,代表这是一个确认的回馈连接 ?第三次握手详情点击,是客户端61474给8089服务端的反馈,Seq=1,因为这是客户端的第二次交互了,Ack=上一次服务端连接的序列号+1 ?标志位为:ACK,表示确认收到了连接回复,三次握手就建立连接完毕 ?第4个包是建立http请求,开始传输数据。第5个包Seq=1,为服务器的第二次处理,Ack=上一个http的请求长度+1(254) 包6,Seq=1,因为一直没有有效的数据,Ack则为上一次包的长度 ?包7,客户端给服务端,Seq=http传输的长度+1,Ack=上一个包的长度(8192)+1,之后都是往复循环发送数据。 ?发送完毕开始4次挥手操作,服务端想要跟客户端断开连接,数据传输完了,所以发送了标志位FIN,ACK代表要断开连接了我这边不传输数据了Seq是之前的传输数据的长度演变过来的,Ack也是上一些数据传输得到的确认码 客户端收到服务端的确认,Seq是上一次客户端的序列号,因为不传输数据所以不加1,Ack则是服务端的Seq数据+1; ?随后客户端又发送标志位FIN,ACK,Seq=上一次的客户端不加1因为没有传输有效的数据,Ack=上一次客户端的确认码不加1,原因是也没有有效数据,代表客户端也可以关闭此连接了,不传输数据了。 收到客户端的回复,发送ACK标志位表示回复,Seq=上一次服务端给客户端序号码+1,Ack=客户端的序列号+1;代表我收到了你的结束请求,完整的关闭,客户端关闭并也告知服务端,服务端关闭也告知了客户端。 ?到此三次连接和四次挥手的过程就都展示出来了,最好自己安装此抓包工具,就能更方便的,也更清晰的知道包传输的过程,也会更加好记忆,我也是此次抓包才会对TCP连接记忆更加深刻。 ? |
|
网络协议 最新文章 |
使用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 10:20:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |