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通讯测试

    因为NB-IoT以UDP/CoAP为主,所以用Python socket和Twisted框架测试了一阵子。刚开始测...

  • LWIP UDP偶发丢包问题

    RTTHREAD LWIP实现UDP通讯,使用得socket通讯偶发UDP丢包,用Wireshark监控通讯数据,...

  • 测试udp端口

    业务需要测试udp端口,之前只用telnet测试过tcp的,就研究了下怎么测试udp的 mac上测试udp端口 需...

  • 2019-03-21 【c++&c#】进程间通讯__共享内存

    进程间通讯方式:共享内存,管道(linux),udp通讯(若是在同一台电脑上通过udp通讯,那么它并没有经过网络,...

  • 局域网内 UDP 获取 MAC 地址

    名词及协议 1.UDP UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,...

  • iOS UDP通讯

    前言: 最近用GCDAsyncSocket写个小东西,UDP通讯现在大多也使用GCD,很少用Runloop。然后粗...

  • IOS UDP通讯

    网址:http://my.oschina.net/u/2285956/blog/370353 1.我们利用开源框架...

  • UDP通讯协议

    UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open Sys...

  • tcp和udp的区别

    传输层主要有:tcp、udp等等 UDP: (user datagram protocol)提供无连接通讯,不能够...

  • 第九篇 异常处理和并发编程1

    一、异常处理 二、基于udp协议的套接字通讯 三、udp协议不会粘包 Tcp和udp的区别Tcp协议是可靠的协议。...

网友评论

    本文标题:UDP通讯测试

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