Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

What is TCP Previous segment / Out-of-order / TCP Dup ACK

Below is the packet capture for a small segment of the application which is getting timed out while the connection is established.

It starts with TCP Previous segment not captured, to TCP Out-of-order and leading to TCP Dup ACK. Below is the format.

72  53.967071   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=15055 Win=64308 Len=0 TSval=3811170183 TSecr=1585795827
73  54.223866   Service A   Service B   TCP 116 [TCP Previous segment not captured] 443 → 44520 [PSH, ACK] Seq=16453 Ack=3414 Win=7643 Len=50 TSval=1585796084 TSecr=3811170183 [TCP segment of a reassembled PDU]
74  54.223903   Service A   Service B   TCP 166 [TCP Previous segment not captured] 443 → 44520 [PSH, ACK] Seq=19299 Ack=3414 Win=7643 Len=100 TSval=1585796084 TSecr=3811170183 [TCP segment of a reassembled PDU]
74  54.223903   Service A   Service B   TCP 166 [TCP Previous segment not captured] 443 → 44520 [PSH, ACK] Seq=19299 Ack=3414 Win=7643 Len=100 TSval=1585796084 TSecr=3811170183 [TCP segment of a reassembled PDU]
75  54.223909   Service A   Service B   TCP 1464    [TCP Out-Of-Order] 443 → 44520 [ACK] Seq=15055 Ack=3414 Win=7643 Len=1398 TSval=1585796084 TSecr=3811170183 [TCP segment of a reassembled PDU]
76  54.223916   Service A   Service B   TCP 2862    [TCP Out-Of-Order] 443 → 44520 [ACK] Seq=16503 Ack=3414 Win=7643 Len=2796 TSval=1585796084 TSecr=3811170183 [TCP segment of a reassembled PDU]
77  54.223923   Service A   Service B   TLSv1.2 2495    Application Data [TCP segment of a reassembled PDU]
78  54.223983   Service B   Service A   TCP 78  [TCP Dup ACK 72#1] 44520 → 443 [ACK] Seq=3414 Ack=15055 Win=64308 Len=0 TSval=3811170440 TSecr=1585795827 SLE=16453 SRE=16503
79  54.223994   Service B   Service A   TCP 86  [TCP Dup ACK 72#2] 44520 → 443 [ACK] Seq=3414 Ack=15055 Win=64308 Len=0 TSval=3811170440 TSecr=1585795827 SLE=19299 SRE=19399 SLE=16453 SRE=16503
80  54.223996   Service B   Service A   TCP 78  44520 → 443 [ACK] Seq=3414 Ack=16503 Win=64308 Len=0 TSval=3811170440 TSecr=1585796084 SLE=19299 SRE=19399
81  54.223998   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=19399 Win=64308 Len=0 TSval=3811170440 TSecr=1585796084
82  54.224001   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=21828 Win=64308 Len=0 TSval=3811170440 TSecr=1585796084
83  54.480720   Service A   Service B   TCP 116 [TCP Previous segment not captured] 443 → 44520 [PSH, ACK] Seq=23226 Ack=3414 Win=7643 Len=50 TSval=1585796341 TSecr=3811170440 [TCP segment of a reassembled PDU]
84  54.480730   Service A   Service B   TCP 1464    [TCP Out-Of-Order] 443 → 44520 [PSH, ACK] Seq=21828 Ack=3414 Win=7643 Len=1398 TSval=1585796341 TSecr=3811170440 [TCP segment of a reassembled PDU]
85  54.480733   Service A   Service B   TCP 116 [TCP Previous segment not captured] 443 → 44520 [PSH, ACK] Seq=24674 Ack=3414 Win=7643 Len=50 TSval=1585796341 TSecr=3811170440 [TCP segment of a reassembled PDU]
86  54.480736   Service A   Service B   TCP 1464    [TCP Out-Of-Order] 443 → 44520 [ACK] Seq=23276 Ack=3414 Win=7643 Len=1398 TSval=1585796341 TSecr=3811170440 [TCP segment of a reassembled PDU]
87  54.480770   Service B   Service A   TCP 78  [TCP Dup ACK 82#1] 44520 → 443 [ACK] Seq=3414 Ack=21828 Win=64308 Len=0 TSval=3811170697 TSecr=1585796084 SLE=23226 SRE=23276
88  54.480776   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=23276 Win=64308 Len=0 TSval=3811170697 TSecr=1585796341
89  54.480778   Service B   Service A   TCP 78  [TCP Dup ACK 88#1] 44520 → 443 [ACK] Seq=3414 Ack=23276 Win=64308 Len=0 TSval=3811170697 TSecr=1585796341 SLE=24674 SRE=24724
90  54.480780   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=24724 Win=64308 Len=0 TSval=3811170697 TSecr=1585796341

Can you explain the this behavior?

Once the packets fall in place, the below is observed ending with a connection reset.

96  54.480923   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=30049 Win=64308 Len=0 TSval=3811170697 TSecr=1585796341
97  54.737495   Service A   Service B   TCP 145 [TCP Previous segment not captured] 443 → 44520 [PSH, ACK] Seq=31447 Ack=3414 Win=7643 Len=79 TSval=1585796597 TSecr=3811170697 [TCP segment of a reassembled PDU] [TCP segment of a reassembled PDU]
98  54.737510   Service A   Service B   TCP 1464    [TCP Out-Of-Order] 443 → 44520 [PSH, ACK] Seq=30049 Ack=3414 Win=7643 Len=1398 TSval=1585796597 TSecr=3811170697
99  54.737513   Service A   Service B   TCP 1464    443 → 44520 [PSH, ACK] Seq=31526 Ack=3414 Win=7643 Len=1398 TSval=1585796597 TSecr=3811170697 [TCP segment of a reassembled PDU]
100 54.737569   Service B   Service A   TCP 78  [TCP Dup ACK 96#1] 44520 → 443 [ACK] Seq=3414 Ack=30049 Win=64308 Len=0 TSval=3811170953 TSecr=1585796341 SLE=31447 SRE=31526
101 54.737575   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=31526 Win=64308 Len=0 TSval=3811170953 TSecr=1585796597
102 54.737578   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=32924 Win=64308 Len=0 TSval=3811170954 TSecr=1585796597
103 54.737582   Service A   Service B   TCP 2862    443 → 44520 [ACK] Seq=32924 Ack=3414 Win=7643 Len=2796 TSval=1585796597 TSecr=3811170697 [TCP segment of a reassembled PDU]
104 54.737597   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=35720 Win=64308 Len=0 TSval=3811170954 TSecr=1585796597
105 54.737723   Service A   Service B   TLSv1.2 1778    Application Data, Application Data
106 54.737742   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=37432 Win=64308 Len=0 TSval=3811170954 TSecr=1585796597
108 357.107890  Service A   Service B   TCP 54  443 → 44520 [RST, ACK] Seq=37432 Ack=3414 Win=0 Len=0

This is causing the application to timeout. It would be helpful if you could explain the behavior so we can identify the cause.

What is TCP Previous segment / Out-of-order / TCP Dup ACK

Below is the packet capture for a small segment of the application which is getting timed out while the connection is established.

It starts with TCP Previous segment not captured, to TCP Out-of-order and leading to TCP Dup ACK. Below is the format.

72  53.967071   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=15055 Win=64308 Len=0 TSval=3811170183 TSecr=1585795827
TSval=Value Y TSecr=Value B
73  54.223866   Service A   Service B   TCP 116 [TCP Previous segment not captured] 443 → 44520 [PSH, ACK] Seq=16453 Ack=3414 Win=7643 Len=50 TSval=1585796084 TSecr=3811170183 TSval=Value X TSecr=Value Y [TCP segment of a reassembled PDU]
74  54.223903   Service A   Service B   TCP 166 [TCP Previous segment not captured] 443 → 44520 [PSH, ACK] Seq=19299 Ack=3414 Win=7643 Len=100 TSval=1585796084 TSecr=3811170183 TSval=Value X TSecr=Value Y [TCP segment of a reassembled PDU]
74  54.223903   Service A   Service B   TCP 166 [TCP Previous segment not captured] 443 → 44520 [PSH, ACK] Seq=19299 Ack=3414 Win=7643 Len=100 TSval=1585796084 TSecr=3811170183 TSval=Value X TSecr=Value Y [TCP segment of a reassembled PDU]
75  54.223909   Service A   Service B   TCP 1464    [TCP Out-Of-Order] 443 → 44520 [ACK] Seq=15055 Ack=3414 Win=7643 Len=1398 TSval=1585796084 TSecr=3811170183 TSval=Value X TSecr=Value Y [TCP segment of a reassembled PDU]
76  54.223916   Service A   Service B   TCP 2862    [TCP Out-Of-Order] 443 → 44520 [ACK] Seq=16503 Ack=3414 Win=7643 Len=2796 TSval=1585796084 TSecr=3811170183 TSval=Value X TSecr=Value Y [TCP segment of a reassembled PDU]
77  54.223923   Service A   Service B   TLSv1.2 2495    Application Data [TCP segment of a reassembled PDU]
78  54.223983   Service B   Service A   TCP 78  [TCP Dup ACK 72#1] 44520 → 443 [ACK] Seq=3414 Ack=15055 Win=64308 Len=0 TSval=3811170440 TSecr=1585795827 TSval=Value A TSecr=Value B SLE=16453 SRE=16503
79  54.223994   Service B   Service A   TCP 86  [TCP Dup ACK 72#2] 44520 → 443 [ACK] Seq=3414 Ack=15055 Win=64308 Len=0 TSval=3811170440 TSecr=1585795827 TSval=Value A TSecr=Value B SLE=19299 SRE=19399 SLE=16453 SRE=16503
80  54.223996   Service B   Service A   TCP 78  44520 → 443 [ACK] Seq=3414 Ack=16503 Win=64308 Len=0 TSval=3811170440 TSecr=1585796084 TSval=Value A TSecr=Value X SLE=19299 SRE=19399
81  54.223998   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=19399 Win=64308 Len=0 TSval=3811170440 TSecr=1585796084
TSval=Value A TSecr=Value X
82  54.224001   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=21828 Win=64308 Len=0 TSval=3811170440 TSecr=1585796084
TSval=Value A TSecr=Value X
83  54.480720   Service A   Service B   TCP 116 [TCP Previous segment not captured] 443 → 44520 [PSH, ACK] Seq=23226 Ack=3414 Win=7643 Len=50 TSval=1585796341 TSecr=3811170440 TSval=Value Z TSecr=Value A [TCP segment of a reassembled PDU]
84  54.480730   Service A   Service B   TCP 1464    [TCP Out-Of-Order] 443 → 44520 [PSH, ACK] Seq=21828 Ack=3414 Win=7643 Len=1398 TSval=1585796341 TSecr=3811170440 TSval=Value Z TSecr=Value A [TCP segment of a reassembled PDU]
85  54.480733   Service A   Service B   TCP 116 [TCP Previous segment not captured] 443 → 44520 [PSH, ACK] Seq=24674 Ack=3414 Win=7643 Len=50 TSval=1585796341 TSecr=3811170440 TSval=Value Z TSecr=Value A [TCP segment of a reassembled PDU]
86  54.480736   Service A   Service B   TCP 1464    [TCP Out-Of-Order] 443 → 44520 [ACK] Seq=23276 Ack=3414 Win=7643 Len=1398 TSval=1585796341 TSecr=3811170440 TSval=Value Z TSecr=Value A [TCP segment of a reassembled PDU]
87  54.480770   Service B   Service A   TCP 78  [TCP Dup ACK 82#1] 44520 → 443 [ACK] Seq=3414 Ack=21828 Win=64308 Len=0 TSval=3811170697 TSecr=1585796084 TSecr=Value X SLE=23226 SRE=23276
88  54.480776   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=23276 Win=64308 Len=0 TSval=3811170697 TSecr=1585796341
TSecr=Value Z
89  54.480778   Service B   Service A   TCP 78  [TCP Dup ACK 88#1] 44520 → 443 [ACK] Seq=3414 Ack=23276 Win=64308 Len=0 TSval=3811170697 TSecr=1585796341 TSecr=Value Z SLE=24674 SRE=24724
90  54.480780   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=24724 Win=64308 Len=0 TSval=3811170697 TSecr=1585796341
TSecr=Value Z

Can you explain the this behavior?

Once the packets fall in place, the below is observed ending with a connection reset.

 96  54.480923   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=30049 Win=64308 Len=0 TSval=3811170697 TSecr=1585796341
TSval=Value Z TSecr=Value A
97  54.737495   Service A   Service B   TCP 145 [TCP Previous segment not captured] 443 → 44520 [PSH, ACK] Seq=31447 Ack=3414 Win=7643 Len=79 TSval=1585796597 TSecr=3811170697 TSval=Value Y TSecr=Value Z [TCP segment of a reassembled PDU] [TCP segment of a reassembled PDU]
98  54.737510   Service A   Service B   TCP 1464    [TCP Out-Of-Order] 443 → 44520 [PSH, ACK] Seq=30049 Ack=3414 Win=7643 Len=1398 TSval=1585796597 TSecr=3811170697
TSval=Value Y TSecr=Value Z
99  54.737513   Service A   Service B   TCP 1464    443 → 44520 [PSH, ACK] Seq=31526 Ack=3414 Win=7643 Len=1398 TSval=1585796597 TSecr=3811170697 TSval=Value Y TSecr=Value Z [TCP segment of a reassembled PDU]
100 54.737569   Service B   Service A   TCP 78  [TCP Dup ACK 96#1] 44520 → 443 [ACK] Seq=3414 Ack=30049 Win=64308 Len=0 TSval=3811170953 TSecr=1585796341 TSecr=Value A SLE=31447 SRE=31526
101 54.737575   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=31526 Win=64308 Len=0 TSval=3811170953 TSecr=1585796597
TSecr=Value Y
102 54.737578   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=32924 Win=64308 Len=0 TSval=3811170954 TSecr=1585796597
TSval=Value X TSecr=Value Y
103 54.737582   Service A   Service B   TCP 2862    443 → 44520 [ACK] Seq=32924 Ack=3414 Win=7643 Len=2796 TSval=1585796597 TSecr=3811170697 TSval=Value Y TSecr=Value Z [TCP segment of a reassembled PDU]
104 54.737597   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=35720 Win=64308 Len=0 TSval=3811170954 TSecr=1585796597
TSval=Value X TSecr=Value Y
105 54.737723   Service A   Service B   TLSv1.2 1778    Application Data, Application Data
106 54.737742   Service B   Service A   TCP 66  44520 → 443 [ACK] Seq=3414 Ack=37432 Win=64308 Len=0 TSval=3811170954 TSecr=1585796597
TSval=Value X TSecr=Value Y
108 357.107890  Service A   Service B   TCP 54  443 → 44520 [RST, ACK] Seq=37432 Ack=3414 Win=0 Len=0

This is causing the application to timeout. It would be helpful if you could explain the behavior so we can identify the cause. cause.