0

データグラムとそれらがどのように断片化されるか、つまり元のデータグラムを再構築するために何が使用されるかに関する興味深い質問をされました。

  • すべてのフラグメントの ID 番号が同じであることはわかっています。これは、それらがすべて 1 つの大きなデータグラムに属していることを示しています。
  • FragFlag が 1 に設定されているということは、途中でさらに多くのフラグメントがあることを意味しますが、FragFlag が 0 のフラグメントは、それが最終フラグメントであることを意味します。

私が見逃していることがもう 1 つあります。それは、フラグメントが元に戻す必要がある順序を知るために、シーケンス番号も使用する必要があるということです。信頼性が低く、転送中にパケットが失われたり、間違った順序で送信されたりする可能性があります。

対照的に、TCP は信頼できると考えられており、パケットが正しい順序で送信されることを保証する最善の方法です。パケットではなくデータグラムを扱っているため、動作が異なるのでしょうか? または、UDP をより「信頼できる」ものにするために作成されたシーケンス番号でした。

助けてくれてありがとう。

4

2 に答える 2

0

ここでの重要な違いは、TCP が送信側と受信側の間のフロー制御を定義するため、両方の側が常に通信のステータス (成功/失敗/進行中/... など) を認識していることです。UDPはより低レベルです。送信者はデータを送信するだけで、受信されたかどうかは気にしません(もちろん、UDPを使用してより高いレベルのプロトコルをSWに実装できます)。

于 2013-04-28T17:16:07.350 に答える