Newsgroup: it.comp.reti.ip-admin
Titolo: TCP Connessioni ed EndPoints

Salve a tutti, avrei da farvi una domandina su TCP facile facile..ma non per
me :))
E' vero che TCP permette la condivisione tra piu' applicazioni  delle porte
MA NON la condivisione degli end-points?
Mi spiego;
- supponiamo, ad esempio, di avere un host-1 con indirizzo IP a.b.c.d , un
host-2 con indirizzo IP e.f.g.h , ed un host-3 con indirizzo IP i.l.m.n
- supponiamo che sull'host-1 siano attive due connessioni TCP distinte verso
host-2 ed host-3 identificate dalle seguenti coppie di end-point:
-> connessione 1 (tra host-1 ed host-2 ) =  [a.b.c.d, porta 44056] &
[e.f.g.h , porta 19996]
-> connessione 2 (tra host-1 ed host-3 ) =  [a.b.c.d ,porta 44056] &
[i.l.m.n, porta 1180]
Domanda: E' vero che NECESSARIAMENTE le suddette connessioni devono esser
relative ALLO STESSO APPLICATIVO ? ...E' cioe' sempre vero che l'end-point
[a.b.c.d , porta 44056] sull'host-1 PUO" esser allocato ad UN SOLO
applicativo ?
...temo di aver compreso male il concetto di "condivisione" di una porta
TCP: forse una porta tcp puo' esser condivisa da piu' connessioni , ma puo'
esser allocata ad un solo applicativo.....o....cosa ? :((...che kasino
Un aiuto por favor
A.C.


umh... secondo me (ma accetto smentite :) necessariamente su una determinata
porta puoi avere un solo demone in ascolto. Quando un client stabilisce una
connessione col server su quella porta, tipicamente il demone "forka"
generando un figlio che gestisce la connessione, e il demone riamne in
ascolto per altre connessioni su quella porta. Un'altra connessione,
un'altra fork e un nuovo processo, e cosi' via.
Per rispondere alla tua domanda bisognerebbe capire cosa intendi con
applicativo. Se intendi un solo processo (ma non credo, sarebbe una
forzatura...), allora la risposta e' no, puo' essere allocata a piu'
processi (altrimenti come potrebbero funzionare i siti web? ;-). Se per
applicativo intendi quello che normalmente si intende (scusatemi, ma non mi
viene in mente una definizione semplice in questo momento), ovvero cose tipo
Apache o sendmail un server ftp, allora la risposta e' si, nel senso che non
puoi mettere in ascolto due applicativi diversi sulla stessa porta (al di
la' del fatto che avrebbe poco senso...)
boh, spero solo di non avertiincasinato ancora di piu' le idee
ciao
e buon socket a tutti
bepin

 non per me :))
Una connessione TCP/IP e' identificata univocamente dalla coppia
IP/Porta sorgente e IP/Porta destinazione.
Non potrai mai avere due connessioni TCP con la stessa coppia.
In ascolto su una porta puoi avere un solo processo (o comunque piu'
processi figli di uno solo).
Ciao.
-- 
 Daniele Orlandi
 Planet Srl


<cut>


 processi figli di uno solo).
Il processo in ascolto su una porta TCP e' quello che ha anche fatto la
cosiddetta "apertura passiva" di connessione.
Quando un applicativo vuol fare un'apertura passiva, semplicemente "chiede"
al suo Sistema operativo (tramite l'uso dei socket) l'allocazione di una
porta. Il sistema operativo glie la alloca e riserva spazio buffer
sufficiente da associare ad essa: da quel momento in poi ..nessun altro
applicativo puo' chiedere l'allocazione della stessa porta tcp. Allocata la
porta, l'applicativo si mette "in ascolto" (listening) sulla porta suddetta,
in attesa di esser contattato da qualche client..
- E' giusto quanto ho affermato?
- E' *solo* in questo che consiste una Apertura Passiva di una connessione
TCP o c'e' dell'altro ?
Grazie mille !!
A.C.

 connessione TCP o c'e' dell'altro ?
Cosa dovrebbe esserci d'altro ?


 >
<cut>
