Re: Treason uncloaked!
On Tue, Mar 20, 2007 at 10:59:25AM +0100, debian-user-french@mediaforest.net wrote :
> Bonjour à tous,
> depuis plusieurs années, je trouve régulièrement dans mes logs des
> messages d'erreur du type :
> kernel: TCP: Treason uncloaked! Peer x.x.x.x:x/80 shrinks window x:x.
> Repaired.
>
Cette sortie est présente dans net/ipv4/tcp_timer.c des sources du noyau.
Par contre je n'ai pas réussi à comprendre ce qu'il se passe.
if (!tp->snd_wnd && !sock_flag(sk, SOCK_DEAD) &&
!((1 << sk->sk_state) & (TCPF_SYN_SENT | TCPF_SYN_RECV))) {
/* Receiver dastardly shrinks window. Our retransmits
* become zero probes, but we should not timeout this
* connection. If the socket is an orphan, time it out,
* we cannot allow such beasts to hang infinitely.
*/
#ifdef TCP_DEBUG
if (net_ratelimit()) {
struct inet_sock *inet = inet_sk(sk);
printk(KERN_DEBUG "TCP: Treason uncloaked! Peer %u.%u.%u.%u:%u/%u shrinks window %u:%u. Repaired.\n",
NIPQUAD(inet->daddr), ntohs(inet->dport),
inet->num, tp->snd_una, tp->snd_nxt);
}
#endif
La fonction net_ratelimit se situe dans net/core/utils.c :
/*
* All net warning printk()s should be guarded by this function.
*/
int net_ratelimit(void)
{
return __printk_ratelimit(net_msg_cost, net_msg_burst);
}
EXPORT_SYMBOL(net_ratelimit);
et __printk_ratelimit est présente dans kernel/printk.c
> Depuis plusieurs années j'effectue donc des recherches sur le web à ce
> sujet, et depuis plusieurs années, je ne trouve rien d'autre que
> d'autres personnes cherchant la même chose que moi...
>
> Peut-être y a t'il parmi vous quelqu'un qui connait la réponse à cette
> question : que veut dire ce message ? par quoi est-il causé ?
> Est-ce dangereux ? Si ce n'est pas le cas, pourquoi ce message est-il
> aussi alarmiste ?
> Et surtout comment se fait il que l'on ne trouve aucune documentation,
> ni réponse à ce sujet alors que c'est une question qui semble être
> récurente ?
>
>
J'espère que cela pourra aider à approfondir la question.
--
Rémi Demarthe
Reply to: