Conformación del tráfico de entrada

Conformación del tráfico de entrada

Sé que puedo dar forma al tráfico de salida con tcuna herramienta similar. Sin embargo, ahora quiero dar forma al tráfico de entrada; de hecho, quiero priorizar la descarga de archivos de cierto tipo a través de una conexión lenta y con pérdidas.

Sé que la razón tcsólo puede dar forma al tráfico de salida: el propio host no tiene control directo sobre la cantidad de tráfico de entrada. Por otro lado, TCP tiene algunas medidas integradas que evitan que el tráfico TCP desborde una conexión lenta. Entonces, ¿puedo modificar algo en el encabezado TCP para que el host remoto piense que mi conexión es más lenta de lo que cree?

Supongamos que puedo establecer la marca correspondiente en ambos tipos de conexiones con iptables. ¿Hay alguna forma de reducir el ancho de banda de entrada de las conexiones del primer tipo, pero solo si hay conexiones del segundo tipo?

Respuesta1

A lo que te refieres es a la notificación de congestión explícita de TCP (http://en.wikipedia.org/wiki/Explicit_Congestion_Notification.) No creo que lo que estás buscando sea técnicamente posible, ya que cuando el servidor Linux recibe el paquete, ya los has recibido y estás intentando ajustarlos después del hecho. .

De manera realista, si desea QOS o configuración del tráfico, debe hacerlo en su proveedor ascendente, no en el extremo receptor. En otras palabras, toda la configuración del tráfico se realiza en el lado de origen, no en el de destino.

Respuesta2

Hay muy buenas soluciones disponibles para esto, desafortunadamente ninguna de ellas está disponible de forma gratuita en Linux. Retrasar o descartar los paquetes funciona muy, muy mal. Puede hacerlo si es necesario, pero los resultados son, en el mejor de los casos, adecuados. Cuando recibe un paquete, ya ha consumido el ancho de banda entrante que está intentando proteger.

La forma correcta de hacerlo es alterar los anuncios de la ventana TCP saliente, anunciando una ventana más pequeña en el otro lado. Hay implementaciones de hardware y software que hacen esto, pero que yo sepa, ninguna está disponible de forma gratuita en Linux.

Esteguionexplica una forma de hacerlo y tiene algunos comentarios muy detallados que explican la teoría y las limitaciones.

información relacionada