如何设计两个系统之间的通信协议
来源:互联网 发布:淘宝默认好评是五星吗 编辑:程序博客网 时间:2024/05/20 22:28
当需要进行网络通讯时,要想让双方识别对方,就涉及对协议的设计。那么
在具体项目中,如何设计协议呢?或者如何设计出较高效的协议?来满足项目的
要求呢?
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 照搬即可。
- 如何设计两个系统之间的通信协议
- 自己设计系统之间的通信协议
- peer之间的通信协议
- 如何实现两个系统之间的数据同步
- libgsc的通信协议设计
- 基于CAN总线智能建筑监控系统的通信协议设计
- socket编程里,如何设计自定义通信协议的包头?
- socket编程里,如何设计自定义通信协议的包头?
- 飞鸽传书的通信协议设计思路
- 两个ubuntu系统之间的文件拷贝
- 如何获取两个算子之间的距离
- 如何创建两个域之间的信任
- 如何实现两个数据库之间的同步
- oracle 如何截取两个"-"之间的字符串
- 论网络通信协议之间的相互作用
- 初探基于TCP的服务器/客户端结构的聊天系统(二)之应用层通信协议设计
- 通信协议设计
- 基于CAN总线智能建筑监控系统的通信协议设计(一)
- Linux系统配置静态IP的方式
- 用C语言模拟面向对象
- ATL 控件 网页上的 安全提示
- svn的merge使用例子
- 用C# WinForm写的一个简单的计算器程序(可以输入复杂的表达式),欢迎大家指出Bug
- 如何设计两个系统之间的通信协议
- UIView设置圆角、边框和阴影
- 解读mysql主从配置及其原理分析(Master-Slave)
- hdu1098 -数论
- SVM中的数学和算法
- 一个逗比 程序员 web前端的理想!
- How to build a nice Hamburger Button transition in Swift(做动画可以参考下)
- 怎样完整的转换PDF格式文件
- Java 7 并发编程指南中文版