2009-12-09 59 views
1

我有一些設計要做的串行協議,並遇到一些問題,我認爲必須考慮其他地方。串行協議錯誤檢測/糾正/恢復

所以我想知道是否有一些關於設計串行協議的最佳實踐的建議。請說出一個很容易驗證的事實,或者如果您提出索賠,請引用信譽良好的來源。)也歡迎網站/書籍的一般建議。

特別是我不得不面對的問題,如

  • 解析的字節流爲分組
  • 驗證數據包是正確的(易與CRC,例如)
  • 確定合理的類型可能發生的錯誤(例如點對點串行流,零星單位錯誤和丟失的一系列字節)都可能發生,但不太可能存在額外的幻像字節;而將記錄存儲在閃存或磁盤中驅動主要不同的錯誤類型)
  • 糾錯或恢復(如果我檢測到數據包中有錯誤,我可以糾正它嗎?如果沒有,我可以重新同步到下一個數據包的邊界嗎?)
  • 如何使可變長度數據包魯棒的糾錯/恢復。

有什麼建議嗎?

回答

2

你有沒有考慮過FEC(前向糾錯)?

該過程經常用於「物理」級通信協議,如WDM(波分複用)​​/ OTN(光傳輸網絡)。

3

分組限定

對於同步到數據包的邊界,通常你具有標識該分組邊界,不能分組本身內發生的一個字節或字節序列。如果包數據碰巧包含該標識符,那麼你必須「逃避」(又名字節的東西)它。

實例:

分組驗證

各種選項a重:

糾錯等

好問題。我沒有太多的經驗。

+0

對於COBS鏈接,聽起來很有趣。 – 2010-01-06 04:01:17

+0

whee!我今天試了一下,效果非常好。非常感謝! – 2010-01-07 23:40:41