TCP/IP
WM IoT SDK 默认使用 LWIP 协议栈。
TCP/IP 模型
WM IoT SDK 的 TCP/IP 模型如下图所示:
graph TB
A(APP)<-->|"DATA"|B[TCP/IP]
B-->|"Event"|C[EV]
C-->|"Event"|A
E-->|"CMD"|B
D[WiFi API]-->|"CMD"|E[WM_NETIF]
其中有如下几种事件:
WM_EVENT_WIFI_STA_GOT_IP :
Station 获取到IPv4地址。
WM_EVENT_WIFI_STA_GOT_IP6 :
Station 获取到IPv6地址。
WM_EVENT_WIFI_STA_LOST_IP :
Station 丢失IPv4地址。
WM_EVENT_WIFI_STA_LOST_IP6 :
Station 丢失IPv6地址。
WM_EVENT_WIFI_AP_STAIPASSIGNED :
SoftAP 为连接上的 Station 成功分配 IP 地址。
LWIP 协议栈
WM IoT SDK 的 LWIP TCP/IP 协议栈具体 API 如下:
BSD Socket API:
BSD Socket API 是一种常见的跨平台 TCP/IP 套接字 API,最初源于 UNIX 操作系统的伯克利标准发行版,现已标准化 为 POSIX 规范的一部分。
在 WM IoT SDK 中,LWIP 支持 BSD 套接字 API 的所有常见用法。
Netconn API:
在 WM IoT SDK 中,LWIP 支持两种较低级别的 API,即 Netconn API 和 Raw API:
LWIP Raw API 适用于单线程设备。
Netconn API 用于在 LWIP 内部使用 BSD 套接字 API。相较于 BSD Socket API,该 API 占用资源更少。
注意
一般情况下推荐使用 BSD Socket 。
有关 Netconn API 的更多信息,请参阅 lwIP 非官方应用程序开发手册。
IPv6:
WM IoT SDK 支持 IPv6 协议。