最近、私はネットワーク プロトコルと OSI モデルの問題をもう少し深く掘り下げました。気付いたとき、着信 TCP データグラム (これが間違った用語である場合は訂正してください) は、特定のサイズを超えると、いくつかの部分に分割されます。おそらくルーターのMTUです。この情報をどこから入手したか疑問に思っている場合は、探している情報を抽出するために、SharpPcap を使用してこれらのデータグラムをキャプチャしました。
とにかく、断片化されたパケットの再構成が IP 層のタスクであってはならないのではないかと考えていました。IP 層は、これを達成するための情報 (ID、断片化フラグ、断片オフセット) を確実に提供するからです。さらに、TCPレイヤーはストリームベースのプロトコルとして解釈されることを読みました。しかし、これは実際には、アプリケーションのバッファを正しい方法で埋めるのは TCP 層次第であることを意味します。これにより、情報の最初の部分が再構築され、それ以降のすべての層で「フラッシュ」される可能性があります。
この観察を行う前に、実際には、TCP レイヤーはこれらのデータグラムの再構築を気にする必要があると考えていましたが、言及されたレイヤーはどれも気にしません...
これは、次の質問につながります: 受信した TCP データグラムが再構築されないのはなぜですか? また、実際にこれを処理する必要があるのはどのレイヤーですか?