2009-11-24 83 views
0

什麼可能是用於測試可靠UDP層的故障情況的良好列表?我想到了以下情況:可靠的UDP的故障情況?

  • 丟棄數據分組
  • 降ACK,NAK包
  • 發送數據包亂序。
  • 降INTIAL握手包
  • 下降接近/關機包
  • 重複的數據包

請確定可靠的UDP需要處理其他案件幫助嗎?

+0

沒有「可靠的UDP層」這樣的東西:你不能改變UDP層(除非你參與IETF並且對標準體有很強的影響力)**但是你可以實現一個客戶端協議位於UDP的頂部**。所述客戶端協議可以支持可靠性特徵。 – jldupont 2009-11-26 02:17:24

回答

1

你有沒有試圖在運輸過程中故意破壞數據包?

此外,您是否考慮過只能單向通信的情況?在這種情況下,發送主機認爲發送失敗,但接收端成功處理該消息。例如:

  1. 主機將消息發送到主機
  2. 成功地接收消息,並且以ACK迴應
  3. ACK被在網絡中丟棄
  4. 等待用於超時並重新發送消息(重複步驟1-3)
  5. 主機A超過重試次數,並認爲發送失敗,但主機實際上已經處理的消息
0

我曾經想過UDP是無連接和不可靠的協議,這是不需要和主機之間的特定運輸握手。因此沒有可靠的UDP協議。

+0

是的,UDP *是一種不可靠的協議,但您可以通過在UDP之上實現類似於TCP的確認來使其「可靠」,就像TCP在不可靠的IP層之上所做的一樣。 「可靠」並不意味着「無瑕疵」;它只是意味着你會被通知失敗。 – intgr 2009-11-24 11:26:53

+1

感謝intgr的擡頭......沒有意識到可以做到!乾杯! :) – t0mm13b 2009-11-24 11:34:20

+0

....但實際的「服務器層」即UDP仍然是無連接且不可靠的。如果實現UDP協議ontop,那麼它就是:UDP的另一協議ontop。 – jldupont 2009-11-25 21:42:25

2

你給出的列表聽起來很不錯。也想想:

  • 非常延遲的數據包(大多數數據包通過罰款,但一個或兩個延遲幾分鐘);
  • 非常延遲重複(原始快速傳播,但延遲幾分鐘後重復傳播);
  • 無聲丟棄超過一定大小的所有數據包(包括單向和雙向情況);
  • 高度可變的延遲;
  • 序號包裝測試。