OVH Cloud OVH Cloud

Qui doit repondre a un SYN ?

1 réponse
Avatar
Vincent Bernat
Coucou !

J'ai un petit trou de mémoire : quel élément du système provoque la
réponse à un SYN ? Est-ce que c'est l'OS qui y répond du moment qu'il
y a eu un appel à listen() ? Est-ce qu'il faut qu'il y ait un appel à
accept() ?
--
printk("??? No FDIV bug? Lucky you...\n");
2.2.16 /usr/src/linux/include/asm-i386/bugs.h

1 réponse

Avatar
Xavier Roche
Vincent Bernat wrote:
J'ai un petit trou de mémoire : quel élément du système provoque la
réponse à un SYN ? Est-ce que c'est l'OS qui y répond du moment qu'il
y a eu un appel à listen() ? Est-ce qu'il faut qu'il y ait un appel à
accept() ?


Si je dis pas de conneries, listen() mets en place la queue au niveau
système (kernel), avec un backlog réglable:
<http://www.opengroup.org/onlinepubs/007908799/xns/listen.html>

Une fois en place, le système répond (ack) à concurrence du nombre
d'entrées dans la queue de backlog ("push"), et accept() "pop" un
élément de cette queue (cela n'a donc pas d'effet réseau).

C'est grâce à ça qu'une machine peut encaisser dix connexions d'un seul
coup, même si derrnière le serveur peut ramer pendant une minute pour
traiter la connexion.