Nel caso in cui voleste implementare un qualcosa in kernel, date una occhiata al TFC, che implementava una cosa del genere. I pacchetti venivano inseriti in delle code e poi rispediti allo scadere di un timer. Magari potreste prendere spunto. Ciao
Il giorno 28 gennaio 2009 9.33, Fabio <feu...@gmail.com> ha scritto: > 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) >