What are the 3 parts of a TCP handshake?
Implement build_tcp_handshake(client_isn, server_isn). Given the initial sequence numbers for both endpoints, return the three handshake packets in order. Each packet must include its direction, flags, sequence number, and acknowledgment number. Use null for the acknowledgment number when the packet does not acknowledge prior data.
def build_tcp_handshake(client_isn, server_isn):