即时通讯系统为了保证连接的可靠性,常用的是TCP协议或者类TCP连接协议。这类协议的特点是追求连接的可靠性,而造成了延时的不可控性,超过2秒的延时响应是常态,甚至几十分钟的延时响应,而电信级的实时通讯标准是400ms,而基于互联网的实时通讯需要另辟蹊径,开创出新的传输解决方案。这又与应用场景相关了。发短信,延时几秒钟送达,对使用者影响不大。
即时通讯:主要要求可靠,考核送达率。假如发一条短信,结果对方没收到!你还相信短信吗?
实时通讯:主要要求低延时和接通率。
低延时:你打电话每说一句,对方得几秒钟才有回应,这电话你也讲不下去了吧。
接通率:打电话时你这边显示接通了,实际上对面的手机毫无反应,就是没接通。
可以参考下anyRTC的通讯技术文档,我们是覆盖全媒体的,我们的编解码技术在超低延时方面有很显著的效果。
技术环节
即时通讯技术环节:消息发送和确认,【消息接入端、服务端消息逻辑处理,服务端消息缓存和存储,转发,服务端用户状态管理,心跳机制,消息发送端】、消息接收和确认。
实时通讯技术环节:采集、前处理、编码、【服务端接入、转发、服务端接入】、解码、播放和渲染。这些技术环节重合的部分是:信息转发。
传输协议
公共互联网上,常用的通讯协议有TCP、UDP。
TCP:Transmission ControlProtocol,传输控制协议是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。有延时不可控的特点。
UDP:User DataProtocol,用户数据报协议,是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。存在丢包、抖动、延时的特征。