Tcp proxy , kernel linux. - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 26-03-2007 à 14:26:00
bah c'est pas forcément un dysfonctionnement. La couche TCP est transparente, donc la connection ne commence réellement qu'avec l'envoi de données.
Marsh Posté le 26-03-2007 à 14:30:19
je ne considere pas ca comme une anomalie,
je voudrai un moyen de passer a coté de ce fonctionnement.
Car le module a besoin d'etre au courant de l'arrivée d'une connexion
meme inactive.
Toute connexion doit donc etre signalée a son arrivé et non
pas quand elle commence a etre active.
Par exemple, le serveur ssh envoi son entete a la connexion,
il n'attend pas de recevoir un paquet du client, puisqu'il est le premier
a envoyer de la data. Donc il doit recevoir directement le signal de l'arrivée de l'arrivée d'une connexion.
Marsh Posté le 26-03-2007 à 15:27:12
Je crois que j'ai trouvé,
une option que je ne connaissais pas est activée sur la socket.
avec un strace, j'ai retrouvé ca :
setsockopt(3, SOL_TCP, TCP_DEFER_ACCEPT, [1], 4) = 0
TCP_DEFER_ACCEPT
Allows a listener to be awakened only when data arrives on the socket. Takes an integer value (seconds), this can bound the maximum number of attempts TCP will make to complete the connection. This option should not be used in code intended to be portable.
Marsh Posté le 26-03-2007 à 15:55:46
Et pour desactiver, cette fonction dans apache 2.2 :
AcceptFilter http none
AcceptFilter https none
Voila.
c'etait pour infos aux personnes interessées.
a+.
Marsh Posté le 26-03-2007 à 14:23:22
Bonjour,
j'ai une question sur un fonctionnement de la couche tcp
sur une fedora core 6.
j'utilise apache 2.2, en ayant recompilé un module avec
le debug activé.
lorsque je passe une connexion sur le port d'ecoute d'apache
la connexion n'est pas remontée sur apache tant que le client
n'a émis aucune donnée.
je m'explique, en strace sur le serveur
on ne voit passer l'appel a accept que lorsque l'on envoi
une donnée. juste apres la connexion il ne se passe rien.
apache ne voit la connexion tcp que lorsque des données ont
été recues.
un genre de proxy tcp au niveau du noyau ?
quelqu'un aurait une piste sur ce fonctionnement ?
merci par avance pour toutes infos.