シリアル プロトコルを設計する必要があり、他の場所で検討したに違いないと思われるいくつかの質問に直面しています。
シリアル プロトコルを設計する際のベスト プラクティスについて、いくつかの推奨事項があるかどうか疑問に思っています。(簡単に検証できる事実を述べるか、主張する場合は信頼できる情報源を引用してください。 ) Web サイトや書籍に関する一般的な推奨事項も歓迎します。
特に、次のような問題に対処する必要があります
- バイトストリームをパケットに解析する
- パケットが正しいことを確認する (たとえば、CRC で簡単)
- 発生する可能性のある適切な種類のエラーを特定する (たとえば、ポイント ツー ポイントのシリアル ストリームでは、散発的な単一ビット エラーと一連のバイトの欠落が発生する可能性が高いが、余分なファントム バイトが発生する可能性は低い; 一方、フラッシュ メモリに保存されたレコードの場合)またはディスクドライブでは、優勢なエラーのタイプが異なります)
- エラーの修正または回復 (パケットでエラーを検出した場合、修正できますか? そうでない場合、次のパケットの境界に再同期できますか?)
- 可変長パケットをエラー訂正/回復に対して堅牢にする方法。
助言がありますか?