XMPP通信原理

作者: dogs_five | 来源:发表于2016-06-14 12:24 被阅读1366次

    本文章对XMPP通信原理做基本的介绍,不讲具体代码。在面试的时候会经常听到:能介绍一下XXXX原理吗?当然面试不一定全是问XMPP原理。所以接下来几篇文章都是一些原理的介绍,希望对小伙伴们能有所用处,废话不多,进入主题。
    1:XMPP概述
    XMPP(可扩展消息处理现场协议)的前身是Jabber,由一个开源组织产生的即时通信协议,基于可扩展标记语言(XML)的一种协议,是由IETF(国际互联网小组)通过的网络标准。
    XMPP定义了三个角色:客户端,服务端以及网关(下面介绍作用)
    2:XMPP的优势
    可扩展性:XMPP基于XML,因此具有良好的扩展性。
    开源:XMPP不属于任何一个人。
    安全:XMPP在Client-to-Server通信,和Server-to-Server通信中都使⽤用TLS (Transport Layer Security)协议作为通信通道的加密⽅法。
    分布式:XMPP没有中央服务器,任何企业例如都可以拥有自己的XMPP服务器,并且服务器之间以及不同服务器的用户可以相互通信。举例:如现在的qq用户是不可能和FaceBook用户通信的,但是若干年后(XMPP已经作为网络标准),可能出现一种情况,qq用户可以添加并且和fb用户聊天。

    3:缺点
    负载过重,没有二进制数据传输。

    4:网关(gateway)
    上面说到qq用户和FB用户聊天,那么这里不得不提网关,网关的作用就是实现XMPP和其他系统之间的协议转换,使其可以互相交换信息.

    5:通信原理


    连接原理图.png

    1:首先客户端1通过socket向服务端通过三次握手建立TCP长连接(由C1向服务器发送登陆等信息进行认证)。


    三次握手长链接.png

    2:服务器端对C1进行认证成功,服务器将C1的联系人列表返回给它
    3:C1通过服务端向其好友发送状态(presence)消息(在线/隐身)

    6 七层协议简介


    tcp:ip协议族.gif 协议详解.png

    这里对TCP和UDP进行一个区分:


    TCP和UDP协议区别.png

    这里给大家再普及一个很小的知识点:
    ip:我们都听过ip寻址,那么ip是什么呢?ip类似于人的身份证,是电脑的唯一标示。
    端口:端口是进程的唯一标示,如果不明白什么是进程就看作是应用程序(QQ)。有效端口是0-65535,其中0-1024为系统占用或者系统保留端口,不建议使用。

    相关文章

      网友评论

      • 信仰支撑我不会痛:xmpp协议的内容并没有被提及多少,mark看以后的更新了。
        KearWang:xmpp不是耗流量、耗电量吗?是不是现在都推荐用mqtt和Protobuf
      • 豫风:不错,就是太少了
      • 5d32ca0383ce:三次握手协议的建立连接过程 太喜感了~~
        啊哈哈哈

      本文标题:XMPP通信原理

      本文链接:https://www.haomeiwen.com/subject/gtcudttx.html