Steps involved in ECN PLUS - rajitaaa/ECN-plus-algorithm-in-ns3 GitHub Wiki

(Assuming both sender and receiver are ECN Capable)

STEP 1: Sender to Receiver SYN transmission :

          * In TCP Header,CWR=1,ECE=1
          * In IP Header,ECT AND CE bits:00

STEP 2: Receiver receives SYN packet,and understands that sender is ECN capable.

STEP 3: Receiver sends SYN-ACK,

          * In TCP Header,CWR=0 ECE=1
          * In IP Header,ECT AND CE bits:01 or 10

STEP 4: If congestion at router:

                 Router sets IP Bits to 11 (CE Bit is set to 1)
             else
                 IP bits=01 or 10  (remains same)

STEP 5:Sender receives SYN-ACK(understands if router is ECN capable and whether there is congestion)
(Assuming congestion that is IP bits=11)

   Case 1:If sender wants to upload:

                         * Reduces CWND size
                         * Data and ack piggybacked and sent normally
                         * IP bits set to 10 or 01
                         * ECE and CWR bits=0

   Case 2:If sender wants to download:

                          * Set ECE Bit in TCP header to 1 and CWR=0
                          * ACK sent normally
                          * IP bits set to 10 or 01

End of TCP 3 way handshake. Further steps are similar to ECN.