On Sunday 12 September 2004 01.32, Marc SCHAEFER wrote:
> On Sat, Sep 11, 2004 at 06:22:30PM +0200, Arnaud Burlet wrote:
> > Est-ce possible d'avoir plusieurs connections TCP sur le m�me port
> > simultan�ment ? Et donc, comment les paquets d'une connexion sont
> > distingu�s des paquets d'autres connections arrivant (ou partant) sur le
> > m�me port TCP ?
>
> Une connexion TCP est identifi�e par:
>
> (addresse source, adresse destination; port source, port destination)
>
> D�s qu'une valeur diff�re, il s'agit d'une autre connexion.
>
> Donc, si on a deux clients A et B et un serveur S on peut avoir:
>
> 1.2.3.4:1024 <----->> 4.3.2.1:53
> 1.2.3.5:1024 <----->> 4.3.2.1:53
>
> les deux connexions seront parfaitement identifi�es sur S vu que les
> adresses IP (et les num�ros de ports) sont diff�rents.
>
> Ou encore (client BIND9 forc� sur le port 53)
> 1.2.3.4:53 <----->> 4.3.2.1:53
> 1.2.3.5:53 <----->> 4.3.2.1:53
>
>
> On peut m�me avoir:
>
> 1.2.3.4:1024 <----->> 4.3.2.1:53
> 1.2.3.4:1025 <----->> 4.3.2.1:53
et dans le cas d'un serveur dns qui fait (admettons) deux requ�tes simultan�es
(depuis 2 threads ou process diff�rents) vers le m�me serveur dns, on a le
cas :
1.2.3.4:53 <----->> 4.3.2.1:53 (pour une premiere requ�te)
1.2.3.4:53 <----->> 4.3.2.1:53 (pour une seconde requ�te)
est-ce possible ?
Je me suis dit que j'allais essayer d'y r�pondre, et j'ai fait un programme en
C, qui cr�� :
- un serveur sur un port TCP.
- deux clients qui se connectent � ce serveur avec chacun le m�me port TCP
comme source.
Tout fonctionne jusqu'� l'appel connect() du deuxi�me client qui �choue, errno
indiquant : "Cannot assign requested address".
Ce n'est pas clair dans ce message d'erreur, mais on peut en d�duire qu'une
connection est bien identifi�e par
(addresse source, adresse destination; port source, port destination)
Si je reviens � mon exemple en-dessus, un serveur dns a donc un m�canisme qui
emp�che ce type de situation, ou qui les d�tecte ?
(... programme disponible pour curieux ...)
> Question g�n�rale:
> Est-ce qu'un cours d'introduction � TCP/IP (base, analyse de trames,
> cr�ation de logiciels clients et serveurs en C et Perl) pourrait
> int�resser ? Le cours UNIX II (r�seau) ne fait que survoler ces
> th�mes.
Bon, j'aurais du aller revoir mes "papiers" plus t�t, ce sont toute des choses
que je connais (mais dont les d�tails ont de temps � autres des probl�mes �
refaire surface). Cependant c'est toujours bon � prendre si c'est online, car
mes supports sont sur papiers et sans index !
Arnaud
_______________________________________________
gull mailing list
[EMAIL PROTECTED]
http://lists.alphanet.ch/mailman/listinfo/gull