Is the SYN packet the only packet that have the ACK flag not set, or are there other packets that have the ACK flag not set?
2 Answers
Under some circumstances, an RST packet will not have the ACK flag set. For example, if a host receives a TCP packet with the ACK flag set, but it doesn't match any open connection, it'll reply with a packet that has the RST flag but not ACK. (As opposed to e.g. when a host receives a SYN packet for a closed port -- then it'd reply with an RST+ACK packet.)
In TCP, all the data packets after the SYN do have to include an ACK, and also an acknowledgement number field which identifies the number of the next packet expected. In other protocols, no.