自己设计系统之间的通信协议

来源:互联网 发布:mac 手写 编辑:程序博客网 时间:2024/06/08 12:06

    一个突发奇想


     昨天一直在想http协议的问题,http协议是基于TCP/IP协议的,我一直在想,http的实体在哪里?后来我想,http不过是一个“全球范围内的承诺”,所有使用它的人都承诺按照特定的格式传递数据。因此,用正式一点的话说,它只不过是一组全球共同承认的规范而已,定义了一组程序、服务器等必须遵守的通信约定,这么想来,协议貌似就没有那么神秘了。因此,我觉得我们人人都可以制定协议了,小到一句话大到一个庞大的协议族。我们在设计自己内部的系统时,有时候为了通信方便,我们可以设计自己的协议,比如FastDFS分布式文件系统就制定了自己系统内部的通信协议,如图:


详细设计


    当需要进行网络通讯时,要想让双方识别对方,就涉及对协议的设计。那么在具体项目中,如何设计协议呢?或者如何设计出较高效的协议?来满足项目的要求呢?

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


1. 协议的标识
2. 协议版本号
3. 协议包的序号
4. 协议包的发出时间
5. 协议包的类型
6. 协议包的数据长度
7. 数据
8. 校验码

9. 结束符


上面的9点中,第1到第5是包头部分,对于每个数据包都是一样的,下面的第8,第9点,对于每个数据包也是相同的。但对于后面的第6,第7跟具体的包有关,这部分是不同的。


0 0
原创粉丝点击