`
李瑞辉++
  • 浏览: 20685 次
  • 性别: Icon_minigender_1
  • 来自: 信阳
社区版块
存档分类
最新评论

协议论

 
阅读更多

一、引文

“协议”,英文为 protocol,解释为:计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。无规矩不成方圆,改一下无协议就无通信,只有制定一套特定的协议,让大家在接收信息和发送信息的时候有一个统一的标准,人们之间日常的交流都遵守着特定的协议,像古代的四书五经,纲常伦理,也都是在学习一种协议,为什么古代妇女上不了厅堂,因为她们不懂得协议或者说协议上不允许她们这么做,说了这么多,就是想说没有协议我们的世界将会是一场无声的电影,因为大家都听不懂对方的话,为什么秦始皇有些伟大,why?他统一了货币啊,制订了协议,不然你的钱到了其它地方就成了纸,那是多么的悲剧啊,所以我断言,通货膨胀归根结底问题在于协议出现了问题,说的更大点,拉登与美国的战争不也是协议的问题,世界之大,莫非协议啊。

好吧,上面讲了那么多,还是来点实的吧,下面介绍一下我了解的通信协议。

二.通信协议

‘通信’这个名词顾名思义,就是两端客户在进行信息交互的过程,在这个过程中需要注意的是通信的方式以及格式问题,就好比打电话,方式就好比是用固定电话还是手机,格式就可以是电话接通后,被呼叫方会先说一句“喂”代表告诉呼叫方通信可以开始了,如果被呼叫方不知道对方是谁,还会问一句“who”,然后呼叫方就要自报家门,如果是呼叫方先问一句“who”, 被呼叫方肯定会感到惊讶,因为对方没有遵从协议,此时通信就有可能会被终止,人与人之间的通信存在随机应变,而电脑也就只会用随机变量,而且谁也不知道它的具体值,不然中彩票的人就太多了,计算机与计算机之间的通信需要人为的制定一套“规矩”,通信过程总体会分成两段,客户机—>服务器,服务器—>客户机,但协议一般都会基本一样,目的是让计算机能正确的发送和解析信息以实现远程交互,每一套通信体系一般都会有自己的通信协议,所以想要实现网络通信,首先得制定一份自己的通信协议,当然‘山寨’一下也可以。

三、XMPP VS BYTE Stream

1XMPP

XMPPExtensible Messaging and Presence Protocol)是一种以XML为基础的开放式实时通信协议,是经由互联网工程工作小组(IETF)通过的互联网标准。通信协议的核心其实就是消息的格式组成,XMPP消息类型主要是通过一系列的命令符,格式组成主要是:<msg>..<content>..</content>..</msg>

任何一个命令或者是一条信息都是由一对对对称的<type>..</type>符号组成,

下面简单介绍几组以上特定格式信息:

1. 用户名验证信息  :<msg><userName >...</userName></msg>

2. 密码验证信息    :<msg>< passWord >...</ passWord ></msg>

3. 登陆成功信息    :<msg><loginReply>...</loginReply></msg>

4. 聊天信息        :<msg><Rec>...</Rec><Con>...</Con></msg>

2BYTE Stream

字节流协议,就是把所有的不同类型的信息都转化为字节的形式,这与网络中直接的字节传输不同,字节流协议会在传输之前进行一定的处理。字节流的信息结构主要包括以下两个部分:

1. 信息头:信息总长度(int+信息类型(byte+用户名(30byte+[接受者(30byte]

2. 信息体:主要包括具体信息的内容

下面是要实现两个客户机的交互:

 客户机1                  服务器                     客户机2

1. 登陆 (0X01..........应答(0X11................. 登陆 (0X01

2. 注册 (0X02..........应答(0X12................. 注册 (0X02

3. 聊天 (0X03..........应答(0X13................. 聊天 (0X03

4. 视频 (0X04..........应答(0X14................. 视频(0X04

 

3)区别

1.这两种协议方式用起来都比较的比较方便;

2.当需要大规模的扩展信息的类型时,XMPP信息将会变得特别的繁长,解析也比较的麻烦,而对于字节流协议来说就方便很多了;

3.网络上信息的传输最终都会转化为字节的传输,XMPP信息在解析的时候,特别是在解析中文的时候容易出现乱码问题(解决方法肯定有,等找到了再贴上),字节流信息因为是事先定义好了字节的长度,只要准确的根据协议进行解析就可以了;

4.两种协议信息的读取过程必须特别注意,因为读取到的都是字节,所以很容易出现字节的缺失。

 

以上只是一点点自己的想法,还需要更多的拓展与改进.........

 

 

0
1
分享到:
评论
1 楼 Mybeautiful 2011-09-29  
协议无处不在,当我跟你说“你收到我邮件后,立刻回一封。”这就是协议。

相关推荐

    安全协议论文(SSL分析)

    这是安全协议论文的论文,主要分析的是SSL协议,大概10000字符。

    优质资料(2021-2022年收藏)设计单片机通讯协议论文非常经典.docx

    单片机通信协议设计是电子工程领域中一个关键的话题,特别是在设计嵌入式系统和智能设备时。本文档“优质资料(2021-2022年收藏)设计单片机通讯协议论文非常经典.docx”深入探讨了如何构建高效、可靠的通信协议。 ...

    新巴塞尔协议论文.doc

    新巴塞尔协议论文.doc

    SIP协议论文 SIP协议论文

    SIP(Session Initiation Protocol)协议是一种用于控制多媒体通信会话的信令协议,广泛应用于VoIP(Voice over Internet Protocol)电话、视频会议、即时消息和在线游戏等多种场景。相对于H.323协议,SIP具有更简洁...

    MIL_STD_1553B数据总线协议论文.doc

    MIL_STD_1553B数据总线协议论文.doc

    论文研究-Telnet协议在网络视频监控系统中的应用.pdf

    Telnet协议是一种网络协议,其在网络视频监控系统中的应用是本文的研究主题。文章首先介绍了Telnet协议的基本组成,包括网络虚拟终端(Network Virtual Terminal,NVT)、选项协商和对称性特点。随后,本文探讨了在...

    论文研究-基于IPv6的城市车载网移动协议.pdf

    提出了一种基于IPv6的城市车载网移动切换协议。本协议提出了城市车载网络体系结构, 车辆节点在移动过程中由家乡地址唯一标志, 无须转交地址, 因此节省了转交地址配置时间和代价, 从而缩短了移动切换时间, 降低了移动...

    基于UDP协议的数据传输系统(软件) [论文]

    采用一种编程语言VB或VC,编写一个负责从下位机接收数据,并进行 传输的远程数据传输系统: ...系统能按照UDP协议的要求,将接收到的数据传送到局域网内 的任何一台电脑,也能接受网内任何一台电脑发送过来的数 据;

    论文研究-基于无证书密码学的可认证三方密钥协商协议.pdf

    为了使密钥协商协议能够抵抗主动攻击,提出了一个可认证的无证书三方密钥协商协议。首先分析现有密钥协商协议的特点,然后以无证书密码学理论为基础设计一个安全的三方密钥协商协议。该协议只需要一轮消息交换就可以...

    网络协议本质论

    网络协议本质论

    论文研究-无线传感器网络路由协议的研究.pdf

    在分析层次LEACH协议的基础上,提出了LEACH协议算法存在的问题,并相应地修改了成簇算法,增强了算法的健壮性。节点能量耗尽是导致无线传感器网络生命周期缩短的主要因素,因此在选择簇首时根据剩余能量最大的节点...

    论文研究-一类专用网络中的动态路由选择协议.pdf

    在分析现有路由选择协议的基础上,设计了适用于一类专用网络的动态路由选择协议。该协议采用按需路由方式,利用该类专用网络的全连通性缩短初始通信延迟,通过度量链路延迟来确定最佳路由,通过邻接节点信息表的维护...

    AHCI SATA相关协议和论文

    AHCI SATA相关协议论文,这是目前网上最全的,不用再去其他地方找了,这里就是最全的。高级主机控制器接口(英文:Advanced Host Controller Interface,缩写:AHCI),是一种由英特尔制定的技术标准,它允许软件与...

    论文研究-基于6LoWPAN的无线传感器网络路由协议.pdf

    提出了一种基于6LoWPAN传感器网络的路由协议,对协议中适配层的设计、传感器网络的路由实现以及精简IPv6报文头部等过程进行了阐述。在网络模拟环境下对本协议与Mesh路由协议的数据包接收率、平均延迟时间以及平均...

    论文研究-Aydos无线认证协议的安全性分析及改进.pdf

    Aydos等人提出了一种基于椭圆曲线密码(ECC)机制的无线安全协议,然而从文献[1]及所进行的安全分析看,该算法并不能真正实现交易双方的身份认证,同时还易遭受中间人攻击。提出了一种改进的算法,较好地克服了...

Global site tag (gtag.js) - Google Analytics