UDP通讯测试

作者: 小鱼儿他老汉 | 来源:发表于2018-03-28 17:46 被阅读73次

    因为NB-IoT以UDP/CoAP为主,所以用Python socket和Twisted框架测试了一阵子。刚开始测试时,没有对接数据库和消息队列,即便是公网上传输UDP,似乎也很稳定。但是对接了MySQL/Redis之后,其稳定性便出现了变化。主要现象有:

    1. 服务器端发送了UDP报文后,设备端没有接收到,即报文丢失;
    2. 由于报文丢失后,设备端缺乏重传机制,所以一直在等待。

    这就涉及到了协议的设计了。目前NB-IoT设备端主要用于周期性数据上传,或者事件触发导致的紧急上传。上传方向的接收比较稳定的,因为服务器的IP:port一直是稳定的。事件触发还可以采用重复发送,服务器端过滤的方式来实现。所以不需要下行确认。

    让人操心的是下行方向。比如设备连接服务器必须要经过认证授权,有个状态的切换,这需要彼此确认,经过数据库操作后,下发Token给设备。增加了数据库操作的延时后,网络状态极有可能发生变化。所以必须要有个定时器来管理确认超时重发。

    UDP对于收发双方来说几乎是对等的。但是设备端因为只有一个连接,也只需要一个定时器即可,而服务器端则需要一个机制来管理,对应多个设备的状态机。

    相关文章

      网友评论

        本文标题:UDP通讯测试

        本文链接:https://www.haomeiwen.com/subject/zerucftx.html