Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 其他分享 › 「其他分享」TCP三次握手和四次挥手包抓包及分析

「其他分享」TCP三次握手和四次挥手包抓包及分析

Eswlnk的头像
Eswlnk
2022-08-21 13:36:16
「其他分享」TCP三次握手和四次挥手包抓包及分析-Eswlnk Blog
智能摘要 AI
本文介绍了使用Wireshark软件进行TCP三次握手和四次挥手实验的过程。实验中,通过浏览器访问指定网站,利用Wireshark抓取并分析数据包。三次握手包括客户端向服务器发送SYN请求,服务器回应SYN+ACK,客户端再次回应ACK,完成连接建立。四次挥手则涉及客户端发送FIN请求关闭连接,服务器回应ACK,随后服务器发送FIN请求关闭自身连接,客户端最后回应ACK,完成连接关闭。实验中发现服务器有时会将ACK和FIN合并,导致仅抓到三个挥手包。通过查阅资料解决了这一问题,最终成功验证了理论知识。

使用软件及环境

  1. Wireshark
  2. 连接上互联网
  3. 浏览器
「其他分享」TCP三次握手和四次挥手包抓包及分析-Eswlnk Blog

实验过程

实验前准备

安装好抓包软件,测试好本地网络连接是否正常,打开Wireshark开始抓包

完成实验操作

使用浏览器直接浏览网页https:/blog.eswlnk.com,待网页加载完成后停止抓包,接着可以将抓到的包进行保存。

分析三次握手过程

过滤掉其他无用包 介绍一些参数

过滤参数 tcp && tcp.port == 443 && ip.addr == 193.200.134.40 && tcp.port == 1271 将无用的包过滤掉

字段含义
URG紧急指针是否有效。为1,表示某一位需要被优先处理
ACK确认号是否有效,一般置为1。
PSH提示接收端应用程序立即从TCP缓冲区把数据读走。
RST对方要求重新建立连接,复位。
SYN请求建立连接,并在其序列号的字段进行序列号的初始值设定。建立连接,设置为1
FIN希望断开连接。

Client -> Server

0000   00 74 9c dd e6 c1 80 fa 5b 6b f8 0e 08 00 45 00
0010   00 34 fd 07 40 00 80 06 00 00 0a 02 5a 37 c1 c8
0020   86 28 04 f7 01 bb 70 c2 3f 0c 00 00 00 00 80 02
0030   fa f0 ac 50 00 00 02 04 05 b4 01 03 03 08 01 01
0040   04 02

第一次请求Client->Server [SYN]

TCP包头
0020   ** ** 04 f7 01 bb 70 c2 3f 0c 00 00 00 00 80 02
0030   fa f0 ac 50 00 00 02 04 05 b4 01 03 03 08 01 01
0040   04 02
数据含义值
04 f7源端口1271
01 bb目的端口443
70 c2 3f 0c32位序号1891778316
00 00 00 0032位确认序号0
80 02 1000 0000 0000 0010
1000TCP头部长度8
0000 00保留 
 URG0
 ACK0
 PSH0
 RST0
 SYN1
 FIN0
fa f0窗口大小64240
ac 50校验和0xac50
00 00紧急指针0x0000

Server -> Client

0000   80 fa 5b 6b f8 0e 00 74 9c dd e6 c1 08 00 45 04
0010   00 34 00 00 40 00 29 06 a5 96 c1 c8 86 28 0a 02
0020   5a 37 01 bb 04 f7 11 b2 bc 9a 70 c2 3f 0d 80 12
0030   fa f0 43 18 00 00 02 04 05 b4 01 01 04 02 01 03
0040   03 07

来自服务器的回复Server->Client [SYN,ACK] 此时由 Client -> Server 的通道已经打通

TCP包头
0020   ** ** 01 bb 04 f7 11 b2 bc 9a 70 c2 3f 0d 80 12
0030   fa f0 43 18 00 00 02 04 05 b4 01 01 04 02 01 03
0040   03 07
数据含义值
01 bb源端口443
04 f7目的端口443
11 b2 bc 9a32位序号296926362
70 c2 3f 0d32位确认序号1891778317
80 12 1000 0000 0001 0010
1000TCP头部长度8
0000 00保留 
 URG0
 ACK1
 PSH0
 RST0
 SYN1
 FIN0
fa f0窗口大小64240
43 18校验和0x4318
00 00紧急指针0x0000

Client -> Server

0000   00 74 9c dd e6 c1 80 fa 5b 6b f8 0e 08 00 45 00
0010   00 28 fd 0a 40 00 80 06 00 00 0a 02 5a 37 c1 c8
0020   86 28 04 f7 01 bb 70 c2 3f 0d 11 b2 bc 9b 50 10
0030   04 02 ac 44 00 00

来自客户端的回复Client->Server [ACK] 此时由 Server -> Client 的通道已经打通,此时 TCP三次握手 已经完成接下来就可以进行数据的传输了,由于网站使用的是tls1.3(https)的协议后面就不进行详细分析了

TCP包头
0020   ** ** 04 f7 01 bb 70 c2 3f 0d 11 b2 bc 9b 50 10
0030   04 02 ac 44 00 00
数据含义值
04 f7源端口1271
01 bb目的端口443
70 c2 3f 0d32位序号1891778317
11 b2 bc 9b32位确认序号296926363
50 10 0101 0000 0001 0000
0101TCP头部长度5
0000 00保留 
 URG0
 ACK1
 PSH0
 RST0
 SYN0
 FIN0
04 02窗口大小1026
ac 44校验和0xac44
00 00紧急指针0x0000

sequenceDiagram A–>B

分析四次挥手包

遇到的问题

我在抓四次挥手包时发现自己只能抓到3次?,很奇怪。经过查询资料后得知在如果对方收到本端FIN报文时,对方的接收通道就会关闭。此时,如果对方也没有数据发给本端,那么对方也会发送FIN给本端,用于关闭从对方到本端的连接,这时候就可能出现ACK和FIN合在一起的情况。当然,如果对方仍然有数据发送,那么就等数据发完,再发FIN来关闭连接,这时候就是四次挥手了。因此,四次挥手变成三次。

Client -> Server

0000   00 74 9c dd e6 c1 80 fa 5b 6b f8 0e 08 00 45 00
0010   00 28 3f 3c 40 00 80 06 00 00 0a 02 5a 37 c1 c8
0020   86 28 44 92 01 bb 25 55 d2 86 6b db ec 11 50 11
0030   04 00 ac 44 00 00

第一次请求Client->Server [ACK FIN]向服务器请求关闭服务器的接收通道

TCP包头
0020   ** ** 44 92 01 bb 25 55 d2 86 6b db ec 11 50 11
0030   04 00 ac 44 00 00
数据含义值
44 92源端口17554
01 bb目的端口443
25 55 d2 8632位序号626381446
6b db ec 1132位确认序号1809574929
50 11 0101 0000 0001 0001
0101TCP头部长度5
0000 00保留 
 URG0
 ACK1
 PSH0
 RST0
 SYN0
 FIN1
04 00窗口大小1024
ac 44校验和0xac44
00 00紧急指针0x0000

Server -> Client

0000   80 fa 5b 6b f8 0e 00 74 9c dd e6 c1 08 00 45 04
0010   00 28 13 aa 40 00 2a 06 90 f8 c1 c8 86 28 0a 02
0020   5a 37 01 bb 44 92 6b db ec 11 25 55 d2 86 50 10
0030   01 f5 6b 9f 00 00 00 00 00 00 00 00

Server->Client [ACK]此时服务器已经关闭了自己的接收通道

TCP包头
0020   ** ** 01 bb 44 92 6b db ec 11 25 55 d2 86 50 10
0030   01 f5 6b 9f 00 00 00 00 00 00 00 00
数据含义值
01 bb源端口443
44 92目的端口17554
6b db ec 1132位序号1809574929
25 55 d2 8632位确认序号626381446
50 10 0101 0000 0001 0000
0101TCP头部长度5
0000 00保留 
 URG0
 ACK1
 PSH0
 RST0
 SYN0
 FIN0
01 f5窗口大小501
6b 9f校验和0x6b9f
00 00紧急指针0x0000

Server -> Client

0000   80 fa 5b 6b f8 0e 00 74 9c dd e6 c1 08 00 45 04
0010   00 28 13 ab 40 00 2a 06 90 f7 c1 c8 86 28 0a 02
0020   5a 37 01 bb 44 92 6b db ec 11 25 55 d2 86 50 11
0030   01 f5 6b 9e 00 00 00 00 00 00 00 00

Server->Client [ACK FIN]服务器向客户端请求关闭客户端的接收通道

TCP包头
0020   ** ** 01 bb 44 92 6b db ec 11 25 55 d2 86 50 11
0030   01 f5 6b 9e 00 00 00 00 00 00 00 00
数据含义值
01 bb源端口443
44 92目的端口17554
6b db ec 1132位序号1809574929
25 55 d2 8632位确认序号626381446
50 11 0101 0000 0001 0001
0101TCP头部长度5
0000 00保留 
 URG0
 ACK1
 PSH0
 RST0
 SYN0
 FIN1
01 f5窗口大小501
6b 9e校验和0x6b9e
00 00紧急指针0x0000

Client -> Server

0000   00 74 9c dd e6 c1 80 fa 5b 6b f8 0e 08 00 45 00
0010   00 28 3f 3d 40 00 80 06 00 00 0a 02 5a 37 c1 c8
0020   86 28 44 92 01 bb 25 55 d2 87 6b db ec 12 50 10
0030   04 00 ac 44 00 00

Client->Server [ACK]此时双向通道都已经关闭了,四次挥手包完成

TCP包头
0020   ** ** 44 92 01 bb 25 55 d2 87 6b db ec 12 50 10
0030   04 00 ac 44 00 00
数据含义值
44 92源端口17554
01 bb目的端口443
25 55 d2 8732位序号626381447
6b db ec 1232位确认序号1809574930
50 10 0101 0000 0001 0000
0101TCP头部长度5
0000 00保留 
 URG0
 ACK1
 PSH0
 RST0
 SYN0
 FIN0
04 00窗口大小1024
ac 44校验和0xac44
00 00紧急指针0x0000

实验结果

成功抓到TCP握手与挥手的包,并且分析完成,验证了老师上课讲的内容。但在实验过程中也遇到了一些困难,特别是在抓挥手包时,服务器发送的包总是将ACK和FIN合并,导致只抓到三个包,后面经过查阅资料成功解决问题。

本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
tcp工程实践报告抓包
0
0
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
「其他分享」Laplace变换和终值定理
上一篇
「其他分享」Citrix Virtual Desktops 如何手动释放 Licence 许可证
下一篇

评论 (0)

请登录以参与评论
现在登录
    发表评论

猜你喜欢

  • 「亲测有效」Google Gemini 学生优惠:解决身份验证和支付卡验证
  • 解决国际版EdgeOne绑卡和手机验证问题
  • 小工具开发之EdgeOne免费计划兑换工具
  • 「其他分享」市面上静态页面服务商比较与推荐:选择最适合您的平台
  • 「图片优化」利用Cloudflare CDN减少回源Bucket流量
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

苹果今天确认,正式放弃这iPhone
2021-12-03 14:45:44
「WordPress主题」Alright 主题 | 岁月无恙,记录生活的每一刻
2024-03-22 13:37:38
「资料分享」计算机网络第七版答案
2022-10-09 16:33:49

文章目录

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.968 秒   |  SQL查询 37 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈