ECN Codepoints in TCP Header
ReservedC
Reserved E U A P R S F
W C R C S S Y I
4 bits
6 bits R E G K H T N N
Source port address Destination port address
16 bits 16 bits CWR: Congestion
Sequence Number Window Reduced Flag
32 bits ECE: ECN-Echo Flag
Acknowledgement Number
32 bits
HLEN Reserved U A P R S F Window size
RCSSYI
4 bits 6 bits GKHT NN 16 bits
Checksum Urgent pointer
16 bits 16 bits
Options (if any)
Data
1
ECN Codepoints in TCP Header
ECN Field
CWR: Congestion Window Reduced
CWR ECE
ECE: ECN Echo
2 bits = 4 ECN Codepoints
CWR ECE Names for the ECN bits Sent from To
0 0 Non-ECN Setup Any Any
0 1 ECN Echo Receiver Sender
1 0 Congestion Window Reduced Sender Receiver
1 1 ECN Setup Sender Receiver
2
ECN Negotitation Mechanism
Sender Receiver
ECN-Se
tup SY
N
CWR=
1 ECE=1
SYN=1
p SY N-ACK
e tu
ECN-S SYN=1
ACK=1
0 ECE=1
CWR=
ACK
ACK=1
3
ECN Codepoints in IP Header
Differentiated Services Codepoints Reserved
ECN
6 bits 2
2 bits
bits
VER HLEN DS Total Length
4 bits 4 bits 8 bits 16 bits
Identification Flags Fragmentation offset
16 bits 3 bits 13 bits
Time to Live Protocol Header Checksum
8 bits 8 bits 16 bits
Source IP address
32 bits
Destination IP address
32 bits
Options (if any)
Data
4
ECN Codepoints in IP Header
ECN Field
ECT: ECN Capable Transport
ECT CE
CE: Congestion Experienced
2 bits = 4 ECN Codepoints
ECT CE Names for the ECN bits Sent from To
0 0 Not-ECT (Not ECN Capable Transport) Any Any
0 1 ECT(1) (ECN Capable Transport (1)) Sender Receiver
1 0 ECT(0) (ECN Capable Transport (0)) Sender Receiver
1 1 CE (Congestion Experienced) Router Receiver
5
Event-1
ECN Capability negotiated during Connection Establishment
N-PDU
ECT set in IP
header
ECN Capable Sender ECN Capable Receiver
ECN Capable Router
ECN Codepoints ECT bit value CE bit value ECN Codepoints CWR bit value ECE bit value
Non-ECT 0 0 Not ECN-set up 0 0
ECT(1) 0 1 ECN-Echo 0 1
ECT(0) 1 0 CWR 1 0
CE 1 1 6
ECN-set up 1 1
Event-2
Congestion
building
up? Set
CE !!!
N-PDU N-PDU
ECT set in IP CE set in IP header
header
ECN Capable Sender ECN Capable Receiver
ECN Capable Router
ECN Codepoints ECT bit value CE bit value ECN Codepoints CWR bit value ECE bit value
Non-ECT 0 0 Not ECN-set up 0 0
ECT(1) 0 1 ECN-Echo 0 1
ECT(0) 1 0 CWR 1 0
CE 1 1 7
ECN-set up 1 1
Event-3
Congestion ??
Let me inform
the TCP sender
CE set in IP header
N-PDU N-PDU
ECT set in IP
header N-PDU
ECN Capable Sender ECN Capable Receiver
ECE set in TCP
header
ECN Capable Router
ECN Codepoints ECT bit value CE bit value ECN Codepoints CWR bit value ECE bit value
Non-ECT 0 0 Not ECN-set up 0 0
ECT(1) 0 1 ECN-Echo 0 1
ECT(0) 1 0 CWR 1 0
CE 1 1 8
ECN-set up 1 1
Event-4
I must keep
Congestion ? sending ECE
Reduce cwnd till sender
by half confirms
ECT set in IP CE set in IP header
header N-PDU N-PDU
N-PDU N-PDU
ECN Capable Sender ECN Capable Receiver
ECE set in TCP ECE set in TCP
header header
ECN Capable Router
ECN Codepoints ECT bit value CE bit value ECN Codepoints CWR bit value ECE bit value
Non-ECT 0 0 Not ECN-set up 0 0
ECT(1) 0 1 ECN-Echo 0 1
ECT(0) 1 0 CWR 1 0
CE 1 1 9
ECN-set up 1 1
Event-5
I must inform
Receiver that I
have received
ECE !!!
N-PDU
CWR set in TCP header
ECN Capable Sender ECN Capable Receiver
ECN Capable Router
ECN Codepoints ECT bit value CE bit value ECN Codepoints CWR bit value ECE bit value
Non-ECT 0 0 Not ECN-set up 0 0
ECT(1) 0 1 ECN-Echo 0 1
ECT(0) 1 0 CWR 1 0
CE 1 1 10
ECN-set up 1 1
Event-6
Sender has
reduced cwnd,
stop setting ECE
flag
CWR set in TCP header
N-PDU N-PDU
CWR set in TCP header
N-PDU
ECN Capable Sender ECN Capable Receiver
ECE set in TCP
header
ECN Capable Router
ECN Codepoints ECT bit value CE bit value ECN Codepoints CWR bit value ECE bit value
Non-ECT 0 0 Not ECN-set up 0 0
ECT(1) 0 1 ECN-Echo 0 1
ECT(0) 1 0 CWR 1 0
CE 1 1 11
ECN-set up 1 1