UDP发送方发送过量数据超出接收方接收能力会产生哪些后果?
报文丢弃逻辑与过量报文的衍生影响
你提到的两个推测基本符合真实网络的运行规则:
- 无法被接收方正常处理的报文确实会被丢弃:接收方校验报文时如果发现校验和错误、目标端口无进程监听、TCP序列号不匹配、接收缓冲区已满的情况,都会直接丢弃报文。部分场景下会返回
ICMP 目标不可达、TCP RST报文通知发送方异常,并非所有情况都是静默丢弃。 - 过量报文确实会引发网络拥塞:当报文总流量超过链路、中间转发节点(路由器、交换机)的转发能力或缓存上限时,中间节点会主动丢弃超负载的报文,同时伴随转发时延升高、报文抖动加剧的现象,严重时甚至会出现链路被大量无效重传报文占满,正常流量完全无法通行的拥塞死锁状态。
除此之外还有这些常见的衍生后果:
- 发送方资源浪费:TCP场景下丢包后会触发自动重传,额外占用发送端的CPU、内存和带宽资源;UDP无确认机制的场景下会直接出现业务数据丢失,影响上层业务可用性。
- 连接强制中断:TCP连接如果连续多次重传失败,达到系统配置的阈值后,内核会直接断开该连接,上层业务会抛出连接中断、请求超时类错误。
- 拒绝服务攻击风险:攻击者刻意发送大量畸形报文时,哪怕接收方会直接丢弃这些报文,前置的报文校验、规则匹配流程也会消耗CPU、内存资源,流量足够大时会耗尽接收方所有可用资源,导致正常业务请求完全无法处理,也就是常见的DoS攻击。
- 额外带宽成本:按流量计费的专线、云服务器场景下,被丢弃的无效报文同样会被计入流量统计,会产生不必要的带宽费用支出。
内容的提问来源于stack exchange,提问作者cheng ye
相关产品推荐
相关产品推荐

