再構築されたPDUのTCPセグメント



Tcp Segment Reassembled Pdu



「再構築されたPDUのTCPセグメント」プロンプトは、Windowsのwiresharkパケットキャプチャに表示されます。

pdu



Wiresharkでクリアできます->設定->プロトコル/ TCP->サブディセクタがTCPストリームを再構築できるようにするこのオプションをオフにすると、プロンプトが表示されなくなります。

継続する



インターネット上の再版された記事のほとんどは、再構築されたPDUのTCPセグメントのACK番号が同じであると主張しているため、実際には、表示プロンプトはACKとは関係ありません。

この問題の鍵は、メッセージの長さが2194バイトであり、MTUの1500サイズを超えているため、TCPセグメントのプロンプトが表示されることです。

MTU最大送信ユニット、1500、ifconfigで表示可能



MSS最大セグメントサイズ、1460 = 1500-20-20

PDUプロトコルデータユニット

NICによって送信される最大パケット長は1514バイト= MTU + Ether = 1500 +14です。

質問が来ました、なぜ2194バイトのメッセージが正常なのですか?なぜIPフラグメンテーションを実行しなかったのですか?

最新のOSはネットワークオフロード(TSO)機能をサポートしているため、NICはCPUに取って代わり、パケットのセグメンテーションとマージを実装し、システムリソースを節約し、システムがより多くの接続を処理できるようにします。

TSOTCPセグメントオフロード

LSOラージセグメントオフロード

GSO汎用セグメントオフロード

LROラージレシーブオフロード

RSC受信セグメント合体

送信プロセス:

Many operating systems and NIC drivers support TCP Segmentation Offload (TSO) aka Large Segment Offload (LSO) aka Generic Segment Offload (GSO). What this means is that the TCP stack sends a chunk of data for the NIC to break up into Maximum Segment Size (MSS) pieces to send on the network. TCP might hand the NIC 16k of data and the NIC will break it into MSS sized bites: 11 segments of 1460 bytes and one segment of the remaining 324 bytes. This offloads the task to the NIC and saves overhead on the host’s resources. It’s a performance thing.

TCPプロトコルスタックが大きなデータブロックを送信する場合、NICによってセグメント化されます。この機能により、アダプタハードウェアがオペレーティングシステムソフトウェアよりもはるかに高速にデータセグメンテーションを完了するため、伝送パフォーマンスが向上する可能性があります。さらに、アダプタはより少ないCPUリソースを使用します。

受信プロセス:

Large Receive Offload (LRO) or Receive Segment Coalescing (RSC). The is the same thing but in reverse. The NIC coalesces TCP segments it receives from a remote host into larger packets before sending them up to the TCP stack. 

NICは、送信する代わりに、受信したデータを大きなパケットにマージして、TCP / IPスタックに送信します。 NICとプロトコルスタック間のwiresharkに示されているように、ネットワークカード上のデータがキャプチャされます。この場合、パケット長はMTUより長くなる可能性があります。

ロケーション

参照リンク:

http://packetbomb.com/how-can-the-packet-size-be-greater-than-the-mtu/

http://rtodto.net/generic_segmentation_offload_and_wireshark/

https://en.wikipedia.org/wiki/Large_receive_offload