跳转到内容

网络组件

网络组件是所有类型网络(WiFi、以太网)的全局配置。

# 示例配置
network:
enable_ipv6: true
min_ipv6_addr_count: 2
enable_high_performance: true
  • enable_ipv6 (可选, boolean): 启用 IPv6 支持。默认为 false。 在 nRF52 上始终为 true,因为不支持 IPv4。
  • min_ipv6_addr_count (可选, integer): 当 ESPHome 拥有一个 IPv4 地址和此数量的 IPv6 地址时,它认为网络已连接。默认为 0,以免在未启用 IPv6 的网络上启动时挂起。对于需要 IPv6 的配置,2 通常是一个合理的值。
  • enable_high_performance (可选, boolean): 显式启用或禁用高性能网络优化。仅在 ESP32 设备上受支持。未指定时,受益于优化网络设置的组件会自动启用此功能。如果这些优化在你的设备上导致内存问题,请设为 false 以禁用这些优化。默认为由组件驱动。

网络组件可以自动为需要高吞吐量或低延迟的组件(如媒体流媒体)应用优化设置。启用后,此功能会用为性能优化的设置来配置 lwIP TCP/IP 协议栈和 WiFi 驱动程序。

优化级别的选择取决于是否保证有 PSRAM 可用(通过 Psram 组件以 ignore_not_found: false 配置):

保证有 PSRAM 时:

  • TCP 发送/接收缓冲区:512KB 窗口,启用窗口缩放
  • WiFi RX 缓冲区:512 个动态缓冲区
  • WiFi TX 缓冲区:32 个静态缓冲区
  • AMPDU 聚合:优化的块确认窗口

没有 PSRAM 时(或无法保证时):

  • TCP 发送/接收缓冲区:65KB 窗口
  • WiFi RX 缓冲区:64 个动态缓冲区
  • WiFi TX 缓冲区:64 个动态缓冲区
  • AMPDU 聚合:标准块确认窗口

NOTE

网络组件使用的 lwIP 库目前仅根据 RFC4862 实现 IPv6 SLAAC。接口标识符(IID)直接从设备 MAC 地址生成。 这具有 RFC7721 中描述的各种安全和隐私影响,因为这可能会泄露到智能家居网络之外,并使设备具有唯一可识别性。 因此,地址生成不遵循 RFC7217。