1.网络七层协议
应用层 http,ftp.
表示层 数据表示压缩加密处理
会话层 创建会话结束会话
传输层 UDP,TCP
网络层 路由,IP
数据链路层 交换机,网卡
物理层 中继器
2.TCP/IP协议族
分为四层,应用层,传输层,网络层,数据链路层
IP协议:各种数据包传送给对方
TCP协议:一种面向连接的、可靠的、基于字节流的传输层通信协议。三次握手,四次挥手。
UDP协议:一种面向无连接,且不可靠的协议
DNS:服务提供了域名到IP地址之间的解析服务。
HTTP协议:超文本传输协议,是一种建立在TCP上的无状态连接
3.TCP拥塞解决方案
慢开始:从小到大逐渐增大发送端的拥塞控制窗口数
快重传:接收方在收到一个失序的报文段后就立即发出重复确认
快恢复:发送方连续收到三个重复确认时,就执行“乘法减小”算法,拥塞控制窗口数
4.其他协议
SIP协议:基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。可以支持并应用于语音、视频、数据等多媒体业务。VOIP网络通话结合使用
SDP 会话描述格式,描述了一个Session中包含哪些文本数据,媒体数据,会话状态,主叫,被叫,音视频编码格式等等
RTP,RTSP 多媒体数据流的一种传输层协议
Webrtc浏览器的网络应用中加入实时音视频通信功能
5.聊天方案
本地数据库优化,使用fmdb索引,提升读取性能
传输数据优化,使用gzip压缩数据包
消息列表优化,新增或删除做部分更新
头像图片缓存,避免重复加载,浪费内存
丢消息处理,ACK(回执)机制,每次接收并处理完,给服务端发送一个ACK,否则认为消息未处理
消息乱序,采用msgid避免
消息重复,客户端收到重复消息,做去重处理即可
群消息优化,服务端有一个积压消息MessageQueue,如果超过一定的大小,会将多条消息压缩成包进行发送。客户端接收数据包,解包。