BLE 数据包重传机制
来源:互联网 发布:淘宝龙腾国际名品真假 编辑:程序博客网 时间:2024/05/12 10:40
转自:http://blog.csdn.net/zwc1725/article/details/52788524
处于连接态的两个BLE终端使用简单的“停等”机制进行通信,如下图所示,
图一 BLE 数据包重传流程图
每个BLE终端都维护两个1 bit参数:transmitSeqNum和nextExpectedSeqNum,分别指
示当前传输的数据包序号和下一个期待接收的数据包序号,它们与Packet中的SN和NESN字段一起维护Master和Slave之间的重传机制。
transmitSeqNum和nextExpectedSeqNum在connect建立时都初始化为0。
发送数据包时,对于SN字段,若数据包为新传,则设置为自身transmitSeqNum取值,否者与上一次传输一致;对于NESN字段,始终设置为自身nextExpectedSeqNum取值。
接收数据包时,transmitSeqNum和nextExpectedSeqNum按照如下原则进行更新:
1 若SN字段与自身nextExpectedSeqNum一致,则表明该数据包为重传, nextExpectedSeqNum不变;否者为新传,并且需要将自身nextExpectedSeqNum取反。
2 若NESN字段与自身transmitSeqNum一致,则表明接收到NACK,即上一次自己 发送的数据包失败,需要重发;否者表明收到ACK,需要发送新的数据包,并且将将自身transmitSeqNum取反。
3 若接收到的数据包CRC错误,则不更新transmitSeqNum和nextExpectedSeqNum, 并重发上一次自己发送的数据包(判定收到了NACK) 以下处理流程如下图所示,
图二 数据包发送方和接收方处理流程图
如此设计,Master和Slave之间的“停等”重传机制可良好运转。
- BLE 数据包重传机制
- BLE 数据包重传机制
- BLE 数据包和传输速率
- UDP协议!指定数据包的重传!
- linux TCP数据包重传过程----小结
- linux TCP数据包重传过程----小结
- Wireshark过滤掉TCP重传数据包
- <蓝牙BLE>cc2540主机获取数据包
- TCP重传机制
- TCP重传机制
- TCP重传机制
- TCP重传机制
- TCP重传机制
- Linux 内核网络协议栈 ------ tcp重传数据包 tcp_xmit_retransmit_skb
- IOS BLE后台重连
- 数据包状态机制
- TCP超时重传机制
- TCP超时重传机制
- UbuntuBackports
- 使用SSH秘钥连接仓库
- Apache2给网站加上https访问
- Charles 从入门到精通
- 黑客常用命令-DOS命令和快捷键大全
- BLE 数据包重传机制
- 一起学python(七)
- MFC中修改静态文本框中文字的字体、颜色
- 2017.4月17 腾讯_基础研究面试
- MySQL触发器实例
- 第二单元
- MyBatis3.3.0文档学习总结(三) --sqlSession深入源码
- 解决相片上传,相片翻转角度问题
- 基本数组类型转数组