UDP を介した信頼性の高いデータ転送プロトコルを実装しています。パケットが破損する可能性があるため、チェックサムを使用してどのパケットが破損しているかどうかを判断する必要があります。私の RDT プロトコルはストップ アンド ウェイト プロトコルなので、1 つのパケットを送信して応答を待ちます。
チェックサムの計算に CRC32 を使用しています。
Checksum checksum = new CRC32();
checksum.update(packet.getData(),0,packet.getLength());
long value = checksum.getValue();
問題は、送信側のチェックサム値を使用して、受信側のパケットのチェックサム値と比較するにはどうすればよいですか? 送信者のチェックサムをパケットに追加し、受信者がチェックサム値の開始前に受信したパケットを読み取って自身のチェックサムを更新できるようにしますか?
たとえば、受信側では次のようになります。
receiverChecksum.update(packet.getData(),0,packet.getLength - checksumLength());
私のアプローチは正しいですか?ありがとう。