mmm... ritardi ethernet semplici... 2 mezze giornate per implementarlo... mi viene in mente una qdisc che vidi solo su carta 3-4 anni fa, ma non ne trovai una implementazione pronta.
Io spenderei un'ora per prendere un cavo ethernet, tagliuzzarlo e giuntarlo col saldatore... l'unica cosa a cui devi fare attenzione e' fare saldature piu' simili possibili altrimenti i ritardi sulle coppie differiscono troppo tra una coppia e l'altra. Il risultato, se c'e', non e' misurabile/dosabile... ma e' la cosa piu' rapida che mi viene in mente. Al max puoi procedere per gradi: 2 giunte e misuri, 5 giunte e misuri, ... Altrimenti devi vedere se hai schede di rete o switch con chip realtek di 3-4 anni fa... che sono programmabili al dettaglio... o seguendo la stessa strada puoi dare una smanacciata nel driver della scheda che hai a disposizione; non credo sia particolarmente oneroso in termini di tempo. Il kernel lo lascerei stare... troppo complesso trovare dove mettere le mani... 2 mezze giornte ti servirebbero solo per quello. Dimmi a cosa ti serve, che magari tiro fuori qualosa dal Manuale. ciao Michele Fabio 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 >