Skip to main content
CWR

Congestion Window Reduced

Bit 0tcpdump: [W]RFC 3168

TCP CWR (Congestion Window Reduced, bit 0) is set by a sender to acknowledge that it received an ECE flag and has reduced its congestion window. Part of Explicit Congestion Notification (ECN, RFC 3168). CWR tells the receiver it can stop sending ECE flags for this congestion event.

Abbreviation

CWR

Bit Position

0

tcpdump

[W]

Standard

RFC 3168

Description

CWR is part of the Explicit Congestion Notification (ECN) mechanism defined in RFC 3168. ECN allows routers to signal congestion by marking packets (rather than dropping them) using the IP ECN field. When a receiver gets an ECN-marked packet, it sets the ECE flag in its next ACK. The sender, upon receiving an ACK with ECE set, must reduce its congestion window and set CWR in its next segment to acknowledge the action.

The CWR-ECE feedback loop allows congestion to be managed without packet loss. Traditional TCP detects congestion only when packets are lost; ECN allows earlier congestion detection before the queue overflows and drops packets.

CWR and ECE flags require both endpoints to negotiate ECN support during the TCP handshake: the client sets ECE+CWR in its SYN, the server sets ECE in its SYN-ACK to confirm support. Without this negotiation, neither flag is used.

Key Flag Combinations

FlagsMeaning
CWRSender reduced congestion window in response to ECE – normal ECN operation
CWR+ECESeen in SYN only – client requesting ECN negotiation

When You See This Flag

  • ECN-capable router marked packet with CE bit due to queue buildup
  • Receiver set ECE in ACK, sender reducing cwnd and acknowledging with CWR
  • ECN congestion control operating normally on a network with ECN-capable routers