1

Я смотрю на запись Wireshark, предоставленную кем-то, чтобы проанализировать что-то для них. Wireshark удобно собрал 3 сегмента TCP, которые все транспортировали один пакет TLS. Пакет 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: ... ]

Это замечательно, но я не понимаю, почему третий сегмент имеет размер, превышающий MSS этого TCP-соединения, который был согласован в SYN/SYN+ACK на 1460 байтах.

1 ответ1

0

Впоследствии я сам нашел причину: это связано с большой нагрузкой при получении, как объяснено на http://rtoodtoo.net/generic_segmentation_offload_and_wireshark/. Сетевая карта хоста или ядро собрали несколько сегментов TCP и объединили их в один большой сегмент перед передачей в пространство пользователя.

Таким образом, казалось, что проводная акция произошла, когда он записал трафик в виде одного сегмента TCP /IP-пакета, который превышает допустимые значения MTU и MSS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .