web-dev-qa-db-ja.com

Wiresharkの再構築されたPDUは、TCPセグメントサイズ> MSS?

誰かから提供されたWiresharkレコードを調べて、何かを分析しています。 Wiresharkは、すべてが単一のTLSパケットを転送する3つのTCPセグメントを便利に再構築しました。TLSパケットは1460バイトのMSSに収まらなかったため、ホストは3 TCP =それからのセグメントとwiresharkはこれを検出しました:

[3 Reassembled TCP Segments (5914 bytes): #8(1440), #10(1440), #12(3034)]
    [Frame: 8, payload: 0-1439 (1440 bytes)]
    [Frame: 10, payload: 1440-2879 (1440 bytes)]
    [Frame: 12, payload: 2880-5913 (3034 bytes)]
    [Segment count: 3]
    [Reassembled TCP length: 5914]
    [Reassembled TCP Data: ... ]

これは素晴らしいことですが、私が理解していないのは、3番目のセグメントのサイズがこのTCP接続のMSSを超えている理由です。これは、SYN/SYN + ACKで1460バイトでネゴシエートされました。 。

その後、自分で理由を見つけました。これは、 http://rtoodtoo.net/generic_segmentation_offload_and_wireshark/ で説明されているように ラージレシーブオフロード によるものです。ホストのネットワークインターフェイスカードまたはカーネルは、複数のTCPセグメントを収集し、ユーザースペースに渡す前に単一の大きなセグメントにマージしました。

そのため、トラフィックを単一のTCPセグメント/ IPパケットとして許可されたMTUおよびMSSを超えるものとして記録したときにwiresharkに見えました。