Cómo optimizar nuestra conexión de red


Optimizando nuestra conexión

Este artículo pretende mejorar la conexión a internet o en la red local tanto tableada como wireless, para ello intentaremos optimizar al maximo la tranferencia de paquetes.

Emepezemos con el TOS, el acrónimo TOS significa Type Of Service. El TOS se define en cuatro BITs en la cabecera IP, si uno de estos bits tiene un valor el router puede interpretar que hacer con el. Cada uno de los BITs tienen un proposito diferente y solo se puede tener uno de ellos activado a la vez.
Por lo tanto podemos definir 4 tipos de servicios:
Demora mínima: Se usa cuando queremos que un paquete tarde lo mínimo posible entre un Host y otro, por ejemplo esto convendria para obtener la mínima latencia en servicios como ssh o telnet.
Rendimiento máximo: Se usa cuando queremos que una gran cantidad de datos se transmitan lo mas rapidamente posible, por ejemplo esto iria bien para http o ftp
Fiabilidad máxima: Lo usamos cuando como su nombre indíca cuando queramos maxima fiabilidad en un tipo de paquetes determinados, es decir siempre tienen que llegar a su destino sin problemas , es interesante para servicios como el SMTP
Coste mínimo:Minimiza el coste de los datos transferidos, seria interesante para P2P royo edonkey y demas.
En Linux con el kernel 2.4.x y la opcion de iptables y mangling activada,la sintaxis del iptables es la siguiente:
iptables -A PREROUTING -t mangle -p tcp –sport 80 -j TOS –set-tos Maximize-Throughput
Con eso conseguiríamos el maximo rendimiento en entrada de paquetes por el 80.
Para la salida sería:
iptables -A OUTPUT -t mangle -p tcp –dport 80 -j TOS –set-tos Maximize-Throughput
Voy a poner una tabla con los Mnemónico y los bits en hexadecimal:
MnemónicoHexadecimal

Normal-Service
0x00

Minimize-Cost
0x02

Maximize-Reliability
0x04

Maximize-Throughput
0x08

Minimize-Delay
0x10

Notas:
N. del T.: “servicio normal”
N. del T.: “minimizar los costes”
N. del T.: “maximizar la fiabilidad”
N. del T.: “maximizar el rendimiento”
N. del T.: “minimizar la demora”

Aún podemos optimizar más la conexion con algoritmos como HTB o CBQ para ellos existen scripts prehechos como elwondershaper, para estos algoritmos necesitamos iproute2.
Ahora te preguntaras ¿Por que estos algoritmos mejoran el rendimiento? ¿Que hacen?, bien te habras fijado en lo siguiente, como puede ser que si la bajada y la subida son independientes no puedes subir a tope y luego navegar como si no ocurriera nada, bien el problema esta en las colas de paquetes cuando el tráfico de subida es grande, se forman colas largas de paquetes en la cola, el servidor web, ftp o el servicio que se al que intentamos acceder, no nos va a enviar nada hasta que reciba todos los ACK de lo que estamos enviando. Esto lo podemos evitar reduciendo un poquito tanto la bajada como la subida para asi hacer que las colas se queden en nuestos pcs (routers), aprovechando el poco ancho que nos queda podemos contestar a los ACK mas rápidamente a las colas más pequeñas que hemos creado. Con esto conseguiremos distinguir la subida de la bajada y tener una menor latencia.
Para poder usar CBQ o HTB, necesitaras en el kernel las siguientes opciones.
[*] QoS and/or fair queueing
<*> CBQ packet scheduler
<*> HTB packet scheduler
<*> CSZ packet scheduler
<*> The simplest PRIO pseudoscheduler
<*> RED queue
<*> SFQ queue
<*> TEQL queue
<*> TBF queue
<*> GRED queue
<*> Diffserv field marker
<*> Ingress Qdisc
[*] QoS support
[*] Rate estimator
[*] Packet classifier API
<*> TC index classifier
<*> Routing table based classifier
<*> Firewall based classifier
<*> U32 classifier
<*> Special RSVP classifier
<*> Special RSVP classifier for IPv6
[*] Traffic policing (needed for in/egress)
Si no temos IPV6 o si solo queremos HTB o CBQ podemos modificar las opciones sin problemas.
Con estas técnicas mejoraremos sustancialmente nuestras conexiones, este texto se puede reproducir total o parcialmente, seria interesante que nombrarais de donde lo habeis obtenido.
Artículo original de Pollo “valenciawireless”

 

conexión red

About Jordi Llorente

Extraño cocktail, un poco de ciencia, un poco de arte, y mucha pasión.