TCP三次握手和四次挥手
TCP报文的六个标志位 URG:紧急指针(urgent pointer)有效。 ACK:确认序号有效。 PSH:接收方应该尽快将这个报文交给应用层。 RST:重置连接。 SYN:发起一个新连接。 FIN:释放一个连接。 TCP三次握手 所谓三次握手(Three-Way Handshake)即建立TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。 第一次握手Client将标志SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server的确认信息。 第二次握手Server收到数据包后根据SYN=1可知Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认收到了连接请求,Server进入SYN_RCVD状态。 第三次握手Clinet收到确认后,检查ACK标志是否为1且ack是否为J+1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client和Server之间就可以开始传输数据了。
