TCP建立连接
3-way handshake
一边是active opener,一边是passive opener
Client:Syn/Sa
Server:Syn/Sp + Ack/Sa + 1
Client:Ack/Sp+ 1(虽然它的seq num = Sa + 1,但是实际没有data)
simultaneous open
两边互相发送Syn,并互相发回ack
Client:Syn/Sa
Server:Syn/Sp (同时发送的Syn)
Client:Syn/Sa + Ack/Sp + 1
Server:Syn/Sp + Ack/Sa + 1 (同时发送的ack)
TCP Connection Teardown
如何安全地关闭链接
当第二个Fin被client收到,并发回最后一个ack时,这个时候不能立刻关闭这个connection,否则server无法知道这个链接是被关闭了还是重置了