Wireshark의 재조립된 PDU는 TCP 세그먼트 크기 > MSS?

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: ... ]

이것은 훌륭하지만 왜 세 번째 세그먼트의 크기가 1460바이트의 SYN/SYN+ACK에서 협상된 이 TCP 연결의 MSS를 초과하는지 이해할 수 없습니다.

답변1

나중에 나는 그 이유를 스스로 발견했습니다.대규모 수신 오프로드에 설명된 대로http://rtoodtoo.net/generic_segmentation_offload_and_wireshark/. 호스트의 네트워크 인터페이스 카드 또는 커널은 여러 TCP 세그먼트를 수집하여 사용자 공간으로 전달하기 전에 이를 하나의 큰 세그먼트로 병합했습니다.

따라서 허용된 MTU 및 MSS를 초과하는 단일 TCP 세그먼트/IP 패킷으로 트래픽을 기록하면 Wireshark로 나타났습니다.

관련 정보