I get the following when communicating with a custom client
- Connect to client (Syn – Syn/Ack – Ack)
- Sending data > MTU with WSASend (4092 Bytes on a 4088 Bytes MTU)
- Packet gets fragmented into 2 packets
- A Retransmission happens (because the client answered too slow?)
And when the retransmission happens it is not packet 1 or two, but packet 1 with an offset of 60 which is the payload of packet 2. The sequence number of packet 1 is incremented by 60 too. Even the data is correct, it’s correctly incremented by 60.
When I send 6000 Bytes i get the same behaviour with an incremented seq of 1968 which is correct too.
What is happening here?
Can i detect this with winsock2? Can i set the RTO with winsock? Why is the sequence number incremented and not packet 1, as it is, retransmitted?
Source: Windows Questions