  Integrity checking is ubiquitous in data networks, but not all network
traffic needs integrity protection. Many applications can tolerate slightly
damaged data while still working acceptably, trading accuracy versus efficiency
to save time and energy. Such applications should be able to receive damaged
data if they so desire. In today's network stacks, lower-layer integrity checks
discard damaged data regardless of the application's wishes, violating the
End-to-End Principle. This paper argues for optional integrity checking and
gently redesigns a commodity network architecture to support
integrity-unprotected data. Our scheme, called Selective Approximate Protocol
(SAP), allows applications to coordinate multiple network layers to accept
potentially damaged data. Unlike previous schemes that targeted video or media
streaming, SAP is generic. SAP's improved throughput and decreased
retransmission rate is a good match for applications in the domain of
approximate computing.
  Implemented atop WiFi as a case study, SAP works with existing physical
layers and requires no hardware changes. SAP's benefits increase as channel
conditions degrade. In tests of an error-tolerant file-transfer application
over WiFi, SAP sped up transmission by about 30% on average.
