3

シリアル プロトコルを設計する必要があり、他の場所で検討したに違いないと思われるいくつかの質問に直面しています。

シリアル プロトコルを設計する際のベスト プラクティスについて、いくつかの推奨事項があるかどうか疑問に思っています。(簡単に検証できる事実を述べるか、主張する場合は信頼できる情報源を引用してください。 ) Web サイトや書籍に関する一般的な推奨事項も歓迎します。

特に、次のような問題に対処する必要があります

  • バイトストリームをパケットに解析する
  • パケットが正しいことを確認する (たとえば、CRC で簡単)
  • 発生する可能性のある適切な種類のエラーを特定する (たとえば、ポイント ツー ポイントのシリアル ストリームでは、散発的な単一ビット エラーと一連のバイトの欠落が発生する可能性が高いが、余分なファントム バイトが発生する可能性は低い; 一方、フラッシュ メモリに保存されたレコードの場合)またはディスクドライブでは、優勢なエラーのタイプが異なります)
  • エラーの修正または回復 (パケットでエラーを検出した場合、修正できますか? そうでない場合、次のパケットの境界に再同期できますか?)
  • 可変長パケットをエラー訂正/回復に対して堅牢にする方法。

助言がありますか?

4

2 に答える 2

6

パケット区切り

パケット境界への同期では、通常、パケット境界を識別するバイトまたはバイト シーケンスがありますが、これはパケット自体内では発生しません。パケットデータにその識別子が含まれている場合は、それを「エスケープ」する必要があります (別名バイトスタッフ)。

例:

パケット検証

さまざまなオプションは次のとおりです。

エラー訂正など

良い質問です。私はそれについてあまり経験がありません。

于 2010-01-06T02:00:14.677 に答える
3

FEC (前方誤り訂正) を検討しましたか?

この手順は、WDM (波長分割多重) / OTN (光伝送ネットワーク) などの「物理」レベルの通信プロトコルでよく使用されます。

于 2009-12-09T19:52:11.677 に答える