Oppure

Loading
17/11/09 5:02
muteblaster
e' da qualche giorno che uffcialmente ho iniziato i test sul programma di p2p e mi vengo a scontrare con un altro problema che in locale non vedevo, cioe' il protocollo udp perde dei pacchetti, ed un nuovo chunk viene spedito solo al ricevimento del precedente, supponiamo che io spedisca un pacchetto di chunk 2 MB quando il file ha terminato il suo download come faccio a vedere i chunk mancanti?.......
aaa
17/11/09 14:06
GrG
non ho ben chiaro come funzioni il protocollo udp ne tanto meno cosa siano i chunk... intuitivamente si capisce che invii i file a pezzi e vuoi sapere quanti "pezzi" mancano per completare il file... solo che devi specificare se questi pezzi li "fai tu" oppure no...
aaa
17/11/09 16:16
muteblaster
un chunk sarebbe un pezzettino di circa 2kb che viene spedito chi lo riceve lo inserisce nel file che sta' scarcando, e poi richiede un altro pezettino, pero' questo mi genera un problema devo inviare tante richieste e non tutte arrivano...... io pensavo di inviare un blocco di richieste formate da 10 pezzettini ....e cosi' via.....alla fine quando ho finito di scaricare il file verifico quali pezzi mancano e li richiedo.......
aaa
17/11/09 18:59
lorenzo
adesso, non ho mai usato udp però, se non ricordo male le lezioni di Reti quel protocollo non ha nessun controllo sul corretto arrivo dei paccetti.
Si usa quando non è necessario che tutti i pkt arrivino a destinazione(streaming, voip, etc...)
Per trasferimento dati è meglio usare TCP


EDIT: difatti, cito Wikipedia:

A differenza del TCP, l'UDP è un protocollo di tipo connectionless, inoltre non gestisce il riordinamento dei pacchetti né la ritrasmissione di quelli persi, ed è perciò generalmente considerato di minore affidabilità. È in compenso molto rapido ed efficiente per le applicazioni "leggere" o time-sensitive. Ad esempio, è usato spesso per la trasmissione di informazioni audio o video. Dato che le applicazioni in tempo reale spesso richiedono un ritmo minimo di spedizione, non vogliono ritardare eccessivamente la trasmissione dei pacchetti e possono tollerare qualche perdita di dati, il modello di servizio TCP può non essere particolarmente adatto alle loro caratteristiche. L'UDP fornisce soltanto i servizi basilari del livello di trasporto, ovvero:
multiplazione delle connessioni, ottenuta attraverso il meccanismo delle porte
verifica degli errori mediante una checksum, inserita in un campo dell'intestazione del pacchetto.

mentre TCP garantisce anche il trasferimento affidabile dei dati, il controllo di flusso e il controllo della congestione.

L'UDP è un protocollo stateless, ovvero non tiene nota dello stato della connessione, dunque ha rispetto al TCP informazioni in meno da memorizzare. Un server dedicato ad una particolare applicazione che scelga UDP come protocollo di trasporto può supportare molti più client attivi.
Ultima modifica effettuata da lorenzo 17/11/09 19:01
aaa
17/11/09 21:24
muteblaster
sisi il protocollo udp non possiede il controllo dei trasferimenti.....pero' e' implementabile a livello apllicativo......io vorrei una volta scaricato il file analizzarlo e vedere le parti mancanti e quelle mancanti richiederle.....
aaa