传输层的新旧方案,加上 GraphQL 与常见的网络故障、攻击面。

一、传输协议

QUIC协议

QUIC 基于 UDP,把传输、加密和连接迁移放在用户态。握手通常一轮完成,连接用连接 ID 而不是四元组标识,Wi-Fi 切 4G 不必重来。多路流避免 TCP 那种队头阻塞:一条流丢包不堵死其他流。HTTP/3 就建立在 QUIC 之上。对移动端和高丢包链路,首包延迟和重传表现往往好于 TLS over TCP。

落地要处理 UDP 被防火墙拦截、CPU 占用和拥塞算法调参。服务端可用内核旁路或优化过的用户态栈。观测要看握手失败、迁移次数和丢包率,不能只看 HTTP 状态码。证书和 0-RTT 有重放风险,幂等请求才能享受早数据。调试比 TCP 难,需要支持 QUIC 的抓包工具。先在 CDN 边缘打开,再评估自建栈是否值得。

KCP协议

KCP 是基于 UDP 的可靠传输协议,用更激进的重传和拥塞控制换取更低延迟,常见于游戏和实时音视频的自建链路。它不是替代 TCP 的通用方案,而是在可接受多余流量的前提下降低等待。

参数如 nodelay、interval、resend 会显著影响带宽占用,必须按链路实测。默认更费流量,弱网下可能比 TCP 更挤。需要自己处理握手与加密,KCP 只保证可靠有序。落地常包一层 FEC 或加密。监控 rtt 和重传率,异常飙升说明参数过激或对端堵塞。能用 QUIC 的场景优先考虑标准化协议。

WebSocket协议

WebSocket 在 HTTP 握手后把连接升级为全双工通道,适合行情推送、协同编辑和即时通讯。帧可以是文本或二进制,心跳用 ping/pong 探测半开连接,避免负载均衡默默丢掉空闲会话。

网关和反向代理要打开 Upgrade 与长连接超时。水平扩展时会话粘滞或把连接状态外置到 Redis,否则广播会丢人。鉴权应在握手阶段完成,而不是等第一条业务消息。

回退方案可准备 SSE 或短轮询。压测关注连接数、消息扇出和慢客户端反压,单条消息过大时要分片,防止事件循环被大帧堵住。

SSE流式输出

SSE(Server-Sent Events)走普通 HTTP 单向推流,浏览器用 EventSource 接收 text/event-stream。协议简单,自动重连,适合大模型打字机输出、进度条和通知,不需要双向通道。

服务端要禁用缓冲、按行写 data 字段,并用 id 支持断点续传。反向代理和 CDN 可能缓存或拼包,需要关闭缓冲并设置合适的心跳注释行。浏览器对同域连接数有限制,页面多开会挤占配额。

和 WebSocket 相比,SSE 更好过防火墙,但上传仍靠普通请求。鉴权可用 cookie 或初次握手带票,重连时别把密钥打进 URL 日志。

二、安全传输

mTLS

mTLS 是双向 TLS:服务器出示证书,客户端也必须出示证书,双方都验证对方身份。它适合服务与服务之间,而不是浏览器用户登录。网格里的 sidecar、支付网关对商户、设备接入平台常用这种机器身份。证书由内部 CA 签发,短周期轮换降低泄露窗口。

落地要解决签发、分发、吊销和时钟同步。SPIFFE/SPIRE 或网格自动注入能减少手工拷贝文件。过期证书会造成大面积 5xx,监控剩余有效期。客户端证书不要当用户会话用,粒度是工作负载而不是人。调试握手失败先看信任链和 SNI。mTLS 提供强身份,仍要配合授权:证明你是哪个服务,不自动等于能调所有接口。

三、接口、故障与攻击面

GraphQL

GraphQL 让客户端按查询文档取字段,一次请求拼出页面需要的图,减少 REST 多次往返和过度获取。Schema 是契约,解析器按类型取数,变更用 mutation,实时用 subscription。

N+1 查询是经典坑,DataLoader 或批量接口能合并。权限要做字段级,不能只挡入口。查询深度和复杂度限制防止恶意嵌套把数据库打穿。

缓存比 REST 难,因为查询文本各不相同。持久化查询和 CDN 缓存键设计要提前想。监控解析耗时和字段使用率,及时下线无人问津的字段。

计算机网络常见故障

网络故障多数不是“网线断了”那么简单,而是 DNS 解析失败、DHCP 地址耗尽、路由黑洞、MTU 导致分片丢失、或防火墙策略误拦。无线侧常见干扰、漫游掉线和认证服务器超时。

排查从分层走:物理链路灯态、本机 IP、网关可达、DNS 是否正确、再到应用端口。先对比故障主机与正常主机的差异,比盲目重启设备更快。保留变更记录,很多故障出现在刚改过 ACL 或 VLAN 之后。监控要覆盖丢包、延迟和错误计数,而不是只看通断。修复后要验证双向路径,单向 ping 通并不代表业务恢复。

计算机网络常见攻击方式

计算机网络里常见的攻击面包括钓鱼获取凭证、中间人窃听未加密流量、拒绝服务耗尽带宽、以及利用弱口令和未打补丁的服务闯入。ARP 欺骗发生在局域网,DNS 劫持则把用户引向假站点。Web 层还有注入与跨站脚本。

防护应分层:全站 TLS、最小权限、及时补丁、网络分段和异常流量告警。用户侧靠多因素认证降低钓鱼成功率。运维侧关闭无用端口、限制管理面来源。评估自己的系统时只在授权范围内做扫描。目标不是记住攻击名单,而是让机密性、完整性和可用性都有对应控制措施。