2009/1/27 ZioPRoTo (Saverio Proto) <ziopr...@gmail.com>

> > Conoscete un modo per introdurre un ritardo (anche costante) nei
> pacchetti
> > che transitano attraverso una macchina?
>
> Prima domanda, pacchetti IP o frames ethernet ?


Il mio traffico è TCP/IP, ma mi piacerebbe introdurre ritardo lavorando al
livello ethernet in modo da sembrare solo uno switch all'applicazione che
produce traffico.



> Non ci crederai ma la settimana scorsa stavo affrontando lo stesso problema
> !
>
> Il mio problema specifico era aspettare un tempo T (dell'ordine di
> grandezza del ms) prima di inviare ogni frame 802.11 sull'interfaccia
> di uscita.
> In pratica volevo inserire una specie di "tempo di guardia" tra i frames.


Quindi tu vuoi controllare il numero di frame al secondo che mandi
sull'interfaccia?
Perché invece io sarei più interessato a simulare un ritardo tipo "canale
trasmissivo lungo", cioè un tubo in cui le trame escono X ms dopo essere
entrate, senza intervenire sulla distanza (temporale) tra una trama e
l'altra. Forse anche quello che dici tu potrebbe servirmi, ma mi sembra
comunque un problema diverso.


> > Facendo qualche "cerca" sul man non mi sembra che iptables permetta di
> > ritardare i pacchetti; e nemmeno ibtables purtroppo.
>
>
> Con iptables o ebtables non puoi farlo, te lo garantisco io, perché
> non c'è un target di quel tipo.


Peccato perché questa poteva essere una strada facilmente percorribile.


> Allora ho chiesto ad Andrea Detti se è possibile farlo con Traffic
> Control di Linux (tc), ma la risposta è stata che non c'è uno
> scheduler già implementato che ha esattamente quel comportamento.
>
> E' possibile però implementare lo scheduler nel Kernel !! Che risorse
> di tempo hai su questo progetto ?? Possiamo vedere di farlo insieme,
> anche se io sono gia stracarico di cose da fare ;)


Purtroppo non ho né le risorse né il tempo, al massimo mi concedono due
mezze giornate per fare questa cosa. Qui ogni tanto vengono a chiedermi
qualche nuova questione legata alla rete, senza fornire troppi dettagli sul
problema, e tipicamente si aspettano qualche risposta nel giro di qualche
ora.
Mi aspetto che prima o poi inizieranno a piovermi schiaffi sulla testa. :-(


> > Su google ho trovato un IET (http://iet.sourceforge.net/) che farebbe
> > proprio al caso mio: peccato che non sembra più supportato dal 2003 e mi
> > sembra di capire che funziona solo su kernel 2.4...
>
>
> Mi sembra uno strumento da mettere "in mezzo al cavo" per introdurre
> dei ritardi ... ma ritardi semplici :)


Appunto, è proprio quello che vorrei fare io.
Quello che dici tu invece mi sembra, come hai già detto, una questione da
traffic control. Mi ricordo che Sort faceva qualcosa di simile con il
meccanismo del Tocken Bucket, hai provato a vedere se si può usare per i
tuoi scopi? Mi pare che anche Andrea Detti si occupava di questa cosa...
spero che non si ricada nel problema che manca uno scheduler.

Ma tu, se hai un "treno di frames", devi mettere un ritardo costante a
> tutto il treno ? ovvero devi rallentare solo il primo ? perché questo
> penso che invece sia possibile farlo con il Traffic Control [1].
>
> Saverio
>
> [1] - http://lartc.org/howto/
>

Il link che mi segnali sembra molto interessante, provo a vedere se trovo
quello che sto cercando. Cmq che intendi con rallentare solo il primo? i
pacchetti secondo, terzo, quarto (ecc) possono anche arrivare prima del
primo (che è stato rallentato) oppure subiscono almeno lo stesso ritardo del
primo? che utilità potrebbe avere questa cosa? Mi sembra piuttosto che il
mio caso sia quello di rallentare TUTTO il treno, non si può fare con il
Traffic Control di linux?

Ciao,
Fabio

-- 
"Considerate la vostra semenza:
fatti non foste a viver come bruti,
ma per seguir virtute e canoscenza"
(Dante: Inferno XXVI, 118-120)

Rispondere a