Is TCP/IP a mandatory for MQTT? -


if so, know examples of can go wrong in non-tcp network?

learning mqtt came across several mentions of fact mqtt relies on tcp/ip stack. example, mqtt.org:

mqtt sensor networks aimed @ embedded devices on non-tcp/ip networks, whereas mqtt explicitly expects tcp/ip stack.

but if read reference documents, won't finding that. moreover, there's qos field can used reliable delivery , values other 0 useless in tcp/ip networks. right see nothing prevent me establishing mqtt connection using unix pipe, domain or udp socket rather tcp socket.

mqtt needs delivery ordered , reliable, doesn't have tcp. sctp works fine, example, udp doesn't because there no way guarantee large publish packet made of multiple udp packets arrive in order , complete.

with regards tcp reliability, in theory saying true, in practice when application calls write() , receives successful return, can't guarantee when data has made out of computer remote host. write() (or send()) copy data kernel buffers, @ point have no further control.

the way sure message reaches remote host @ application level have remote host reply.


Comments