データグラムとそれらがどのように断片化されるか、つまり元のデータグラムを再構築するために何が使用されるかに関する興味深い質問をされました。
- すべてのフラグメントの ID 番号が同じであることはわかっています。これは、それらがすべて 1 つの大きなデータグラムに属していることを示しています。
- FragFlag が 1 に設定されているということは、途中でさらに多くのフラグメントがあることを意味しますが、FragFlag が 0 のフラグメントは、それが最終フラグメントであることを意味します。
私が見逃していることがもう 1 つあります。それは、フラグメントが元に戻す必要がある順序を知るために、シーケンス番号も使用する必要があるということです。信頼性が低く、転送中にパケットが失われたり、間違った順序で送信されたりする可能性があります。
対照的に、TCP は信頼できると考えられており、パケットが正しい順序で送信されることを保証する最善の方法です。パケットではなくデータグラムを扱っているため、動作が異なるのでしょうか? または、UDP をより「信頼できる」ものにするために作成されたシーケンス番号でした。
助けてくれてありがとう。