2021-07-13

AT SSL连接时间优化

一、问题描述

  • 应用场景是做一个支付盒子,需求是连接到服务器,发送 post请求给服务器,收到服务器的数据回复,整个过程时间要求达到 3s 内,目前仅测试 SSL 连接已经达到了3s,询问如何优化这部分时间。
    硬件:ESP8285
    AT 版本: release2.2.0.0

二、测试验证

  • 测试指令如下:
 [2021-07-07 05:56:32.877]收AT+ CIPSTART=“SSL”,“pay
 [2021-07-07 05:56:32.893]收.echase.cn”,443

 [2021-07-07 05:56:35.667]收:CONNECT

 OK
  • 实际测试 SSL 确实耗时达到 3s 左右

三.结果分析

  • SSL 连接时间过长的原因, 主要是因为 ESP8266 内存受限,自身性能也不是很好,所以SSL 连接过程中加密计算会比较慢,耗时会比较长。

四、优化方案

  1. 由于 ESP8266 本身性能确实没有 ESP32 强,建议可以将 SSL 连接中加密计算这部分操作放在 MCU 端做,ESP8266 仅负责数据的传输(也就是透传数据) ,MCU 负责数据的加解密, 建议可以找 MCU 平台提供 SSL 库,这种优化方式下 SSL 连接时间可以优化到 0.5s 内左右。

  2. 如果没有办法在 MCU 端实现,可以参考下面方式在 ESP8266 端做优化。
    1)在 menuconfig 中关闭掉应用中不需要的指令, 由于应用场景中只用到了 wifi 和 SSL 连接指令,所以可以关闭掉的指令还是比较多的。
    在这里插入图片描述2)将 full cache 打开
    在这里插入图片描述
    按照上述的方式后, 测试结果如下:
    在这里插入图片描述可以看到在 menuconfig 中关闭掉不用的指令,以及 enable full cache 之后,时间还是有明显的提升,优化后的 SSL 连接时间大概是 1.2s 左右。

五、注意事项

对于优化方案2,我们需要考虑到内存是否够用,关闭掉一些不用的指令之后,内存会省出来一些,但是由于Full cache enable 之后,会从最开始的 16KB 的cache 内存增加到 32KB ,性能会提升很多,但需要注意的是,此时内存有可能出现不够用的情况。

可以使用 AT+SYSRAM?指令查看下SSL 连接前和连接后剩余内存情况, 同时还需要客户根据自己的应用场景做大量的测试,确保 AT SSL 连接,通信是稳定的。

ssl 连接前,系统内存剩余情况 +SYSRAM:37004, 33132
在这里插入图片描述
ssl 连接后,系统内存剩余情况 +SYSRAM:31892,9812
在这里插入图片描述
这个内存也只能说刚够用, 如果更小的话会用风险的,建议最好还是根据自己的应用场景做大量测试,确保环境是稳定的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值