Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 07 Mar 2010 15:08:38 -0800
From:      Chuck Swiger <cswiger@mac.com>
To:        Tim Kientzle <kientzle@freebsd.org>
Cc:        "'freebsd-current@freebsd.org'" <freebsd-current@freebsd.org>
Subject:   Re: Wireless TCP aborts
Message-ID:  <07C6C4E7-3512-4003-BDDE-DEDB549F6EA8@mac.com>
In-Reply-To: <4B9425C4.5060309@freebsd.org>
References:  <4B9425C4.5060309@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Tim--

On Mar 7, 2010, at 2:16 PM, Tim Kientzle wrote:
[ ... ]
>  Corrupted MAC on input.
>  Disconnecting: Packet corrupt
>  rsync: connection unexpectedly closed ... [receiver]
> 
> and then the rsync session is dead.
> 
> It seems odd that a single corrupt packet would terminate the TCP connection.

It's not TCP itself which is closing the connection; if a garbage packet as far as TCP or IP layer checksums was seen, it would be dropped and normal resend mechanisms would compensate.  However, SSH adds it's own layer of data integrity checking called HMAC, which uses block-based hashes like MD5 or SHA, and is much stronger than the 32-bit CRCs used at TCP/IP layers.

See:
    
   /usr/src/crypto/openssh/packet.c
   http://en.wikipedia.org/wiki/HMAC

The implication is that the data is being corrupted before it gets munged into network packets; failing memory is a likely cause, but bugs in the network stack, the NIC driver, or OpenSSL are also lower-order possibilities.

Regards,
-- 
-Chuck




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?07C6C4E7-3512-4003-BDDE-DEDB549F6EA8>