Mbed OS 文档翻译 之 参考(技术(IP 网络))

IP 网络

Mbed OS 中的 IP 网络分为三个明确定义的 API 级别。下图显示了最接近的匹配 OSI 模型层旁边的图层。

                           Mbed OS 文档翻译 之 参考(技术(IP 网络))_第1张图片

                                                                                      IP 网络

以下部分介绍了每个级别中实现的 API 和技术。

套接字 API

套接字 API 是所有 IP 连接方法中的通用 API。Mbed OS 中的所有网络栈都提供相同的套接字 API,使应用程序可以在不同的连接方法甚至栈之间移植。

在 OSI 模型中,套接字 API 与第 4 层(传输层)相关。在 Mbed OS 中,套接字 API 支持 TCP 和 UDP 协议。

有关使用说明,请参阅套接字 API 参考。

IP 栈

Mbed OS 有三个选项可供 IP 栈选择。连接模块提供两个内置 IP 栈或外部 IP 栈。

                            Mbed OS 文档翻译 之 参考(技术(IP 网络))_第2张图片

                                                                                       网络栈

如上图所示,所有栈都实现相同的套接字 API。因此,应用程序开发人员很少需要知道将使用哪个栈。Mbed OS 在构建时选择一个,通常是 LwIP。

从应用的角度来看,一些外部 Wi-Fi 模块和大多数蜂窝模块实际上是外部 IP 栈。在这种情况下,网络驱动程序实现完整的网络栈 API。这些驱动程序通常通过 AT 命令类型的接口驱动模块。使用外部 IP 模块可以节省 RAM 和 Flash,但是根据驱动程序和 AT 命令接口,它可能无法与完整的套接字 API 匹配。

下表总结了不同的栈,用例及其限制。

支持网络协议 用例 限制
LwIP IPv4, IPv6, PPP 以太网络, Wi-Fi, 2G/3G/4G 蜂窝 4 套接字, 1 接口, 没有路由
Nanostack IPv6, 6LoWPAN, Thread 网状网络,边界路由器 只有 IPv6
外部 IP 模块 取决于该模块 (保存 RAM/Flash) 取决于该模块。通常与套接字 AP I匹配不佳

配置 IP 栈接口

根据所使用的第 3 层,网络层和协议,有不同的方法来配置接口。它还取决于使用的栈,每个链路层支持哪些配置。

数据链路层 网络层 配置支持
LwIP 以太网络, WiFi IPv4 DHCP,静态
LwIP 以太网络, WiFi IPv6 RFC 4862 IPv6 无状态地址自动配置。没有 DHCPv6 支持
LwIP PPP IPv4,IPv6 自动
Nanostack 以太网络 IPv6 静态或 RFC 4862 IPv6 无状态地址自动配置。没有 DHCPv6 支持
Nanostack IEEE 802.15.4 6LoWPAN Thread 或 6LoWPAN-ND+RPL

网络接口

网络接口是应用程序级 API,用户可在其中选择驱动程序,连接方法和 IP 栈。每种连接方法都需要不同的配置,因此这些 API 不可互换。应用程序开发人员必须选择一个选择接口还会自动将网络栈作为依赖项拉入。

请注意,接口 API 与网络驱动程序不同。接口 API 是应用程序的控制接口。仅当网络驱动程序需要从应用程序进行配置时,才会实现控制 API。从应用程序的角度来看,没有区别,但网络驱动程序开发人员需要意识到这一点。

Mbed OS 实现以下网络接口 API:

  • 以太网络。
  • WiFi。
  • 蜂窝 (PPP)。
  • 6LoWPAN-ND 网状网络。
  • Thread 网状网络。

有关使用说明,请参阅网络接口 API 参考。

网络驱动程序

“网络驱动程序” 描述了将网络设备连接到 IP 栈或套接字 API 的不同 API。以下是每个驱动程序 API 的说明。

以太网络驱动程序

                                                                           Mbed OS 文档翻译 之 参考(技术(IP 网络))_第3张图片

                                                                                            Emac API

以太网驱动程序使用独立于栈的 EMAC API 实现。由于以太网驱动程序不需要配置,因此它不会为应用程序实现任何控制接口。

Wi-Fi 驱动程序

                          Mbed OS 文档翻译 之 参考(技术(IP 网络))_第4张图片

                                                                                        Wi-Fi 驱动程序

Mbed OS 中有两种类型的 Wi-Fi 驱动程序,具体取决于它实现的协议层。Wi-Fi 驱动程序是以太网驱动程序或外部 IP 栈的特例。Wi-Fi 驱动程序需要从应用程序进行配置,因此需要实现低级 EMAC API 或网络栈 API 以及称为 WiFiInterface 的高级控制接口 API。

蜂窝调制解调器驱动程序

                          Mbed OS 文档翻译 之 参考(技术(IP 网络))_第5张图片

                                                                                         蜂窝驱动程序

蜂窝驱动程序与 Wi-Fi 具有相同的两个独立案例。如果他们使用外部 IP 栈,则驱动程序会实现网络栈 API。如果他们使用内部 IP 栈 LwIP,那么他们实现串行 PPP 驱动程序。

6LoWPAN/Thread RF 驱动程序

                                                          Mbed OS 文档翻译 之 参考(技术(IP 网络))_第6张图片

                                                                                         RF 驱动程序

在 Mesh 网络上,Nanostack 使用 IEEE 802.15.4 无线电来发送和接收数据包。RF 驱动程序实现了 NanostackRfPhy API。

此驱动程序类型没有其他用例,因此它使用特定于 Nanostack 的 API 在 C 中实现。

有关详细信息,请参阅 6LoWPAN Mesh 技术部分 和为 6LoWPAN 栈移植新的 RF 驱动程序。

你可能感兴趣的:(Mbed,OS)