协议的补充阅读

来源:互联网 发布:深思考人工智能薪资 编辑:程序博客网 时间:2024/04/29 03:22

协议序列化分类:

二进制【子类型:C结构体,IIOP等等】 文本【子类型:XML序列化,JSON等等】

 

协议控制分类:

长度控制型【每个字段的用长度字段来控制】 控制字符型【用控制字符来描述字度的开始结束】

 

协议标识的用处:

区分不同协议,让不同协议可以在同一管道里传输

用于错误恢复,相当于同步头,协议内容错误时可以用它来同步恢复

 

版本号,属于防御性字段,用于识别客户端协议类型,大部分时候可以同时作为客户端类别识别号

 

原则:

一个字段最好只有一个意义,这样程序的扩展性,正交性都比较好,但考虑到系统开销等实际问题时,有会合并某些字段,降低一定的扩展性来获得性能

无论一个字段有多少个意义,概念上最好是独立的

字段的具体意义会不断的得到精炼而抽象出来,是个渐进的过程,根据对业务的需求不断改进,不能一步到位,开始设计的时候尽量参考别人的设计

 

对于交互性程序的协议,一般都需要客户端标识号【就是登陆用户名】

 

 

协议层次带来的好处:

  降低系统的复杂度

  增加系统的重用性

  具体可以看TCP-IP协议层次

缺点:

  开销大

  不能统筹

 

不同类型的协议最好不要混用,尤其是协议控制分类

 

 

长连接的心跳

 

长连接优点,可以做及时做事件通知,在交互性强的程序里可以节省资源

短链接的优点,对于非高交互的程序可以简化编程,节省服资源,且错误几率低 【对于互相可见程序可以及时回调】,如果使用HTTP,对防火墙友好

原创粉丝点击