您的位置:首页 > 其它

如何设计两个系统之间的通信协议

2014-10-23 10:09 295 查看
当需要进行网络通讯时,要想让双方识别对方,就涉及对协议的设计。那么

在具体项目中,如何设计协议呢?或者如何设计出较高效的协议?来满足项目的

要求呢?

一般来说,一个基本的数据包协议需要以下部分

1. 协议的标识

2. 协议版本号

3. 协议包的序号

4. 协议包的发出时间

5. 协议包的类型

-------------------

6. 协议包的数据长度

7. 数据

-------------------

8. 校验码

9. 结束符

上面的9点中,第一个横线上的是包头部分,对于每个数据包都是

一样的,但对于后面的6,7跟具体的包有关,这部分是不同的。

下面的8.9也是相同的。

下面继续说明6, 7两点的设计办法。

如果协议包的每种类型下面没有更多的分类,那么,数据这部分无需再设计

只要一个值即可,但情况往往不是那么简单,情况如下

(1)如果数据也有多种类型,那么数据部分得再加上一个类型标号,

(2)如果数据同时有多个,那么数据部分必须分成二部分,一部分表明其数据

个数,后面再跟多个数据个体。

对于MD5加密,它是对任意长的字节串进行运算,产生一定长的大整数,

它的长度是32个字节,128位。

MD5广泛用在数字签名中,及用户验证中

数字签名的应用比如,在下载时,会附带一个.md5,里面有一个32个字符,

这就是此下载文件的md5值,

下载者可将此文件进行md5运算,看其值是否等于.md5里的内容。

用户验证的例子比如.

将登录名计算成一个md5大整数,

当用户登录时,将此时的登录名用md5算法运算一下,看其值与md5是否相等。

---------------------------------

例子:设计一个传递室内温度,与 空气含氧量的协议

首先

1, 2, 3, 4, 点好设计,照搬即可, 那么5的类型,此处有二个,即温度或

者空气含氧量, 其类型有二种0xC1, 0xC2

6数据的长度与7数据内容有关,7数据内容可以是获取温度时间与温度值,

也可以是获取时间与空气含氧量。

8, 9 照搬即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: