IOTCore TLS connection overhead too large. Is it possible to resume a session?

0

Hi, I have remote battery powered cellular devices uploading their measurements to IOT Core. They disconnected their modem each packet upload, which could be 1/min. However the data overhead required to connect and handshake, exchange certs etc is too large. At the moment 4k-6k is required on each connect, even if just sending 100bytes of data. The handshake is killing my data usage.

See this blog I found for info on the overhead required by TLS 1.2 http://netsekure.org/2010/03/tls-overhead/

For devices that need to be as efficient as possible with data and power, is it possible to a) resume TLS connections? or b) what is the recommended way for these devices to connect to the MQTT IOT Core service?

This is a low power sensor device that is not able to run the SDK. So we need to implement out own connection to the MQTT ports on AWS (8883). AWS also does not allow unencrypted connections...

A very similar and related question that went unanswered (https://forums.aws.amazon.com/thread.jspa?messageID=891100&#891100), however considering MQTT is desinged for IOT devices and is supposed to minimise load and be efficient it is hard to accept a 4k-6k overhead on each connection.

  • I had a similar issue, and I ended up staying connected instead of connecting again every time. You probably could adjust the cellular network parameters (NB-IoT?) to stay in low-power mode while connected. This also has the advantage of having an always-on downlink in case you need it.

3 Answers
0

Thanks for the reply. Re the payload size. The significant cost is in cellular data. So the 4k-6k overhead is increasing my data cost by a factor of at least 6. AWS core messaging costs are certainly a consideration but at the moment far outweighed by the data costs. To the point that using AWS IOTCore as my endpoint for my fleet of IOT devices is not really viable.

I'd be interested if there are alternative thought regarding this.

I don't currently have an account manager I don't think. Is there another way to get this escalated?

Thanks, Karl

answered 2 years ago
  • Hello, did you manage to find a work-around for this? We are also facing similar issues with data usage...

0

Hi. TLS session resumption is not presently supported by AWS IoT Core. The benefit of the feature is clear. If you have an Account Manager, please request this feature with them.

You mention that a typical message is only 100 bytes. Please be aware that MQTT messages are metered in 5KB increments. I realize this may not be practical for your application, but if you could batch your messages (and hence connect less frequently), you would reduce both your cellular network data usage and your AWS IoT costs.

profile pictureAWS
EXPERT
Greg_B
answered 2 years ago
0

doesn't the MQTT Server Keep Alive option help with this?

esir
answered a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions