论文部分内容阅读
当今即时消息的主流协议SIMPLE是基于对SIP协议的扩展,SIP协议具有灵活、简单和扩展性好等优点,并且已经成为构建即时通信系统的主流信令协议。然而传统的SIP服务是基于客户端/服务器架构的,随着用户数量的高速增长,不可避免地出现“单点失效”和“性能瓶颈”等问题。P2P技术是和客户端/服务器模式相对的另一种网络信息交换方式,在P2P网络中节点地位都是平等的,不再有客户端,服务器之分,不会因为单个节点的失败影响整个网络。在某些方面,SIP和P2P具有互补性。因此,研究如何将P2P与SIP相结合,建立一个基于P2P-SIP架构的即时通信系统,具有很重要的现实意义。同时考虑到应用的完整性,该系统不仅要支持通信双方在线情况下的应用场景,更要对某一通信方不在线的场景加以考虑,以此来提高用户的应用体验。本论文首先对即时通信,P2P以及P2P-SIP的研究现状作了简要介绍,之后对SIP协议做了概要性的介绍,随后从SIP功能实体,消息类型以及状态消息的实现方法三个方面对于SIP协议进行了深入的分析。之后介绍了P2P技术的分类,比较了各种技术的优劣,并对认为较优的Kademlia技术的基本操作和路由查找机制进行详细介绍,选择其作为本系统的底层P2P网络。在以上理论知识的基础上,对于本系统进行总体设计以及P2P, SIP两个主要模块的详细设计,并在Windows环境下实现了该系统。最后,对系统进行测试和分析。本论文的特色和创新点主要体现在以下方面:本系统考虑了当用户不在线情况下,离线消息的存储,转发的策略以及实现方法,扩展了本系统的应用场景,具有很重要的现实意义。采用模块化编程,针对P2P-SIP应用对原始Kadernlia模块进行扩展和封装,减少代码之间的耦合度,提高系统可复用性。