Fragmentar paquetes

Miguel Oyarzo O. admin en aim.cl
Lun Dic 15 06:34:32 CLST 2008


Ricardo Utreras Estrella escribió:
> Aldrin Martoq escribió:
>> On Sun, 2008-12-14 at 17:51 +0100, Miguel Oyarzo O. wrote:
>>> Aldrin Martoq escribió:
>>>> On Sat, 2008-12-13 at 12:59 +0100, Miguel Oyarzo O. wrote:
>>>>> Existe alguna forma para que un cliente negocie o sugiera el tamaño 
>>>>> maximo del paquete que recibirá desde un servidor cualquiera remoto?
>>>>> Quiero conectarme a un servidor WEB remoto, pero deseo recibir 
>>>>> secuencia paquetes menores a 200Bytes hasta mi cliente.
>>>> Si se puede, depende del sistema operativo del cliente. Si el 
>>>> cliente es
>>>> linux puedes configurar la interfaz:
>>>> # ip link set eth0 mtu 200
>>>> Tambien puedes truculencias con iptables en el cliente (solo para TCP):
>>>> # iptables -t mangle -A OUTPUT -p tcp -d listas.inf.utfsm.cl 
>>>> --tcp-flags
>>>> SYN,RST -j TCPMSS --set-mss $[200-40]
>>
>>> En realidad NO quiero modificar el MTU en las tarjetas.
>>> Busco una forma en que una aplicacion pueda negociar con el host el 
>>> tamaño maximo del paquete que recibirá.
>>
>> Claro que todo es posible: Puedes hacerlo desde el nivel de sistema
>> operativo como te mostre (o tal vez un modulo para netfilter
>> especializado) hasta el nivel aplicativo tambien. Buscando creo que
>> bastante hay en tcp(7).
>>
>>
>>>> Se puede saber para que esto?
>>> Tabajo con redes inalambricas outdoor de grandes distancias desde 
>>> hace muchos años un metodo asi sería de mucha utilidad, pero no esta 
>>> en mis libros que se pueda lograr... por eso preguntaba aqui ... por 
>>> si..
>>
>> Hmmm... desconozco que quieres lograr: si quieres disminuir la latencia
>> podria ser; si quieres mejorar la performance (lease: disminuir
>> retransmisiones por error) no estoy seguro que sea buena idea. Al enviar
>> paquetes mas cortos aumentas la cantidad de paquetes y el ancho de banda
>> requerido, luego segun yo tienes mas chances de que ocurra un error.
>> Quizas podrias iluminarnos al respecto...
>>
> 
> Nope, mientras mas pequeño el paquete es menor la probabilidad de que 
> tenga errores, es verdad que se aumenta el trafico debido a que como es 
> mayor la cantidad de paquetes, se tienen que transportar mas 
> encabezados, pero en caso de retransmision el tiempo sera menor. O sea, 
> en conexiones con mucho ruido (perdida alta de paquetes) disminuir el 
> mtu mejorara la comunicacion.
>

Exactamente esa es la razon, se escapa un poco al objeto de la lista, 
pero es un buen tema.
Cuando administras redes grandes WIFI lo normal es que exitan muchas 
retransmisiones en especial con paquetes grandes. Pero si el 
administrador pudise acceder remotamente y recibir la info de cada 
maquina con paquetes muy pequeños,   esa lectura o manipulacion de info 
sera mas rapida pues pequeños paquetes tienen mas probabilidad de 
atravezar la red.

El tema es que no quiero bajar en MTU de las maquinas, sino quiero ser 
el unico que el administrador unicamente tenga trafico con paquetes 
pequeños.

Respecto del aumento de paquetes, eso no tiene importancia, redes sobre 
2 GHz pueden haber muchisimos paquetes pequeños en el medio y el sistema 
trabajará bien, el administrador de redes wireless piensa en los grandes 
(de 1200  a 1440 bytes) y como evitar sus retransmisiones.

Algo como TCPMSS parece servirme, pero esta implementacion pareciera ser 
POSTROUTING solamente, yo desearia algo PREROUTING, de forma que el host 
remoto (sea quien sea) comience a bajar el tamaño de su ventana TCP y me 
transmita paquetes chicos.


Saludos,
Miguel Oyarzo O.
Austro Internet S.A.
Punta Arenas












Más información sobre la lista de distribución Linux