Misbehaviors in TCP SACK Generation
While analyzing CAIDA Internet traces of TCP traffic to detect instances of data reneging, the authors frequently observed seven misbehaviors in the generation of SACKs. These misbehaviors could result in a data sender mistakenly thinking data reneging occurred. With one misbehavior, the worst case could result in a data sender receiving a SACK for data that was transmitted but never received. This paper presents a methodology and its application to test a wide range of operating systems using TBIT to fingerprint which ones misbehave in each of the seven ways. Measuring the performance loss due to these misbehaviors is outside the scope of this paper; the goal is to document the misbehaviors so they may be corrected.