VIP20
本课程属于:005-GDB调试 编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

粘包拆包调试技巧实战

📚 共计 30 章节
01
粘包拆包现象
什么是粘包?什么是拆包?为什么TCP会有粘包拆包?
基础概念
02
粘包拆包的根本原因
TCP是流式协议、Nagle算法、MSS与MTU限制
原理TCP
03
粘包拆包对业务的影响
数据错位、解析失败、业务逻辑错误
影响故障
04
调试工具准备
Wireshark抓包、tcpdump命令行、nc/ncat工具
工具环境
05
Wireshark基础过滤
ip.addr、tcp.port、tcp.stream过滤技巧
Wireshark过滤
06
Wireshark追踪TCP流
Follow TCP Stream功能详解
Wireshark流追踪
07
tcpdump实战
抓取指定端口、保存pcap文件、配合Wireshark分析
tcpdump抓包
08
nc/ncat模拟客户端
发送原始数据、观察粘包现象
nc模拟
09
Python模拟粘包
使用socket发送连续数据包,观察合并
Python模拟
10
C语言模拟粘包
send多次数据,recv一次读取
C语言底层
11
固定长度协议
定义固定报文长度,不足补位
协议定长
12
固定长度协议调试
验证补位逻辑,检查边界条件
调试边界
13
特殊分隔符协议
使用\r\n或自定义分隔符
分隔符协议
14
特殊分隔符协议调试
转义处理、分隔符冲突排查
转义冲突
15
TLV(Type-Length-Value)协议
结构化编码
TLV结构化
16
TLV协议调试
逐字节解析,验证Length字段
逐字节验证
17
头部长度字段协议
自定义Header+Payload
Header长度
18
头部长度字段调试
大小端问题、长度计算错误
大小端计算
19
应用层缓冲区设计
环形缓冲区、链式缓冲区
缓冲区设计
20
缓冲区溢出排查
valgrind、AddressSanitizer检测
溢出检测
21
多线程环境下的粘包
锁竞争、数据乱序
多线程并发
22
多线程调试技巧
GDB断点、日志时间戳
GDB时间戳
23
日志系统搭建
打印收发数据、时间戳、序列号
日志监控
24
日志分析工具
grep、awk、Python脚本解析日志
分析脚本
25
压力测试下的粘包
高并发场景复现
压力高并发
26
压力测试工具
wrk、ab、自定义压测脚本
wrkab
27
常见框架处理方案
Netty、libevent、Boost.Asio
框架Netty
28
Netty粘包拆包处理器
LineBasedFrameDecoder、LengthFieldBasedFrameDecoder
Netty处理器
29
libevent缓冲事件
evbuffer的使用与调试
libeventevbuffer
30
综合实战:从抓包到修复
从抓包到修复一个真实粘包Bug
实战Bug修复