Explicit Congestion Notification ( ECN , fra engelsk - "Explicit Congestion Notification") er en udvidelse af IP -protokollen beskrevet i RFC 3168 . ECN giver begge sider på netværket mulighed for at vide, hvornår der opstår en overbelastning på ruten til en given vært eller et givet netværk uden at miste pakker. Dette er en valgfri funktion, der kun bruges, når begge kommunikationsendepunkter angiver, at de ønsker at bruge den.
Typisk rapporterer værter på TCP/IP-netværk overbelastning ved at droppe pakker. Hvis en ECN-session er etableret med succes, kan ECN-aktiverede routere signalere starten på overbelastning ved at indstille bits i IP-headeren i stedet for at droppe pakker. Modtageren af pakkerne informerer afsenderen om overbelastningen, som skulle reagere, som om en tabt pakke var blevet opdaget.
ECN bruger to bits i DiffServ-regionen i IP- headeren , til IPv4 i TOS - byten og i IPv6 i pakkens overførselsklasseoktet. Disse to bits kan bruges til at blive sat til en af følgende værdier:
Noget ældre eller testnetværksudstyr vil droppe pakker med ECN-bits sat i stedet for at ignorere dem [1] .
Brugen af ECN kræver dets støtte ved transportlaget.
Ud over de to ECN-bits i IP-headeren bruger TCP to TCP-header-flag til at signalere en overbelastning til afsenderen og reducere mængden af information, den sender.
Brugen af ECN i TCP-forbindelser er valgfri.
ECN-udvidelsen er også defineret for andre transportlagsprotokoller, der udfører netværksoverbelastningskontrol, især DCCP og SCTP . Den generelle brug ligner TCP, selvom kodningsdetaljerne er forskellige.
I princippet kan du bruge ECN-udvidelsen med protokoller, der ligger på niveauerne over UDP . UDP kræver dog, at overbelastningskontrol udføres på applikationsniveau, og de nuværende applikationskapaciteter for netværk tillader dem ikke adgang til ECN-bits.
Brugen af ECN er kun effektiv i kombination med en aktiv køstyring (AQM) politik, og anvendeligheden af ECN afhænger af korrekt brug af AQM.
Empirisk har det vist sig, at ECN har en dårlig effekt på ydeevnen af et stærkt overbelastet netværk, hvis der anvendes AQM-algoritmer, som aldrig taber pakker [2] . Moderne implementeringer af AQM undgår dette problem ved at erstatte pakkemærkning med at droppe dem i tilfælde af kritisk overbelastning.
Mange moderne implementeringer af TCP/IP-protokollen har ECN-understøttelse, men de leveres normalt med ECN deaktiveret.
Windows Server 2008 og Windows Vista understøtter ECN-udvidelsen, men den er som standard deaktiveret [3] . ECN-support kan aktiveres med følgende kommando:
netsh interface tcp set global ecncapability=enabledMac OS X 10.5 understøtter ECN som standard. Administration udføres ved hjælp af sysctl [4] -grænsefladen :
net.inet.tcp.ecn_negotiate_in net.inet.tcp.ecn_initiate_outLinux-kernen har understøttet ECN-udvidelsen i nogen tid, men den er som standard deaktiveret. I de fleste kerneversioner kan den aktiveres via Sysctl-grænsefladen :
sysctl net.ipv4.tcp_ecn=1FreeBSD 8.0 understøtter ECN-udvidelsen. Det kan aktiveres via Sysctl-grænsefladen :
sysctl net.inet.tcp.ecn.enable=1Markeringen af ECN-felter af routere afhænger i en eller anden form af aktiv kø . Routere skal være korrekt konfigureret til at markere ECN-felter.
Cisco IOS-routere udfører ECN-tagging, hvis WRED er konfigureret fra Release 12.2(8)T.