Skip to main content

20.2 The Motivation for Two ECT Codepoints

20.2 The Motivation for Two ECT Codepoints

This section explains why two ECT codepoints, ECT(0) and ECT(1), are defined, rather than just one.

The primary motivation for having two ECT codepoints is to enable the ECN nonce mechanism. The ECN nonce uses the two ECT codepoints to provide a one-bit nonce that helps verify the integrity of ECN signaling.

The ECN Nonce Mechanism

The ECN nonce works as follows:

  1. Sender behavior: The data sender chooses between ECT(0) and ECT(1) for each packet, effectively setting a one-bit nonce value. The sender keeps track of the nonce values sent.

  2. Router behavior: ECN-capable routers treat ECT(0) and ECT(1) identically - both indicate ECN-capability. When marking a packet for congestion, routers set the CE codepoint (11), regardless of whether the packet was ECT(0) or ECT(1).

  3. Receiver reporting: The receiver reports back to the sender which packets were marked with CE. However, once a packet is marked CE, the original ECT(0) or ECT(1) information is lost.

  4. Verification: By comparing the nonce values of unmarked packets received with the nonce values originally sent, the sender can detect if:

    • The receiver is falsely reporting CE marks (claiming packets were marked when they weren't)
    • Network elements are clearing CE marks (removing congestion signals)

Benefits of the ECN Nonce

The ECN nonce provides protection against:

  1. Misbehaving receivers: A receiver might falsely report that packets were not marked with CE, allowing the sender to maintain a higher sending rate than appropriate.

  2. Malicious network elements: A router might clear CE marks to hide congestion or provide unfair advantage to certain flows.

  3. Erased congestion signals: Detection of scenarios where congestion indications are removed in transit.

Deployment Considerations

The ECN nonce is optional:

  • Senders that don't implement the nonce can simply use ECT(0) for all packets
  • The basic ECN functionality works with just one ECT codepoint
  • The nonce provides additional security for implementations that choose to use it

In summary, the two ECT codepoints enable an elegant mechanism for verifying ECN integrity while maintaining backward compatibility and allowing incremental deployment of the nonce feature.