[gull] Les requêtes DNS
Arnaud Burlet
arnaud_oss at bluewin.ch
Sun Sep 12 11:19:02 CEST 2004
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
More information about the gull
mailing list