Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The reason a TCP connection generate retransmission

My question is why a TCP flow make a re-transmission when a network has enough link bandwidth.

For finding a cause, I used a wireshark. I got the below captured at a host side (10.0.0.1)


85968 47.896188899 10.0.0.2 10.0.0.1 TCP 66 50012 → 47178 [ACK] Seq=1 Ack=18321446 Win=16744448 Len=0 TSval=2453843 TSecr=2453843

86020 47.913068662 10.0.0.1 10.0.0.2 TCP 64578 47178 → 50012 [PSH, ACK] Seq=18321446 Ack=1 Win=29696 Len=64512 TSval=2453847 TSecr=2453843

86076 47.922372390 10.0.0.1 10.0.0.2 TCP 866 [TCP Retransmission] 47178 → 50012 [PSH, ACK] Seq=18385158 Ack=1 Win=29696 Len=800 TSval=2453850 TSecr=2453843

86088 47.922754778 10.0.0.2 10.0.0.1 TCP 66 50012 → 47178 [ACK] Seq=1 Ack=18385958 Win=16744448 Len=0 TSval=2453849 TSecr=2453847

86134 47.926332300 10.0.0.2 10.0.0.1 TCP 78 [TCP Window Update] 50012 → 47178 [ACK] Seq=1 Ack=18385958 Win=16776192 Len=0 TSval=2453850 TSecr=2453850 SLE=18385158 SRE=18385958


As the above, the packet with seq # 18385158 was re-transmitted although the host seemed not to send packer with the seq #.

Therefore I decided the packet loss occurred between layer 3 and layer 4 in the host.

I think there is a wrong part in the transmission process of the kernel.

But it is hard to analyze the more detailed.

Could you give me a little hint?

Thank you so much for reading.

The reason a TCP connection generate retransmission

My question is why a TCP flow make a re-transmission when a network has enough link bandwidth.

For finding a cause, I used a wireshark. I got the below captured at a host side (10.0.0.1)


85968   47.896188899    10.0.0.2    10.0.0.1    TCP 66  50012 → 47178 [ACK] Seq=1 Ack=18321446 Win=16744448 Len=0 TSval=2453843 TSecr=2453843

TSecr=2453843 86020 47.913068662 10.0.0.1 10.0.0.2 TCP 64578 47178 → 50012 [PSH, ACK] Seq=18321446 Ack=1 Win=29696 Len=64512 TSval=2453847 TSecr=2453843

TSecr=2453843 86076 47.922372390 10.0.0.1 10.0.0.2 TCP 866 [TCP Retransmission] 47178 → 50012 [PSH, ACK] Seq=18385158 Ack=1 Win=29696 Len=800 TSval=2453850 TSecr=2453843

TSecr=2453843 86088 47.922754778 10.0.0.2 10.0.0.1 TCP 66 50012 → 47178 [ACK] Seq=1 Ack=18385958 Win=16744448 Len=0 TSval=2453849 TSecr=2453847

TSecr=2453847 86134 47.926332300 10.0.0.2 10.0.0.1 TCP 78 [TCP Window Update] 50012 → 47178 [ACK] Seq=1 Ack=18385958 Win=16776192 Len=0 TSval=2453850 TSecr=2453850 SLE=18385158 SRE=18385958


SRE=18385958

As the above, the packet with seq # 18385158 was re-transmitted although the host seemed not to send packer with the seq #.

Therefore I decided the packet loss occurred between layer 3 and layer 4 in the host.

I think there is a wrong part in the transmission process of the kernel.

But it is hard to analyze the more detailed.

Could you give me a little hint?

Thank you so much for reading.