基于XMPP的P2P即时通信系统的研究及实现

基于XMPP的P2P即时通信系统的研究及实现

论文摘要

随着中国网民数的不断增加,即时通讯在人们的生活中起着越来越重要的作用,它已经成为目前人们在网上的主要沟通工具。即时通讯是指由两个或多个参与者通过因特网或者其他类型的网络,进行的一种实时的并且主要是基于文本的通讯。即时通讯跟其他通讯技术比如电子邮件相比,其主要优势在于用户之间的沟通是同步的,即聊天是实时进行的。有一些即时通讯系统还会允许用户发送消息给另外一个离线用户,这就使得它也有了类似电子邮件的功能。目前大多数即时通讯系统采用Client/Server架构,这样就使服务器的地位比较关键,系统的瓶颈在服务器上。但最近出现的P2P技术使这一问题得到解决。本文提出了一种有服务器辅助的P2P架构,较好地在改善系统管理和提高系统效率方面做出了平衡。XMPP(Extensible Messaging and Presence Protocol)是近来比较流行的一种即时通讯协议。它以XML为基础,并且是一种开放式协议。XMPP有灵活性和开放性的特点,任何人都可以实现自己的XMPP服务并与其他组织的XMPP服务进行交互,亦即只要是遵守XMPP开发出来的系统,不管它的开发者是谁,理论上都可以互相通讯。XMPP甚至也定义了和采用其他协议的系统进行通讯的流程。同时,目前IPv4地址已经分配完毕,许多公司和组织已经开始向IPv6地址过渡,但网络地址转换(Network Address Translation,简称NAT)技术成为了解决IPv4地址匮乏的主要技术,它可以将内网中多个节点映射成一个外部IP地址,或者相反,以此来解决IP地址匮乏的问题。现在很多公司或组织的网络都采用了NAT技术,因此研究即时通讯系统的NAT穿越问题无疑具有十分重要的实用意义。本文在介绍XMPP即时通讯协议相关技术的基础上,实现了一个基于XMPP的P2P即时通讯系统原型,系统采用事件驱动机制,以观察者模式进行设计。主要功能包括:用户注册、用户登录、用户好友管理、文本通讯等功能。在对NAT的工作机制进行分析的基础上,深入研究P2P通讯穿越NAT的方法,选择客户端可集成的STUN(Session Traversal Utilities for NAT)协议实现了NAT的穿越。

论文目录

  • 摘要
  • ABSTRACT
  • 1 绪论
  • 1.1 研究背景及意义
  • 1.2 国内外研究现状
  • 1.3 技术路线及技术难点
  • 1.3.1 系统总体设计
  • 1.3.2 客户端设计
  • 1.3.3 技术难点
  • 1.4 文章结构介绍
  • 2 客户端总体设计
  • 2.1 客户端需求分析
  • 2.2 客户端功能分析
  • 2.3 系统总体设计
  • 2.4 客户端总体框架
  • 2.5 本章小结
  • 3 XMPP 流程分析
  • 3.1 基本概念
  • 3.2 客户端与服务器连接流程
  • 3.3 用户注册功能流程分析
  • 3.4 用户登录功能流程分析
  • 3.5 好友列表功能流程分析
  • 3.6 文本消息通信功能流程分析
  • 3.7 用户在线状态功能流程分析
  • 3.8 订阅管理功能流程分析
  • 3.9 本章小结
  • 4 客户端详细设计与实现
  • 4.1 客户端设计原则
  • 4.2 用户注册功能
  • 4.2.1 功能类设计
  • 4.2.2 主要功能类实现
  • 4.3 用户登录功能
  • 4.3.1 功能类设计
  • 4.3.2 主要功能类实现
  • 4.4 好友列表功能
  • 4.4.1 功能类设计
  • 4.4.2 主要功能类实现
  • 4.5 文本消息通信功能
  • 4.5.1 功能类设计
  • 4.5.2 主要功能类实现
  • 4.6 用户在线状态功能
  • 4.6.1 功能类设计
  • 4.6.2 主要功能类实现
  • 4.7 订阅管理功能
  • 4.7.1 功能类设计
  • 4.7.2 主要功能类实现
  • 4.8 模拟测试
  • 4.8.1 测试目的及环境
  • 4.8.2 测试程序解析
  • 4.8.3 测试流程及结果
  • 4.8.4 测试结论
  • 4.9 本章小结
  • 5 客户端设计关键问题研究
  • 5.1 NAT 类型简介
  • 5.1.1 NAT 工作原理
  • 5.1.2 NAT 的分类
  • 5.1.3 NAPT 的映射策略
  • 5.2 NAT 对P2P 影响的分析
  • 5.3 P2P 穿越NAT 技术
  • 5.4 STUN 穿越NAT 方案
  • 5.4.1 模拟测试
  • 5.5 本章小结
  • 6 结论
  • 6.1 论文的主要工作
  • 6.2 进一步的研究工作
  • 参考文献
  • 附录一 文本消息发送/接收测试程序
  • 致谢
  • 作者攻读学位期间发表的论文
  • 相关论文文献

    • [1].另类偏方查看QQ好友在线状态[J]. 电脑迷 2008(01)
    • [2].考虑断路器在线状态电网风险评估方法的研究[J]. 科学中国人 2017(21)
    • [3].基于多层次架构的继电保护在线状态评价方法[J]. 无线互联科技 2017(16)
    • [4].让Google Talk永远空闲[J]. 电脑迷 2008(10)
    • [5].分析采样设施在线状态检测及故障诊断分析[J]. 当代化工研究 2018(12)
    • [6].继电保护相关二次回路的在线状态检测技术探究[J]. 通讯世界 2016(08)
    • [7].对配电网在线状态检修技术要点的深入探讨[J]. 黑龙江科学 2014(12)
    • [8].浅析配电网在线状态检修技术要点[J]. 中国新技术新产品 2015(07)
    • [9].让QQ的隐身可见功能更好用[J]. 电脑知识与技术(经验技巧) 2011(07)
    • [10].配电网在线状态检修技术要点探讨[J]. 科技资讯 2012(06)
    • [11].翻车机在线状态检修技术的探讨[J]. 电力安全技术 2014(01)
    • [12].翻车机智能在线状态检修技术[J]. 神华科技 2014(04)
    • [13].工会干部要时刻保持在线状态[J]. 中国工会财会 2017(11)
    • [14].继电保护相关二次回路的在线状态检测技术研究[J]. 科技创新与应用 2015(36)
    • [15].配电网在线状态检修技术要点探析[J]. 中国新技术新产品 2012(03)
    • [16].分析继电保护相关二次回路在线状态检测[J]. 通讯世界 2016(19)
    • [17].配电网在线状态检修技术要点初探[J]. 通讯世界 2013(23)
    • [18].切换QQ在线状态也要追求快捷高效[J]. 网友世界 2010(08)
    • [19].不登录人人 新鲜事也知晓[J]. 电脑爱好者 2010(22)
    • [20].继电保护相关二次回路的在线状态检测技术研究[J]. 民营科技 2017(08)
    • [21].微言[J]. 第二课堂(高中) 2010(11)
    • [22].光纤智能在线状态检修管理系统的应用[J]. 华北电力技术 2013(10)
    • [23].AVAYA在线状态技术让统一通信更“智能”[J]. 通讯世界 2008(04)
    • [24].卧式振动离心机在线状态监控及调节系统设计[J]. 选煤技术 2020(05)
    • [25].基于IMS的即时通讯在线状态服务系统的研究[J]. 合肥工业大学学报(自然科学版) 2009(04)
    • [26].继电保护相关二次回路的在线状态检测[J]. 农村电气化 2017(11)
    • [27].继电保护相关二次回路的在线状态检测[J]. 中国新技术新产品 2018(07)
    • [28].今天你点赞了吗[J]. 理财 2015(04)
    • [29].在线状态检测与故障诊断技术[J]. 低碳世界 2016(25)
    • [30].网络——我们的快乐园地[J]. 小学生时代 2010(03)

    标签:;  

    基于XMPP的P2P即时通信系统的研究及实现
    下载Doc文档

    猜你喜欢