Disconnecting: Corrupted MAC on input. - Solaris 8 64-bit SPARC OpenSSH 4.4p1

Chris Rapier rapier at psc.edu
Wed Oct 25 03:54:39 EST 2006


> I can't really follow that argument.  If "tcp will recover" then the
> errors must be visible to TCP, and TCP will retransmit that segment
> before SSH can even take a look at it, let alone notice the corrupted
> MAC.

My apologies I worded that badly. I was more focused on trying to get 
across that a layer 1 problem can be causing the symptoms this person is 
seeing. Problems that would not lead to a noticeable issue in a non-SSH 
TCP transfer (because there would be no disconnect) but would lead to a 
very noticeable problem when using SSH.

In my specific case the corruption happened on the NIC but after the TCP 
checksum was calculated. I have also seen situation where a faulty cable 
introduces intermittent data corruption. TCP checksums do catch much of 
it (but it does not necessarily catch all of it due to a higher than 
expected rate of checksum collision 
(http://www1.acm.org:80/sigcomm/sigcomm95/papers/partridge.pdf)) but 
sometimes a corrupted packet does get through and causes a disconnect 
from SSH. In both cases its a layer 1 problem, but as you point out, the 
specific corrupted packet causing the SSH disconnects is transparent to 
TCP.

I was thinking more along the line that if TCP gets a corrupted packet 
then it just retransmits. If SSH gets a corrupted packet it disconnects 
(which is good, I wouldn't say this is anything but the correct behavior).

Previous discussions on this problem can be found here
http://marc.theaimsgroup.com/?t=108316318300002&r=1&w=2

specifically 
http://marc.theaimsgroup.com/?l=openssh-unix-dev&m=108575680024325&w=2
and the referenced bug #845



More information about the openssh-unix-dev mailing list