HTTP никогда не увидит плохой пакет. Помните, что TCP гарантирует (наилучшее усилие), что он даст вам безошибочный непрерывный поток данных, который использует HTTP.
В TCP в какой-то момент клиент сгенерирует NACK вместо ACK. В зависимости от того, был ли согласован выборочный ACK, либо неверный пакет, либо подмножество полученных пакетов будут повторно переданы сервером (на уровне TCP сервер HTTP не знает, за исключением более высокой задержки).
Контрольная сумма обсуждается в TCP RFC: http://www.faqs.org/rfcs/rfc793.html Раздел 3.1 (стр. 16)
RFC1071 подробно описывает контрольную сумму.