跳转至

网络编程

网络子系统提供 DNS、TCP、HTTP client 和 Runtime server。出站连接通过 NET_CONNECT/NET_REQUEST adapter,入站服务通过 CLI 参数启动。

出站流程

host selector -> DNS/IPv4 -> policy check -> TCP connect
              -> HTTP request -> bounded response buffer -> close

NET_CONNECT (0x98)

RDI host selector, RSI port, RDX timeout_ms, RCX flags, R8 result selector
-> RAX socket index, R15 result code

flags bit 0 允许 DNS,bit 1 启用主机/端口白名单。白名单模式只接受端口 80 或 8080。HTTPS 不在 Runtime 内实现。

NET_REQUEST (0x99) 使用已有 socket;method 0=GET1=POST,所有 path、body 和 output 都必须来自受管缓冲区。

服务端

./zava.elf --name NetAI --data-dir ./netdata --http-host 127.0.0.1 --http-port 8080

默认与推荐绑定地址都是 127.0.0.1。公网部署必须在前置代理终止 TLS,并限制请求 大小和速率。

安全边界

  • DNS transaction ID 必须匹配,截断或压缩指针越界必须拒绝。
  • 每个网络缓冲区必须有 selector、当前长度和容量。
  • 连接表恰好 16 槽;耗尽时返回错误,禁止覆盖活连接。
  • HTTP body 上限为 1 MiB;服务端请求缓冲区上限为 64 KiB。
  • 网络操作写入独立审计流。