Skip to main content

21. Why use Two Bits in the IP Header?

21. Why use Two Bits in the IP Header?

ECN uses two bits in the IP header to encode four possible codepoints: not-ECT (00), ECT(0) (10), ECT(1) (01), and CE (11). This section explains why two bits are needed instead of one bit.

The main reasons for using two bits include:

  1. Distinguishing ECN capability from congestion indication: It is necessary to distinguish three states:

    • The transport does not support ECN (not-ECT)
    • The transport supports ECN but the packet has not experienced congestion (ECT)
    • The transport supports ECN and the packet has experienced congestion (CE)
  2. Supporting the ECN nonce: As discussed in Section 20.2, two ECT codepoints enable implementation of the ECN nonce mechanism, which provides additional protection against misbehavior by receivers and network elements.

  3. Backward compatibility: Using two bits allows clear identification of packets that do not support ECN (not-ECT), ensuring that these packets are not marked by routers.

  4. Future extensions: The design space of four codepoints provides flexibility for possible future ECN extensions and improvements.

If only one bit were used, it would be impossible to simultaneously represent ECN capability state and congestion experienced state, nor would it be possible to support advanced features such as the ECN nonce. Therefore, using two bits is the minimum requirement for implementing complete and robust ECN functionality.