You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术咨询:何为区分服务的Congestion Experienced?ECN该字段是什么?

IP头部DSCP与ECN(CE状态)疑问解答

场景复现

你使用Scapy发送自定义IP数据包的代码:

sr1(IP(src='192.168.1.35', dst='192.168.1.1', tos=3)/'my packet')

Wireshark捕获到的IP头部相关片段:

Differentiated Services Field: 0x03 (DSCP: CS0, ECN: CE)
0000 00.. = Differentiated Services Codepoint: Default (0)
.... ..11 = Explicit Congestion Notification: Congestion Experienced (3)

问题解答

1. 关于“Differentiated Service : congestion experienced”的疑问

首先纠正一个误解:不存在单独的“Differentiated Service : congestion experienced”表述。你看到的是Wireshark对IP头部**区分服务字段(Differentiated Services Field)**的整体标注,这个8位字段被拆成了两部分:

  • 前6位是区分服务代码点(DSCP):用来定义数据包的优先级,让网络设备根据这个值做差异化转发(比如优先处理语音、视频类实时流量)。你的数据包里这部分是000000,对应CS0(Default,默认服务),也就是无特殊优先级,网络按常规方式处理。
  • 后2位是显式拥塞通知(ECN):用来传递拥塞状态,你看到的Congestion Experienced(CE)属于这部分的状态,和DSCP本身无关。

2. 什么是“Explicit Congestion Notification: Congestion Experienced”

ECN是IP协议的扩展机制,核心是不丢包就能通知发送方网络拥塞,避免传统“丢包=拥塞”机制的低效。它的2位字段有四种状态组合,其中11对应的就是Congestion Experienced(CE,拥塞已发生):

  • 正常流程:支持ECN的发送方会把ECN字段设为01或10(表示终端支持ECN);当中间路由器检测到网络拥塞但还没到要丢包的程度时,会把这个字段改成11(CE);接收方收到后会反馈给发送方,发送方就会降低发送速率,缓解拥塞。
  • 你的情况:你手动设置了tos=3(二进制为00000011),刚好把ECN的两位设成了11,所以Wireshark直接显示为CE状态——这是你人为设置的,不是网络真的出现了拥塞。

内容的提问来源于stack exchange,提问作者Bishop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:40:37