[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: