Zephyr的网络模组是高度模块化设计的,构建时通过配置项可以对网络模组进行高度的配置剪裁。当不需要网络功能的情况下可以通过配置完全关闭Zephyr的网络功能。
Zephyr支持的网络功能如下:
IPv6
- 支持单播和组播地址
- 支持设置静态地址或者SLAAC(RFC 4862)
- 支持多个IPv6 prefixes
- 支持IPv6 neighbor cache
- 支持neighbor discovery (RFC 4861)
- 支持组播监听发现v2(RFC 3810)
- 支持6lowpan 可用于蓝牙 IPSP (RFC 7668) 和 802.15.4 (RFC 4944)
IPv4
- 可手动设置ip
- 仅支持DHCP Client(RFC 2131)不支持DHCP server
- IPv4不支持IPSP和802.15.4,只能对接ethernet
双协议栈
- 可同时支持IPv6和IPv4
UDP
- 支持UDP数据报收发(RFC 768)
TCP
- 支持TCP传输(RFC 793)
BSD Socket API
- 支持阻塞和非阻塞的TCP/UDP socket
- 支持offload socket
Secure Socket API
- 使用mbedTLS库支持TLS/DTLS
Socks代理
DNS
- 支持DNS客服端(RFC 1035),应用程序可以查询域名信息
- IPv4和IPv6都支持
- 支持mDNS(RFC 6762)和LLMNR(RFC 4795)
网络管理
- 支持网络协议栈或网络接口的核心事件监听
多网络支持
- 支持多种网络技术:802.15.4, bluetooth,ethernet,canbus
- 多网络之间不提供路由
最少的封包靠谱
- 最小的复制网络数据路径
VLAN
- 支持虚拟局域网
网络流量分类
- 可以根据应用需要对发送和接收的网络数据包进行优先级排序
时间敏感网络
- 支持gPTP
IOT应用协议
- MQTT
- CoAP
- LwM2M
- Openthread(导入外部库)
网络应用&应用协议
- http
- tftp
- sntp
- websocket
- civetweb(http服务器,导入外部库)
调试功能
- 网络Shell:基本的网络工具,可以做ping和DNS解析命令
- 抓包功能
参考
https://docs.zephyrproject.org/latest/connectivity/networking/overview.html#supported-features