
Estoy investigando un registro de Wireshark proporcionado por alguien para analizar algo por ellos. Wireshark ha vuelto a ensamblar convenientemente 3 segmentos TCP que transportaban un solo paquete TLS. El paquete TLS no pudo caber en el MSS de 1460 bytes, por lo tanto, el host creó 3 segmentos TCP y Wireshark detectó esto:
[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: ... ]
Esto es genial, pero lo que no entiendo es por qué el tercer segmento tiene un tamaño que excede el MSS de esta conexión TCP, que se negoció en SYN/SYN+ACK a 1460 bytes.
Respuesta1
Posteriormente descubrí yo mismo la razón: esto se debe aDescarga de recepción grandecomo se explica enhttp://rtoodtoo.net/generic_segmentation_offload_and_wireshark/. La tarjeta de interfaz de red o el kernel del host recopiló múltiples segmentos TCP y los fusionó en un solo segmento grande antes de pasar al espacio de usuario.
Por lo tanto, pareció realizar un uso de Wireshark cuando registró el tráfico como un único segmento TCP/paquete IP que excede la MTU y MSS permitidas.