TCP/IP协议抓包分析

article/2025/10/7 6:15:16

目录

一、TCP/IP协议在协议中分层的位置

二、TCP三次握手流程

三、打开wireshark抓包

四、TCP三次握手分析

1、TCP第一次握手

五、四次挥手流程

六、四次挥手抓包分析


一、TCP/IP协议在协议中分层的位置

 

二、TCP三次握手流程

1、客户端向服务端发送⼀个SYN=1(请求建立连接),并生成一个序列号seq=j。

2、服务端接收到SYN=1后,给客户端发送⼀个SYN=1与ACK=1;并将ack置为j+1;同时生成一个序列号seq=k。

3、客户端接收到会检查ack是否为j+1与ACK是否为1,如果是,则会给服务端发送一个ACK=1与ack=k+1,以及自己的序列号seq=j=1; 服务端接收到会检查ACK是否为1与ack是否为k+1,如果是则代表连接建立成功,两者间可以传递数据。

三、打开wireshark抓包

本地IP:10.168.1.112

百度IP:39.156.66.18

筛选规则:tcp and ip.addr==10.168.1.112 and tcp.port==50830

封包详细信息用来查看协议中的每个字段,各行信息显示对应的不同层级,如下图所示,分别是物理层、数据链路层、网络层、传输层,如果有应用层数据会显示第五层

四、TCP三次握手分析

1、TCP第一次握手

客户端向服务端发送⼀个SYN=1(请求建立连接),并生成一个序列号seq=j(实验中j=0)

源端口50830 ---->目标端口36688

2、服务端接收到SYN=1后,给客户端发送⼀个SYN=1与ACK=1;并将确认序列号ack置为j+1(即SYN+1=0+1=1);同时生成一个序列号seq=k(实验中k=0)

 

3、客户端接收到会检查服务端回复的确认序列号ack是否为j+1(即SYN+1=0+1=1)与ACK是否为1,如果是,则会给服务端发送一个ACK=1与ack=k+1(即第二次握手时服务端生成的序列号seq,k+1=0+1=1),以及自己的序列号seq=j=1; 服务端接收到会检查ACK是否为1与ack是否为k+1,如果是则代表连接建立成功,两者间可以传递数据

 

4、也可直接通过标志位看三次握手的数据包

 

五、四次挥手流程

1、Client端发起中断连接请求,也就是发送FIN报文。意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。

2、Server端接到FIN报文后,发送ACK,告诉Client端,“你的请求我收到了,但是我还没准备好,请继续你等我的消息"。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。

3、当Server端确定数据已发送完成,则向Client端发送FIN报文,告诉Client端,”好了,我这边数据发完了,准备好关闭连接了"。

4、Client端收到FIN报文后,就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传

Server端收到ACK后,就知道可以断开连接了。

Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!

六、四次挥手抓包分析

抓包过程中,四次挥手只抓到了三个包的报文,查询了相关资料,说是因为服务器端在给客户端传回的过程中,将两个连续发送的包进行了合并。以下是基于抓到的三个包做的分析,如有错误请指正

1、第一次挥手:Client端发起中断连接请求,也就是发送FIN报文。意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据

将标志位FIN和ACK置为1,序号seq=306,确认序号ack=21

 

2、第二次挥手:Server端接到FIN报文后,发送ACK,告诉Client端,“你的请求我收到了,但是我还没准备好,请继续你等我的消息"。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文

此时,服务端回复客户端:FIN和ACK(标志位FIN=1,ACK=1),确认序列号ack为收到的序列号(即第一次挥手携带的SYN)加1,即ack=306+1=301。序列号seq为收到的确认序列号21

(抓包时第二次挥手和第三次挥手合并了)

 

3、第四次挥手:Client端收到FIN报文后,就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传

 

客户端收到服务器发送的FIN之后,发回ACK确认(标志位ACK=1),确认序列号为收到的序号加1,即21+1=22。序列号为收到的确认序列号307

Server端收到ACK后,就知道可以断开连接了。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!


http://chatgpt.dhexx.cn/article/Qvunfr7a.shtml

相关文章

使用Wireshark抓包分析TCP协议

wireshark数据包详细栏每个字段对应的分层。 1、分层介绍 1.1、数据链路层 我们点开这个字段,从该字段中可以看到相邻两个设备的MAC地址 1.2、网络层 本层主要负责将TCP层传输下来的数据加上目标地址和源地址。 1.3、传输层 这一层用到了TCP协议 tcp包头 每个字…

wireshark抓包分析——TCP/IP协议

本文来自网易云社区 当我们需要跟踪网络有关的信息时,经常会说“抓包”。这里抓包究竟是什么?抓到的包又能分析出什么?在本文中以TCP/IP协议为例,简单介绍TCP/IP协议以及如何通过wireshark抓包分析。 Wireshark 是最著名的网络通…

使用wireshark抓包分析实战

今天继续给大家介绍渗透测试相关知识,本文主要内容是使用wireshark抓包分析实战。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 一、wireshark分析ARP协议 …

Wireshark抓包及分析——HTTP

1、首先我们打开 Wireshark,可以看到有很多的网络,选择自己正在使用的网络,比如我现在就是使用 WLAN,双击点开就可以了。 2、然后开始抓包分析,在浏览器中输入网址 3、可以看到 Wireshark 已经抓到很多数据包&…

Http实战之Wireshark抓包分析

Http相关的文章网上一搜一大把,所以笔者这一系列的文章不会只陈述一些概念,更多的是通过实战(抓包代码实现)的方式来跟大家讨论Http协议中的各种细节,帮助大家理解那些反反复复记不住的的概念! 搭建测试项目…

Wireshark抓包详细分析

wireshark抓包介绍 这里选了wifi网卡,开始抓包 上方的文本框可以输入一些规则,对抓到的包进行过滤。 过滤策略: 只看 TCP 协议的包,可以输入 tcp 然后回车;如果想看使用 UDP 协议的某个端口,输入 udp.p…

TCP 实战抓包分析

提纲 正文 显形“不可见”的网络包 网络世界中的数据包交互我们肉眼是看不见的,它们就好像隐形了一样,我们对着课本学习计算机网络的时候就会觉得非常的抽象,加大了学习的难度。 还别说,我自己在大学的时候,也是如…

计算机网络【wireshark抓包分析】

一个完整的三次握手就是:请求(SYN) — 应答(SYNACK) — 再次确认(SYN)。完成三次握手,客户端与服务器开始传送数据。 实验流程: 1、首先我们打开wireshark软件的主界面&a…

wireshark抓包分析(ARP,IP,ICMP)

ARP 介绍: 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息&#xf…

HTTP协议抓包分析

文章目录 HTTP请求报文和响应报文的结构示意图请求报文分析响应报文分析参考资料 本次使用的测试的网站是:http://www.people.com.cn 15 Agu 2019记下:最好是就使用http的网站来分析。因为现在很多网站都是支持的https协议。但是因为我现在也是一个小白&…

html将字符串转为数值,JavaScript字符串转数字的5种方法及其陷阱

JavaScript 是一个神奇的语言,字符串转数字有 5 种方法,各有各的坑法!下面本篇文章就来介绍一下JavaScript字符串转数字的5种方法及其陷阱,希望对大家有所帮助。 String 转换为 Number 有很多种方式,我可以想到的有 5 种!parseInt(num); // 默认方式 (没有基数) parseInt…

CenterNet代码解析

CenterNet代码解析 CenterNet网络 代码解析 代码网址:https://github.com/xingyizhou/CenterNet

【计算机视觉】PnP算法简介与代码解析-柴政(solvepnp理论篇)

PnP算法简介与代码解析-柴政 PnP求解算法是指通过多对3D与2D匹配点,在已知或者未知相机内参的情况下,利用最小化重投影误差来求解相机外参的算法。PnP求解算法是SLAM前端位姿跟踪部分中常用的算法之一,本次公开课,将详细讲述P3P、…

Polygon zkEVM节点代码解析

1. 引言 前序博客: Polygon zkEVM网络节点 相关代码: https://github.com/0xPolygonHermez/zkevm-node(Go语言) Polygon zkEVM节点提供的主要服务模块有: 1)JSON-RPC服务2)Sequencer服务3&…

ICCV2017跟踪算法BACF原理及代码解析

文章和代码下载地址: Galoogahi H K, Fagg A, Lucey S. Learning Background-Aware Correlation Filters for Visual Tracking. 代码下载地址:http://www.hamedkiani.com/bacf.html BACF就是将MCCF多通道特征应用到CFLB上,然后通过ADMM求解…

【深度学习2】基于Pytorch的WGAN理论和代码解析

目录 1 原始GAN存在问题 2 WGAN原理 3 代码理解 GitHub源码 参考文章:令人拍案叫绝的Wasserstein GAN - 知乎 (zhihu.com) 1 原始GAN存在问题 实际训练中,GAN存在着训练困难、生成器和判别器的loss无法指示训练进程、生成样本缺乏多样性等问题。这…

YOLOv3:Darknet代码解析(四)结构更改与训练

背景:我们需要降低YOLOv2-tiny的参数量和存储量,以便硬件实现。 目的:更改YOLO结构,去掉后面的两层卷积层,降低参数量和运算量。 相关文章: YOLOv3:Darknet代码解析(一&#xff0…

StrongSORT(deepsort强化版)浅实战+代码解析

1.实战部分 1.1 具体操作 其实和之前的deepsort没差 到github上下载Yolov5_StrongSORT_OSNet下载对应的yolov5去替代原文件中yolov5下载yolov5权重(可以自动下载)和ReID权重(可能要科学上网)放到weight里面 ReID权重有点神秘&a…

对比学习 ——simsiam 代码解析。:

目录 1 : 事先准备 。 2 : 代码阅读。 2.1: 数据读取 2.2: 模型载入 3 训练过程: 4 测试过程: 5 :线性验证 6 : 用自己数据集进行对比学习。 第一: 改数据集 &#x…

AutoWare 代码解析

Auto Ware 代码解析系列(1) Auto Ware 是日本名古屋大学的开源无人车项目,下图为ros仿真环境下的各个节点的关系图: 代码库地址为:https://github.com/CPFL/Autoware 上面有较为详细的仿真环境配置信息,建…