Newsgroup: it.comp.lang.visual-basic
Titolo: Winsock  & Onere connessioni TCP

Sto pensando di realizzare un'applicazione server
incaricata di monitorare il corretto funzionamento delle
applicazioni client.
In breve il server dovrà concedere un'autorizzazione ogni
volta che un'applicazione client viene eseguita, inoltre
in maniera temporizzata dovrà accertarsi che il client a
cui ha concesso l'autorizzazione sia correttamente
funzionante (una sorta di ping sul client da parte del
server)
Il quesito è:
Sapendo che il mio server dovrà arrivare a monitorare
anche 100/150 client, è pensabile stabilire 150
connessioni TCP con Winsock?? , cosa può comportare in
termini di risorse di sistema?
L'alternativa potrebbe essere quella di utilizzare un
protocollo UDP e temporizzare i 'ping'
Grazie
Luigi

 protocollo UDP e temporizzare i 'ping'
qui dipende da ciò che ti serve sapere e soprattutto quando ti serve
saperlo.
Spero di esserti stato utile.
Ciao ciao e buon lavoro.

grazie

 ha scritto nel messaggio
news:chpb7p$ojn$2...@carabinieri.cs.interbusiness.it...

Piu' che del computer server io mi preoccuperei della risorsa di banda. 150
client non sono pochi.
Userei UDP visto che è connectionless ed implementerei un protocollino per
il controllo della corretta ricezione/invio del pacchetto.
Umbe


Spiegami meglio la questione della banda..
Il traffico generato dalle due mie applicazioni Client e server è limitato
all'invio in maniera temporizzata di pochi byte per ogni connessione.
La domanda che ti pongo: Aprendo 150 connessioni impegno sempre e comunque
un certa risorsa di banda x indipendentemente dal traffico di rete
generato?. Ovvero, impegno una certa quantità di banda in maniera
indipendente dal traffico generato?
Grazie
Luigi

 Luigi
lo spiega bene...anche se c'entra poco con quello che vuoi fare (o forse
no???) questo articolo....
http://www.pmx.it/pmdn/winsock.asp
leggi sotto "terminologia"
TCP e poi...UDP
bye man!
-- 
Il Wodkino Nazionale è a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 New Entry nel bestiario!
:-)
---
Messaggio scannerizzato e certificato "Virus free" da AVG free edition.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.755 / Virus Database: 505 - Release Date: 08/09/2004

 all'invio in maniera temporizzata di pochi byte per ogni connessione.[CUT]
Dunque, occorre una velocissima (??) analisi del protocollo TCP/IP.(lungi da
me ad essere esaustivo, mi perdoneranno i puristi spero!)
Il protocollo TCP usa il cosiddetto "three way handshake" per stabilire una
connessione, che possiamo schematizzare per il tuo caso(mooolto
schematizzata) cosi':
1)Il tuo client apre una porta locale (chesso' la 1999) ed invia un
pacchetto al tuo server su una porta di quest'ultimo (chesso' la 2001).
Questo primo pacchetto, bada, NON è il tuo con i dati: è un pacchetto che
contiene un flag che si chiama SYN, che in pratica chiede una connessione
(il client dice: "yuhuuu...c'e' qualcuno? posso connettermi sulla tua porta
caro server?")
2) a questo punto il tuo server risponde, al tuo client, con un altro
pacchetto, con stavolta 2 flag SYN e ACK che significa: "Ok bello, richiesta
accettata, io ci sono"
3) a questo punto il tuo client risponde con un altro pacchettino con solo
il flag ACK, che significa: "Ok mitico server, ti ringrazio, mo' te mando un
po' de' robba"
E' solo a questo punto che tra le due macchine si è stabilita una
connessione stabile. (ed infatti si dice che il TCP è un protocollo a
connessione). Bada, tutto questo tu non lo vedi o lo gestisci. Lo stack
TCP/IP è fatto a strati: col controllo winsock tu intervieni a livello
applicazione, i tre passaggi di prima avvengono ad un livello piu'
basso.(esattamente a livello di sessione come UDP, mentre l' Ip interviene a
livello di trasporto, ma qui bisognerebbe leggersi lo standard ISO-OSI del
TCP/IP....)
Solo dopo aver fatto tutto quel ben di dio di cui sopra, parte il tuo
pacchettino.Tu capisci che ogni client fa tutta quella roba.Moltiplica in
pratica per 150 client e se chiudi la connessione ogni volta si riparte da
capo.
Il protocollo UDP invece è connectionless, cioè senza la procedura "three
way handshake" di cui sopra.Lui spara e basta.Capisci che come impiego di
banda c'e' una bella differenza!
Considera che UDP viene utilizzato per quei servizi che richiedono velocità
e alto numero di connessioni (i server DNS ad esempio lavorano in UDP sulla
porta 53).
Dato che tu periodicamente "pingheresti" (termine improprio perchè il ping
usa un altro protocollo, che è ICMP precluso al controllo winsock ma
gestibile via API) dal server verso i clients, ti consiglio per prestazioni
e consumo di banda UDP, con magari uno o due byte di controllo CRC.
Mi scuso con tutti per la lunghezza del post, ma credo di aver contribuito a
fare un po' di chiarezza sull'uso del controllo winsock. Se viene richiesto
potrei fare un documento( magari un po' piu' esaustivo e con un po' di
tempo) da mettere sul sito comune.
Umbe

 piu' esaustivo e con un po' di tempo) da mettere sul sito comune.
Sarebbe una cosa gentile da parte tua. Aspetto il tuo documento allora? :-)
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
"Seminate Linux, che Windows si pianta da sè...." (Antico Adagio)
Gestione Ottica - Gestionale per Ottici e Programmi Gratuiti su:
http://www.nicolaottomano.it
email spamtrap: 
spam...@nicolaottomano.it


Se posso rubarti la sign.....troppo carina.....
Cerchero' di fartelo avere al piu' presto.
Umbe

 capo.
infatti avevo precisato che deve avere ben presente cosa gli serve sapere e
quando gli serve proprio per questo motivo, anche se tu sei stato
decisamente molto più chiaro di me.
Doveroso, quindi, che anche io precisi che le connessioni TCP che stabilisco
nel mio programma sono stabili nel tempo, ovvero non le uso solo per sapere
se i clients sono vivi ma per veri e propri monitoraggi in "real-time".
Diversamente i clients UDP si fanno vivi solo quando gli serve e ne viene
richiesto lo stato solo una volta al giorno, ovvero solo per la
sincronizzazione dei dati.

 Cerchero' di fartelo avere al piu' presto.
<wait mode>Aspetto il tuo documento allora</wait mode>
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
"Seminate Linux, che Windows si pianta da sč...." (Antico Adagio)


 Lo stack TCP/IP è fatto a strati:
Questo mi ricorda qualcosa:
http://www.google.com/groups?selm=6gu1fs4i64ivtdb2b...@4ax.com
Leggilo attentamente, è proprio incredibile
tutto in rima, giustificato, e tecnicamente
è ineccepibile :-)
(no, la rima qui NON è voluta :-) )
Bye, G.

 (no, la rima qui NON è voluta :-) )
Sono indeciso tra un LOL o un "Bello!"
Colui che ha scritto il testo,
nella zucca aveva un gran bel cervello.
Or dormo che domattina m'alzo presto
arrivan gli amici suonando al campanello.
Tosto corro alla porta con volto mesto,
saluto gli amici e finisco il ritornello. :-)
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
"Seminate Linux, che Windows si pianta da sè...." (Antico Adagio)


 nella zucca aveva un gran bel cervello.
http://www.emmanuelebassi.net/linux/serni-fortune.20040804.gz
Bye, G.

> 
http://www.emmanuelebassi.net/linux/serni-fortune.20040804.gz
Me lo son letto tutto... bellissimo. Una poesia lunghissima in esadecimale.
Poi l'ho aperto con il GZip ed ho capito che era un *.eml compresso... :-P
bye."già contagiato da Leonardo Serni"



Cosa dire del grande Leonardo Serni....fantastico!
Basta leggersi i suoi messaggi e, a parte l'indiscussa ed enorme competenza,
salta fuori tutta la sua simpatia ed ironia!
Opss.... ho fatto una rima, senza pensarci prima! Acc, ancora!
Gran personaggio, davvero....ho iniziato a seguirlo quando c'era un
gruppetto che si faceva chiamare spippolatori e c'era pure un'altro di nome
Master ......;-)
bei tempi.....
Umbe