首页
›
编程基础与工程化
›
006-Makefile构建
›
《TCP网络编程与粘包拆包实战》
VIP20
本课程属于:006-Makefile构建
编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
TCP网络编程与粘包拆包实战
📚 共计 30 章节
01
网络基础回顾
OSI七层模型与TCP/IP四层模型,数据封装与解封装过程。
基础
分层
02
Socket编程入门
什么是Socket,Socket类型(流式、数据报),Socket编程的基本流程。
入门
API
03
TCP三次握手
三次握手的过程详解,状态变迁(CLOSED, SYN_SENT, ESTABLISHED等),为什么是三次而不是两次。
核心
状态
04
TCP四次挥手
四次挥手的过程详解,TIME_WAIT状态的作用与危害,端口复用选项。
关闭
TIME_WAIT
05
TCP服务端编程
创建socket,绑定地址,监听,接受连接,收发数据,关闭连接。
服务端
流程
06
TCP客户端编程
创建socket,连接服务器,收发数据,关闭连接。
客户端
connect
07
阻塞与非阻塞IO
阻塞模式下的accept/read/write行为,非阻塞模式设置方法,select/poll/epoll简介。
IO模型
非阻塞
08
I/O多路复用-select
select函数原型,fd_set操作,select的优缺点,实战案例。
select
复用
09
I/O多路复用-poll
poll函数原型,pollfd结构体,poll与select对比,实战案例。
poll
对比
10
I/O多路复用-epoll
epoll_create/epoll_ctl/epoll_wait,LT与ET模式,边缘触发的陷阱,实战案例。
epoll
ET/LT
11
粘包问题初探
什么是粘包,粘包产生的原因(Nagle算法、TCP缓冲区),粘包与拆包的区别。
粘包
Nagle
12
粘包问题演示
编写一个简单的客户端和服务端,演示粘包现象,观察数据合并。
演示
实验
13
固定长度协议
设计固定长度的消息头,发送端填充,接收端按长度截取。
定长
拆包
14
特殊分隔符协议
选择特殊分隔符(如\r\n),发送端追加,接收端按分隔符拆分。
分隔符
解析
15
长度域协议(TLV)
设计Type-Length-Value结构,发送端编码,接收端解码。
TLV
编码
16
自定义协议栈
结合固定头和可变体,设计一个简单的应用层协议。
自定义
协议
17
JSON协议实战
使用JSON作为应用层协议,序列化与反序列化,处理粘包。
JSON
序列化
18
Protobuf协议实战
Google Protobuf简介,定义.proto文件,编译生成代码,在TCP中使用。
Protobuf
高效
19
消息边界与缓冲区设计
环形缓冲区原理,动态缓冲区扩容策略,零拷贝技术简介。
缓冲区
零拷贝
20
高并发服务器模型
多进程模型,多线程模型,Reactor模型,Proactor模型。
并发
模型
21
Reactor模式实现
基于epoll的Reactor框架,事件驱动,回调函数设计。
Reactor
事件
22
线程池与任务队列
线程池原理,任务队列实现,避免死锁与竞态条件。
线程池
并发
23
心跳机制
为什么需要心跳,心跳包设计,超时重连策略。
心跳
保活
24
断线重连
客户端断线检测,指数退避重连策略,会话恢复。
重连
退避
25
流量控制与拥塞控制
滑动窗口,慢启动,拥塞避免,快速重传与快速恢复。
拥塞
滑动窗口
26
TCP Keepalive
SO_KEEPALIVE选项,参数调优,与心跳机制对比。
Keepalive
调优
27
网络编程中的异常处理
SIGPIPE信号处理,EINTR错误,EAGAIN/EWOULDBLOCK处理。
异常
信号
28
性能调优
TCP_NODELAY禁用Nagle,SO_RCVBUF/SO_SNDBUF调优,零拷贝sendfile。
调优
Nagle
29
安全编程
避免缓冲区溢出,防止DoS攻击,SSL/TLS加密传输简介。
安全
SSL
30
综合实战:即时通讯服务器
从零实现一个支持粘包处理的即时通讯服务器(含客户端)。
实战
IM
所属VIP或分类
同VIP:GDB调试与Makefile集成实战
同VIP:Makefile与C语言项目实战
同VIP:Makefile实战:C语言项目构建