Như đã được lưu ý bởi những người khác, có rất nhiều khả năng tham nhũng dữ liệu trong đó mọi kiểm tra ở tầng vận chuyển đều không thể giúp được, chẳng hạn như tham nhũng đã xảy ra trước khi tổng kiểm tra được tính ở phía gửi, một MITM chặn và sửa đổi luồng (dữ liệu cũng vậy như tổng kiểm tra), tham nhũng xảy ra sau khi xác nhận tổng kiểm tra ở cuối nhận, v.v.
Nếu chúng ta bỏ qua tất cả các khả năng khác này và tập trung vào các chi tiết cụ thể của chính tổng kiểm tra TCP và những gì nó thực sự làm về mặt xác thực tính toàn vẹn dữ liệu, thì hóa ra các thuộc tính của tổng kiểm tra này hoàn toàn không có khả năng phát hiện lỗi. Cách thuật toán tổng kiểm tra này được chọn thay vì phản ánh yêu cầu về tốc độ kết hợp với khoảng thời gian (cuối những năm 1970).
Đây là cách tính tổng kiểm tra TCP :
Tổng kiểm tra: 16 bit
Trường tổng kiểm tra là phần bổ sung 16 bit của một phần tổng của tất cả các từ 16 bit trong tiêu đề và văn bản. Nếu một phân đoạn chứa một số lượng lớn các octet tiêu đề và văn bản cần kiểm tra, octet cuối cùng được đệm ở bên phải với các số 0 để tạo thành một từ 16 bit cho mục đích tổng kiểm tra. Các pad không được truyền đi như là một phần của phân khúc. Trong khi tính toán tổng kiểm tra, trường tổng kiểm tra được thay thế bằng số không.
Điều này có nghĩa là bất kỳ tham nhũng nào cân bằng khi tổng hợp dữ liệu theo cách này sẽ không bị phát hiện. Có một số loại tham nhũng đối với dữ liệu mà điều này sẽ cho phép nhưng chỉ là một ví dụ tầm thường: thay đổi thứ tự của các từ 16 bit sẽ luôn không bị phát hiện.
Trong thực tế, nó bắt được nhiều lỗi điển hình nhưng hoàn toàn không đảm bảo tính toàn vẹn. Điều này cũng được hỗ trợ bằng cách lớp L2 cũng kiểm tra tính toàn vẹn (ví dụ CRC32 của khung Ethernet), mặc dù chỉ truyền trên liên kết cục bộ và nhiều trường hợp dữ liệu bị hỏng thậm chí không được chuyển đến ngăn xếp TCP.
Xác thực dữ liệu bằng cách sử dụng hàm băm mạnh, hoặc tốt nhất là chữ ký mã hóa, ở một cấp độ hoàn toàn khác về mặt đảm bảo tính toàn vẹn dữ liệu. Cả hai thậm chí có thể được so sánh.