网易云信 项望烽 - 聊天室场景下的移动网络优化

范姜敏丽

2017/11/26 发布于 技术 分类

IM 发展至今,已经是互联网应用的重要形态之一。在移动互联网时代,它以无与伦比的优势降低了用户的沟通成本,增加了 APP 用户的粘性。但相应的,移动网络的复杂性对 IM 产品的实时性,稳定性带来巨大的挑战。这次演讲将以移动网络下的聊天室为切入点,简述云信 IM SDK 如何在网络传输的各个环节进行优化,保障 IM 通讯的稳定,实时和高效。

文字内容
1. 聊天室场景下的移动端优化
2. 自我介绍 • 项望烽 • 网易 • 五年 iOS IM 产品开发经验 – 网易 POPO – 易信 – 云信
3. 聊天室场景 在线人数多 单位时间内消息量巨大 消息流模式和 IM 有巨大差异
4. IM 场景下消息流 在线状态服务器 边缘服务器 边缘服务器
5. 聊天室场景下消息流 聊天室服务器集群
6. 优化环节 连接 登录 发送消息 接收消息
7. 普通服务器连接模式 www.16613..1c6o6m.128.80 DNS 服务器 应用服务器 l 查询时间长 l DNS 污染 l 依赖运营商
8. HTTP DNS GET http“:/d/n1s0”6:.2{.“8h1o.8st/”/1:0w0w00w0./1d6?3h.coosmt=,w”iwpsw”:.[1]6,t3tl.:c6o0m,http2:H0} TTP DNS 应用服务器 l 优点 l 可控 l NSURLProtocol l 缺点 l HTTPS 兼容性
9. 本地部署服务器 IP ips:[“123.58.180.8”.”123.58.180.7”] l 更新机制 l 淘汰机制 l 全异步
10. 聊天室场景 IM 应用服务器 本地缓存 IP 列表 聊天室服务器
11. 连接保持 心跳包优化 重连退避机制
12. 登录 快速 安全
13. 安全的代价 Sender SYN 28ms ACK ClientHello ClientKeyExchange ChangeCipherSpec Finished 84ms 140ms Application Data 196ms Receiver 0ms SYN ACK 56ms 112ms ServerHello Certificate ServerHelloDone ChangeCipherSpec Finished 168ms Application Data 224ms TCP-56ms TLS-112ms TCP 握手 SSL/TLS 握手 登录
14. 安全的代价 证书大小:3 KB 左右
15. 更快的安全登录 Sender SYN ACK Shakehand + application data Receiver SYN ACK Shakehand Application Data
16. 登录请求优化 • 协议精简 – 二进制协议 – 压缩 • 流程优化 – 增量同步 – 按需同步
17. 发送消息 • 稳定 • 快速 • 不丢包 • APP 层 ACK • 重发 • 去重
18. 资源文件上传优化 快速 稳定
19. 2B 青年的文件上传 l 移动网络下容易失败 l 失败后从 0 开始 multipart request response 资源服务器
20. 普通青年的文件上传 分块上传 1 分块上传 2 分块上传 3
21. 普通青年的问题 T=(partsize+http_payload)*n/speed+rtt*n 假设一个文件有 512 KB,当前网速 100KB/S, RTT 为 200 ms 分片大小为 4KB,需要约 30 s,其中 rtt 耗时为25.6s 分片大小为 128KB,需要约 6 s,其中 rtt 耗时为 0.8s
22. 文艺青年的做法 (一) part-size 2 *part-size 4 *part-size
23. 文艺青年的做法 (二) PIPELINING
24. 文艺青年的做法 (二)
25. 文艺青年的做法 (二)
26. 文艺青年的做法 (三) 边录边传
27. 接收消息 单位时间内消息量大 大多数是短文本
28. 接收消息优化 通知合并 后台计算 估算
29. UI 组件
30. Talk is cheeeeeap…