text: 物联网IOT系列之9：传输层协议
  传输层是 OSI 第 4 层，在 TCP-IP 模型中以相同的名称识别。与物理层、数据链路层和网络层一样，该层也是物联网参考架构中基础设施层的一部分。在前面的教程中，讨论了物理和数据链路层协议以及网络层协议。要了解常用于计算机和移动设备网络的物理和数据链路层协议，请查看以前的文章。在本教程中，将讨论传输层协议。传输层也称为路由层，负责通过网络路由数据包。在这一层，执行数据包的排序、错误检测和数据包传送中的纠正。常用的传输层协议包括：• TCP• UDP• DCCP• SCTP• RSVP• DTLS• TLS• RPL• CARP• CORPL• QUIC• uIP• ROLL• Aeron• CCN (以内容为中心的网络)• NanoIP• TSMP (时间同步网格协议)TCP – 传输控制协议 (TCP) 是面向连接的重量级协议。它适用于可靠通信，因为在该协议中，当客户端通过 TCP 协议将数据包发送到服务器时会收到确认。如果数据包是通过 TCP 协议发送的，则必须保证数据在另一端发送。该协议分三个阶段运行——连接建立、数据传输和连接关闭。TCP 连接由位于端点（物理）的互联网套接字管理，经历各种状态变化。该协议的数据包开销非常大。TCP 从设备消耗更多功率并且开销大，因此它不适合环境受限的低功率设备。因此，UDP 更适合作为低开销的无连接协议。UDP – 用户数据报协议是一种无连接协议，不能可靠地保证数据传输。但是，在可以承受数据传输过程中丢包的情况下，UDP 协议是向服务器发送数据的最佳协议。UDP协议是一种轻量级协议，适用于无线传感器网络通信。UDP 通常用于为实时性能专门调优的应用程序中。DCCP – 数据报拥塞控制协议 (DCCP) 是一种面向消息的传输层协议。该协议比 TCP 协议更安全。与每个数据包具有单字节长 ID 的 TCP 相比，DCCP 中的数据包 ID 为 48 位长（6 字节）。这使得任何攻击者都很难破解数据包。该协议通常用于时间关键的数据传输，如媒体流和 VoIP。SCTP – 流控制传输协议 (SCTP) 协议是一种面向消息的传输层协议，它使用拥塞控制在网络上可靠地传输数据。使用 4 次握手保护与 12 字节标头一起传输的数据。由于多宿主，数据被可靠地发送到目的地。RSVP——资源预留协议（RSVP）是一种主要用于单播和组播数据传输的控制协议。它实际上不传输数据，但用于确保数据流的服务质量 (QoS)。DTLS – 基于传输层安全 (TLS) 协议，数据报传输层安全 (DTLS) 是一种面向流的传输层协议。这是一种旨在防止消息伪造、篡改和窃听的安全协议。然而，大数据包大小、数据包重新排序和数据报丢失是该协议栈的一些主要缺点。TLS – 传输层安全性 (TLS) 是一种使用对称加密来保护数据的安全协议。出于安全考虑，该协议现已被禁止使用。RPL – IPv6 Routing Protocol for Low Power and Lossy Networks 是为 6LoWPAN 网络开发的传输层协议。该协议栈专为约束网络设计。该协议旨在处理未知的数据包丢失并最大限度地减少网络的能耗。该协议使用节点图（面向目标的有向无环图，DODAG）通过最佳路径路由数据，从而以最短的延迟交付数据。它还旨在解决目标端点无法到达或在路由数据包时不可用的情况。尽管如此，当端点醒来时，它还是设法传送了数据包。节点可以通过向根设备发送 DODAG 信息请求 (DIS) 请求来加入网络，根设备通过 DAO 确认 (DAO-ACK) 确认节点包含在网络中进行响应。根决定了如何通过各个节点路由数据并将其传递到目标节点或端点。不仅对于 6LoWPAN，RPL（或 Ripple）还可以与其他各种低功耗数据链路层协议一起使用。它基于IPv6标准，因此非常适合任何物联网应用。CARP – 信道感知路由协议 (CARP) 是为水下网络开发的传输层协议。该协议非常适合物联网实现，因为该协议中的标头大小非常小。该协议跟踪数据通信历史以选择节点进行数据传输。该协议的重点仍然是建立高质量的链路，通过这些链路可以可靠和安全地传送数据包。数据传输发生在两个阶段——网络初始化和数据转发。在网络初始化阶段，汇聚节点（请求传感器数据的节点）向网络中的所有节点发送一个 HELLO 数据包。然后，在数据转发阶段，来自传感器的数据从一跳路由到另一跳，每一跳独立地路由数据。CORPL – 认知 RPL (CORPL) 是为认知网络开发的 RPL 协议的扩展。它还基于面向目标的有向无环图 (DODAG) 拓扑结构，只需少量修改即可适应认知网络。在 CORPL 中，存在机会转发。有多个转发器（称为转发器集），可以从中选择最佳节点来转发数据。不仅父节点，每个节点都维护一个转发器集。节点通过发送目标广告对象 (DAO) 消息来传达其转发器集中的更改。QUIC – 快速 UDP 互连 (QUIP) 是一个基于用户数据报协议的协议栈，具有使该协议与 TLS 协议一样安全的附加功能。它在源和目标之间使用一组多路复用连接，以便将延迟和数据丢失降至最低。uIP – 它是一种开源 TCP-IP 协议栈，可用于微型 8 位和 16 位微控制器。ROLL – Routing Over Low power and Lossy networks (ROLL) 是一种基于 RPL 的 IPv6 路由协议，专为低功耗和有损网络设计。Aeron – Aeron 是为 UDP 单播和 UDP 多播设计的协议栈。它是一种高吞吐量和低延迟的通信协议，通常用于流式数据。CCN – 内容中心网络 (CCN) 或信息中心网络 (ICN) 是一种为内容分发而设计的网络架构和协议栈。在此协议栈中，数据以命名数据包的形式传送，这些数据包保存在网络中任何可用的内存中。通过内容或信息的自动和应用中立缓存，该协议消除了任何应用层协议或服务传递数据的需要。NanoIP – 基于 TCP-IP，NanoIP 是用于传感器和嵌入式设备的未开发协议栈。TSMP – 时间同步网格协议 (TSMP) 是为微尘或传感器节点开发的协议栈。它用于无线传感器的联网，以便传感器可以在时隙中相互通信数据。它具有类似于时分复用的方法。在下一个教程中，将讨论服务交付协议。