Seperti yang telah dicatat oleh orang lain, ada banyak kemungkinan untuk korupsi data di mana checksum apa pun pada lapisan transport tidak dapat membantu, seperti korupsi yang sudah terjadi sebelum checksum dihitung di sisi pengirim, MITM menyadap dan memodifikasi aliran (data juga sebagai checksum), korupsi terjadi setelah memvalidasi checksum di ujung penerima, dll.
Jika kita mengabaikan semua kemungkinan lain ini dan fokus pada spesifikasi TCP checksum itu sendiri dan apa yang sebenarnya dilakukannya dalam memvalidasi integritas data, ternyata sifat-sifat checksum ini sama sekali tidak komprehensif dalam hal mendeteksi kesalahan. Cara algoritma checksum ini dipilih agak mencerminkan persyaratan untuk kecepatan dalam kombinasi dengan periode waktu (akhir 1970-an).
Ini adalah bagaimana TCP checksum dihitung:
Checksum: 16 bit
Bidang checksum adalah komplemen 16 bit seseorang dari jumlah komplemen seseorang dari semua 16 bit kata dalam header dan teks. Jika suatu segmen berisi jumlah ganjil tajuk dan oktet teks yang akan checksummed, oktet terakhir diisi di sebelah kanan dengan nol untuk membentuk kata 16 bit untuk keperluan checksum. Pad tidak ditransmisikan sebagai bagian dari segmen. Saat menghitung checksum, bidang checksum itu sendiri diganti dengan nol.
Ini berarti bahwa setiap korupsi yang menyeimbangkan saat menjumlahkan data dengan cara ini akan tidak terdeteksi. Ada sejumlah kategori korupsi pada data yang akan diizinkan tetapi hanya sebagai contoh sepele: mengubah urutan kata 16 bit akan selalu tidak terdeteksi.
Dalam praktiknya, ia menangkap banyak kesalahan umum tetapi sama sekali tidak menjamin integritas. Ini juga dibantu oleh bagaimana lapisan L2 juga melakukan pemeriksaan integritas (mis. CRC32 dari frame Ethernet), meskipun hanya untuk transmisi pada tautan lokal, dan banyak kasus data yang rusak bahkan tidak pernah diteruskan ke tumpukan TCP.
Memvalidasi data menggunakan hash yang kuat, atau lebih disukai tanda tangan kriptografi, berada pada tingkat yang berbeda dalam hal memastikan integritas data. Keduanya bahkan tidak bisa dibandingkan.