|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
|
Divide Et Impera 0.9.1 beta
Ragazzi e' pronta la prima beta pubblica del mio programmino...le istruzioni e le regole sono un po' lunghette, spero ci capiate...non c'e' bisogno che testiate il programma al di fuori delle regole, vi dico gia' io che non funzia. Mi interessa che facciate tante prove su diverse reti vere o no.
Siete pronti al beta-testing? Ecco le regole...le ho scritte per un mio amico quindi sono rivolte a un "lui"... Regole: - ci sara' UNA sorgenta (source) che la farai partire con ./source <numero porta> <nome file> dove il primo parametro e' il numero della porta su cui il TCP appoggera' e il secondo parametro e' il nome del file di configurazione della rete (te ne ho messo uno di esempio in network.map e uno piu' ridotto piu' avanti per spiegartelo). - ci possono essere da 1 a N (dopo ti diro' quanti al max) host che possono essere sia destinazioni (del messaggio) che computer collegati alla rete che possono duplicare il messaggio per accelerare l'arrivo alle destinazioni, li fai partire con ./host <numero porta> stessa cosa per questo parametro a quanto detto prima. - c'e' un file chiamato pacchetto.dat dove ci sta il messaggio da spedire. Il messaggio non puo' superare i 20000 caratteri. - c'e' un file di configurazione, puoi farne quanti te ne pare, tanto gli passi il nome alla sorgente quando la fai partire: ti faccio un esempio cosi' capisci: [ALL HOSTS] 127.0.0.1:5000:0 127.0.0.1:5001:2 127.0.0.1:5002:1 [HOST CONNECTIONS] 127.0.0.1:5000 to 127.0.0.1:5001/2 127.0.0.1:5000 to 127.0.0.1:5002/4 [HOST CONNECTIONS] 127.0.0.1:5001 to 127.0.0.1:5000/2 127.0.0.1:5001 to 127.0.0.1:5002/2 [HOST CONNECTIONS] 127.0.0.1:5002 to 127.0.0.1:5000/4 127.0.0.1:5002 to 127.0.0.1:5001/2 [END NETWORK INFO] - le parti tra parentesi [quadre] non devi toccarle - dopo ALL HOSTS ci stanno tutti gli indirizzi degli host (non piu' di 1000 compresa la sorgente), il primo deve essere quella della sorgente, gli altri possono essere a caso, pero' sappi che dopo l'ordine che dai deve rimanere per tutto il file, poi capirai. - c'e' prima l'ip, poi i due punti obbligatori, la porta e un numero. Quel numero funzia cosi': 0 per la sorgente e' fisso, poi tutte le destinazioni che hai prescelto (quelli che dovranno ricevere il msg nel piu' breve tempo possibile) gli dai 1, se un host non e' ne' sorgente, ne' destinazione, ma e' collegato ad una destinazione ha il n. 2. Se un host e' collegato ad un 2 ma non ad un 1 (e non e' destinazione ovvio) e' un n. 3 e cosi' via...capito? - Dopo tutti gli host ci sono le interconnessioni, prima la sorgente con tutti gli host (la sorgente e' collegata a TUTTI gli host per forza) devi mantenere l'ordine che hai dato in [ALL HOSTS] e poi devi fare tutte le interconnessioni, se un host non e' collegato con un altro ci metti bandwith uguale a 0, dopo capirai qual'e' la bandwith. - la parte prima della "/" viene ignorata, serve a te per ricordarti di quale connessione si parla, pero' puoi scriverci quello che ti pare. Dopo la "/" invece c'e' la bandwith, ovvero la velocita' della interconnessione in caratteri al secondo. - Se A e' collegato a B con bandwith 5 allora quando andrai a settare il collegamento tra B e A dovrai mettere sempre 5. Devi cercare di creare delle mappe di reti complicatine e tenere i file di configurazione, cosi' me li spedisci sia che funzioni tutto sia che no. Quando hai settato tutto per bene e lanciato gli host, ogni host ti scrivera' che cosa sta facendo e cosi' pure la sorgente che prima ti scrivera' tutta la rete come e' stata caricata e poi parte con la spedizione delle regole e dei dati. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
|
Divide Et Impera 0.9.1 beta parte 1/2
questo e' il file per la sorgente da scompattare... |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
|
Divide Et Impera 0.9.1 beta parte 2/2
questo e' il file per gli host... |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Mi spighi com'è secondo te fisicamente un host che è raggiungbile da due perscorsi diversi ?
Ad esempio : A è connesso a B, bandwidth 10 B è connesso a C, bandwidth 10 A è connesso a C, bandwidth 5 Mi spieghi come funzionerebbe il tuo programma in questo caso ? |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per connessione intendevo connessione fisica...
A è la sorgente e C è la destinazione... Il fatto è che nessuno ti garantisce che il messaggio che vuoi mandare logicamente direttamente a C non passi fisicamente dalla conenttività A-B e poi vada sulla connettività B-C... Quindi il discorso della bandwidth va a farsi benedire...capito ciò che intendo ? |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
|
Quote:
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
C'è un opzione dell'header del protocollo IP che si chiama Don't fragment...ma in pratica non funziona... Comunque con pacchetti dell'ordine dei centinaia di byte non ci dovrebbe essere frammentazione (MTU è solitamente >= 1500)... Ma non è questo il problema principale... Metti che tu stia mandando 10 pacchetti...può succedere che 2 di essi passino da un determinato percorso...altri 5 da un altro...e altri 5 da un altro ancora... E questo per definizione del IP che non è un protocollo orientato alla connessione... Il percorso non predicibile...come la bandwidth quindi... Magari il discorso è più proponibile su connessioni punto-punto...ma anche in quel caso basta spegnere un router ed ecco che il percorso diventa automaticamente un altro... |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
|
Quote:
|
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Don't fragment...non so se puoi settare questa opzione con setsockopt... Ma in ogni caso Don't fragment non viene rispettato...
E comunque la frammentazione non sarebbe un problema...il problema princiapale è l'instradamento...che non è una costante come la bandwidth... Secondo me una cosa più indicativa della bandwidth (che ha significato solo come massimo thrughput del singolo nodo) è il ping... Potresti misurare il ping come indicatore della qualità di un connessione virtuale del TCP... E misuararlo dinamicamente durante la connessione cercando di ricavarti una sorta QoS della connessione come rapporto bandwidth/ping... A quel punto puoi sicuramente farci qualcosa... |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
|
Quote:
|
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Il discorso della connessione diretta fisica è un poì più complesso... Solitamente c'è un default gateway all'interno di una rete...e questo a meno di congestione (altri utenti usano il router per uscire e saturano la connessione punto-punto) instrada sempre i pacchetti sulla stessa connessione punto-punto... Nel caso di congestione il router può pensare di inviare i pacchetti verso un router alternativo che li instrada su un'altra connessione punto-punto... Questo comunque avviene in modo completamente trasparente all'utente...quindi non ti puoi rendere conto se viene usato o meno il router secondario... Il problema della congestione (può avvenire non solo sulla congestione, ma anche nel caso di un bilanciamento del carico fra due o più router) può avvenire a qualsiasi livello durante il percorso per raggiungere il destinatario... Infatti i pacchetti TCP molto spesso arrivano fuori sequenza...e ci pensa il TCP a riordinarli simulando una connessione... Ti spego da dove nascono tutti questi problemi... In pratica Internet è nata come progetto della DARPA (Defense Advanced Research Project Agency) del ministero della difesa degli USA... E funziona in questo modo perchè doveva garantire la consegna del pacchetto anche nel caso che una bomba atomica avesse distrutto parte delle infrastrutture di rete... Ed ecco perchè non è orientata alla connessione (non c'è un percorso fisso)...ma viene detta a commutazione di pacchetto... |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
|
cionci ho capito perfettamente quello che mi hai detto...pero' se ti va' lo stesso di testarlo mi farebbe piacere...senno' fa lo stesso.
Questo vale per tutti...ho visto che fino ad adesso l'ha scaricato solo una persona ciao e grazie Cimmo |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Purtroppo non lo posso provare xchè Linux su questa macchina mi è partito (Kernel Panic!)...
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
|
Quote:
Comunque oggi ho fatto la versione 0.9.2 beta cambiamenti: - risolto un bug dove anche tutti gli host che non erano destinazioni ricevevano tutto il messaggio anche se poi gliene serviva solo una piccola parte. |
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
|
Divide Et Impera v0.9.2 beta
Ecco la nuova versione...
cambiamenti dalla v0.9.1 beta: - nuova ottimizzazione: ora la sorgente spedisce agli host non di destinazione solo le informazioni che gli servono - l'output della mappa della rete nella parte dell'host e' stata migliorata - bug-fix: risolti alcuni segmentation fault che accadevano di rado - bug-fix: ora la sorgente riprova a connettersi con l'host se fallisce - bug-fix: ora la sorgente e gli host puliscono tutta la memoria dai jobs ancora vivi. Dai ragazzi datevi da fare...please testatelo! |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
|
Ed ecco l'eseguibile per gli host...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:58.



















