网络传输错误分为链路层硬件错误、传输层协议异常、应用层业务错误、安全类错误、业务逻辑丢包乱序几大类,下面列举高频问题、现象、根因以及对应的防范手段。
一、物理 / 链路层错误(底层硬件、链路)
比特差错(位错)
现象:信号干扰,个别 bit 翻转,数据出错,但数据包长度正常,上层无丢包,直接得到错误数据。
原因:电磁干扰、网线老化、光模块故障、无线信号噪声。
防范:CRC 校验、奇偶校验;链路层重传;更换线缆 / 光模块;无线环境优化。
帧丢失、帧截断、帧超长
现象:数据包被截断、残缺,出现残帧。
原因:网卡故障、交换机端口故障、双工不匹配、MTU 不匹配。
防范:统一 MTU 值;端口协商强制 / 排查双工;交换机错误统计监控;网卡驱动升级。

二、网络层(IP 层)常见问题
IP 分片错误
现象:大 IP 包被分片,某一片丢失,整个报文无法重组,上层感知丢包;部分防火墙丢弃分片报文。
防范:开启 PMTU 发现;业务尽量避免大包;设置合理 MTU,避免 IP 分片。
路由抖动、路由环路
现象:数据包来回转发,TTL 耗尽报 ICMP 超时,报文丢失、延迟抖动。
防范:稳定路由协议;避免静态路由冲突;监控 TTL、ICMP 超时告警。
ICMP 攻击、ICMP 黑洞
现象:禁止 ICMP 导致 PMTU 失效,大包直接静默丢包。
防范:合理放行必要 ICMP;不要全部阻断 ICMP。
三、传输层错误(TCP/UDP)
TCP 相关
丢包、重复报文
现象:网络拥塞、链路波动,报文丢失;延迟过大产生重复收到相同 TCP 分片。
TCP 本身:依靠序号、ACK、重传机制处理,但会带来延迟升高。
防范:链路质量监控;拥塞窗口调优;业务做超时重试。
乱序(报文到达顺序错乱)
现象:网络多路径转发,后发送的包先到达。TCP 会缓存乱序报文等待重组,乱序严重会触发不必要重传,性能暴跌。
防范:网络尽量单路径;监控 TCP 乱序指标;内核调优乱序缓冲区。
连接异常断开(半连接、僵死连接)
现象:一端异常断电断网,没有发送 FIN,对端维护大量僵死 TCP 连接,占用资源。
防范:开启 TCP keepalive;业务层心跳保活;设置连接超时回收。
SYN 洪水、连接溢出
现象:大量半连接占满服务端连接队列,正常业务无法建连。
防范:开启 syn‑cookie;调大半连接队列;防火墙限流。
UDP 相关
UDP 无确认、无重传,所有错误全部交给应用处理
UDP 丢包、乱序、重复
防范:应用层实现序号、ACK、重传、去重;限流控制发送速率,避免缓冲区溢出。
四、应用层传输错误(业务数据)
数据截断、不完整接收
现象:TCP 是流协议,没有消息边界,一次 recv 拿到半个包、多个包粘在一起(粘包 / 拆包)。
风险:业务解析错乱,解析崩溃。
防范:自定义协议增加长度头 / 分隔符;protobuf 等带长度的序列化协议。
校验失败,数据篡改
网络层 CRC 只能校验链路比特错误,无法防中间人篡改。
防范:业务增加 MD5/SHA 校验;使用 TLS 加密传输。
超时错误
现象:网络慢、对端阻塞,请求长时间没有返回。
风险:业务挂死,连接堆积。
防范:设置连接超时、读写超时;不要无限阻塞等待。
重复请求(幂等问题)
现象:网络超时,客户端重试,服务端收到多次相同请求,造成重复下单、重复写入。
防范:业务幂等设计;请求唯一 ID,服务端去重。
五、安全类传输错误
中间人篡改、窃听
防范:TLS/SSL 加密;证书校验,禁止关闭证书校验。
重放攻击
攻击者抓取报文反复发送。
防范:报文增加时间戳、随机 nonce,校验有效期。
六、系统缓冲区导致的丢包(非常常见)
网卡 RingBuffer 溢出、socket 缓冲区满
现象:网络不丢包,但是主机内核缓冲区满,本机直接丢弃报文,抓包会发现进来的包被系统丢弃。
防范:调大网卡缓冲区、socket 收发缓冲区;业务降速,不要超过处理能力。

七、一张简版总结表
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
原文链接
欢迎访问 小易撩挨踢