이 백서 (When the CRC and TCP checksum disagree)는 TCP 체크섬 알고리즘이 다소 약하기 때문에 TCP를 사용하여 1600 만 ~100 억 패킷마다 감지되지 않은 오류가 발생한다고 제안합니다.tcp 체크섬이 너무 약할 수 있으므로 응용 프로그램 수준 체크섬이 필요합니까?
응용 프로그램 수준에서 체크섬을 추가하여 이러한 종류의 오류로부터 데이터를 보호하는 응용 프로그램 개발자가 있습니까?
EJB 원격 메소드 호출 (Java EE 5)을 수행하는 동안 그러한 오류로부터 보호 할 수있는 패턴이 있습니까? 또는 Java는 이미 직렬화 된 객체를 자동으로 (기본 네트워크 프로토콜과 함께) 자동으로 체크섬합니까?
엔터프라이즈 ECC는 메모리 ECC뿐 아니라 레지스터 등에서 CPU 내에서 오류 검사 (SPARC 및 기타)를 수행하는 컴퓨터에서 실행되고 있습니다. 스토리지 시스템 (하드 드라이브, 케이블 등)의 비트 오류는 Solaris ZFS를 사용하여 방지 할 수 있습니다.
나는 TCP 때문에 네트워크 비트 오류를 두려워하지 않았다. 나는 그 기사를 보았다.
몇 가지 매우 적은 클라이언트 서버 원격 인터페이스에 대해 응용 프로그램 수준 체크섬을 구현하는 것이 그리 많지 않을 수도 있습니다. 하지만 단일 데이터 센터의 여러 시스템에서 실행되는 분산 엔터프라이즈 소프트웨어는 어떻습니까? 정말 많은 수의 원격 인터페이스가있을 수 있습니다.
SAP, Oracle 등의 모든 엔터프라이즈 소프트웨어 공급 업체는 이러한 종류의 문제를 무시하고 있습니까? 은행은 어때? 증권 거래소 소프트웨어는 어떻습니까?
후속 : 답장을 보내 주셔서 감사합니다. 따라서 감지되지 않은 네트워크 데이터 손상을 확인하는 것은 매우 드문 것 같습니다.하지만 실제로 존재하는 것 같습니다.
MD5 또는 SHA1을 사용하도록 구성된 TLS와 함께 RMI over TLS를 사용하도록 Java EE 응용 프로그램 서버 (또는 EJB 배포 설명자)를 구성하고 동일한 작업을 수행하도록 Java SE 클라이언트를 구성하여이 문제를 해결할 수 없었습니다 ? 이것은 신뢰할 수있는 투명한 체크섬을 얻을 수있는 방법이 될 수 있습니까? (그래도 잔인 함으로 인해) 응용 프로그램 수준에서이를 구현하지 않아도 되겠습니까? 아니면 네트워크 스택을 완전히 혼란스럽게 생각합니까?
문제에 대한 설명 : http://criticalindirection.com/2016/02/22/tcp-checksum-the-fault-in-the-stars/ – user31986