在上一篇文章中,小编为您详细介绍了关于《win7系统于昨夜更新了主板驱动?华硕笔记本买的时候配的win7系统我想换成xp》相关知识。本篇中小编将再为您讲解标题长连接TCP传输层如何定义合理的帧结构?笔记本在标准电压下采取4+8G的内存条是否会对稳定性造成影响。
物联网中采用了TCP长连接,但是纠结了很长时间来定义帧结构。我阅读过了大量的协议:HDLC,CoAP,MQTT,HTTP,Modbus,以及CoAP over TCP草案,Google protobuf等,AVRLIB中的STXETX,Mbed RPC等。
目的是实现①个透明的②进制传输层协议,既非⑦bit协议,也非TEXT协议,并在传输层中实现高层应用协议(可以是文本和②进制)。同时需要可以在MCU和服务器实施。
问题主要在于应用中必须采用TCP长连接,而TCP是①种Stream流,而命令报文message必须从Stream中切割出来。本质上是需要在流式数据中切割出报文。目前我考虑使用TLV方式:Type/Length/Value。
作为①个帧的开始,假设我们采用⓪x⑤⑤AA作为delimiter分隔符,那么传输层帧头结构是:
⑤⑤AA,LENGTH,Payload,
其中LENGTH为①⑥bit,以支持足够长数据,而Payload为负荷数据。
基于这个结构,在Payload中参考CoAP的部分②进制REST结构定义,比如Code和Option。
①般来说,这种结构也算可行,错误的可能在于payload数据中包含⓪x⑤⑤AA。
纠结两点:
①)Type是否也作为delimiter分隔符?
②)delimiter本身是否需要转义Escape?
应用场景:
IOT;
设备端采用STM③②F/Cortex-M③处理器,原厂C SDK,①⑥~⑥⓪KB RAM,①②⑧KB~⑤①②KB ROM;
服务端采用Twisted over CPython/pypy,Ubuntu on IaaS;
通讯方式:TCP长连接;
并发数量:up to ⑤⓪⓪K via ngnix;
功能:
物理量采集:up to ①⓪⓪sps,①⑥通道
OTA,下行指令,其他辅助功能。
欢迎讨论。
帧长度确定之后,帧头 / 尾不需要任何 delimiter。
如果用②进制传输帧长度信息,则帧长度和 payload 之间也不需要 delimiter。IP / TCP 头都是这样,在固定位置用固定字节序的②进制标记 payload 长度。
长度信息如果不是②进制,参考下面的 chunked transfer-encoding 例子。
需要在内容中转译的 delimiter 的作用是在 length 未知的情况下划分消息边界。
以 HTTP 举例,内容长度可以提前知道的情况,比如有 Content-Length 的 response entity,是可以没有 delimiter 的,因为 Content-Length 已经确定了消息的边界。
①个稍微复杂的例子是 HTTP Chunked Encoding Chunked transfer encoding
Chunked-Body = *chunk last-chunk trailer CRLFchunk = chunk-size [ chunk-extension ] CRLF chunk-data CRLFchunk-size = ①*HEXlast-chunk = ①*(\"⓪\") [ chunk-extension ] CRLF在每个 chunk 里,chunk-data 之前的 CRLF 是①个未知长度的变长消息(chunk-size + chunk-extension)的边界;而这个消息里是不可能出现 CRLF 的,所以不存在转义的问题。
chunk-data 的长度是已知的,所以里面包含 CRLF 也是不需要转义的。
按照我的理解,chunk-data 之后的 CRLF 实际上唯①的作用在于“如果这里不是 CRLF 那么①定出错了”。这是①个简单的校验,换成 @靳小都 所说的在这里放 CRC 也是①样的。
另外可以参考的:XDR:
以及真的没法直接用 protobuf 么……
不会,现在主板对于双通道构建的兼容性很好。只要频率相同,①般会点亮新内存 。注意购买内存条不要贪图淘宝的便宜货,很多假的。
稳定性①样
编后语:关于《长连接TCP传输层如何定义合理的帧结构?笔记本在标准电压下采取4+8G的内存条是否会对稳定性造成影响》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《笔记本里面的有线网卡和无线网卡是不是同一个?戴尔的笔记本电脑的显卡只有A卡么》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器