`
m635674608
  • 浏览: 5042958 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

自定义协议 与 TLV格式 的总结

 
阅读更多

考资料: 

http://blog.csdn.NET/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

 

分享到:
评论

相关推荐

    C++实现tlv编解码

    在IT行业中,TLV(Type-Length-Value)是一种常见的数据编码格式,广泛应用于网络协议、配置文件、数据库存储等领域。TLV将数据分为三个部分:类型(Type)、长度(Length)和值(Value)。在C++中实现TLV编解码是一...

    TLV 通讯格式协议实现

    **TLV通信格式协议实现详解** TLV(Tag-Length-Value)是一种通用的数据表示和传输格式,广泛应用于通信协议、配置文件以及数据解析等领域。它将数据分解为三个基本元素:标签(Tag)、长度(Length)和值(Value)...

    TLV ios解析TLV格式源码

    在IT行业中,尤其是在嵌入式系统、物联网(IoT)以及智能卡技术等领域,TLV(Tag-Length-Value)格式是一种常见的数据表示方式。TLV允许我们以结构化的方式存储和传输信息,其中每个数据项由三个部分组成:标签(Tag)、...

    通信协议制定格式(TLV).pdf

    ### 通信协议制定格式(TLV)相关知识点 #### 一、通信协议概述 通信协议是在计算机网络中确保数据正确传输的一套规则与标准。它定义了数据如何在网络中被发送、接收以及处理的过程。通信协议通常包括两部分:**流程...

    python解析TLV格式的脚本

    TLV解析工具 使用命令 python getTlVData.py pcap文件路径; 可以直接解析wireshark 抓包的工具

    TLV分析源码及文档

    在信息技术领域,TLV(Tag-Length-Value)是一种常见的数据编码格式,广泛应用于网络协议、数据库存储、配置文件等多个场景。本资料包提供了对TLV标准的深入分析以及相应的源码实现,帮助开发者更好地理解和运用这一...

    TLV 格式及编码

    TLV(Tag-Length-Value)是一种数据表示格式,广泛应用于智能卡、支付系统(如PBOC和EMV)以及其他通信协议中。它将数据分为三个部分:Tag、Length和Value,使得数据元可以有序且结构化地传输。 1. **Tag域**: - ...

    TLV格式解析功能案例

    例如,在处理网络协议时,某些协议可能基于TLV结构;或者在读取和写入配置文件时,如果文件采用TLV编码,LJieTLVParser可以帮助简化操作。 使用这个源码库时,需要注意以下几点: - 确保输入的TLV数据格式正确,...

    TLV 解析工具

    TLV 解析工具

    tlv的java编码和解码

    本文将详细讲解如何在Java环境中实现TLV的编码与解码,并结合提供的`ber-tlv`资源进行分析。 TLV结构简单明了,由三个部分组成: 1. **Tag**:标识数据的类型或者含义,通常是一个整数。 2. **Length**:表示Value...

    TLV应用层协议开发示例

    "TLV"(Tag-Length-Value)是一种通用的数据表示格式,常用于构建灵活且可扩展的协议。本示例主要围绕如何使用TLV来设计和实现应用层通信协议。 TLV模式的基本原理是将数据分解为三个部分:标签(Tag)、长度...

    TLV5618_DAC_fpga_TLV5618fpga驱动_tlv5618_tlv5618驱动_

    1. **接口设计**:首先,FPGA需要通过SPI(Serial Peripheral Interface)或I²C等通信协议与TLV5618建立连接。SPI是一种简单且常用的串行通信协议,适合用于这种低速高精度的DAC应用。 2. **数据格式化**:在FPGA...

    TLV及其变种TTLV详细讲解

    TLV 及其变种 TTLV 详细讲解 TLV(Tag-Length-Value)是一种简单实用的数据传输方案,包含三个域:标签域(Tag/Type)、长度域(Length)和内容域(Value)。TLV 在内存中的模型如下所示: 0 1 2 3 4 5 6 7 8 9 0 ...

    JTT 808-2019 道路运输车辆卫星定位系统 终端通讯协议及数据格式(1).pdf

    通讯协议定义了终端与服务器之间的通讯规则和数据交换格式,而数据格式则规定了数据的编码和解码规则。 三、JTT 808-2019的通讯协议 JTT 808-2019的通讯协议基于TCP/IP协议栈,使用Socket编程实现终端与服务器之间...

    TLV解析工具

    这是一个TLV解析工具,能够解析出Tag Length Value对应的值,包括源码。

    TI毫米波雷达开发-6843 High Accuracy Demo 串口数据接收及TLV协议解析 matlab 源码

    本项目聚焦于TI毫米波雷达传感器6843的高精度数据获取与处理,通过串口通信接收数据,并利用MATLAB进行TLV协议解析。 6843是一款高性能的毫米波雷达芯片,具备高分辨率和高精度的特点,适合用于需要精确测量的应用...

    Java Tlv格式数据通用解析

    Java Tlv格式数据通用解析,支持各种T与L

    TLV Demo

    在IT行业中,TLV(Tag-Length-Value)是一种常见的数据编码格式,广泛应用于网络协议、配置文件、数据库存储等领域。TLV模式允许我们将数据结构分解为独立的元素,每个元素由三部分组成:标签(Tag)、长度(Length...

    TLV5620与MSP430接口原理与实现

    ### TLV5620与MSP430接口原理与实现 #### 1. 背景 TLV5620是一款由德州仪器(TI)生产的高性能、低功耗的8位数字到模拟转换器(DAC)。该器件支持标准的SPI(Serial Peripheral Interface)通信协议,并且可以通过...

    TLV5638控制程序.rar_STM32 外部DA_TLV5638_TLV5638用法_TV5638_实现DA转换

    在这个项目中,我们将深入探讨如何利用STM32微控制器与外部DA转换器TLV5638来实现这一功能。STM32是一款基于ARM Cortex-M内核的高性能微控制器,而TLV5638是一款低功耗、高精度的8位线性DA转换器。 首先,让我们...

Global site tag (gtag.js) - Google Analytics