2013-04-28 85 views
0

我被問到一個與數據報有關的有趣問題,以及它們是如何分段的,即用於重新組裝原始數據報的內容。UDP中的序列號

  • 我知道每個片段中的ID號碼都是相同的,表明它們都屬於一個更大的數據報。
  • 我知道FragFlag被設置爲1意味着路上有更多的碎片,但是FragFlag爲0的碎片意味着它是最終的碎片。

。有一兩件事我很想念,我以爲是序列號也必須使用,以至於片段知道爲了他們必須被放回但是,如果這是真的,有點迷惑了我,因爲數據報使用的UDP應該是不可靠的,並且最終會丟失傳輸中的數據包或以錯誤的順序發送數據包。

相比之下,TCP應該是可靠的,並且保證數據包的最佳方式是以正確的順序發送的。因爲我們正在處理的是數據報而不是數據包,所以這裏的工作是不同的嗎或者是爲了使UDP更「可靠」而創建的序列號。

感謝您的任何幫助。

回答

0

這裏最重要的區別是,TCP定義發送者和接收者之間的流量控制,所以雙方都始終了解通信的狀態,例如成功/失敗/正在進行/ ...。 UDP更低級:發送者只是傳輸一些數據,並不關心它是否被接收(當然你可以在SW中實現一些使用UDP的更高級協議)。

0

但是,如果這是真的,有點讓我困惑,因爲數據包使用UDP這被認爲是不可靠的,並且最終在運輸過程中丟失數據包或以錯誤的順序發送。

這是爲什麼混亂?如果所有分段都到達,數據報會重新組合(在IP層)並傳送到應用程序。如果他們沒有,運氣不好。