目前市面上大多数IoT模组都支持TCP、UDP、CoAP、LwM2M、MQTT等协议,这里面既有传输层的协议也有应用层的协议,协议众多,适用的场景也不同。但是设计产品时通常只需要运用一种协议,那么怎么来选择一种符合自己产品的应用场景的协议显得尤为重要。本文将介绍TCP、UDP、CoAP、LwM2M、MQTT这5个常用的协议的特点与区别,为设计产品时协议的选择提供参考。
传输层协议TCP与UDP
TCP(传输控制协议,Transport Controll Protocol)、UDP(用户数据报协议,User Data Protocol)同属于传输层协议,为上层用户提供级别的通信可靠性。
传输控制协议(TCP):TCP(传输控制协议)定义了两台计算机之间进行可靠的传输而交换的数据和确认信息的格式,以及计算机为了确保数据的正确到达而采取的措施。协议规定了TCP软件怎样识别给定计算机上的多个目的进程如何对分组重复这类差错进行恢复。协议还规定了两台计算机如何初始化一个TCP数据流传输以及如何结束这一传输。TCP最大的特点就是提供的是面向连接、可靠的字节流服务。
用户数据报协议(UDP):UDP(用户数据报协议)是一个简单的面向数据报的传输层协议。提供的是非面向连接的、不可靠的数据流传输。UDP不提供可靠性,也不提供报文到达确认、排序以及流量控制等功能。它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。因此报文可能会丢失、重复以及乱序等。但由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快
TCP和UDP的区别
差异 | TCP | UDP |
---|---|---|
是否连接 | 面向连接 | 面向非连接 |
传输可靠性 | 可靠 | 不可靠 |
应用场合 | 少量数据 | 大量数据 |