-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
@twood02
As of commit 0b5a7b1, TCP replay works.
As usual, the problems were caused by a handful of subtle bugs:
- When Athena responds to a SYN packet, it needs to set
tcp->recv_acktosequence number of SYN packet + 1. I didn't take endianness into account, so adding 1 to a big-endian number on a little endian system gave me the wrong ack number. - When Athena receives a SYN and ACK during the handshake, it needs to save copies of those packets. I wasn't copying the packets correctly, so when Athena would replay the handshake for the server, it would send empty packets.
- The state machine in
ct_update_connection()skipped the state that would complete the server's TCP handshake, so connections would never actually start sending data.
Now that I have a working TCP replay implementation, I'm going to move the relevant changes to my dev-tcpreplay branch, and start load testing with Vegeta.
Reactions are currently unavailable