定义
丢包策略(Packet Drop Policy)是路由器、基站、网关等设备在缓冲区溢出或拥塞时,决定丢弃哪些分组的策略。合理策略可避免全局同步(Global Synchronization)、保障高优先级业务、配合拥塞控制算法实现公平与效率。与优先级QoS、QoS机制、差异化服务协同,构成端到端拥塞与丢包管理。
典型策略
尾丢弃(Tail Drop)
队列满时丢弃新到达的分组,实现简单但易导致TCP全局同步、吞吐量波动大。
RED(Random Early Detection)
在队列未满时按概率丢弃,概率随队列长度增加,提前触发拥塞控制,避免突发丢包。
WRED(Weighted RED)
按DSCP/优先级设置不同丢弃门限与概率,高优先级业务更晚丢弃,实现差异化。
优先级丢弃
拥塞时优先丢弃低优先级队列(如BE业务),优先保障EF、AF等关键业务。
与ECN的关系
ECN(Explicit Congestion Notification)允许路由器在未丢包时通过IP/CP头标记拥塞,终端与发送端据此调整速率,减少实际丢包。丢包策略与ECN可配合,在拥塞早期通过标记而非丢弃缓解拥塞。
达希物联的物联网设备在接入蜂窝网络时,其数据流经运营商核心网与互联网,沿途路由器、网关的丢包策略会影响端到端可靠性。对于关键指令、OTA升级等,达希物联建议配置高优先级QoS,减少在拥塞时被丢弃的概率。平台侧在重传、确认机制上也会考虑网络丢包,保障业务可靠性。
队列门限决定丢的是谁
丢包策略回答的是缓冲区即将或已经溢出时,哪一个分组先被丢掉,以及丢掉的时机。尾丢最简单:队列写满后,新来的一律丢。实现便宜,但多个TCP流会在同一时刻看到丢包、同时降窗、同时恢复,吞吐出现周期性塌陷,这就是全局同步。RED在队列尚未写满时就按概率丢弃,概率随平均队列长度上升,让发送端提前减速,避免最后一拍全部丢光。WRED为不同优先级设不同的最小、最大门限,高优先级要等队列更长才开始被丢。
策略本身不创造带宽。它只决定拥塞发生时损伤落在哪些流上。没有分类就没有差异化:所有分组进同一个队列,WRED的权重不会生效。丢包也不等于链路误码。无线空口的误块是物理层事件,路由器上的尾丢是缓冲区事件,两端的计数器不能互相替代。
提前丢弃只适合能自行减速的流
RED和WRED的使用条件是发送端能读懂丢包或显式拥塞标记并降低速率。普通TCP可以。固定速率的UDP、周期上报的传感器、已经把速率写死的串口转IP设备,丢掉分组不会让它们慢下来,提前丢弃只会造成空洞。这类流量应放进限速或单独队列,而不是指望随机早丢。高优先级的告警、控制指令应提高丢弃门限或放入严格优先级队列,避免和批量补传挤在一起。
ECN可以在真正丢弃之前给IP头打标记,让端点降速。两端和沿途设备都必须支持,否则标记被忽略,队列仍会走到尾丢。蜂窝侧的承载优先级要能映射到路由器看的DSCP,映射被出口设备改写后,WRED按错误的颜色丢包。配置前应画出从模组、基站、核心网到企业防火墙的标记是否保持一致,并给带宽管理留出单独的承诺速率,而不是只在最后一跳丢包。
一个尾丢队列扛全部业务
常见错误是在企业网关上只开一个FIFO,再把物联网上报、远程桌面和固件升级混进去。升级流量一突发,控制指令全部尾丢,现场却去查无线重传。另一个错误是RED的最小门限设得高于硬件队列深度,随机早丢永远不会发生,拥塞时仍是尾丢。门限设得过低,则在正常突发下就开始丢,把本可吸收的短时突发变成应用重传。
还有人用应用层无限重试弥补丢包。重试流量比原始流量更大,队列更长,丢弃更多,形成放大。应先区分丢在空口、丢在核心网还是丢在企业队列:空口有误块和无线重传计数,企业队列有尾丢计数和队列时延。只在云端看到超时,就同时加大无线重传和应用重试,通常会把拥塞加重。
固定码率的视频和周期传感器不会因为被丢包而放慢,随机早丢对它们只是制造空洞。这类流应单独限速或单独排队,把早丢留给能够降窗的传输。优先级门限若设得比设备队列还深,配置等于没有。门限过浅则正常的短突发也被丢掉,应用重传把突发变得更密。先看队列时延和丢弃计数是否在业务突发时上升,再决定是加带宽还是改门限。计数不升而应用超时,丢包多半发生在更前面的空口,而不是这台设备的队列。