Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 21 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
ios-async-socket-explorer 是一个生产级TCP通信框架,来源于即时通讯领域实际工作经验(**已脱敏**)。展示了从**小型项目单 TCP 架构**,逐步演进为适用于中大型项目**多路复用架构**的过程,包含协议设计、架构解耦、高并发优化等核心实践。

**主要特性:**
- 支持10k+并发连接的高性能架构,日均稳定处理10万+消息量
- 支持峰值5k+并发连接的高性能架构,日均稳定处理10万+消息量
- 完善的弱网环境优化策略,包含指数退避重连算法和自适应心跳
- TLS加密与自定义二进制协议,保障通信安全性
- 企业级VIPER分层架构设计,单元测试覆盖率>90%
Expand Down Expand Up @@ -80,19 +80,20 @@ client.sendMessageWithAutoRoute(mediaMsg) // 自动路由到媒体会话

| 功能类别 | 核心特性 | 应用场景 |
| -------------|----------------------- | --------------------|
| **网通通信核心** | 内置心跳保活、断线重连、ACK确认机制 | 即时通讯、IoT设备管理 |
| **网络通信核心** | 内置心跳保活、断线重连、ACK确认机制 | 即时通讯、IoT设备管理 |
| **二进制协议设计** | 自定义TLV结构协议、CRC32校验、高效压缩 | 高吞吐、低延迟场景 |
| **高并发优化** | 多路复用连接池、GCD优化、零拷贝传输 | 实时数据同步 |
| **现代企业级架构** | VIPER分层架构、注入式解耦框架(Typhoon)、IM防腐层设计 | 大型项目长期维护 |
| **弱网优化** | ACK确认机制、指数退避重传、自适应动态心跳 | 移动网络环境通信 |

## 性能指标

- **高并发能力**: 支持5,000+并发连接,内存占用1.6GB (约320KB/连接)
- **消息吞吐量**: 单连接峰值8,000 pps (约6.4 Mbps),基准测试环境
- **高并发能力**: 支持峰值5,000+并发连接,内存占用1.6GB (约320KB/连接)
- **消息吞吐量**: 单连接峰值8,000 pps (约6.4 Mbps),基准测试环境(iPhone 14 Pro)
- **线程效率**: 多线程切换耗时占比 < 3%,GCD优化调度
- **弱网表现**: 30%丢包环境下消息可达率>92%,平均延迟<800ms
- **响应速度**: 网络恢复后连接重建平均耗时<2秒
- **资源占用**: 相比传统实现,内存占用减少35%,CPU使用降低28%
- **资源占用**: 相比NSURLSession方案,内存占用减少35%,CPU使用降低28%
- **生产验证**: 日均处理10万+消息,真实服务于企业客户

## 🔥 技术亮点
Expand Down Expand Up @@ -182,6 +183,10 @@ Socket通信模块架构
<td>原始数据或嵌套TLV<br>(保留Tag <code>0xFFFF</code>标记)</td>
</tr>
</table>
**示例数据包**:
文本消息 "Hello" 的TLV编码:
[10 01] [00 00 00 05] [48 65 6C 6C 6F]
Tag Length Value("Hello")

- 采用**大端字节序**,兼容不同硬件平台
- 支持**协议版本协商**,实现向前兼容
Expand Down Expand Up @@ -248,31 +253,31 @@ iOS-Network-Stack-Dive/
│ └── AOP/
│ │ └── LoggingAspect/ # 日志追踪切面
│ └── NetworkMonitor/ # 网络监控
├── CoreNetworkStack/
│ ├── TransportLayer/ # 传输层实现
│ │ ├── TCP-State-Machine/ # TCP状态机实现
│ └── ProtocolLayer/
│ ├── BinaryProtocol/ # 自定义二进制协议
│ │ ├── Encoder-Decoder/ # 编解码器
│ │ └── CRC-Checker/ # 校验模块
│ └── Security/
│ ├── KeyExchange/ # 密钥交换
│ └── PacketEncryption/ # 数据加密
├── CoreNetworkStack/
│ ├── V1_BasicFunction/ # 最初演示版本(演示TCP问题,并解决问题)
│ ├── V2_Concurrency/ # 多并发版本(单链接,此项目中更多用于演示作用)
│ ├── TJPIMCore/ # IM核心,多路复用通讯框架
│ └── TransportLayer/ # 传输层Mock
└── ProductionBridge/
└── VIPER-Sample/ # 真实项目代码片段
└── MessageModule/ # 消息模块实现
```

## 版本历史
<details>
<summary><b>📋 版本历史</b></summary>

- **v1.0.0**:网络框架基础核心功能基本完成、生产级VIPER架构演示完成
- **v1.0.1**:修复了因libffi编译导致无法在模拟器运行的问题
- **v1.1.0**:新增全链路追踪、关键指标采集(网络质量/成功率/延迟)并添加演示Demo,引入序列号分区机制,整体逻辑优化
- **v1.2.0**:协议改造为TLV结构,支持协议无缝升级,整体逻辑重构,消息构造和解析逻辑发生本质变化,详见Doc
- **v1.2.1**:完善了消息错误机制,遵循单一职责拆分了数据包解析、组装,抽象了连接管理类,优化了握手交换协议版本信息逻辑
- **v1.3.0**:升级动态心跳机制,结合App状态+网络状态,使用更成熟稳定的方案动态调整心跳频率;埋点功能优化,提供更全面的埋点维度

</details>

## 后续迭代计划
- **运营商网络适配**: 智能心跳策略、NAT超时处理、运营商防拦截
- **运营商网络适配**: NAT超时处理、运营商防拦截
- **极端环境支持**: 智能降级策略、弱网优化、多级故障恢复
- **高性能传输**: 连接池优化、大文件传输、QoS流量控制
- **IM组件库**: 防腐层设计、聊天UI组件、VIPER架构示例
Expand Down