[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problema para navegar ...



LUMBIERRES wrote:
Saludos a la lista ...

Tengo un problema que ya comienza a tocarme las narices.
Ultimamente, hay algunas paginas web que no hay forma de entrar, es más,
no me contestan (timeout) y lo curioso es que me pasa con todos los
navegadores en Linux (Mozilla, Konqueror, Netscape, etc) en cambio, y
hay que joderse, si funcionan en Windows+explorer. En concreto las
paginas son por ejemplo www.ibm.com, www.nvidia.com, www.infojobs.com y
algunas más. Hay algo que se me escapa?.

    ¿Tienes activado ECN en el kernel? ECN (Explicit Congestion Notification) es una opción de compilación en los kernel 2.4.x... y puede hacer que NO veas determinadas páginas... Te hago copy & paste...

Your upgrade to kernel 2.4.0, or anything later, went perfectly, or so you thought. You downloaded all the files you needed, built the kernel, upgraded modutils, and booted. Voila! Working system! So you played around a bit, decided it was working fine, and went back to your normal work.

Around noontime you decided to check your stock portfolio on E-Trade or to look at the financial news on the NASDAQ web site. "Gee!" you thought as your browser failed to connect, "It's amazing that both of these major financial sites are down at the same time!" So you went back to what you were doing. A couple of hours later they were still unreachable, and you began to wonder if the problem was really at their end, or at yours.

Since the only thing you changed was the kernel, you rebooted under your old kernel and tried NASDAQ. It was working fine now. Boot the 2.4.x kernel and it's gone again. What's going on here?

The answer is that Linux is once again on the cutting edge of networking technology with its implementation of an experimental protocol called Explicit Congestion Notification, or ECN. The technical details of ECN are described in a Request for Comment (RFC) document published by the Internet Engineering Task Force (IETF). RFC 2481 is the relevant document, with RFC 2884 providing additional information. ( http://www.ietf.org/).

In layman's terms, ECN is a way to improve the speed of the Internet for everyone by allowing hosts or routers to specifically notify one another when there is congestion due to heavy traffic. With the existing TCP/IP standards, the only way to detect congestion was that routers would drop packets when they had no bandwidth available. These packets would be automatically retransmitted by the sending host, but the host would (presumably) notice that packets were being dropped and would decrease its transmission rate.

ECN changes all that by allowing routers to notify hosts that the packet they just received experienced congestion delays as it wended its way across the Internet. The presumption is that the hosts become active partners with the Internet infrastructure, helping to manage the overall traffic pattern by making more reasonable requests of the infrastructure.

The problem with Linux 2.4.x and ECN is that not all of the existing routers and other devices on the Internet can support ECN. In fact, some older devices actually treat ECN packets as invalid, and discard them altogether. This explains the problem with NASDAQ and E-Trade's web sites, both of which (as of a few days ago) did not support ECN packets. There are other sites with this problem as well, and in fact Internet.com had to upgrade some of its own equipment several months ago as a result of this new protocol.

Eventually, the network infrastructure will be updated so that this new protocol (currently experimental) is supported everywhere, but what can a Linux user do about the problem in the meantime? The good news is that there is an easy workaround, and it doesn't involve staying with the 2.2.x kernel.

In configuring the 2.4.x kernels, you can disable ECN by turning off the CONFIG_INET_ECN option (titled "IP: TCP Explicit Congestion Notification" in the interactive configurators) before building the kernel. This completely removes ECN support from the kernel, but of course you then have no way to test with it to see when you might turn it back on.

Another, perhaps simpler, approach is to use the sysctl feature of the /proc virtual filesystem to turn off ECN at runtime. Executing this command:

echo "0" > /proc/sys/net/ipv4/tcp_ecn

will turn off ECN support until the next reboot, while replacing "0" with "1" in the above command will turn ECN back on. You can safely put this command in your rc.local or other bootup script, or make it part of your SysV init processing.

With Explicit Congestion Notification turned off, Linux 2.4.x kernels have no trouble accessing NASDAQ, E-Trade, or other sites that don't yet support ECN. Once the infrastructure catches up, use of ECN by Linux (and other) clients will hopefully bring better Internet speed to all of us.







Info más técnica en http://www.aciri.org/floyd/ecn.html



Gracias y saludos

Francesc






Reply to: