I am studying about TCP reset attack. I know that some RST packets have an acknowledgement number (with the ACK bit set), and some RST packets do not have an acknowledgement number (the acknowledgement number is set to 0, and the ACK bit is not set). Now if someone were to send a forged RST packet, is there a situation where it is necessary for the RST packet to have an acknowledgement number, or will an RST packet without the acknowledgement number always work? asked 19 Mar '16, 18:31 john_9163 |
One Answer:
No. RFC 793, section 3.1 "Header format", says
so if a connection isn’t established - for example, if a packet comes in for a connection that was closed - a packet sent out doesn’t have to have an acknowledgment number and thus doesn’t have to have ACK set. answered 19 Mar ‘16, 18:52 Guy Harris ♦♦ |
“Once a connection is established this is always sent” So this means that if a connection is established and I would like to send an RST packet to end it, it is necessary to have an acknowledgement number, correct?
Read RFC 793, section 3.9 “Event processing” and RFC 1122, section 4.2.2.20 “Event processing” for indications of when an RST should, or shouldn’t, have an accompanying ACK.