网络快照 · 拖动参数即时重算

一个端口,到底能装下多少“东西”?

端口是入口,TCP 连接是独立通道,HTTP 请求则是通道里的一次交付。改变下面的流量和资源,看它们何时开始排队。

监听端口 :443
已连接 TCP36条连接
活跃 HTTP 请求36个请求
估算吞吐60请求/秒
打开的描述符37/128含 1 个监听 FD
拒绝的连接0条连接

客户端发起连接

源 IP + 源端口让每条连接都可区分

监听套接字

它守住端口,不会被 accept “拿走”

服务器 203.0.113.10 LISTEN :443 fd 3 · 专职迎接新连接
accept 前等待队列0 / 32

accept 后的已连接套接字

每条 TCP 连接各占 1 个 FD;请求可在连接上按顺序复用

当前没有资源排队;端口数始终是 1,变化的是连接和请求。

FD 压力29%

端口不会被切成多份

监听套接字只是入口。每次 accept 会产生新的已连接套接字,原来的监听套接字仍在 :443 上等下一条连接。

连接不是请求

HTTP/1.1 可在一条持久连接上反复发请求;HTTP/2 还可以让多个请求流同时共用一条 TCP 连接。

队列只是短时缓冲

FD 已满时,加大 backlog 可以让更多连接先等着,却不会增加处理能力。流量持续超载,队列迟早会满。