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

Répondre à