STM32 websocket,TCP和UDP的传输速率

22 篇文章 6 订阅

     网络上经常有人提到websocket ,TCP和UDP 的差别,说的大都是协议之间的差别,没有提及它们的传输能力,为了设计高吞吐量的物联网微服务器,最近对websocket ,TCP,UDP的传输能力做了测试

  1.    使用STM32F746 处理器
  2. 操作系统 Arm mbed OS 5.0
  3. tcp/ip 协议 lwip
  4.    测试结果

         TCP/IP 协议:2.5Mbps(和上一篇转发的博文描述的类似)。

        UDP 协议     25Mbps

  两者为什么会这么大呢? 这是因为websocket ,TCP和UDP 的底层都是IP包,IP包相当于是一个篮子,而TCP,UDP和websocket都包装,传输的数据是篮子里的苹果,数据包装越复杂,软件处理的部分就越多,花费的时间就越多。以太网上的IP 包和以太网的包非常相近,驱动程序内部可以使用DMA 来实现数据拷贝。软件干预少,处理非常快。我们曾经对STM32 的以太网hal 库做了优化,尽量使用DMA 和memcpy 方式(memcpy 内部使用的也是DMA 方式),硬件CRC校验。每个包长度做到1400的话,UDP 传输的速率可以达到30Mbps左右。

  三种协议中,UDP 包最简单,近似与以太网包传输。而TCP包由于增加了数据重发等功能。软件干预比较多。所以速率上不去。而websocket 是建立在http协议之上的TCP 协议所以和TCP 协议的传输效率类似。

     如何兼顾websocket的灵活性和UDP的传输速度,是我们在设计模块化边缘设备modular-2 edge 时考虑的问题。我们设计了一种directStream 模式。 就是命令依然是通过websocket 上的发送,但是流结果通过UDP 协议发送到App(如下图所示)到目前为止,实测速率大约是8Mbps,STM32F746 每200us 发送512个字节。

   这样安排的另一个优点是不需要baseservice 来处理另外一个UDP 的协议,也不需要它转发。UDP stream 是一个存数据包。

初步测试表明:direct stream 模式是不错的。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32 WebSocket是基于STM32微控制器和WebSocket协议实现的一种通信方式。通过使用WIFI模块(如HC-25或HLK-M20)与STM32微控制器相连接,可以在嵌入式系统中实现WebSocket Server的功能。WebSocket是一种全双工通信协议,可以实现实时的双向通信。 对于HC-25模块,可以通过设置MQTT参数和连接STM32开发板上的UART串口来实现与STM32的透明数据传输,从而完成WebSocket通信的基础设置。 对于基于HTML5标准的桌面型应用或移动APP,可以通过WIFI模块(如HC-25)和STM32微控制器之间的透传通信,实现与嵌入式端的WebSocket Server通信。这种通信方式可以通过SPI和TTL串口等接口来实现。HC-25和HLK-M20是常用的WIFI转TTL串口模块之一。 如果采用HLK-M20模块,没有网页配置方式,可以通过将模块接到串口工具上,切换到AT模式,并使用AT指令进行配置和保存,然后重启进入透明传输模式。 总结来说,STM32 WebSocket是通过WIFI模块与STM32微控制器之间的透传通信实现的,可以使用HC-25或HLK-M20模块来实现与嵌入式端的WebSocket通信。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [STM32串口WEBSOCKET Server设计(基于HC-25 WIFI模块透传模式)](https://blog.csdn.net/hwytree/article/details/123488947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值