According to 3GPP’s Rel 13, NB-IoT is capable of supporting TCP based protocols (MQTT, AMQP, HTTPS, etc).
But it’s often suggested that with NB-IoT, it’s impractical to implement TCP based protocols and that UDP should be used instead. Is that because of data rates capability or because of power consumption/data costs? Even at 20/250 kbps for NB1, MQTT and AMQP seem very viable protocols, and is often used by Azure, AWS, and other cloud platforms. So if our device is wall powered, can the TCP prohibition be ignored? Are there unique issues that would crop up with using TCP-based protocols over a PPP link with NB-IoT, that don’t exist with, say,CAT-M or 2G/3G/4G?
It would be a pain to develop firmware that handles cloud connectivity drastically differently between CAT-M and NB-IoT. Right now, once a PPP link is established, CAT-M modules are basically a straight drop in for previous 3G/4G/CAT-1 modules. Application code doesn’t need to change to handle CAT-M aside from PPP, and that’s a huge advantage for rolling over to new networks.
Publications about NB-IoT makes suggestions about protocol (lower data costs, power consumption) that are kinda obvious and apply to all technologies without providing much insight into issues specific to NB-IoT deployment. NB-IoT seems like a natural compliment to CAT-M from a global coverage standpoint, but not enough implementation detail is out there.
If you come across any useful publications, please share.