博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义协议 与 TLV格式 的总结
阅读量:6895 次
发布时间:2019-06-27

本文共 1042 字,大约阅读时间需要 3 分钟。

hot3.png

自定义协议 与 TLV格式 的总结 博客分类: 抓包

考资料: 

http://blog.csdn/phunxm/article/details/5086080 应用层通信协议开发浅析         

http://blog.csdn.net/chexlong/article/details/6974201  TLV 格式及编解码示例       

  

找了一天资料,上面两个博客写得真心不错,还有源码对照。
这里说的协议,都是基于应用层的协议,一切应用层的“协议”说白了,就是“数据包的结构定义”。

至于TLV格式,就是Type-Lenth-Value  数据包里放数据,要么用定长,可么就用TLV这种可变长度的,其它深奥的不管。  定长的太浪费空间了。就用这种咯。

 

有关应用层协议,数据包的自我总结:

1. 应用层协议,就是 定义数据包的结构 的一种规格。 
    比如,定义一个 部标协议,规定数据包的格式为 包头+数据+校验码。采用TLV格式。
2. 数据包格式:(由协议规定的,以后我就统一使用下面这种常用格式)
    1字节Start Flag + 2字节Length + n字节数据 + 1字节End Flag (最后这个 End Flag改成校验Flag也不错。。 以后要用时再考虑。)
    start flag,lenth,end flag都是定长, 内容数据 采用 TLV格式,一个一个解析出来。
3. 在TCP通信中,数据包太大,网络会自动将之切割,到了目的地的时候会自己重组。  我们要做的时候就是 不断地从流中recv 包头中指定的长度 个字节就可以了。在读取的时候,注意不要读取太多。(串口通信就没这么方便了,我不会。不过公司里串口通信的数据包都好小。。)
4. 通信的双方约定好这种协议。将内容打包成数据包容易,将数据包解析成内容也容易。。( 打包和解析的目的要理解,打包就是一堆数据想要一次发送。 解析就是,从缓冲区一堆数据中,一条一条分析出来。。差不多这样子。。有时,也可以把一堆参数打包成一条字符串(其实这也是一个数据包), 也可以 把一条字符串,解析出一堆参数。。)
5.一个完整的数据包,就是一帧。。

 

以后学习网络编程,要发送数据包的时候再来实现。 先把上面两个网址的两个样例保存起来嘿嘿。

 

 

http://blog.csdn.net/a576323437/article/details/9668967

 

转载于:https://my.oschina.net/xiaominmin/blog/1598929

你可能感兴趣的文章
jquery 根据已知值来修改单选框的被选中项
查看>>
html5 aside
查看>>
并发线程学习001(volatile 使用)
查看>>
JSONArray().fromObject(); 出现org.apache.catalina.core.StandardWrapperValve invoke错误的解决办法...
查看>>
取余和取模的小结
查看>>
JAVA应用CPU占用100%|内存泄漏分析总结
查看>>
SVN使用笔记-cleanup解决资源锁定(locked)
查看>>
又一个开始
查看>>
ecshop_邮件设置
查看>>
学移动开发Android和iOS改怎么选?
查看>>
PO-->OOP+AOP-->SOA软件开发思想演化
查看>>
oracle 对象管理 08_游标与记录
查看>>
PL/SQL developer配置
查看>>
高中的一套学习法则
查看>>
JavaScript中的setTimeout函数
查看>>
ln软链接出现Too many levels of symbolic links
查看>>
Java中排序相关
查看>>
关于Plan的计划
查看>>
提升tomcat服务器性能的七条经验
查看>>
Tomcat 生产服务器性能优化
查看>>