Newsgroup: it.comp.java
Titolo: [repost] numero massimo connessioni contemporanee windows

Ripropongo il quesito per vedere se qualcuno nel frattempo ci e'
incappato.
Ho un server scritto in java che ascolta su di una socket. Per ogni
accept genera un Thread che gestisce la socket ritornata dalla
MainSocket.accept() che fa' quello che deve fare. Poi ritorna a fare
l'accept.
Ho poi fatto un client di test che genera un certo numero di thread che
effettuano richieste a ripetizione al server.
Il problema e' il seguente:
quando lancio il client con un N thread ho che, almeno all'inizio, il
server riceve in breve tempo N tentativi di connessione e,
presumibilmente, considerando il tempo di processamento, il server si
trova a gestire N connessioni attive contemporaneamente.
Su Windows XP Pro se N>16 le connessioni oltre la 16 vengono rifiutate
(Connection refused). Il server non se ne accorge nemmeno che sono
arrivate, vengono rifiutate a monte della accept. N=16 l'ho dedotto dal
fatto che se lancio 20 thread mi falliscono 4 connect e se ne lancio 25
me ne falliscono 9.
Su Linux nessun problema.
Ho provato ad aumentare il backlog della MainSocket senza successo.
uso: j2sdk 1.4.1_01.
ciao
-- 
Seti@Home Java Applets
http://maruko.cjb.net/

incappato.
Qualche info in piu'.
Il test l'ho effettuato eseguendo il client e server dentro jbuilder.
Se invece eseguo il tutto al di fuori di jbuilder i risultati sono piu'
aleatori anche se il numero di connessioni si attesta intorno alle
20/24.


>incappato.
mmm interessante...
come fai a dire che le connessioni oltre la 16 non arrivano nemmeno?
La cosa mi interessa perchè anche io ho scritto recentemente un server
che ascolta su un socket, anch'esso multithread ma non avevo mai
provato a dargli in pasto molte connesioni contemporanee per studiarne
il comportamente... davo per scontato che funzionasse tutto senza
problemi...
adesso è tardi, ma domani provo e ti faccio sapere...
anche io uso Xp Pro.
Sarebbe interessante fare dei test su altri SO.
PS Non è che hai qualche firewall attivo da qualche parte o il
protocollo QoS ?
-- 
Per una pera, una pera cazzo...

protocollo QoS ?
c'e' il supporto QoS di XP.... provero' a disabilitarlo. ho notato che
modifica il TOS dei pacchetti... non si azzardera' mica a dropparmi
connessioni senza dirlo?!


connessioni senza dirlo?!
che io sappia il QoS (quality of service) si riserva una parte della
banda per fare le proprie cose... potrebbe proprio essere quello lě il
problema...
fammi sapere che sono curioso!
PS Adesso sono in ufficio e non ho tempo di fare le proprie sul mio
server java... a stasera o nel weekend...
Ciao


fammi sapere che sono curioso!
Il QoS č molto vasto ed e' un obiettivo piu' che una metodologia. Quello
che combina con la banda dipende dalle tecniche utilizzate per
garantire, appunto, la Quality of service. Ci si puo' limitare a
privilegiare certi pacchetti piuttosto che altri, si puo' decidere che
se il livello di prestazioni per i pacchetti privilegiati cala troppo
allora si droppano quelli meno privilegiati, ecc. Esistono molte
tecniche. E questo per il solo protocollo IP o TCP/UDP. Ci si puo' poi
anche spostare a protocolli di livello piu' elevato. Ad es. si possono
fare giochi anche con l'HTTP analizzando il contenuto delle richieste e
discriminando in base a quello.
Per quel che ne so le "estensioni" QoS di XP si limitano a segnare i
pacchetti IP nel campo TOS in modo che vengano gestiti in modo
differenziato da un router/gateway in grado di farlo (si puo'
configurare una macchina Linux in questo modo abbastanza semplicemente).
Concludendo, disabilitare quella funzione di XP non risolve il problema.
