即时通信的技术原理

热门问答 2023-06-29 10:46:07

即时通信是一种基于Internet 的通信技术, 涉及到IP/TCP/UDP/Sockets、P2P、C/S、多媒体音视频编解码/传送、Web Service等多种技术手段。无论即时通信系统的功能如何复杂,它们大都基于相同的技术原理,主要包括客户/服务器(C/S)通信模式和对等通信(P2P)模式。

C/S结构以数据库服务为核心,通过网络连接多台计算机形成一个有机整体,客户端和服务器端分别执行不同的功能。但是,在客户机/服务器结构中,多个客户机并行操作,存在更新丢失和多用户控制的问题。因此,在设计中应充分考虑信息处理的复杂性,选择合适的结构。在实际应用中,可以采用三层C/S结构。三层C/S结构非常类似于中间件模型,由基于工作站的客户机层、基于服务器的中间层和基于主机的数据层组成。在三层结构中,客户端不生成数据库查询命令,而是访问服务器上的中间层,中间层生成数据库查询命令。三层C/S结构便于工作部署。客户端层主要处理交互界面,中间层表达事务逻辑,数据层负责管理数据源和选择。

P2P模型是一种非中心结构的对等通信模型。每个节点都是平等的参与者,承担服务用户和服务提供者的角色。客户之间直接通信可以充分利用网络带宽,减少网络拥塞,大大提高资源利用率。同时,由于没有中心节点的集中控制,系统具有很强的可扩展性,还可以避免单点故障,提高系统的容错性能。然而,由于P2P网络的分散性、自治性和动态性,在某些情况下用户访问的结果是不可预测的。例如,请求可能无法从任何回复消息中获得反馈。

目前,大多数IM系统采用C/S和P2P相结合的模式。登录IM进行身份认证时工作在C/S模式,如果客户端可以直接通信则工作在P2P模式,否则通过IM服务器以C/S模式通信。例如,在图1中,如果用户A想要与用户B通信,他必须首先与IM服务器建立连接,从IM服务器获取用户B的IP地址和端口号,然后A向B发送通信信息..B收到A发送的信息后,可以根据其IP和端口直接与A建立TCP连接,与A进行通信..在随后的通信过程中,A和B之间的通信不再依赖于IM服务器,而是采用对等通信(P2P)模式。由此可见,即使通信系统结合了C/S模式与P2P模式,也就是首先客户端与服务器之间采用C/S模式进行通信,包括注册、登录、获取通信成员列表等,随后,客户端之间可以采用P2P通信模式交互信息。

 

免费与10000名中国最顶尖CIO、CTO交流