Ciao $amici,
ho la seguente situazione:
- server python A che ha in listen un socket UDP.
- client B che apre in un istante 300 thread che fanno una connect al
server e pushano ognuno un pacchetto UDP. totale 300 pacchetti.
su server A a volte arrivano 300 pacchetti regolarmente, ma a volte
ne mancano 1-2, una ventina... e così via...
(il pacchetto che mando può assumere dimensioni variabili di max 15byte,
quindi mado al max in una esecuzione di cliente
15data+8header=23byte*300=6900byte di dati)
Considerando il fatto che server non fa elaborazione ma legge il socket
e mi statistica solo il risultato... qualcuno mi spiega perchè ho sta
perdita? E' perchè è UDP e quando si riempie un qualche buffer che non
o di quanto è su server(app o kernel?) allora scarta pacchetti?
come posso ovviare il problema tenendo presente che:
- non posso usare tcp
- non posso implementare a livello applicativo un meccanismo di
acknowledge/controllo di errore/packet loss del pacchetto, il client
deve pushare e poi fare altro, non ha tempo di fare altre cose...
Ciao e grazie:)
M
|